Advanced science.  Applied technology.


The ROS 1 vs ROS 2 Transition

ROS1 vs ROS2 Transition

The Robot Operating System (ROS) was first released by Open Robotics in 2007 with the intent to provide open-source software frameworks, tools and libraries for robot development. A typical ROS system is comprised of independent nodes that can communicate with each other through publisher/subscriber relationships. A key part that makes ROS so useful in robotic development is that these nodes do not need to be on the same system or even used by the same architecture. This flexibility makes ROS easily adaptable to the needs of the user.

With the new ROS 2 release, the question now becomes which version of ROS to use in the development of new projects. While both ROS 1 and ROS 2 have the same core functionality, many differences exist between the two. For this article, we will refer to “ROS 1” and “ROS 2” for consistency, recognizing that style and naming convention are a work in progress.

Evolution from Academic to Industrial

Overall, while ROS 1 was originally created for academic applications, ROS 2 was designed specifically for commercial projects as hardware has become more affordable and readily available in recent years. The growth of open-source libraries through the developer community helped to expand industrial use cases for ROS 1, which helped to advance development of new features in ROS 2.

ROS 1’s last release, Noetic, has an end-of-life (EOL) date slated in May 2025 after which Open Robotics will stop supporting it and switch to only continue development of ROS 2. However, it should be noted that more tools and packages will be added over the next few years before its EOL.

While ROS 2 contains the same core components and libraries as its predecessor, it also brings in new features, including an improved communication stack using real-time data distribution service (DDS) protocol. DDS uses a quality-of-service (QoS) profile for better real-time communication, scalability and security performance. This is particularly helpful for non-ideal networks in which message delivery may be delayed or not guaranteed and for distributed systems with multiple robots and sensors.

ROS 2 Implementation Case Study

This Technology Today article provides a case study in leveraging interoperability advantages of ROS 2 with the DDS open middleware standard when coordinating tasks via a software implementation called Orchestrator. The implementation, depicted in the image below, illustrates how MTConnect could serve as a foundation to improve information sharing between assets. MTConnect provides the data model for manufacturing information, while ROS 1 or ROS 2 move across a manufacturing system.

Illustration of how various parts in a manufacturing system can be orchestrated to automate tasks

This illustration depicts how orchestrating tasks over DDS protocol provides a coordinated methodology for the MTConnect interoperability standard to communicate commands to robots and other hardware via ROS 1/ROS 2 and other unique software/middleware bridges.

Challenges: Porting, Documentation, Training

On the other hand, some features of ROS 1 have not yet been fully ported over to ROS 2. For example, a setup assistant for MoveIt, a popular motion planning framework integrated with ROS, is currently only available for ROS 1 with a ROS 2 release expected sometime in the future. Additionally, documentation for ROS 2 packages is presently lacking in comparison with ROS 1. As ROS 1 is already quite mature, it will allow developers to move faster through the development of their projects as many of its features are ready to use and well documented. Training and documentation helped in the growth and success of ROS 1. The infrastructure for training and documenting ROS 2 is still very much a work in progress.

Overall, ROS 1 remains an industry standard for academic and industrial robotics applications. The transition to ROS 2 is gaining momentum as use cases demonstrate capability. SwRI uses the Robot Operating System (ROS) in several applications for robotics, participating in the ROS-Industrial open-source project, development automated driving systems and other technologies that fuse sensing, machine vision and algorithms.