ros2 topic pub issue with external DDS

asked 2021-08-02 08:27:44 -0600

Karthik_nit gravatar image

updated 2021-08-03 02:52:33 -0600

gvdhoorn gravatar image


I have installed ros2 dashing from source(which supports fast-RTPS by default) on windows and now i am trying to switch to OpenSplice DDS. For this i have installed corresponding DDS, rmw_opensplice_cpp and rosidl_typesupport_opensplice_cpp in a separate directory (outside of ros2 dashing directory). Here are the steps i followed to enable the OpenSplice DDS.

  1. call setup.bat from installed version of ros2 dashing.
  2. set OSPL_HOME to point to OpenSplice installation (OSPL_HOME=D:\dds\libopensplice69\HDE\x86_64.win64) .
  3. Do colcon build on the directory where all the above OpenSplice DDS files are present along with a builtin_interfaces message package.
  4. call setup.bat in the current install directory, where builtin_interfaces, rmw_opensplice_cpp and rosidl_typesupport_opensplice_cpp are installed.
  5. set RMW_IMPLEMENTATION=rmw_opensplicedds_cpp
  6. ros2 topic pub /test builtin_interfaces/msg/Time {}

The above command fails with the error:

Report      : WARNING
Date        : 2021-07-31T03:46:58+0530
Description : using network interface Ethernet ( selected arbitrarily from: Ethernet, VMware Network Adapter VMnet1, VMware Network Adapter VMnet

Node        : HYD-KVENNAPU
Process     : python.exe <21076>
Thread      : ddsi2 22360
Internals   : 6.9.190403OSS/bb590263/bb590263/ddsi2/q_nwif.c/989/0/1627683418.128260900/0
Unknown error creating node: type support handle implementation 'rosidl_typesupport_c' (00007FFC632763D0) does not match valid type supports ('rosidl_typesupport_opensplice_cpp' (00007FFC596B4260), 'rosidl_typesupport_opensplice_c' (00007FFC62752140)), at D:\dds\Dashing_source\prototype_2\rmw_opensplice\rmw_opensplice_cpp\src\rmw_publisher.cpp:100, at D:\dds\Dashing_source\ros2_dashing\src\ros2\rcl\rcl\src\rcl\publisher.c:171

Could you shed some light on what might have gone wrong here? I want to keep rmw_opensplice_cpp and rosidl_typesupport_opensplice_cpp as part of client installations. Also, what exactly are the required packages to build and make this publishing a message (builtin_interfaces/msg/Time in this example) with external DDS(like opensplice, RTI connext, coreDx, rmw_dps,etc) work.


Karthik Reddy

edit retag flag offensive close merge delete