RTI Senior Software Integration Engineer Neil Puthuff discusses how ROS 2 and DDS can be integrated to accelerate robotics and autonomous systems development.
In Episode 42 of The Connext Podcast:
- [0:10] What is ROS 2 and how is it used?
- [1:16] How does ROS 2 integrate with Connext DDS?
- [3:05] How will this transform the industry?
- [4:00] ROS 2 + DDS in safety certification
- [5:30] Resources and ROS 2 + DDS examples
- [Blog] ROS2 + DDS: Play it Again
- [Blog] ROS2 + DDS: A Field Guide to Interoperability
- [Blog] ROS2 + DDS: When Ecosystems Merge
- [Case + Code] Accelerate Autonomous Car Development
- [Podcast] Autonomous Vehicles: From Concept to Reality
- [Webinar] Learn the Simplest Way to Build Complex, Autonomous Systems
- [Whitepaper] The Secret Sauce of Autonomous Cars
Steven Onzo: Welcome to the podcast, Neil.
Neil Puthuff: Thank you, Steven.
Steven Onzo: Really excited to have you here. We're continuing this podcast series about autonomous vehicles and autonomous systems, this being our second episode.nd in this episode, we're here to talk about how Connext DDS integrates with ROS 2 among autonomous systems. I'd like to kick things off and ask a high-level question for our audience, and that is: What is ROS 2, and how is it used?
Neil Puthuff: Well, ROS 2 is the second version of the original program called ROS, which is short for Robot Operating System. It's not actually an operating system like a real-time operating system, or Windows or Linux. It's more of a robotics framework for creating robotics applications. It was originally consumed out of the Stanford lab and it's been around for about a decade. It has grown organically. It's really popular in universities and for researchers as a classroom tool and for doing basic robotics research when before there was nothing. So ROS has become pretty much the default standard for an open source robotics framework.
Steven Onzo: Right. I want to kind of bring in how ROS 2 ties in with DDS. How does ROS 2 integrate with Connext DDS?
Neil Puthuff: That's a good question. The original ROS 2 - it was designed with a certain set of use cases in mind. But as the frontier of robotics technology pushes ever outward, ROS - the original ROS - was coming up short for doing things like multi-robot swarms, running in constrained environments and running under real-time constraints. So rather than start from scratch and create a whole new middleware, the creators of ROS decided to make a new version of ROS called ROS 2. And instead of making a new middleware, they wanted to use an off-the-shelf version, so they had an extensive evaluation from that. DDS was identified as the clear winner because of its long history and its strong support and that it's real-time performance and safety certifiable.
Steven Onzo: What about ROS 2 tools? I know that ROS 2 comes with a wide variety of tools. How do these tools work with Connext DDS?
Neil Puthuff: Well, that's actually the really good news for both ROS 2 users and for DDS users because ROS 2 was built on top of DDS. It is in fact a DDS application, so DDS users now have access to the ROS 2 ecosystem, and there's some really impressive tools in there. 3D visualizers, 3D simulation environments, node graph viewing capabilities. On the flip side, for those who are using ROS 2, the DDS ecosystem is also available, so the full suite of Connext Pro Tools, layered services like Routing Service, database integrations, web services, and the diagnostic tools like admin, console and monitor are available to ROS users.
Steven Onzo: Because there's so many software engineers coming out of university with training in ROS, do you think this transforms the industry a bit? Does it have some sort of influence?
Neil Puthuff: I think it's had a huge influence. Think about having a million-plus software engineering graduates from universities - all trained on ROS - and they're entering fields like autonomous vehicles. The transition to go from a robot that can navigate its way around the room to a car that can navigate its way through streets, it may seem like a really straight line. The difference here is though a robot that goes around the room doesn't have a person riding inside. It isn't quite so safety critical, whereas a car has definite safety critical rule requirements and a need for certification. That's one of the places where basing on Connext DDS makes a lot of sense since there are certifiable versions of Connext.
Steven Onzo: Can you talk a little bit about ROS 2 and DDS, that integration in terms of safety certification?
Neil Puthuff: It's very easy to stand up an autonomous vehicle using ROS 2 components. For safety certification though, there's a lot of capabilities in ROS that you may not necessarily want to have in the safety certifiable part of your system. The main reason being that while they're very convenient, they're great tools, but if it's not a directly required component for operation, then it just represents code that is additional that you need to test and certify, and every line of code has a price tag on it, so you really want to minimize it as much as possible. The neat thing is, because of the interoperability of DDS, you can create a core of certifiable components that is very minimal purely in DDS and keep the parts of the system that you built on ROS 2 in the system, and it all interoperates.
Steven Onzo: So you're saying that ROS 2 is a DDS application. Does this mean that DDS users can access the ROS ecosystem?
Neil Puthuff: Yes, absolutely. Our perspective is, "Welcome to the neighborhood." It's like all DDS users now have these great visualization and simulation tools. In particular, RViz is one. It's a part of the ROS 2 or the ROS ecosystem and it gives us these nice 3D visualization capabilities for any kind of data you may want to throw at it.
Steven Onzo: I think this was a great topic. We talked a little bit about how ROS 2 integrates with Connext DDS, and for our listeners, if they would like to get some more guidance on this topic, where would you suggest that they go on our website?
Neil Puthuff: So there we've got a lot of resources to bring on this one. For an example of an autonomous vehicle system that interoperates with ROS 2, you can look at our Case + Code for an automotive example. That is a pure DDS application, but it interoperates with ROS 2 in terms of you can use the RViz 3D visualizer with it. We've got a blog series on ROS 2 + DDS interoperability on the RTI blog, and just a note about the case in code for automotive. It is downloadable as a binary, so you can just run it directly and available as source code, and I'd encourage your listeners to download the 30 day evaluation trial.
Steven Onzo: So before we take off, can you talk a little bit about how RTI's Services can benefit our customers?
Neil Puthuff: With something as complex as an autonomous vehicle, it can be very helpful to bring in core expertise on certain sections. The RTI services department has had more experience than anyone in safety critical, large distributed, real-time systems, so I'd highly encourage anyone to contact us for help on these important parts of the system.
Steven Onzo: Neil, I want to thank you again for coming onto the podcast and shedding some light on this topic. I know this was a topic that was in-demand and people have inquired about it for some time, so thank you.
Neil Puthuff: Thanks again for having me.