Robots are starting to be used in applications in which traditional industrial robot controls are not suitable. These applications require simple, manageable, reliable and safe control systems, which are more open, flexible and expandable than those of current industrial robots. EEROS implements industry-ready open source robotics software, which offers the flexibility of a universal and open platform, while remaining safe and easy to use.
The EEROS architecture consists of three distinct yet closely coupled subsystems:
and a HAL (Hardware Abstraction Layer).
The control system runs in real time, and consists of blocks which contain algorithms working in parallel. Blocks are related by signals.
The sequencer does not run in parallel; rather, it works sequentially, since robotic movements must be carried out strictly in succession. However, there are some exceptions. For example, when an unforeseen event occurs, the current movement must be stopped.
The safety system is designed as a series of hierarchical security levels. It monitors critical inputs and outputs and ensures, for example, that a fall back to the safety level “Emergency” leads immediately and reliably to stopping the robot, no matter who or what invoked the emergency event.
It can be easily and clearly seen how the control engineer is supported by the structure of the framework. It reminds him of what needs to be initialized and defined and keeps a clear vision of the overall system.
The robot controller, defined in EEROS as the control system, is the real-time core of the application. In order to guarantee the modular and exchangeable nature of the software system, it is built from predefined blocks, which can alter the signals flowing through the blocks. Nesting and ordering of these blocks creates very clear hierarchical structures. Blocks can be assigned to real- or non-real-time domains. Additionally, all signals in EEROS have a standard set of information, which increases the semantics of this information.
Each system running EEROS contains exactly one safety system. The safety system has a predefined structure. It uses a system of safety levels to determine the 'safety' of the system, and the robots movements (outputs) are dependent on how safe the system currently is.
Each level reads the states from all safety-critical inputs and defines the states of all safety-critical outputs. There are no actions allowed during a transition between two safety levels, since this would be a hidden transition state. The safety system is functional from the very beginning of the development of a new robot control system. This ensures that no dangerous condition can arise even when a system is set up.
Since robots have to execute a series of user-defined tasks, an additional component is needed. It can also be non-real-time, but it has to ensure the sequential execution of the tasks and has to be able to handle any possible exceptions.
The robot's motions are defined as sequence of steps. The sequencer, which is an integral part of the EEROS Framework, has to be assigned one main sequence. Additionally, several subsequences may be defined and added to the sequencer. Each sequence may include many single steps which must run to completion (unless interrupted by the safety system).
The HAL provides an interface between the program and the robot. Any command in the program must pass through the HAL in order to be carried out. Additionally, any inputs from sensors have to use the HAL to interact with the program. In order to make eeros platform independent and runnable on any hardware system, a configuration file is used to describe the physical properties of the inputs and outputs. Such an in- or output could be connected through a plethora of busses such as PCIe, SPI or EtherCAT.
To start working with EEROS, take a look at the tutorials: EEROS Tutorials