The Robot Operating System: ROS Act 2
As a researcher and educator in robotics, I have been using and following the Robot Operating System (ROS) since its early days, more than 10 years ago. With the recent introduction of ROS 2, the system has reached a major turning point. More than just an upgrade from the original, this new version is a complete rethinking of ROS—a true evolution that delivers a powerful ‘Act 2’ for a framework that has already been a key accelerator for the field of robotics. The new version includes key differences and significant incompatibilities—both of which demand the attention of the robotics community and a renewed focus on contributing to this vital enabler of the future of robotics.
Two years ago, I wrote the ROBO Global article ROS is Fueling Today’s Robotics Renaissance in which I highlighted the importance of the ROS open software ecosystem and its role in the advancement of robotics. What I surmised at the time—that ROS would continue to play a key role in the resurgence of robotics—has come to fruition. ROS has evolved rapidly over the last decade. The result has been 13 major releases since March 2010 and a system that has dramatically reduced the programming barrier for roboticists around the globe. By helping programmers overcome the ‘Tower of Babel curse’ with a single, open-source language and the ability to reuse code, ROS has dramatically accelerated the pace of innovation and buoyed robotics startups that could not have succeeded without the system’s re-usable packages. Today, ROS has become the de facto world standard for robotics, with hundreds of thousands of roboticists using and contributing to the ROS ecosystem.
Clearly, I am a huge fan of ROS. So when it was announced that the May 2020 release of ROS would be the last to be supported by the Open Source Robotics Foundation—and that all future releases would support ROS 2—I was admittedly taken aback by this major shift in strategy. More than a simple rebranding of the current ROS, ROS 2 is different in numerous fundamental ways, and it includes important incompatibilities with ROS that require a complete rethinking of the system. These changes introduce an entirely new branch in the evolution of the ROS system, as well as a new direction for the field of robotics itself. Given the tremendous boost ROS has brought to robotics through its ability to standardize on ROS, this new direction at first seemed to be a strange choice. However, after diving deeper into the new framework, I am optimistic that ROS 2 will help robotics advance to even greater levels.
One reason the original ROS had remained viable for as long as it did was that the founders of the system possessed the foresight to recognize that robotics would be an evolutionary process. With that in mind, they built a system that exceeded expectations from the start. Despite this forward-thinking approach, certain aspects of ROS were strained to the limit as robotics developed over time. Foremost among these limitations was the underlying network communications middleware. The original authors created their own communications mechanisms from scratch, and, to their credit, these held up remarkably well for years, even as distributed computer systems became increasingly complex. But there were certain aspects of that evolution that proved impossible to predict. Here are just a few examples:
In the original system design, communications required a single ‘ROS Master,’ and all computers in the distributed system required a stable connection to that central hub. The development of swarm robotics revealed this structure to be a weakness. In a swarm of drones, for example, communication between the system and the individual drones is often sporadically broken and then quickly re-established—a condition that is not supported by the original ROS.
Internet of Things (IoT)
IoT has delivered a massive influx of low-cost and ubiquitous devices. More than 100 new IoT devices are being added every second and, like swarm robotics, these devices join and leave networks unpredictably—a reality that is not compatible with ROS networking assumptions.
Security in robotics is vital, and the lack of strong security protocols in the original ROS has been a growing concern for roboticists. This has presented a barrier to adoption in industry and posed a very real threat to enterprises and consumers that have become increasingly dependent on robotics.
Over the last decade, internet communications ‘middleware” has advanced tremendously. Middleware is the key to managing complexity and ensuring quality of robotics systems. It supports integration, simplifies software design, and enables communication between sensors. Over the years, however, the middleware that was built in to the foundation of ROS has become outdated and unable to support the growing number of new use cases.
For these reasons and more, it was necessary to make significant changes to the foundational components of ROS. ROS 2 is the solution. The new system is capable of running on small, embedded platforms, making it well suited to ride the wave of IoT by eliminating the requirement to connect new devices and devices to a master hub; instead, devices can be discovered, connected, and re-connected independently. Other important considerations were also integrated into the new framework. While ROS was limited to Linux-based systems, ROS 2 is compatible with Windows. ROS 2 also incorporates technology that supports real time processing—roughly to the 1 millisecond level—which will be a major benefit to interactive systems, safety systems, and motor controls.
It is important to note that robots built on the original ROS are not being abandoned—at least not yet. Though broken APIs are inevitable when migrating to ROS 2, a ‘bridge’ was designed to allow for gradual, incremental upgrades to the new framework and to support heterogeneous systems of ROS and ROS 2-powered robots. But while wholesale upgrades aren’t immediately necessary, it is clear that the future of ROS is ROS 2. And industry is already recognizing the importance of the change. Just this month, Qualcomm announced its RB5 robotics platform that integrates 5G communications with AI, machine learning, machine vision, and ROS 2. Adlink has also jumped onboard, collaborating with Intel to launch the ROScube-I ROS 2 Controller in an effort to “realize AI Robotics at the edge.”
No one expects the transition to ROS 2 to be painless. That said, there is little doubt that ROS 2 is the key to achieving even greater advancements and capabilities in robotics. Programmers, industries, consumers, and investors are sure to reap the benefits.
Prof. Wyatt Newman, Ph.D. has held visiting appointments at Sandia Labs, NASA, and Princeton, and international appointments at Philips (Eindhoven, The Netherlands), as a Distinguished Visiting Fellow at U. Edinburgh, and The Hung Hing Ying Distinguished Visiting Professor at U. of Hong Kong. He has led teams in two DARPA grand challenges—autonomous vehicles and disaster response robotics—and in two recent NIST competitions for agile robotics. His textbook, A Systematic Approach to Learning Robot Programming with ROS, was released by CRC Press in 2017.