A Robot can be seen as a mechanical structure that is actuated using motors, and it can sense the environment using sensors. The robotics software development covers a great spectrum from the low-level layer that exists in the microcontrollers using control function implemented in a real-time operating system (RTOS) up to the high-level layer where more sophisticated behaviours can be developed.
In the upper level, we use the Robot Operating System (ROS) as middleware, which is the most popular robotics software library that is used in research and products development.
ROS is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behaviours. Few of the advantages of using ROS are the following: