[ROS2 Eloquent] TF2 listeners occasionally prevent receiving msgs

asked 2020-03-18 11:50:27 -0500

cr01927 gravatar image

I'm working on a pretty complex system - 27 ROS2 nodes, each in their own Docker container. In general, the system communicates fine, but I've got one particular node that I run two instances of (in separate namespaces), that gets in a weird state after startup. about 10% of the time, this node will only call callbacks for its transient_local topics. All other topics will be unresponsive. The other topics use a variety of QoS Profiles, including SENSOR_DATA, PARAMETERS, PARAMETER_EVENTS, and SERVICES_DEFAULT.

ros2 node info and ros2 topic info say that the node is listening to the correct topics with the correct msg types. Restarting this node when its in this state makes it work fine.

I've gotten a minimal reproducible package going - https://github.com/cr01927/ros2-tf2-e.... Requires Docker and Docker-compose. Use the docker-compose command in the README.md. Note that the problem only occasionally happens - maybe 1 in 10 times. I've provided a log.txt file of one instance where it did happen.

If its helpful, I parse log.txt with less log.txt | egrep -o '^listener_([0-9]+)' | sort | uniq -c to see which topics have fewer callbacks.

edit retag flag offensive close merge delete

Comments

Isn't this a repost of #q346929, but then with a focus on TF listeners?

Updating your previous post would also have been possible.

gvdhoorn gravatar image gvdhoorn  ( 2020-03-18 12:06:18 -0500 )edit

It is, sorry. I figured since I had actual code to test, and since I narrowed it down to TF listeners, I'd make a new post. Sorry if that wasn't the right move.

cr01927 gravatar image cr01927  ( 2020-03-18 12:07:37 -0500 )edit

It's OK.

Just keep it in mind for next time.

gvdhoorn gravatar image gvdhoorn  ( 2020-03-18 12:12:43 -0500 )edit