You are on page 1of 6

A Windows PC based robot controller An open architecture

M. Bouri*, **, R. Clavel*


Laboratoire des Systmes Robotiques, Ecole Polytechnique Fdrale de Lausanne, CH-1015, Lausanne. ** Moveit automation, Avenue du chteau, 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 Fdrale 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 Stabli [1] have done more effort and propose a control abstraction layer that works on the Stabli controllers and obviously on Stabli 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 Stabli 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

is 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

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 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.

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

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 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 6, Motion CDK workspace, Geometric model customization through a library modification

Figure 7, control algorithm customization

Figure 5, FlexCom components

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)

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 8, sigma6, 6dof robot

Figure 9, rehabilitation robot MotionMaker with two of 3 degree of freedom serial robots

Figure 11, Profibus based topology

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).

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 500s 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 10, Alpha5, 5 dof parallel robot

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 16, Ztilt, 5 dof stick and slip hybrid robot

Figure 17, PosiFlex Motion controller for upto 6 stick slip axis

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).

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
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.

This paper has presented a robot motion controller FlexCom that is now commercialized by a swiss company Moveit Automation (www.moveitautomation.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.

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 robot controller at the LSRO from which FlexCom has been inspired [12]. Bibliography: [1] J. M. Bonnet, Stabli, Real time controller abstraction layer, ISR 2004, Paris. L. E. Rey, R. Clavel, 1998. A general overview history of parallel robots. International Parallelkinematik Kolloquium. (Zurich, June). M. Thurneysen, Dveloppement de structures parallles 4 et 5 ddl. CTI 5146 intermediate report, 1998, EPFL Lausanne, Laboratoire de systmes robotiques 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 C. Schmitt, P. Mtrailler, 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. M. Bouri, R. Clavel, M. Y. Zerrouki, W. Maeder, Towards a new Delta robot: an inverted Delta, ISR 2004, Paris. 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. 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. 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. M. Thurneysen, Mthode systmatique de conception de cinmatiques parallles, Thesis sciences EPFL, no 3009 (2004), Facult STI, Section de microtechnique. L. E. Rey, Environnement pour la conception de commandes de robots. Phd thesis EPFL, no 1663 (1997), Dpartement de microtechnique.

[10]

[11]

[12]

[2]

[3]

[4]

[6]

[7]

[8]

[9]

You might also like