What is ROS (Robot Operating System)?
Technical Introduction to ROS
ROS (Robot Operating System) is an open source software development environment for robotics. Its development is today led by Open Robotics. ROS is a standardized meta-operating system that provides different functionalities for robotics:
- the abstraction of the « hardware » layer,
- control of low-level devices,
- Simplified implementation of commonly used functionalities,
- the transmission of messages between processes,
- management of packages installed under ROS,
At INNOWTECH we use the ROS environment for robotic systems requiring mini-computers to perform tasks too complex for small microcontrollers (video compression, image processing…). It will thus be used on our sensor robots.
Its simplicity makes it possible to quickly develop technological bricks by standardizing basic tasks through the use of Nodes.
What is a node?
A Node is a small piece of software executing a task (exemple: driving engines). Nodes can be programmed in C++ or Python and are available via ROS packages that include various functions and free libraries. The communication between these different nodes is done using a « Publish/Suscribe » protocol.
The nodes communicate with each other thanks to the « ROS Master » who is the conductor of the system. As shown in figure (1), the master routine (« ROS Master ») manages the transmission of messages between the nodes thanks to topics whose role is to identify the links between the nodes publishers and the nodes subscribers.
ROS thus allows to quickly integrate standard bricks for generic functions and then to develop our own packages for specific functions of our robot sensors.