Tf_static does not be sent by network

Hello. I am using Stretch Robot SE3. I am using a pc to communicate with the robot by the standard ROS2 ROS_DOMAIN_ID. They are using the router offered by your company. Most topics work well. I can get them in my pc. But I find the tf_static can not be received by my pc. Do you know how to deal with this case? You know tf_static is important for many nodes. Thanks.

Hi @Yongbo, just to confirm, both the robot and your PC are connected to Netgear router? By default, the domain ID shouldn’t be set.

Yes. I add ROS_DOMAIN_ID=0 before each launched command.

I publish tf_static again using robot_state_publisher in my pc. The problem seems to be solved. But this communication problem still be weird to me.

Hi @Yongbo, Thanks for reporting this issue. To get more context, what QoS profile were you using to publish the /tf_static? I was going through the documentation, and it seems like the publisher and subscriber need to work with Durablity Transient Local QoS policy. Could you try this out and see if the communication issue still exists?

Thanks. This may be the problem. I am now busy with a submission. After submission, I will try it out later.

I find that the map topic published using “ros2 launch stretch_nav2 navigation.launch


.py” also cannot be shared using network with multiple machines. The following image is the info result for map topic including QoS. Could you help me to find how to deal with this case? I am not very familiar with ros2. Thanks.

The robot_description topic also shows the same question.

We encountered a similar issue when using ROS 2 where messages could not be received by computers connected to the same WiFi network as Stretch (oddly, computers connected via ethernet could receive messages perfectly fine).

This issue was resolved for us by making sure all computers are using the same DDS implementation as Stretch. You can check the DDS implementation using

ros2 doctor -r | grep middleware

and set it in ~/.bashrc using

export RMW_IMPLEMENTATION=...

2 Likes

Thank you for your help. I will have a try later.