I have been examining the rosbot_webui project for a while now.
I have noticed that both the /serial_node and the /pose_to_tf_transform node publish the transform based on the same pose (received and also published by rosbot.getPose() in serial node), where frame is “odom” and child frame is “base_link”.
Apparently, slam_gmapping node subscribes to that transform for creating the map.
My question is, is it necessary that both nodes publish the transform in this case? If it is not, could it be better to remove one for performance?
The node also publishes odometry messages to the /odom topic, which is used by move_base. Would disabling the entire node not cause any troubles with move_base? Maybe I can move the /odom publishing to the serial node as well.
I tried to publish Odometry from my serial node but it fails due to message size being larger than the sub/pub buffer sizes designated, which can be changed in the source code. I did not prefer to make the change, so I kept the Odometry publication in a separate node.
The move_base node can work without /odom topic. It is subscribed but not mandatory.
It is possible to increase message buffer, but it is strongly advised not to do so. Transferring messages larger than default buffer size may cause delays and synchronization issues with other messages.