ROS: A Brief Introduction

Salavikha E
Developer Community SASTRA
6 min readMay 3, 2021

The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it’s all open source.

https://www.ros.org/

Source: https://www.open-electronics.org/

Speculating from the name itself, is ROS an operating system for Robots? Not exactly. Driving out the fallacies apart, ROS is actually categorized as a Meta Operating system.

What is a Meta Operating System?

Meta Operating System runs alongside the traditional operating system. It works in close proximity with the OS but does not provide all the functions for it to be categorized as an Operating System. While a conventional operating system is an interface between the computer hardware and the end-user, ROS is a middleware.

Source: https://serverhub.com/

ROS is not one among the Operating systems such as Windows, Linux, or Mac and thus is a middleware architecture for distributed inter-machine communication and configuration.

Other Common Fallacies

Let us clear some misconceptions of what ROS is not!

  1. First of all, ROS is not a programming language. Usually, ROS programs are written in C++ and Python.
  2. ROS is not just a library, it contains libraries and even includes command-line tools, graphical tools, central server, etc.
  3. ROS is not a development environment. One can use ROS from IDE or even from a text editor and command line.

History of ROS

ROS is the result of the open-ended collaboration of many people from the robotics community. Initial efforts were taken in the mid-2000s at Stanford Univerisity. While there were similar frameworks being developed, in 2007, William Garage made the push to develop ROS and even created well-tested implementations. The first distribution of ROS, ROS 0.4, was released in the year 2009. The naming of the upcoming distributions was done after the turtle types. Interesting isn’t it? Let’s take a look at some of the versions released:

In 2011, the most famous robot for ROS developers, the TurtleBot Robot was launched. This became a big hit and the improvised versions of this bot are used even today.

Source: https://wiki.ros.org/

But then in 2014, Willow Garage decided to shut down the company. This was a major reason that led to the creation of the Open Source Robotics Foundation(OSRF) to take charge of ROS Development. Under the new legal structure of the OSRF, ROS continued to develop and release new distributions, some of which are:

Evolution of ROS (Source: Willow Garage)

In 2017, the Open Source Robotics Foundation changed its name to Open Robotics and they have been releasing newer versions like ROS 2.0 (based on Python 3 and Python 2). Now, ROS 2.0 has reached its fourth distribution and the ROS community is continually striving to improve further.

Components of ROS: An Overview

ROS consists of libraries and tools to support various programming languages, hardware, and programs. We will just look into some of the elemental features to comprehend the basics of ROS.

ROS possesses basic features like message passing interfaces which facilitate inter-process communication including aspects for recording and playback of messages, sharing configuration information, and modifying task settings.

ROS also provides Simulation tools, like Gazebo, for the three-dimensional visualization of any described robot. These tools can control the robot in a virtual space.

Source: Google

It has Software Development tools to introspect the actions, launched nodes, and other services used by the bot. The description format of a robot in ROS is called the URDF (Unified Robot Description Format), which describes the robot’s visual appearance and physical properties. ROS packages can decipher problems like Building and Navigating a Map, estimating pose, and contain ROS nodes. ROS is not just confined to these, it has much more ample features to facilitate user compatibility.

Why ROS?

  • Reusability: A user can develop his own feature and download the corresponding package for the remaining functions. At the same time, they can share the program they developed so that others can reuse it. It is the ROS’s message passing interface that has devised standards for the robot software’s interoperability.
  • Open Source: It is open source and the community is widespread, making it easy for ROS to continue evolving and improve in the future. You can even have access to the source code and other features! ROS provides various tools and software that are commonly used, and it allows users to contribute, which ultimately reduces the development and maintenance time.
  • Support for Development Tools: As mentioned earlier, ROS provides debugging tools, 2D & 3D visualization tools like Rviz, and simulators like Gazebo. One of the most important characteristics of ROS is that it provides software tools necessary for robot development, which maximizes the convenience of development in all spheres.
Source: https://github.com/ros-visualization/rviz
  • Rapid Testing: Development softwares tend to be time-consuming and error-prone and physical robots may not always be available. Worry not, ROS to the rescue! It is well designed to handle all these. ROS systems separate the low-level direct control of the hardware and high-level processing and decision making into separate programs. Because of this separation, we can temporarily replace those low-level programs with a simulator, to test the behaviour of the high-level part of the system. ROS also provides a simple way to record and playback sensor data and other kinds of messages and places them in bags.

There are so many advantages of using ROS. Some may find it difficult to get used to the catkin workspace and the environment. But, ROS is a mature open source project and one needs to master it to unleash its true potential. It is not the only platform that offers these capabilities. What is unique about ROS is the level of widespread support across the robotics community. The community is progressing to a state where users come together and think of what a robot software should entail for the advancement of robotics and collaborate in order to enhance the standards. ROS is for everyone who wants to dive deep into the ocean of Robotics. Join the ROS community to learn more and give back the same!!

--

--