You are on page 1of 5

Goran Ž.

Ferenc
Research Assistant
Distributed Robot Control System
LOLA Institute, Belgrade
Based on the Real-Time Linux
Maja M. Lutovac
Research Assistant
Platform
LOLA Institute, Belgrade
This paper presents a development of a new distributed control system for
Jelena Z. Vidaković robots control. The system is based on the real-time Linux platform on
Research Assistant
which OROCOS open architecture software is set designed specifically for
LOLA Institute, Belgrade creating applications of this type. The system consists of components of
various structures and with different roles. They can be distributed to
Zoran Ž. Dimić different hardware platforms with the same operating system. Components
Research Assistant can communicate through the CORBA protocol. The system is designed as
LOLA Institute, Belgrade a modular solution that allows easy connection and disconnection of
components with various functions depending on the needs of applications
Vladimir M. Kvrgić including communicatation with different types of hardware. That way the
Research Associate structure of the system remains the same.
LOLA Institute, Belgrade
Keywords: robot control system, distributed control system, real-time
Linux, OROCOS.

Received: January 2008, Accepted: March 2008


Correspondence to: Dr John Smith
Faculty of Mechanical Engineering,
Kraljice Marije 16, 11120 Belgrade 35, Serbia
E-mail: jsmith@mas.bg.ac.rs

© Faculty of Mechanical Engineering, Belgrade. All rights reserved FME Transactions (200x) XX, x-x 1
1. INTRODUCTION implements specific robotics algorithms, kinematics and
dynamics of kinematic chains, servo controllers, motion
Industrial robots are included in a wide range of planners for mobile robots, serial and parallel
applications today, so there are many configurations, manipulators, Bayesian and Neural Network estimators,
physical shapes and drive robot systems. As the demand etc. The robotic module makes use of one or more
for increased performances is constantly growing, supporting modules.
requirements for better and more complex controllers  Components. These are CORBA (Common
are on the rise. Object Request Broker Architecture) objects with their
There are two solutions to deal with problem. First, IDL (Interface Description Language) descriptions.
it is possible to retrofit robots, which includes These components are constructed out of the previous
replacement of some working parts (machine parts, two types of modules and they are the building blocks
machine hardware) and the development of all software with which users assemble their robot control software
features. These changes are significant and expensive environment.
and take a long time. An open architecture appears as a Open standards are very important for efficient
alternative solution to problem. This way, almost all sharing of software and for its cooperative development.
features in the design can be changed by everyone as Only an open source project can guarantee the optimal
well as by the original manufacturer. The price of the use of open standards. The most important standards
development becomes less and development requires that the OROCOS project supports are:
less time. These benefits are achieved by using open  The CORBA IDL for object embedding.
architecture and open source software platforms. Through the IIOP (Internet Inter-Orb Protocol), all
Development of a new control system for Lola different implementations of CORBA are interoperable.
Institute’s robots started on a previous version of Lola CORBA also has a real-time extension, which is very
Institute’s robot controller developed on the OS-9 real- important for robot control.
time platform. Unlike the previous version which  The structured document language XML for
required a specific set of hardware the new version of configuration and data files.
the system is developed on the real-time Linux  Modelica for modeling of dynamical systems.
platform, where the Linux kernel is patched with  DocBook and LATEX for documentation. Both
Xenomai. OROCOS (Open Robot Control Software) are platform independent, open source and can be
libraries are installed on this platform and designed translated into many other formats and as such they are
specifically for the development of applications for the preferred text processing vehicles.
robot control. In this way, the real-time part of the OROCOS does not want to impose a standard
control system is completely changed regard to previous programming language. The philosophy behind this
version of the system. New control system is open strategy is that the best tool for the job should be used.
architecture and is modernized according to the The CORBA middleware is able to work in an
development of similar control systems in the world, heterogeneous programming language environment.
achieving greater efficiency and speed [1]. The OROCOS software system uses support from
2. OROCOS other open source software projects. Some of the
projects that OROCOS can be built on are:
OROCOS (Open Robot Control Software) is a  Octave is a very rich numerical library that
European project, started on September 1 st, 2001. Three uses the same foundations as, and in its scripting form is
laboratories are participating: the Katholieke very compatible with, Matlab.
Universiteit Leuven (KULeuven, Belgium, project  Real-Time Linux and/or RTAI, which are real-
contractor), the Laboratory for Analysis and time kernel extensions to Linux; or the Linux-
Architecture of Systems (CNRS/LAAS, France) and independent eCos.
Kungl Tekniska Högskolan (KTH, Sweden). Many  Xenomai is a real-time development
other European laboratories participate in the framework cooperating with the Linux kernel, in order
discussions and design [2]. to provide a pervasive hard real-time support to user-
The project aims at producing an open source space applications [3].
software framework, by providing a functional basis for
 Comedi is a library for real-time device
general robots control. The software intended to be
drivers, such as AD/DA cards.
platform independent, but it is also thought
 Various packages and open formats for 3D
as application independent.
visualization: VRML, Java3D, OpenGL with
The OROCOS codebase is divided into modules or
OpenInventor or Coin3D, etc.
libraries. There are generally three types of modules:
The OROCOS project supports four C++ libraries:
 Support module. This module is software
the Real-Time Toolkit, the Kinematics and Dynamics
without functional robotics content, but it is needed to
Library, the Bayesian Filtering Library and the
build a working environment for robot control system
OROCOS Component Library.
such as real-time operating system, software component
Received: January 2008,  The OROCOS Real-Time Toolkit (RTT) is not
configuration tools, 3D Accepted: March
visualization and2008
simulation,
Correspondence to: Dr John Smith an application itself, but it provides the infrastructure
numerical libraries, inter-process communication,
Faculty of Mechanical and the real-time functionalities to build robotics
documentation writing Engineering,
tools, etc.
Kraljice Marije applications in C++.
 Robotic16,module.
11120 Belgrade 35, Serbia
This module is software that
E-mail: jsmith@mas.bg.ac.rs  The OROCOS Component Library (OCL)

© Faculty of Mechanical Engineering, Belgrade. All rights reserved FME Transactions (200x) XX, x-x 1
provides some ready to use control components.
 The OROCOS Kinematics and Dynamics
Library (KDL) is a C++ library which allows
calculating kinematic chains in real-time.
 The OROCOS Bayesian Filtering Library
(BFL) provides an application independent framework
for inference in Dynamic Bayesian Networks, recursive
information processing and estimation algorithms based
on Bayes' rule, such as Kalman Filters, Particle Filters
(Sequential Monte methods), etc.
The OROCOS applications are composed of
software components, which form an application’s
specific network. When using OROCOS, engineers can
choose to use predefined components, or build their
own components, using the OROCOS Real-Time Figure 2. OROCOS Real-Time Toolkit layers
Toolkit. Components work together, cooperatively. For Considering an OROCOS component is built upon
example, the application template for motion control Real-Time Toolkit (RTT) library, it allows designers to
contains components for path planning, position control, build their components which are configurable using
hardware access and data reporting. The components are XML files, accessible over a network and listen to a
chosen as such that their interfaces are compatible. scripting interface, which allows components to be
A single component may be well capable of controlled using text commands. OROCOS Device
controlling a whole machine, or is just a small part in a Interface (DI) defines how to interact with analog and
whole network of components, for example an digital I/O and encoders. A component which accesses
interpolator or kinematic component. The components I/O devices can use the OROCOS DI. Components can
are built with the Real-Time Toolkit and optionally use make use of external libraries as well.
of any other library (like a vision or kinematics toolkit). OROCOS components which use only the Real-
Most users will interface components through their Time Toolkit are portable over different processor
(XML) properties or command/method interface in architectures and Operating Systems (OS). OROCOS
order to configure their applications. Besides defining has an internal OS abstraction which allows the
the above component communication mechanisms, components to run on any supported architecture. When
OROCOS allows the Component or Application Builder some component uses an external library portability
to write hierarchical state machines which use these depends on these libraries..
primitives. This is OROCOS way of defining
application specific logic. 2.2 OROCOS COMPONENT INTERFACE

2.1 OROCOS REAL-TIME TOOLKIT The system is designed as a modular solution that
consists of components. Components are basic units
The Real-Time Toolkit is referred to as middleware which executes one or more action with a specific
because it lies between the application and the operating activity. They are created using RTT OROCOS libraries.
system, as seen in Figure 1. It allows setup, distribution In this way, OROCOS provides an interface for
and the building of real-time components and also takes components design. Components can also use the native
care of real-time communication and execution of libraries of the operating system. There are four policies
software components [4]. for the control of component activities:
NonPeriodicActivity, PeriodicActivity, Sequential-
Activity and SlaveActivity [2].
Each component inherits a public interface from its
base class (TaskContext), which defines primitives for
component interactions: Events, Methods, Commands,
Properties and Data Port, as seen in Figure 3.
In the development of the system presented in this
paper basic components of OROCOS OCL library are
used: TaskBrowser, DeploymentComponent and
ReportingComponent.
Figure 1. OROCOS Real-Time Toolkit as middleware
The TaskBrowser is a component used to interact
The Real-Time Toolkit is structured in layers on the with other components. Each OROCOS component
top of operating system and the I/O devices, as shown in inherits a standard interface through the TaskContext
Figure 2. base class, which is used by the TaskBrowser to interact.
It works like a text console, receiving command lines
and executing them.

FME Transactions VOL. xx, No x, 200x ▪ 3


connecting the components with their peers and their
Data Ports. With all connections done, the Properties of
each component, as well as the component activity are
updated from that file.
The ReportingComponent is used to monitor and
capture data exchanged by other components. This is
performed by connecting as a peer of the components to
be monitored and attaching to the specified Data Ports.

3. CONTROL SYSTEM ARCHITECTURE

Components that are designed by the developer make


the basic architecture of the system. This architecture is
based on the components model for different
independent functional blocks of the system. Each
component model can be instantiated in a component by
Figure 3. OROCOS component interface using the specific parameters of a given robot. The basic
The DeploymentComponent is a component used to block model of the system is given in Figure 4 [5-12].
load and configure other components from descriptions
in XML files. The system configuration is performed by
Figure 4. Block model of the system architecture

The Sampler is the component that generates the these algorithms, so this component can be included
sampling rate of the control loop and synchronizes the into system that is designed on OROCOS platform.
other components. It generates an Event which is The Controller component model abstracts the
received by the other components, automatically system controller. Every 1 ms this component sends
triggering a control cycle. The Sampler is configured in reference velocity values that have to be reached. It
the XML file to generate periodic Event on every 1 ms. writes velocities into its Data Port OutputVelocity.
The Interpolator component is a trajectory generator. When the Sensor component writes position values
It calculates the reference position values that have to be from the sensor to SensorPosition Data Port (on every 1
sent to the Controller component. Every 5 ms new ms) it triggers a call to the Controller’s virtual function
values are written in Data Port DesiredPosition. The which should compute the control signal and write it to
position trajectory generated by the Interpolator is the OutputVelocity Data Port. That means that the
implemented in such a way that gives trapezoidal Controller has five changes to drive the Actuator
velocity profile. It is one of the most important component to the position sent by the Interpolator.
component in the system. Many OROCOS control In this project the nAxesControllerPos component
systems use nAxisGeneratorPos component from the from the OROCOS OCL library is used. It uses a
OCL library as a trajectory generator. The position feedback law to calculate the velocity output
nAxisGeneratorPos calculates references using from measured and desired positions.
OROCOS kinematics and dynamics libraries. The Sensor component model abstracts the sensors
In the development of our new system OROCOS of the system. It has a Data Port where it writes the
KDL library is not used. The Interpolator component values which are read from the sensors. This Data Port
implements the algorithms developed at the Lola is represented by a vector which size depends on the
Institute [7]. The interface of this component to the rest number of joints of the robot.
of the system required a change in the original form of The Actuator component model abstracts the system
actuator. Similar
to the Sensor
component
model it has a
virtual member
function which
is called in
response to an
Event from the
Sampler. It has a
read-only port
where the
component can
read values sent
by the Controller
component.
Those values

4 ▪ VOL. xx, No x, 200x FME Transactions


should be applied to the robot.
The above models are the basic components of the [1] Milićević, M., Vidaković, J., Dimić, Z., Trgovčević,
control system. In addition to these system include more S. (2010), Modern open architecture control
models. One of them is the Joint component model. systems for machine tools and robots control, 36th
This model represents a component that communicates JUPITER conference, 32th symposium NU-Roboti-
with the hardware of joint of robot and the number of FTS, Proceedings, ISBN 978-86-7083-696-9,
components that are derived from this model depends of Faculty of Mechanical Engineering University of
the number of joints. Each of them is associated with Belgrade, pp. 4.41-4.46
components Sensor and Actuator for which Data Ports
[2] OROCOS - Open Robot Control Software web site
sends signals of all robot's axes in the vector form, and
- http://www.orocos.org
because of that it is necessary to create components for
multiplexing the signals from the N Joints, and similar, [3] Xenomai: Real-Time Framework for Linux web
for demultiplexing the vector output, so the components site - http://www.xenomai.org
can be connected to each other. [4] Katholieke Universiteit Leuven, Department of
Mechanical Engineering web site -
4. DISTRIBUTION OF THE COMPONENTS http://people.mech.kuleuven.be/~orocos/
[5] Živanović, S., Glavonjić, M., Dimić, Z. (2009),
As the presented system is designed as modular solution Methodology for Configuring Desktop 3-axis
and built from components, they can be distributed to Parallel Kinematic Machine, FME Transactions,
different hardware platforms with the same operating ISSN 1451-2092, Vol. 37, No. 3, pp. 107-115
system and to communicate with each other over the
[6] Milićević, M., Kaplarević, V., Dimić, Z., Kvrgić,
network. Components are linked using CORBA
V., Cvijanović, V. (2011), Development of new
deployer application. Connecting data flow ports of
control system for robots and multi-axis machining
components is done by defining connections. When
systems, 4th International Conference on
components are distributed using the CORBA
Manufacturing Engineering ICMEN, Proceedings,
deployment component, it is necessary to declare a
ISBN 978-960-98780-4-3, pp. 451-457
proxy component in one of the XML files and connect
to a port of that proxy. It is necessary to setup a specific [7] Milićević, M., Kaplarević, V., Dimić, Z.,
connection in one XML file, the other XML files do not Cvijanović, V., Bućan, M. (2011), Development of
need to repeat the same information. distributed control system for robots control based
on real-time Linux platform, 10th Anniversary
5. CONCLUSION International Conference on Accomplishments in
Electrical and Mechanical Engineering an
The goal of a new Lola Institute’s control system Information Technology DEMI, ISBN 978-99938-
development is to provide all necessary functionality for 39-36-1, pp. 813-818
robots, machine tools and similar devices control in a [8] Kvrgić, V. (1998), Development of intelligent
more efficient way. Also, the idea is to create modular systems for industrial robots control and
solution so that the different functionality could be programming, PhD thesis, Faculty of Mechanical
included or excluded in accordance with the needs of Engineering University of Belgrade
applications without changing the structure of the [9] Pritschow, G., Altintas, Y., Jovane, F., Koren, Y.,
system. This allows faster and easier possible system Mitsuishi, M., Takata, S., et al. (2001), Open
upgrades. The system can be distributed to different Controller Architecture - Past, Present and Future,
hardware platforms. During its development modern Annals of the CIRP, ISSN 0007-8509, Vol. 50, No.
methods and open source packages are used which 2, pp. 463-470
make development easier and less expensive.
[10] Brogardh, T. (2007), Present and future robot
control development-An industrial perspective,
ACKNOWLEDGMENT
Annual Reviews in Control, ISSN 1367-5788, Vol.
31, No. 1, pp. 69-79
This work was created within the research project
“Development of the devices for pilots training and [11] Brecher, C., Verl, A., Lechler, A., & Servos, M.
dynamic flight simulation of modern combat aircraft: 3 (2010), Open control systems: state of the art,
DoF centrifuge and 4 DoF spatial disorientation trainer” Production Engineering, ISSN 0944-6524, Vol. 4,
that is supported by the Ministry of Science and No. 2-3, pp. 247-254
Technological Development, Republic of Serbia. [12] Pavlović, M., Kvrgić, V., Velašević, D. (1994), L-
IRL: High Level Programming Language for
REFERENCES Robots, In Proc of the European Robotics and
Intelligent Systems Conference, Malaga, Spain

FME Transactions VOL. xx, No x, 200x ▪ 5

You might also like