R.O.S stands for Robot Operating System. It is not a real operating system. ROS is called a meta operating system, it is having some features of a real operating system. It is a Free & Open Source Robotics Software framework mainly for programming complex robots.
ROS was originally developed in 2007 by the Stanford Artificial Intelligence Laboratory. As of 2008, development continues primarily at Willow Garage. From 2013, ROS development and maintenance are doing by Open Robotics.
It is a great software tool for quickly prototyping a robot software, without the need of writing everything from scratch. We can even think of using ROS on the real robot products but it may require extra refining of the prototype code and should keep code quality standards.
Here is the ROS Equation given on the ROS website.
ROS consists of four main parts. The ‘Plumbing‘ is an important part of the ROS.
The ‘Plumbing‘ can be also called communication middleware, which helps two or more programs to communicate with each other. The communication middleware provides APIs to us to send & receive various types of data between multiple programs running on our computer.
In short, the Plumbing part in ROS creates a network of programs/nodes which are communicating with each other by sending & receiving different kinds of data. We can call this as a ROS Computation graph.
Visualization of a typical ROS Computation Graph
When we work on a robot, we may have to write many programs to handle sensor data and control the motors of the robot. The ROS plumbing helps us to create a computation graph to manage robot software.
The Tools present in ROS helps to debug and monitor various kinds of data that are sending & receiving by ROS nodes. There are Graphical tools and command-line tools present in ROS.
In a robot, there are various sensors such as a camera, Laser scanner, etc. Using ROS tools, we can visualize various kinds of sensor data and debug it. Examples of ROS tools are Rviz and Rqt.
Using the ‘plumbing‘ feature in ROS, many robot software blocks are built for doing various capabilities in robots such as navigation, perception, manipulation, etc. If someone wants to implement these capabilities in their robot, they can simply re-use the software from ROS and save time.
The ROS open-source robotics framework is powered by thousands of developers across the globe who are contributing and maintaining thousands of ROS packages, tutorials, Q&A, etc. There is a vibrant community of developers and users around the globe that makes ROS as a unique framework in Robotics.
ROS is one of the software frameworks used in most of the universities for robotics research. Other than academic research, ROS is also used in robotics companies to prototype their software. ROS is also used by hobbyists to create different robot applications.
If you are a roboticist or aspiring roboticist, ROS will be a great tool to program robots. Knowing ROS doesn’t mean that you know all about robotics, but instead, it will be a useful tool to prototype your robotics algorithms.
There are great opportunities for ROS programmers in academic research as well as corporate, so learning ROS will be a great addition to your skills to pursue a robotics career.