Designing the embedded software within a robot would take considerable amounts of time for every robot designer. This requires skills in electronics, embedded programming, and mechanical engineering. However, the main objective of the operating system in robotics is to avoid repeated inventions and provide standard functionalities to perform hardware abstraction.
Listed below are the key functions of robot operating systems:
- They control the hardware using writing drivers
- They manage functions such as data merging, parallelism, and concurrency in robotic systems
- They offer abstract reasoning algorithms with the help of artificial intelligence
- They manage memory and other processes of the system.
Image Credit: Andrea Danti/Shutterstock.com
Several existing robotic frameworks developed for a specific function. In 2006, Scott Hassan developed the Robot Operating System (ROS), the general-purpose system that provides high-level functionalities such as centralized database, asynchronous and synchronous calls, etc in addition to standard operating system services. For this reason, the ROS has been widely used as a full operating system for service robotics.
Features of ROS
The key features of ROS are summarized as follows:
- Tools-based technology – Unlike other operating systems that provide a monolithic runtime environment, the ROS adopts a microkernel design that employs a large number of small tools for the operation of many ROS components.
- Multi-language technology – ROS can be programmed in different languages and operated at the messaging layer. In this operating system, C++ classes are either re-wrapped or written to generate messages.
- Free and open-source – ROS transfers data between modules with the help of inter-process communications, and hence modules need not be connected within a single process.
- Peer to Peer Communication – This architecture when combined with a lookup system and a buffering system allows the components to communicate with each other, either synchronously or asynchronously.
- Thin arrangement – ROS contains drivers and algorithms in standalone executables thereby ensuring maximum reusability and facilitating unit testing.
A typical robotic operating system works based on the principle that a large number of executables are allowed to run simultaneously in order to exchange data synchronously or asynchronously. It has to query the robotic sensors at a set frequency, retrieve the data, merge it, and pass it to the processing algorithms. The entire process is carried out continuously and in parallel.
Based on these concepts, the ROS is operated by addressing an event with the help of simple basic notions. A node in ROS is an executable, which can be a processing or monitoring algorithm, motor, or sensor. Each node declares itself to the Master, which is a service dedicated to enabling nodes to find each other and exchange data. The data are exchanged asynchronously using a topic and synchronously by means of a service. Finally, the message data are stored and operated in bags. The data saved in bag files can be displayed in graphical form using an rxbag tool.
ROS has been used in industrial robotics to generate collision-free robot paths, identify obstacles, and avoid singularity in custom inverse kinematics and path planning. It is also used in large autonomous vehicles used for commercial and military applications.
Sources and Further Reading