getting_started:overview
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
getting_started:overview [2015/09/23 15:48] – graf | getting_started:overview [2021/04/01 14:04] (current) – [Hardware Abstraction Layer (HAL)] jonasfrei | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Get An Overview of EEROS ====== | ====== Get An Overview of EEROS ====== | ||
- | |||
- | Learn about various concepts, subsystems and a technical overview of EEROS, the Easy, Elegent, Reliable, Open and Safe Real-Time Robotics Framework. | ||
- | |||
- | ===== Get An Overview of EEROS ===== | ||
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. | 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. | ||
- | ==== Concept ==== | + | ===== Concept ===== |
The EEROS architecture consists of three distinct yet closely coupled subsystems: | The EEROS architecture consists of three distinct yet closely coupled subsystems: | ||
Line 23: | Line 18: | ||
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 " | 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 " | ||
- | {{ eeros-architecture.png? | + | [{{ architecture.png? |
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. | 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. | ||
- | ==== Subsystems ==== | + | ===== Subsystems |
- | === Control System === | + | ==== Control 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, | 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, | ||
- | Learn more about the control system | + | [[: |
- | {{ : | + | [{{ : |
- | === Safety System === | + | ==== Safety System |
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 ' | 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 ' | ||
Line 44: | Line 39: | ||
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. | 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. | ||
- | Learn more about the safety system | + | [[: |
- | === Sequencer === | + | ==== Sequencer |
Since robots have to execute a series of user-defined tasks, an additional component is needed. It can also be non-real-time, | Since robots have to execute a series of user-defined tasks, an additional component is needed. It can also be non-real-time, | ||
Line 52: | Line 47: | ||
The robot' | The robot' | ||
- | Learn more about the sequencer | + | [[: |
- | + | ||
- | === Hardware Abstraction Layer (HAL)=== | + | |
- | + | ||
- | 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, | + | |
- | + | ||
- | <box 100% green> | + | |
- | The safety system and the HAL are strongly coupled together. Make sure that all inputs and outputs in the HAL are handled by the safety system. | + | |
- | </ | + | |
- | == Getting the HAL == | + | ==== Hardware Abstraction Layer (HAL)==== |
- | <code c> | + | |
- | HAL& hal = HAL:: | + | |
- | </ | + | |
- | == Inputs and Outputs == | + | The HAL provides an interface between the program |
- | All input and output should | + | |
- | * Define inputs and outputs: | + | [[eeros_architecture:hal: |
- | To access | + | |
- | <code c> | + | |
- | ComediDevice* comedi0 = new ComediDevice("/ | + | |
- | ComediDevice* comedi1 = new ComediDevice("/ | + | |
- | + | ||
- | hal.addSystemInput(new ComediFqd(" | + | |
- | hal.addSystemOutput(new ComediDigOut(" | + | |
- | hal.addSystemOutput(new ComediDigOut(" | + | |
- | hal.addSystemOutput(new ComediDigOut(" | + | |
- | </ | + | |
- | * **Note:** The class // | ||
Line 88: | Line 60: | ||
To start working with EEROS, take a look at the tutorials: | To start working with EEROS, take a look at the tutorials: | ||
- | [[getting_started: | + | [[getting_started: |
getting_started/overview.1443016098.txt.gz · Last modified: 2015/09/23 15:48 by graf