Sompong-Sriphet_dreamstime_138547722
Sompong Sriphet Dreamstime L 138547722newest 61f2a829e859a

ROS vs. ROS 2: Differences and Practical Applications

Feb. 11, 2022
Version 2 of the Robot Operating System, which simplifies hardware acceleration, builds on the popularity and flexibility of version 1.

This article is part of TechXchange: ROS: Robot Operating System

What you'll learn:

  • What are the intentions behind the Robot Operating System?
  • Key features of ROS 1's Noetic Ninjemys.
  • Key features of ROS 2's Galactic Geochelone.

The Robot 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 to create applications for robots. The platform offers services for a heterogeneous computer cluster such as hardware abstraction, device control, implementation of functionalities, message-passing between processes, and package management. The processes are represented in a graph architecture where processing occurs in nodes that may receive, post, and multiplex sensor data, including control, state, planning, actuator, and more.

While both ROS 1 and ROS 2 contain the same core functions, differences exist between the two. However, it's essential to note ROS releases may be incompatible with other releases and are often referred to by code name rather than the version number.

ROS currently releases a version every year in May, following the release of Ubuntu LTS versions. ROS 2, on the other hand, releases a new version every six months (in December and July). These releases 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 interacted with the core of ROS so they could shift their software stacks to fit their robot designs and applications. Considering the amount of customization that can be done with ROS, very little is core to 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 that infrastructure, but also a mature set of tools, a wide-ranging set of robot capabilities provided by packages, and a greater ecosystem of add-ons.

The core functionality of ROS is augmented by a variety of tools, allowing developers to visualize and record data, navigate packages, and create scripts that automate complex configurations and setup processes.

One notable tool is rviz, a 3D visualizer that displays robot builds, the environments they may operate in, and sensor data. There’s also rosbag, a command-line tool that records and plays back message data. Others include the catkin ROS build system, rosbash tool suite to alter the functionality of Unix shell and command language, and roslaunch, a tool used to launch multiple ROS nodes locally and remotely.

ROS 1—Noetic Ninjemys

The latest and last ROS 1 release, known as Noetic Ninjemys, includes several notable features and offers 369 packages to augment its performance (Fig. 1).

This version has an end-of-life (EOL) date of May 2025, after which Open Robotics will discontinue ROS 1 and shift its focus to the continued development of ROS 2. Regardless, ROS 1 is still being 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 complete list can be found on its release page. It also should be noted that more tools and packages will be added over the next several years before EOL.

ROS 2—Galactic Geochelone

Galactic Geochelone, the latest interim release of ROS 2, was designed to simplify hardware acceleration with robots (Fig. 2). While it still retains the core functionalities found in ROS 1, it brings many improvements, most notably Data Distribution Service (DDS) support. DDS acts as middleware for internode communication. It uses the quality-of-service (QoS) profile to provide real-time communication, scalability, performance enhancement, and security benefits not found native in ROS 1.

Galactic Geochelone also includes a series of binary packages for general use, making it easy for users who would like to run ROS 2 as-is without any add-ons or additional tools and packages. Notable ROS 2 features include:

As with ROS 1, ROS 2 can take advantage of the same packages, libraries, and tools for increased functionality, including Gazebo, Navigation, rosbag, and more. The ability to increase communication between nodes via DDS middleware pushes the ROS 2 platform to the top and is a primary feature responsible for ROS 1's retirement.

Adding onto the seasoned Robot Operating System increases its stability problems. So, the team at Open Robotics decided to build a new ROS from scratch, with interim and LTS versions released regularly every few years. It makes sense as the original ROS was designed for academic projects, and ROS 2 was created for commercial projects as hardware became more affordable.

Read more articles in TechXchange: ROS: Robot Operating System

About the Author

Cabe Atwell | Technology Editor, Electronic Design

Cabe is a Technology Editor for Electronic Design. 

Engineer, Machinist, Maker, Writer. A graduate Electrical Engineer actively plying his expertise in the industry and at his company, Gunhead. When not designing/building, he creates a steady torrent of projects and content in the media world. Many of his projects and articles are online at element14 & SolidSmack, industry-focused work at EETimes & EDN, and offbeat articles at Make Magazine. Currently, you can find him hosting webinars and contributing to Electronic Design and Machine Design.

Cabe is an electrical engineer, design consultant and author with 25 years’ experience. His most recent book is “Essential 555 IC: Design, Configure, and Create Clever Circuits

Cabe writes the Engineering on Friday blog on Electronic Design. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!