Skip to content
  • Home
  • About the Blog
  • About the Author
  • Sitemap

Abdur Rosyid's Blog

Just a few notes on mechanical engineering and robotics

What is ROS?

July 3, 2021 by Abdur Rosyid

Robot Operating System (ROS) is a robot middleware. It is not the only robot middleware available. There are also some other robot middleware as briefly listed here and more extensively listed and compared to each other in this paper. The development of ROS was initiated at Stanford University. It was then developed and maintained at Willow Garage from 2007 to 2013. From 2013 to date, it has been developed and maintained by Open Source Robotics Foundation (OSRF) which afterwards changed its name to Open Robotics. Below are a few articles talking about the history of ROS:

  • https://spectrum.ieee.org/automaton/robotics/robotics-software/the-origin-story-of-ros-the-linux-of-robotics
  • https://www.theconstructsim.com/history-ros/
  • https://en.wikipedia.org/wiki/Robot_Operating_System

Although it is called an operating system, it is actually not an operating system (OS) in the same meaning as Windows, Linux, Mac, iOS, or Android. The term “operating system” here is rather used metaphorically. In fact, ROS is a middleware. It is a robot middleware. It is built and working on a real OS such as Linux, Mac, or Windows.

ROS distributions (commonly called distros for short) are named in the order of alphabets, starting from Box Turtle (released in March 2010) to Noetic Ninjemys (released in May 2020) for ROS1, and starting from Ardent Apalone (released in December 2017) to Galactic Geochelone (released in May 2021) and still other distros to go for ROS2. Noetic Ninjemys is the last distribution of ROS1. After this last distro of ROS1, the development of ROS is focused to ROS2. Some of the ditros are Long-Term Support (LTS) distros. It is recommended to install and use LTS ROS distros due to its more stability and long-term support.

The architecture of ROS can be conveniently illustrated in the so-called ROS Graph. ROS is a software on which nodes are communicating to each other through messages, by using various schemes namely: 1) topic publishing and subscribing, 2) services, and 3) actions.

Serving as a middleware, ROS is sitting on top of a real OS. On top of the ROS core components, robotic application packages are built by the community, such as navigation packages, SLAM packages, MoveIt, perception packages, etc. Users can develop their custom code in, typically, C++ or Python, wrapped as one or more ROS packages. This software is communicating with robot’s actuators and sensors through some ROS drivers. The information from the robot’s sensors are received and subsequently processed by one or more algorithms, and the actuation command is sent to the robot’s actuators to move the robot.

There are four main official resources of ROS:

  • ROS Wiki: http://wiki.ros.org/
  • ROS Q&A’s: https://answers.ros.org/
  • ROS Discourse: https://discourse.ros.org/

Post navigation

Previous Post:

Types of Static and Dynamic Analyses

Next Post:

Why ROS?

Leave a Reply Cancel reply

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

Categories

  • STEM 101
  • Robotics
  • Kinematics
  • Dynamics
  • Control
  • Robot Operating System (ROS)
  • Robot Operating System (ROS2)
  • Software Development
  • Mechanics of Materials
  • Finite Element Analysis
  • Fluid Mechanics
  • Thermodynamics

Recent Posts

  • Pull Request on Github
  • Basics of Git and Github
  • Conda vs Docker
  • A Conda Cheat Sheet
  • Installing NVIDIA GPU Driver on Ubuntu

Archives

  • June 2025
  • July 2021
  • June 2021
  • March 2021
  • September 2020
  • April 2020
  • January 2015
  • April 2014
  • March 2014
  • March 2012
  • February 2012
  • June 2011
  • March 2008
© 2026 Abdur Rosyid's Blog | WordPress Theme by Superbthemes