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

Abdur Rosyid's Blog

Just a few notes on mechanical engineering and robotics

Why ROS?

July 9, 2021 by Abdur Rosyid

The main idea of ROS, as repetitively mentioned by their inventors and core developers, is to avoid reinventing the wheels in robotics. This is achieved by providing a platform in which various robotic algorithms are reusable in a modular manner. In this way, one can reuse a code developed by others and focus more on the novel contribution to be developed. In a free, open-source environment, this can be conveniently achieved.

ROS has been growing as the most widely used robot middleware. There are several characteristics of ROS, including the following:

  • It is a free, open-source platform.
  • It is modular which enables reusability of codes/algorithms.
  • It can be built and working on Linux, Mac, and recently Windows. In spite of this claim, ROS is more mature and provides the most of its capabilities when it is used on Linux Ubuntu. For this reason, quite many people use a virtual machine to install Linux Ubuntu when they use Windows.
  • It is language-agnostic. This means that a code can be developed on ROS by using several programming languages. But, the main languages used are C++ and Python.
  • It provides several tools for the convenience of development, such as rqt_graph, rqt_plot, rqt_gui, RViz, and Gazebo simulator.
  • It has an active and growing community. Thousands of packages have been developed by the community in various aspects of robotics, such as localization, SLAM, navigation, perception, etc. All of these packages are available for reusability as free, open-source software (FOSS).

Despite some advantageous characteristics of ROS mentioned above, some people express some concerns on ROS, such as:

  • Steep learning curve. For this reasons, some people offer some educational platforms to learn and practice ROS, such as The Construct.
  • Some concerns in ROS1, including realtimeness/latency, security, reliability for a distributed system, suitability for bare-metal micro-controller, and compatibility with Windows (although ROS1 is compatible with Windows since Melodic distro). These concerns have been addressed in ROS2.

Post navigation

Previous Post:

What is ROS?

Next Post:

Main Aspects of Robotics

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