[ROS2] Two machines are in same network but can't communicate in ROS2

asked 2019-08-16 17:25:13 -0500

ahtsan gravatar image

They can ping each other, but nodes in both machines cannot talk to each other. Topics being published are not seen by another machine too.

edit retag flag offensive close merge delete


Did you set the same ROS_DOMAIN_ID for both machines?

surfertas gravatar imagesurfertas ( 2019-08-18 08:06:32 -0500 )edit

A lot of people have gotten similar weirdness with fastRTPS as their dds implementation. If you are using that, I recommend switching to opensplice and seeing if your issue continues to reproduce.

johnconn gravatar imagejohnconn ( 2019-08-18 10:43:28 -0500 )edit

Is it possible UDP multicast is disabled in the network? How can I check that? If so, is there a way to do it differently? I saw something like unicast and specifying ops in a XML file.

ahtsan gravatar imageahtsan ( 2019-08-18 10:45:30 -0500 )edit

I modify opensplice settings here: /opt/ros/dashing/share/opensplice_cmake_module/config/ros_ospl.xml

but I don't know how to configure other impls

the folks here mentioned problems with multicast: https://blog.roverrobotics.com/ros-2-...

johnconn gravatar imagejohnconn ( 2019-08-18 10:58:32 -0500 )edit

I think it's not the issue of ROS_DOMAIN_ID since it works under the ethernet but right after switching to the wifi it doesn't.

ahtsan gravatar imageahtsan ( 2019-08-18 11:01:32 -0500 )edit

That sounds a lot like your traffic is being blocked on the wifi or it's still trying to route through the ethernet that was just unplugged.

tfoote gravatar imagetfoote ( 2019-08-20 16:52:23 -0500 )edit