The system for control and monitoring of robot motions is based on the open architecture concept. The main design philosophy is implemented on a two distributed PCs using CORBA:
- User PC (U-PC);
- System PC (S-PC).
CORBA is an acronym for Common Object Request Broker Architecture, defined by the Object Management Group (OMG). It is a vendor-independent specification that has been implemented to create a rich and robust framework that successfully operates across heterogeneous computing platforms. The main aim is to bridge the gap between programs written in different programming languages, executed on different computers with different operating systems which are connected using different network protocols.
The question arises. Why distributed architecture is chosen? In a distributed system, demanding tasks are run on different platforms, so they do not have to compete for one processor time. Considering robot controllers can be very complex and demanding systems that have to deal in real-time with a number of tasks, distributed approach comes by inertia. On the other hand, distributed architecture also offers many benefits, such as openness, dynamical extensibility, separated memory resources, physical distance between computers etc. This last benefit is of great importance, because it enables control and monitoring of robot motions from the remote PC. That way, the U-PC can be located outside the laboratory in which robot is placed.
Both PC architectures are based on the real-time Linux platform, where OROCOS (Open RObot COntrol Software) is set. OROCOS is a project started in 2001, with the aim to develop a general-purpose, free software and modular framework for robot and machine control. OROCOS provides the infrastructure and functionalities to build real-time robotics applications in C++. Qt and OpenGL are additionally installed on the U-PC.
The control architecture used for development of Lola controllers can be configured statically or dynamically during two stages:
- Off-line architecture configuration stage (off-line ACS).
- On-line architecture reconfiguration stage (on-line ARS).
Off-line architecture configuration stage: Off-line ACS
At the beginning of the off-line ACS, the architecture requirements are defined for a particular multi-axis system. During the off-line ACS, the system integrator can configure the S-PC control system architecture by adding or modifying OROCOS components. For example, these components can be responsible for servo loop or for generating robot path. Real-time state machine or program for calibration can be modified as well. On the other hand, new OROCOS components can be added. At this stage, more than one configuration can be defined and saved in an XML file. Each defined configuration in the XML file consists of instructions that tell which components need to be deactivated and which need to be activated. After that, the U-PC is used.
The U-PC operates at the off-line ACS and at the on-line ARS as well. At the beginning of the off-line ACS, a robot which will be controlled is chosen. Then the application programmer writes a program that includes instruction written in L-IRL language, in order to get appropriate motion parameters needed for control of industrial robots or devices for pilots training.
Considering the application from the U-PC calculates kinematic chains of the selected multi-axis system, this PC also provides the following possibilities. According to the written L-IRL program, the U-PC can analyze whether robot will stay in its working space or whether axes will exceed the limits or not. The U-PC allows displaying of the planned trajectory of the end-effector and robot joints and diagrams of their speeds and accelerations. 3D graphical simulation of robot motions can be also seen. At the end, the object code is generated, P or XML code, depending on the selected one.
The input of the L-IRL compiler is a program written in L-IRL. In the process of compilation, if the program contains an error, the compiler will give an appropriate notification. After success compilation, the compiler generates tables with angles for every axis of industrial robot, human centrifuge or spatial disorientation trainer with 5 ms resolution. The simulation arises as the result of reading those values in 20 ms time intervals and setting them in the virtual model. The proposed solution gives the possibility of testing, modification and improvement of developed commands and algorithms without engaging of the real machine.
On-line architecture reconfiguration stage: On-line ARS
If more than one configuration is defined during the off-line ACS, the user chooses one particular configuration at the beginning of the on-line ARS. Then, during the on-line ARS the architecture can be dynamically reconfigured by selecting another configuration from the XML file. Selection of the desired architecture is performed by the user command from the Linux terminal. This change is implemented in the Reconfig state of the supervisory finite state machine (S-FSM) where the appropriate XML file is read. Based on the instructions from this file undesired components are deactivated, while desired ones are activated.
When the on-line ARS is entered, all components operate in real-time. The reference architecture is shown on figure. In this case, 6-axis robot manipulator Lola 50 is controlled and its virtual model is used. The real-time control logic is implemented by using one S-FSM. The control system consists of different modules that are previously constructed and verified independently of the other modules at the off-line ACS.
Distributed control architecture during the on-line ARS
During the on-line stage, the S-PC provides loading of chosen configuration and execution of the object code generated on the U-PC at the off-line ACS, control of a robot, change of configuration requested by the user command from the Linux terminal and sending the robot joint positions to the U-PC using CORBA.
The U-PC provides an interactive user interface. User can personalize user interface by including desired parameters he would like to monitor. For instance, these parameters could be positions of robot joints or the end-effector, 3D monitoring of robot motions and so on. The U-PC is implemented in an integrated environment using:
- Qt is used to create GUI that includes display of current positions of robot joints or the end-effector, 3D monitoring of robot motions and appropriate control buttons;
- OpenGL libraries are used for drawing and linking of elementary primitives such as box, cylinder or sphere and for translation and rotation of robot parts in order to implement a 3D virtual model of a real robot;
- OROCOS libraries are included to handle commands sent by the S-PC.