Technical introduction to ROS
ROS (Robot Operating System) is an open source software development environment for robotics. Its development is currently led by the Open Robotics. ROS is a standardised meta operating system that provides various functionalities for robotics:
- abstraction of the hardware layer,
- control of low-level peripherals,
- simplified implementation of commonly used features,
- inter-process messaging,
- management of packages installed under ROS.
At INNOWTECH we use the ROS environment for robotic systems that require mini-computers to perform tasks that are too complex for small microcontrollers (video compression, image processing…). It will thus be used on our sensor robots.
Its simplicity allows the rapid development of technological bricks through the standardisation of basic tasks thanks to the use of Nodes.
What is a node?
A Node is a small piece of software that performs a task (e.g. driving motors). Nodes can be programmed in C++ or Python and are available via ROS packages containing 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”, which is the system’s orchestra conductor. As illustrated in figure (1), the 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 therefore allows us to quickly integrate standard bricks for generic functions and then develop our own packages for specific functions of our robot-sensors.