Ros2 / rtps / dds

Moin moin!

Is anyone out there working at the intersection of ROS2 and Rust? I haven’t seen any active crates for rtps or dds so I’m curious if anyone working in this environment has come up with another approach.


Moin! But is that really a term known outside of northern germany? :thinking:

It would help if you provide a few links to the crates/projects you mention. I never heard of them and can’t find anything useful on

Moin! But is that really a term known outside of northern germany?

Happens to be where I sit and work. :smiley: Here is the one crate in particular that I could find. 3 years old… likely abandoned. Could be worth picking it back up.

But even with the communications solved, I still wonder about message serialization. Ros2 has the pure C client library so it isn’t out of the realm of possibility to leverage that (probably less work). I’m curious though if there is anybody making the effort to bring Rust into the ROS2 ecosystem.

We built our core systems in Rust, but we now have a client that would prefer to have us build a bridge into their ROS2 application and have that be our common API boundary. I’ll be starting with C++ for this, but I’m trying to formulate a plan or find some potential avenue for future development. I’ve also considered just using the C client library from Rust.

Just searching github though:

and apparently @frehberg has been working on something too:

The thing is though, even if I used something vanilla like this I don’t think that ros2 is using FastCDR/FastRTPS for it’s own message serialization even if it’s using it for it’s transport. I’m new to ros/ros2 if you couldn’t tell.

There is the ros2_rust repository which use the generated C libraries for message serialization for now. It’s work in progress and it currently doesn’t support arrays and nested messages but I’m mostly done with this part.

1 Like