eProsima / Integration-Service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Communication between ROS2(rmw_fastrtps_cpp) and standalone FastRTPS

ozgudum opened this issue · comments

Do we still need to use Integration Service to have communication between ROS2 and standalone FastRTPS if ROS2 is using rmw_fastrtps_cpp implementation? Would there be a way to configure the standalone FastRTPS side accordingly so that it can communicate with ROS2 without Integration-Service?

I understand the reasoning behind the Integration service to enable comm between DDS and other middlewares. But for a special case, if both ends are using Fast-RTPS as underlying implementation, why would we need another interim layer?

It looks like, it's possible to communicate between ROS2 (using rmw_fastrtps) and Standalone FastRTPS DDS without using Integration Service. There two changes:

  1. ROS2 uses topic naming conventions as described here: https://design.ros2.org/articles/topic_and_service_names.html
    For DDS message to be read by ROS2, you need to add prefix rt/ to topic name

  2. When generating message headers/sources from IDL file, pass -typeros2 flag to fastrtpsgen script, so that it can generate message type name accordingly.