reading ROS2 topic (DDS) outside of ROS scope

asked 2019-08-08 10:54:04 -0500

In want to read a ROS2 topic inside a Windows program (ROS not installed on Windows machine). I am testing this, have a VM (VMWare) Ubuntu 18.04 machine with ROS2, host Windows 7. I want a program in the host to see the ROS2 topic. Problem: A subscriber in Windows does not see the message.

Situation: I defined a dedicated msg and compiled it, and gave me the IDL for OpenSplice. I run a publisher and subscriber in Ubuntu and monitor this with an RT Administration Console in Ubuntu, and also in Windows (name:confirmat-cad). I can see the values in Windows. Here a screenshot of the topics in Ubuntu (from the RTI Admin Console in Ubuntu). image description

When I create an exact same publisher in Windows in C# code (IDL as generated on Ubuntu) on the same topic , name 'rt/topic' then I can see in the RT Admin Console on Windows that the signals from the ROS2 publisher and the Windows publisher get mixed uo (so it receives both). Although I only see the Windows pub topic in the Windows sub. Also I only see the ROS2 pub topic in the ROS2 sub. I checked partition, they are the same. Also the QoS I made identical. Interestingly: The writer and reader from Windows are not observable in the RT Admin in Ubuntu, but the other way around it is. See below screenshot of Windows RT Admin Console: image description

QoS of Windows / Ubuntu are the same, same topic, same partition, so what could be wrong? I see that the process of the pub and sub in Windows is identical (720), and also the Ubuntu (441). Does that have to do with it that I cannot read the 441 process topic in the 720 process? Ideas are welcome as I am running out of them for further analysis.

edit retag flag offensive close merge delete