Professional Documents
Culture Documents
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.
© 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.
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