AWS Open Source Blog
Building the future of robots development with ROS 2
Few things have changed the world more than the internet, and at the heart of the internet is the open source LAMP stack. LAMP, short for Linux, Apache, MySQL, and PHP, enabled developers to build new, interactive web experiences that have changed the way we shop, communicate, learn, and more. In robotics, we’re on the cusp of an equally momentous shift, with the Robot Operating System (ROS) giving rise to a new generation of robotics applications—applications that move well beyond lab experiments and hobbyist dreams.
This is a big change in the very nature of the robotics industry. For decades, entrepreneurs and developers from academia and companies like Dispatch.ai and Liquid Robotics built robots in relative isolation, and generally more as projects than products. That is, until ROS, a standardized, open source message-passing system, took shape at Stanford (later Willow Garage) in the mid-2000s. Even then, however, ROS needed to evolve beyond its initial focus as “the perfect research platform” for graduate students. It had to become a true community platform for robotics innovation, as Tully Foote, ROS Platform Manager with Open Robotics, explained in a recent interview.
Downloaded more than 264 million times in 2019, ROS has become the undisputed global robot development framework. But as impressive as ROS is today, its future can be much more so. People with diverse backgrounds are coming together to make ROS version 2 an enterprise-grade nervous system for a whole new class of robotics applications—a “LAMP stack,” as it were, for robotics.
A community of roboticists
Though the latest release of ROS came in mid-2020 (ROS 2 Foxy Fitzroy), the origins of ROS go back nearly two decades, as I explained in my post on how AWS is helping to open source the future of robotics. ROS began as an academic experiment, what Foote calls the perfect research platform to make the grad student in the robotics lab as productive as possible. This “robotics lab” focus of the original ROS (ROS 1) didn’t keep companies from building products around ROS. However, Foote says it left them to figure much of the quality assurance and process if they wanted it to meet their use cases.
The introduction of ROS 2 expanded the universe of applications ROS can support by adding enterprise features, such as security and real-time communication. Engineers employed by Amazon, LG, Bosch, Samsung, Intel, and others, guided by Open Robotics, have contributed to this enlarged focus.
This community, in turn, keeps contributing, most recently resulting in ROS 2 Foxy, the most secure and reliable ROS distribution to date. Foxy represents more than 100 engineers working together for more than six years to write 2 million lines of code. For this release alone, replicating that effort would cost an estimated $84 million. If we tallied up the ROS community’s efforts since ROS began, we’d be looking at hundreds of millions of dollars’ worth of effort.
The result of this effort is now available to you and me for $0.00 as an open source project. The ROS project is a remarkable achievement, and one with broad implications. According to ABI research, by 2024 more than 50% of all commercial robots will include at least one ROS package. Much of that popularity ultimately derives from ROS’ open source roots. According to Tom Panzerella, co-founder and CEO of Box Robotics (acquired by Seegrid in September 2020), “You lose every time to open source.” That is to say, to a community of committed, collaborating developers.
But what will those community-powered robots do?
Coming together
In the early days of robotics, Panzerella says the robotics world was quite splintered. Roboticists built with JAUS, the Player Project, and other systems to create robotics applications of such low volumes that “we didn’t even matter to people,” he says. “There was no ROS back then,” he explains, “So you built it all from the ground up.” Difficult development with little fanfare—what’s not to love?
With the introduction of ROS 2, the industry started to rally around a common message-passing system, as well as standard data structures for sensors and algorithms. This wasn’t a matter of different roboticists agreeing on a common platform. Panzerella says it was a matter of people approaching robotics with backgrounds in the cloud—or software engineering in general—and applying the disciplines of those fields to help robotics scale up as an industry. The introduction of these different disciplines has helped turn ROS 2 into a true platform for robotics innovation.
Or, as Foote puts it, with ROS 1, “We can demonstrate an autonomous car. [But with ROS 2] we actually want to deploy an autonomous car and sell it.”
To get there, ROS needed a common middleware layer. The decision was made to use DDS (Data Distribution Service), an open standard with a bevy of enterprise contributors, including RTI, Box Robotics, and others. “Robotics is the ultimate systems integration problem,” Panzerella says, but the ROS community hadn’t hitherto included much systems integration expertise. With DDS as the underlying middleware, that changed.
Devin Bonnie, a software engineer on the AWS RoboMaker team, says that another need that outside expertise helped to solve was in the area of network connectivity. In the world of robotics, intermittent interconnectivity between robots in applications like fleet management is a fact of life, but ROS 1 hadn’t anticipated this need. With the introduction of ROS 2, AWS has made significant contributions in this area, improving the core communications framework (or, “quality of service,” as Bonnie dubbed it). Because ROS is essentially a framework for writing distributed sets of single-purpose programs that can pass data to each other, AWS added quality-of-service features that define the behavior of that message passing, for example, making guarantees about how the system acts beyond the mere fact that it passed a message or not.
In these ways, AWS and other ROS community members have collaborated to ensure ROS 2 “hits the quality bar we need for production, for products, for industry,” according to Emerson Knapp, a robotics software engineer at AWS. Or, as Foote stresses, “We’re reaching that point where the [ROS 2] core is solid and now we’re expanding the capabilities that are available to mix and match.” Capabilities that a diverse array of community members will build around ROS, similar to what happened with the LAMP stack.
A foundation for the future
So this is where we are today. But it’s not where we’ll be in the near future, according to Aaron Blasdel, head of open source robotics at AWS, and part of the early Willow Garage ROS team. Blasdel says that with ROS 1, there was still “lots of space” between proof of concept and product, and still too much work for a developer to do. “In the future, you will put together a quick proof of concept with ROS 2 and there won’t be a lot of space between getting that to product,” he says. “We’re closing that gap.”
With Foxy, that gap keeps getting smaller. “Even now, there isn’t really a limit to the types of robots that could be using ROS 2,” Blasdel says. “We’ll probably start off with easier ones like robots with fixed arms or autonomous mobile robots.” Though such simple robots might be the first wave, the next wave is clearly in sight. There is a host of companies building more advanced applications, such as industrial manipulators using ROS 2.
Bonnie says that ROS 2 is becoming much easier to use because diverse ROS contributors from a variety of industries are combining to improve ROS 2’s code, documentation, and tooling. He says we’re rapidly getting to a point in which an undergraduate student with little interest in underlying schemas or expertise in C++ will be able to write a quick Python node to turn a motor. In other words, within a few years we should be able to give developers the ability to plug and play components using ROS as the foundation. They’ll use the ROS 2 ecosystem to figure out hard problems like software updates, fleet management, and more. For the company or individual who wants to build cool hardware, ROS 2 increasingly makes this a reality.
What will get us the rest of the way to this future? To the optimist Blasdel, “It’s just work. It’s literally just a whole lot of work and putting in a whole lot of tests and a whole lot of processes to make ROS 2 the most stable and the most extensible and the most efficient and effective middleware out there. I’m really excited about it.” This is the kind of work that Foote says is already underway. ROS 2 laid the foundation to productize a whole new world of robotics applications, with an ever-growing population of ROS-savvy engineers ready to help build them.
To learn more about ROS, and see how you might help build a future filled with robots, please register to join us at ROS World 2020.