Explanation to ROS2 python library

asked 2018-06-08 11:08:52 -0600

aks gravatar image

I have already asked multiple times the solution to exchange DDS messages between a node in ROS2 and a non-ROS machine. The best answer I so far got is to use the ROS2 python libraries and implement them in the non-ROS machine. Does anyone have an idea how to proceed with this. Let us say that the publisher is in ROS2 and the subscriber is on the non-ROS machine. I cannot imagine the physical connection.

A general conection scenario (Not related to my use case) Like if we use CAN, we are connecting to machines using a physical wire and then the communication takes place using CAN protocol. If we use a TCP/IP or UDP connection, then we provide the IP address of the machines and the port number.

In my case, I am somehow not clear in my head that how would the conneciton take place between the ROS2 publisher and to be subscriber on a non-ROS machine.

Could anyone be so kind and explain me this phenomenon.

Also, are these the correct libraries to be used ? Could anyone provide a small example using them ? An algorithm would also work.

edit retag flag offensive close merge delete

Comments

Is there a reason to the second machine not running ROS?

Marcel Usai gravatar image Marcel Usai  ( 2018-09-04 03:20:57 -0600 )edit

yes, because we need only a ROS interface in our tool i.e. exchange messages between our simulation tool and ROS2. Not every user needs to install ROS2 for this purpose.

aks gravatar image aks  ( 2018-09-04 04:48:02 -0600 )edit

@aks is there any update from you? I am also considering to interact with ROS2 Node in a NON-ROS application.

pheilip gravatar image pheilip  ( 2021-04-19 08:01:09 -0600 )edit

@pheilip yes...i did it via the RTI libraries. Although i did this around 3 years ago but you can have a look at the RTI python connector : here

aks gravatar image aks  ( 2021-04-19 08:42:27 -0600 )edit

@aks What I know about the DDS, the different DDS Implementation has also problem with other DDS implementations. For example, the eProsima, which is default middleware for ROS2 does not support the pub/sub commnication with the RTI. Which kind of DDS implementation have you used on ROS2? RTI or eProsima, or others?

Thank you

pheilip gravatar image pheilip  ( 2021-04-23 04:17:48 -0600 )edit

I used RTI

aks gravatar image aks  ( 2021-04-23 04:23:16 -0600 )edit

yes, clear, RTI --> RTI has no limit

Thank you

pheilip gravatar image pheilip  ( 2021-04-23 10:19:17 -0600 )edit

@aks hello aks, I did checked the RTI connext connector, but I have still some problems with the interfacing through DDS and ROS2, i am not sure if I have correctly defined my xml file for the interface. Could you send me a some example, that you did before, If you can really find it. Thank you.

pheilip gravatar image pheilip  ( 2021-05-06 04:33:16 -0600 )edit