AWindowsPCbasedrobotcontroller
An openarchitecture
M. Bouri
*, **
, R. Clavel
*
*
Laboratoire des Systèmes Robotiques,
Ecole Polytechnique Fédérale de Lausanne, CH-1015, Lausanne.
**
Moveit automation,
Avenue du château, 31, CH-1008, Prilly
Mohamed.Bouri@epfl.ch
,
Reymond.Clavel@epfl.ch
KEYWORDS
PC based control, robot control, open architecture, flexible control, real time, Field bus control, fire wire, IEEE
1394, Profibus control, asynchronous communication.
ABSTRACT
Robot motion controllers consist of a very important component in a robotic infrastructure. The flexibility
is more and more needed to allow fastness in development and adaptation from one robot to another.
The laboratory of robotic systems of the Ecole Polytechnique Fédérale de Lausanne (LSRO-EPFL) has
initiated the work presented in this paper to propose aPCbasedarchitecture that is both flexible and open.
This motion controller is industrialized and proposed now as a commercial product (called FlexCom®) by
a Swiss company: Moveit Automation.
This paper will present this architecture, how it can be open for a use with any robot structure even in industry or for
laboratories. We will stress on its safety and flexibility to add more components.
The flexibility of this control has been proven with the different applications that run based on the same control
kernel. With easiness and fastness different field buses have been implemented (Firewire, profibus and now USB).
1 INTRODUCTION
Different industrial controllers exist in the industry. Some of
them are proposed by the huge specification “OPEN”. But
what is open? In most cases, the providers of such controllers
give the possibility to open the graphical user interface (GUI)
and hence the controller is open because you are not blocked
with the GUI provided by this provider. You can have your
proper interface that is oriented to your proper application.
Others like Staübli [1] have done more effort and propose a
control abstraction layer that works on the Staübli controllers
and obviously on Staübli robots. This controller gives the
possibility to change the control parameters. This can be very
helpful in the case you change the operation condition of the
robot: No need to contact Staübli and loss time and money.
This characteristic is interesting. However, there is no way to
change the control algorithm. No way to change the
geometric or the dynamic models.
Actually the principal reason for that is due to the fact the
most of these providers propose the controllers for their own
robot structures.
At the laboratory of robotic systems (LSRO-EPFL) lots of
robots are designed and proposed each year ([2][3][4][5]).
This needs a really opencontroller to be adapted to each
robot with as easiness as possible.
In the first part of this paper we will present the principal
needs for anopen control architecture to control a robot. In
the second step, the developed architecture is presented
within a chosen OS and a development environment.
Finally the security and some case studies are presented.
The easiness of the development and customization is
pointed out.
Figure 1. Robotcontroller components
2 Needs for anopencontroller
A robot is a poly-articulated structure with motors and
sensors. Arobot works in a certain environment and has
its proper workspace. Each robot is defined by dynamics
and geometry. These characteristics are in the center of
interests to synthesize arobot controller. The objective
is to synthesize arobotcontroller that can be adapted without
difficulty to the robot and its application (figure 1 in previous
page). The adaptation must be as simple as possible related to
the degree of customization (Only GUI or sensor parameters,
motor parameters, loads, trajectory dynamics …).
By analysing this basic robotcontrollerarchitecture (Figure
1), one can observe that we can have three levels of control
customisation to have it open:
• Application level
. In this level the operator may
customize the GUI and hence have its own application
oriented GUI.
• Parameter level.
Access to this level of
customization is a minimal need for modifying each of
the parameters of kinematics, control, loads, sensors,…
This can allow operator or developer to modify the
controller without a need to lots of investment of time
and money. This level is available on the most open
controllers (at least through a configuration file).
• Operation level.
The operation level allows the
customization of the principal operation of the control.
We mean,
o Kinematics,
o Robot dynamics,
o Control algorithm
o Trajectory generation.
Accessing to these operations may be very interesting
and means the possibility of modifying the entire
controller. In this case, what it is remaining? Only the
architecture, the protocol and the inter operation
communication mechanisms.
The degree of openness of the robot motion controller
defines its flexibility to be adapted to one robot or another.
3 FlexCom®: anopen Flexible control
To choose a motion controller, three type of hardware
development environment are offered. Let us classify them as
follows:
1. Standalone hardware that is principally DSP or
Microcontroller based hardware,
2. Integrating bus based solution with PCI, Compact PCI
or VME busses.
Actually each type of solution is offered with a kind of
software development tools and environment. One can
choose the proprietary software development available from
the hardware provider or a standard operating system (OS)
available from well known OS companies like VxWorks
from Windriver, QNX, Lynx from LynuxWorks, CE from
Microsoft, and others.
Now that you have the hardware and the software, there are
two types of development methodologies:
1. Cross development, in which the programmer develops
the code on a host and build it for a target than download it to
the target for execution (Figure 3).
2. On target development, where the host and the target
are identical. We gain in the development. However, we must
care because the target must support to run the development
environment.
Figure 2. Classical cross development platform
The presented motion controller FlexCom® has been
developed to respond to the needs of anopen
architecture with a minimum time development. The
FLEXible COMmand FlexCom® for robot motion
control has the aim to be adapted to any type of robots:
serial (cartesian or not), or parallel with as much
easiness as possible.
To design this open controller, the LSRO has chosen to
work on Microsoft Windows because of the availability
of standard development softwares (programming
softwares, CAD/CAM, CFAO …). This also allows
working with standard axis and input/output boards
available for PCI or Compact PCI architectures.
Figure 3. Microsoft windowsrobot control integration
To guarantee the real time capabilities, especially for the
control loop, a real time preemptive extension has been
added to Microsoft Windows (figure 3). This real time
extension works either with Microsoft NT/2000/ XP or
XPe.
FlexCom® (figure 4) is based on:
• two layers: a real time layer(RTL threads) and a non
real time layer (win32 threads),
• a multitasked architecture, with inter communicating
prioritized tasks,
• real time board drivers,
• libraries,
• dynamic link library to communicate between the
two environement (RTL and win32).
Figure 4, Microsoft windowsrobot control integration
FlexCom® has been developed using a standard C/C++
code under Visual C++. Its composition by static libraries
and real time processes allows modifying with no difficulties
a lot of parts of the motion controller.
The GUI communicates with the controller kernel via a real
time channel using a motion server implemented as a DLL
(Dynamically linked library). The use of real time
mechanisms is a unique manner to communicate between
real time and non real time applications. This DLL allows
customizing the application layer and building its own
interface to configure and control the robot. FlexCom® is
provided with two types of GUI :
• FlexWare®, is arobot programming interface and
uses its proper language for motion planning and
input/output steering,
• FlexCncSoft® that uses a GCode machine tool
programming.
Both the interfaces use the same DLL and the same
following configuration and programming tools:
• XConfig to configure the robot and control
parameters as the number of axis, sensor
parameters…
• ScopiX® a graphical debugger to visualize the
motion control performances.
Figure 5, FlexCom® components
The controller kernel is principally composed by:
1. a real time motion server (Supervisor) that receives
orders via the real time channel through the api (DLL),
2. the interpolator (trajectory generation) that
generates the interpolated and synchronized movements,
3. the controller that integrates control configuration
and the control loop,
4. IO manipulation library,
FlexCom® is provided with a Motion Control Development
Kit (Motion CDK) to allow a complete customization of the
robot control software. This motion CDK is presented as a
Visual C++ workspace (Figure 6).
Using this motion CDK one can also customize the Dynamic
model and the control algorithm. The developer has only to
enter the code of the control strategy routine and recompile
the project to generate the executable files.
Figure 6, Motion CDK workspace, Geometric model
customization through a library modification
Figure 7, control algorithm customization
Each user defined controller (Figure 7) accepts up to 5
parameters that can be exploited to define a wide range
of controllers. These parameters are set up via the DLL
or the configuration file. This possibility is very suitable
to develop new robot control algorithms and create
customized working modes. By the use of the user
defined controller the developer may short circuit the
trajectory generator and be free to work as he wants (i.e.
using his own rules and generating his own profiles).
4 FlexCom®: security aspect
FlexCom controller is used with a lot of type of robot
structures even in pick and place operation, fibre
alignment processes (figure 8) and for medical
rehabilitation robots [6] (figure 9)
Figure 8, sigma6, 6dof robot
Figure 9, rehabilitation robot “MotionMaker®” with two of 3
degree of freedom serial robots
To ensure the maximum safety of the mechanical system and
its environment, different tests are carried out upon the
variables of the system. Actually, the controller tests
• the belonging of the position and velocity variables
(measured and desired) to their respective workspaces,
• the validity of control errors with respect to maximum
authorized errors.
In the case of the rehabilitation robot redundant position
sensors are used to check the validity of the measurements
and the consistency of the sensors or their connected cables.
5 Use cases:
FlexCom is a real flexible controller. It can be easily adapted
to different robot structures and different input output layers
(IO). At the LSRO, different IO communications has been
tested: Profibus, FireWire and now USB.
5.1 Profibus with a 5 degree of freedom structure
Figure 10 shows a 5 d.o.f. parallel structure developed at the
LSRO (Laboratory of Robotic Systems) and called Alpha5
[3] [4]. This totally parallel kinematics has 5 rotational
motors and 5 operational outputs (x, y, z and 2 orientations
+/- 90 degrees around the horizontal plan). The servodrives
of the motors are connected using profibus to the PCbased
controller. Each servo drive controller embeds an internal
velocity control loop (Figure 11).
Figure 10, Alpha5, 5 dof parallel
robot
Figure 11, Profibus
based topology
The control is based upon two cascaded loops: the
velocity control loop and the position control loop
(figure 12). The input is the position profile which
provides the velocity feed-forward to send to the drives
which are working in velocity control-mode. The
velocity-control loop is closed in the drive itself. It is
working with 500µs cycle time. This whole velocity
control loop is transparent for the user. The only visible
parts are the control parameters that can be changed via
the GUI. A position loop with a P/ PI motion controller
is cascaded via the profibus
Figure 12, cascaded velocity, position control loop
The advantage provided by FlexCom to support such
kind of bus based solution is shown in the figure 13.
Figure 13, Flexible IO layer customization
Actually, the IO Layer is totally customizable through
function prototypes that are called by the control loop.
The possibility to modify the control loop and the Input
Output Layer make FlexCom very suitable for Robotic and
control research laboratories.
5.2 FireWire (IEEE 1394) integration
In collaboration with a french company “Centralp
Automatismes”, the Firewire bus (IEEE 1394) has been
integrated in the same way to FlexCom (figure 14).
Figure 14, Flexible IO layer customization
In this application, the remote 1394 modules only provides
basic input output functions. Quadrature counter functions to
read the incremental encoders and Analog outputs to steer the
amplifiers. Both, the position loop and security functions are
on the Microsoft WindowsbasedPC [7].
5.3 Stick slip piezzo robot control
The stick slip piezzo actuators [8] [9] need a special
generator to be controlled in position. The LSRO has
developed an RS232 serial controlled interface to steer this
type of actuators [5]. Different robotic structures have been
built using these actuators for micro positioning applications
with up to 50 nm resolution (figure 15).
Figure 15, Stick slip XY table
The figure below shows a 5dof structure with one serial XY
table and a 3 dof tilt plate structure assuring (one translation
in the z axis and 2 orientations). FlexCom was easily adapted
to control such structures by customizing both the
kinematics’ models and the input output layer. The positions
are measured through a standard quadrature counter board
and the control is sent through a real time implementation of
the serial RS232 communication.
Figure 16, Ztilt, 5 dof
stick and slip hybrid robot
Figure 17, PosiFlex Motion controller
for upto 6 stick slip axis
This controller has been easily adapted to different other
applications. As another example, the Figure 18 shows
an Hita STT [10][11] parallel kinematics. This parallel
kinematics is a 4 degree of freedom structure with a 5
th
serial rotational axis developed for tool machining
operations. This application has been tested with the
GCode interpreter FlexCNCSoft and is now in the phase
of calibration.
Figure 18, 5 dof Hita parallel STT (EPFL Prototype)
6 Conclusion
This paper has presented arobot motion controller
FlexCom® that is now commercialized by a swiss
company Moveit Automation (www.moveit-
automation.com). To guarantee the determinism of the
control loop and time critical tasks, FlexCom runs on a
Windows basedPC with a commercial real time
extension. FlexCom is different from other solutions
because it is based on Microsoft Windows and because it
offers a commercial open solution for fast robot motion
control development. FlexCom is open without being
open source.
The paper has shown that FlexCom is accessible for
modification in different ways. First, it allows modifying the
application dependant GUI and different control and
trajectory parameters from a configuration tool or via the
DLL. FlexCom® also provides expert type modification as
the geometrical model customization, user defined control
loop algorithms, robot dynamic model and the input output
layer.
The different tests that have been carried out with different
robots and different hardware show that the presented
solution can be a suitable controller for laboratories and R&D
robot investigations.
Acknowledgements
The author would like to acknowledge all the persons that
help to the elaboration of FlexCom.
Special thanks to Dr. L. Rey designer of the parallel Occam
based robotcontroller at the LSRO from which FlexCom has
been inspired [12].
Bibliography
:
[1] J. M. Bonnet, Staübli, Real time controller
abstraction layer, ISR 2004, Paris.
[2] L. E. Rey, R. Clavel, 1998. A general overview
history of parallel robots. International
Parallelkinematik – Kolloquium. (Zurich, June).
[3] M. Thurneysen, Développement de structures
parallèles 4 et 5 ddl. CTI 5146 intermediate
report, 1998, EPFL Lausanne, Laboratoire de
systèmes robotiques
[4] P. Pham, M. Bouri, M. Thurneysen, R. Clavel,
Profibus PCbased motion control with
application to a new 5 axes parallel kinematics,
ISR 2004, Paris
[6] C. Schmitt, P. Métrailler, A. Al-Khodairy, R.
Brodard, J. Fournier, M. Bouri, R. Clavel, A
Study of a Knee Extension Controlled by a
Closed Loop Functional Electrical Stimulation,
9th Annual Conference of the International FES
Society, 2004. Bournemouth, UK.
[7] M. Bouri, R. Clavel, M. Y. Zerrouki, W. Maeder,
Towards a new Delta robot: an inverted Delta,
ISR 2004, Paris.
[8] J. M. Breguet R. Clavel, Stick and Slip
Actuators: design,control, performances and
applications, International Symposium on
Micromechatronics and Human Science, Japan,
pp. 89-95, November 25-28, 1998, Nagoya.
[9] S. Mazerolle, R. Rabe, S. Fahlbusch, J. Michler,
J M. Breguet, High Precision Robotics System
for Scanning Electron Microscopes,
Microfactory, 4th International Workshop on
Microfactories, October 15-17, 2004, Shanghai,
China.
[10]
M. Thurneysen and others, A new parallel
kinematics for high-speed machine tools Hita
STT. 3rd Chemnitzer Parallelkinematik
Seminar, pages 553-562, Chemnitz, 23-25 Avril
2002.
[11]
M. Thurneysen, Méthode systématique de
conception de cinématiques parallèles, Thesis
sciences EPFL, no 3009 (2004), Faculté STI,
Section de microtechnique.
[12]
L. E. Rey, Environnement pour la conception de
commandes de robots. Phd thesis EPFL, no
1663 (1997), Département de microtechnique.
. standard development softwares (programming
softwares, CAD/CAM, CFAO …). This also allows
working with standard axis and input/output boards
available. Systems) and called Alpha5
[3] [4]. This totally parallel kinematics has 5 rotational
motors and 5 operational outputs (x, y, z and 2 orientations
+ /- 90