A Windows PC based robot controller An open architecture M.. **Moveit automation, Avenue du château, 31, CH-1008, Prilly Mohamed.Bouri@epfl.ch, Reymond.Clavel@epfl.ch KEYWORDS PC based
Trang 1A Windows PC based robot controller
An open architecture
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 a PC based architecture 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 open controller 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 an open 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 Robot controller components
2 Needs for an open controller
A robot is a poly-articulated structure with motors and sensors A robot 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 a robot controller The objective
Trang 2is to synthesize a robot controller 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 robot controller architecture (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®: an open 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 an open 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 windows robot 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 windows robot control integration
Trang 3FlexCom® 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 a robot 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
Trang 4Figure 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 PC based
controller Each servo drive controller embeds an internal
velocity control loop (Figure 11)
Figure 10, Alpha5, 5 dof parallel
robot
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
Trang 5Actually, 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 Windows based PC [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
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 5th 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 a robot 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 based PC 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
Trang 6The 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 robot controller 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 PC based 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