ros2 / rmw_cyclonedds

ROS 2 RMW layer for Eclipse Cyclone DDS
Apache License 2.0
112 stars 91 forks source link

Support Cyclone DDS v0.10.x and master + ROS 2 type definitions in DDS #501

Open eboasson opened 3 months ago

eboasson commented 3 months ago

This PR takes the type definition/discovery work from #445, and adds the changes needed to match the work done on Cyclone DDS's master branch since that PR was made. The big change here is the refactoring that moved the Iceoryx support into a plugin.

All old configs and code not using any special features should work unchanged, but the RMW layer does its own serialization and needs to support loans, and these necessitates some changes.

It also means that Iceoryx is no longer needed as build dependency, but I think it is important that the RMW layer continues to work unchanged with 0.10.x, at least until there is a tag/branch for the next release of Cyclone that incorporates all those changes.

This is a draft PR because I haven't gotten around to checking all combinations of not-loan/loan, serialized/not-serialized, simple/complex types, etc. etc. etc. I do think it worthwhile to make it easy to find for everyone else who is curious and to reduce the risk of double work, in case someone else also decides to give it a try.