Robot Operating System or better known as ROS is a fully open-source operating system for robots. It is more of a meta operating system that helps to abstract the hardware from the software. The main idea behind it is to avoid continuously reinventing the wheel and provide standardized functionalities, so you do not waste time on hardware abstraction from very scratch because someone else has done it before. It provides an easy entry for hobbyists and non-professionals into the field of robot programming.
ROS was developed in 2006 by Willow Garage, which is a Californian company. The aim was to build a framework that can be used for general purposes, and since then, it is maintained and developed by them. ROS has many versions or distributions (known as distros), which come out with every new Ubuntu OS version. The latest one is ROS Noetic Ninjemys which is targeted for Ubuntu 20.04 LTS release.
Why should I choose Robot Operating System?
There are many alternatives like MRPT, CARMEN, LCM, Player, Microsoft RDS. Still, they fail in terms of design downfalls such as language support restriction, unoptimized communication, or lack of hardware support for various devices, which is again a considerable concern. ROS makes software developers to create programs without looking into hardware design or how the hardware works. It provides a way to connect a network of processes with a central or master hub. Apart from that, ROS supports many programming languages, which makes it much more flexible than other frameworks.
ROS also makes it easy for developers to integrate nodes that have already been developed by someone else. To give an example, consider you’ve built a robotic arm that includes a motion node and a control node. Suppose someone else made a vision-based object tracking car that consists of a vision node and motion node. If you wish, you can include the car’s vision node into your robotic arm, and there you go, you have a robotic arm with object detection capabilities. It is as simple as that.
ROS is slowly aiming to become an industry standard for robotics middleware. According to ABI Research, “nearly 55% of total commercial robots shipped in 2024, over 915,000 units, will have at least one ROS package installed,” creating a sizeable installed base of ROS-enabled robots. “The success of ROS is due to its wide range of interoperability and compatibility with other open-source projects. ROS 1.0 leverages Orocos for real-time communication and OpenCV for machine vision models,” said Lian Jye Su, Principal Analyst of ABI Research.
Full-fledged physical simulation capabilities
Robot Operating System has many useful tools which help the user to get an idea about how the system will work in the real world. One of them is RViz, which is a prevalent 3-D visualization tool. It takes the software parameters as input and visualizes them based on the type of input. This helps us to see the environment from the perspective of the robot.
After the visualization works well, we can simulate it in a 3-D world with all the physical parameters. This simulation is done with the help of Gazebo, which is a 3-D simulator and supports ROS. By rapidly testing our algorithms and designs in these simulations, we can save a lot of time and money.
Hardware products that support ROS
Robot Operating System needs a Linux-based environment to run on. The type of processor and memory requirement entirely depends on your project. In general, the most commonly used computer for small ROS projects is the Raspberry Pi. This is due to its support for Linux kernels and the low cost of the boards. Recently, the Raspberry Pi Pico featuring RP2040 came out, which also supports micro-ROS on it. Suppose your project requires heavy computations like SLAM-based autonomous navigation or for computer vision applications. In that case, you should go for powerful boards such as the Nvidia Jetson TX2 or Intel NUC.
As for the sensors, ROS has libraries that make it compatible with most of the sensors out there. Many products come with support for ROS, such as the RPLIDAR A1M8 360 degree laser scanner, Intel Realsense Depth cameras, and many more.
If you’re an absolute beginner who wants to learn ROS, then the ROS wiki page is the best place for you to start. It provides well-documented libraries as well as easy-to-follow tutorials for beginners.