EEROS is the Easy, Elegant, Reliable, Open and Safe Real-Time Robotics Software Framework. The open source model of EEROS complements its unique architecture, making it universally viable for robots in education and industry. EEROS provides a lightweight layer of software abstraction, allowing code to be reused on multiple platforms and reducing development costs.
Currently, EEROS is in its early stages of development. However, prototype versions of EEROS have been used with great success in a variety of ongoing projects, which can be found on the Applications page.
Currently, EEROS is licensed under the Apache License, Version 2.0, a permissive license which gives you the freedom to use, modify, and redistribute EEROS. The open source nature of EEROS promotes collaboration between its users and its developers.
Anyone can contribute to EEROS, and the source is freely available on GitHub.
EEROS consists of three connected systems, the Control System, Sequencer, and Safety System. These work together to make developing new robotics software quickly while minimizing potentially dangerous bugs. They are also highly modular, making collaboration easier on a new project.
The Control System will run in real-time and offer three basic components: signals, blocks and time domains. A signal represents a succession of varying physical quantities over time as used in signal processing and control. A block can alter signals and can have one or more in- and outputs. Each block belongs to a certain time domain, which determines the execution frequency of its run-method.
The Safety System protects both the overall system and every single component from unwanted behavior and safeguards the developer against programming errors. It is conceived as a series of strictly hierarchical security levels. It monitors critical inputs in every single execution of the safety observer algorithm witch runs with the highest frequency of the control system. In addition, the user can also define safety-critical outputs in the same way. Every safety level defines the state of those outputs.
The Sequencer and accompanying error handling allows users to program a series of user-defined tasks sequences.
For more information, check out the following pages on the EEROS Wiki: