This article is part of TechXchange: ROS: robot operating system
What you will learn:
- What are the intentions behind the robot’s operating system?
- Key Features of Noetic Ninjemys from ROS 1.
- Main features of Galactic Geochelone from ROS 2.
the Robotic operating system (ROS), introduced by Open Robotics in 2007, was designed to provide developers with a set of open source software frameworks, libraries, and tools for creating applications for robots. The platform offers services for a heterogeneous computing cluster such as hardware abstraction, device control, feature enforcement, message passing between processes, and package management. Processes are represented in a graphical architecture where processing occurs in nodes that can receive, publish and multiplex sensor data including control, status, schedule, actuator, etc.
While the two SAR 1 and SAR 2 contain the same basic functions, there are differences between the two. However, it is essential to note that ROS versions may be incompatible with other versions and are often referred to by codename rather than version number.
ROS currently releases a version every May, after the release of the Ubuntu LTS builds. ROS 2, on the other hand, releases a new version every six months (in December and July). These versions are supported for a single year before another is introduced.
ROS was designed with open source in mind, allowing users to choose the configuration of tools and libraries that interact with the core of ROS so they can move their software stacks to fit their designs and robot apps. Given the amount of customization that can be done with ROS, very little is at the heart of the platform beyond the general structure within which programs must exist and communicate.
In a sense, ROS is the underlying infrastructure behind nodes and message passing. However, in reality, ROS is not only this infrastructure, but also a set of mature tools, a wide range of robot capabilities provided by packages, and a larger ecosystem of add-ons.
The core functionality of ROS is complemented by a variety of tools, allowing developers to view and save data, browse packages, and create scripts that automate complex setups and configuration processes.
A notable tool is rviz, a 3D viewer that displays robot builds, the environments they can operate in, and sensor data. There is also rosbag, a command line tool that saves and reads message data. Others include the catkin ROS build system, the rosbash suite of tools for modifying Unix shell and command language functionality, and roslaunch, a tool used to launch multiple ROS nodes locally and remotely.
ROS 1—Noetic Ninjas
The latest and latest version of ROS 1, known as Noetic Ninjasincludes several notable features and offers 369 packages to increase its performance (Fig.1).
This release has an End of Life (EOL) date of May 2025, after which Open Robotics will discontinue ROS 1 and focus on continued development of ROS 2. Regardless, ROS 1 is still supported and includes a number of tools and packages highlighted below:
These are just a few of the changes and upgrades found in ROS 1 Noetic Ninjemys. A full list can be found on his Release page. It should also be noted that more tools and packages will be added over the next few years before end of life.
ROS 2—Galactic Geochelone
galactic geochelonethe latest point release of ROS 2, was designed to simplify hardware acceleration with robots (Fig.2). Although it retains the basic functionality found in ROS 1, it brings many improvements, including support for the Data Distribution Service (DDS). DDS acts as middleware for communication between nodes. It uses the Quality of Service (QoS) profile to provide real-time communication, scalability, improved performance, and security benefits not found in ROS 1.
Galactic Geochelone also includes a series of general-purpose binary packages, making it easy for users to run ROS 2 as is without any additional add-ons, tools or packages. Notable features of ROS 2 include:
As with ROS 1, ROS 2 can leverage the same packages, libraries, and tools for increased functionality, including Gazebo, Navigation, rosbag, and more. The ability to augment communication between nodes via DDS middleware pushes the ROS 2 platform to the top and is one of the key features responsible for the retirement of ROS 1.
Adding to the seasoned robot OS increases its stability issues. So, the Open Robotics team decided to create a new ROS from scratch, with intermediate and LTS versions released regularly every few years. This makes sense because the original ROS was designed for academic projects and ROS 2 was created for commercial projects as the hardware became more affordable.
Read more articles in TechXchange: ROS: robot operating system