ROS integration notes from DevSummit

Notes from ROS focus group discussion during DevSummit preconference core maintainer/dev team workshop. The session was chaired by Tully Foote and Nuno Marques.

Overview of ROS1 problems that ROS2 solves (Tully Foote)

ROS1 was heavily used for prototyping but not products. Main reasons were missing support for real time, could not run on microcontrollers, poor behaviour in lossy network situations, only ran on Linux platforms, not really certifiable.

ROS 2 is complete re-write that addresses these. There is heavy focus on certifiability, reliability, testing etc. It uses DDS for message layer (started too early to consider Protobuf). Apache 2 license. Runs on Windows, Mac, Linux. Supports C++, Python, Java and many others with a common underlying implementation written in C++.

ROS 2 “Dashing” is the first LTS release (just out). This is the version that is expected to be useful in real products and is supported for 2 years. Lots of features - go see the release notes.

Current architecture support and possible future architecture(Nuno Marques)

Description of RTPS bridge, which translates a subset of UORB topics to RTPS side in both directions. Similar info to docs here: RTPS/ROS2 Interface · PX4 Developer Guide

In future might like to use XRCE, a lightweight version of DDS, running on the microcontroller (in PX4). This is currently too heavyweight, but if achievable might allow us to replace UORB and have PX4 as a peer in the ROS2 environment for all topics, not just a select set. A possible benefit of this is running and debugging parts of flight stack on companion instead of flight controller.

Some questions from group about current memory usage and how the publish subscribe mechanism maps to UORB (ie can it in theory do what is needed).

It may be useful to attend PX4 dev call regularly to get more involvement from wider team and to provide roadmap updates.

1 Like