ZebraDevs / robot_controllers

Robot control infrastructure
92 stars 79 forks source link

Fix tf node spam #80

Closed Flova closed 2 years ago

Flova commented 2 years ago

Stop the tf listener from creating its own node by passing a reference to the parent node. The parallelism is untouched as tf uses a callback group for the tf topics that is spon its own executor instance. This lowers the overhead from too many nodes and reduces spam in visualizations such as the rqt node graph.

mikeferguson commented 2 years ago

This looks like a good change - but I haven't quite gotten a chance to test it yet (hoping that I get to that in the next week or two). Can you elaborate at all on how you tested/validated? (for instance, what sort of robot setup?).

Mainly just concerned as I've seen some (interesting) regressions in MoveIt2 as we've tried to reduce the number of nodes and update how callback groups are used.

Flova commented 2 years ago

Honestly, I am not that familiar with the robot_controllers package (I think we don't use it currently in production) and was not able to really test this change in depth. But I think it should be fine, as I made this change to many of our internal nodes + stuff like without any issues.

I know of some issues with FastDDS and callback_groups, mainly for Nav2, but I did not observe any of it in regard to this change. But I would be happy if you have the resources to test this properly.