ROS: the operating system for robotics

ROS, Robotics

La robotics is an expanding field. More and more AI and robots replace the work of more people. They are the present and the future, so it is important to train in these types of fields to know how they work and what tools and systems you have at your disposal for your robotics projects. And, in this article, you will see what is ROS and everything you need to know about it.

What is ROS?

robotic engineering

ROS stands for Robot Operating System, or robot operating system. It is a robotics middleware, that is, a collection of frameworks intended to facilitate the development of software for robots. Currently, it is widely used in well-known robots, being one of the best tools available today, totally free, written in C and Python, and under a BSD open source license.

ROS was originally developed in 2007, within the Stanford Artificial Intelligence Laboratory, and under the codename Switchyard. Initially it would be for the STAIR2 robot project. After this, it was decided to open.

A question that many are often asked is, if it is not an operating system, why is it called that? Well, although it is a suite of libraries for development, the truth is that it provides some of the essential functions of an OS, such as an abstraction layer of the hardware so that the developers only worry about the software, control of the different components of the robot at a low level, capacity for management and communication of processes, maintenance of packages, etc.

The library is geared towards UNIX systems, like Linux (in multiple distros, although the best support is for Ubuntu) and macOS, although it also works in other operating systems such as Microsoft Windows.

It is also important to differentiate between the shares from ROS:

  • ros: is the part that acts as the operating system, the base. This is the BSD licensed software part. This includes the main coordination node, data flows (images, stereo, laser, control, actuators, contact, ...), information multiplexing, creation and destruction of nodes, login, etc.
  • ros-pkg: is the suite of packages created by users and that implement functionalities such as planning, perception, simulation, mapping, location, etc. These other components are licensed in a wide variety of licenses.

The tools included in ROS they are:

  • rviz: for simulation and 3D visualization.
  • rosbag: to record and play communication messages.
  • catkin- Build tool, based on CMake.
  • rosbash- Package with tools to extend the functionality of the bash shell.
  • roslaunch: to run ROS nodes locally or remotely.

Project documentation here

ROS applications

robots, ROS students

ROS is a project in constant development, and each time it can be used to more applications within the field of AI and robotics, and each time does its job better:

  • Artificial perception systems.
  • Identification of objects and artificial vision.
  • Facial recognition, gestures, etc.
  • Object tracking.
  • Visual odometry.
  • Understanding of movements.
  • Stereo vision.
  • Robot mobility.
  • Control.
  • Planning.
  • Gripping objects.
  • Coordination.
  • Testing.
  • Etc

Examples of robots using ROS

There are many, and it would be difficult to list them all, since ROS has become almost a "standard" for many of them. But some of the best known are:

  • PR1: personal robot developed by the Ken Salisbury laboratory at Stanford.
  • PR2: personal robot that is being developed by Willow Garage.
  • Baxter:  robot from Rethink Robotics, Inc.
  • Shadow's Robot: a robotic hand from the Shadow Robot company, in collaboration with the Pierre and Marie Curie University of Paris and the Carlos III University of Madrid. Developed within a European framework.
  • HERB: created in CMU within the personal robotics program of the Intel corporation.
  • Aldebaran Nao- A humanoid robot created by Humanoid Robots Labs and the University of Freiburg.
  • Husky UGV: a ground vehicle and open source.

Why should you learn with ROS?

robotic engineering, industrial robot arm

Robots are complex systems and robotics is difficult to understand. However, having tools such as ROS makes it much easier to develop from scratch, accelerating the creation of your own projects in much less time and without as much knowledge as if you did not have it.

In other words, the advantages of ROS is to ease the way for developers, with a multitude of free and open source add-ons, so that you will have everything you need. In addition, you will learn more than robotics, also electronics, mechanics and programming:

  • Use languages ​​like C ++ and Python to develop apps.
  • Administration of networks and systems to install and maintain ROS.
  • Basic concepts of robotics such as mapping, AI, localization, inverse kinematics, etc., being able to put sensors, actuators, controllers, etc. in contact.

No matter the robot complexity, with ROS everything is much simpler. Nor is it limited to one type of robot, it can serve from pet robots, to humanoid robots, through robotic arms for industry ...

More information about ROS - Official Web

Be the first to comment

Leave a Comment

Your email address will not be published. Required fields are marked with *



  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.