Do the /odom topic and odom->base_link tf provide duplicate information?
I'm making a differential-drive rover with wheel encoders and planar LIDAR, but at the moment no other sensors.
I understand why it's useful to have separate map
and odom
frames--if my wheel odometry was perfect, the transform between the two would be zero, but it's not, so mapping (gmapping at the moment) is needed to find ithe correcting transform. I've implemented a publisher of both nav_msgs.msg.Odometry
as topic /odom
and tf.TransformBroadcaster
as a transform between odom
and base_link
, according to this tutorial.
However, it doesn't seem that the odom -> base_link
transformation provides any information that isn't already present in my /odom
topic. Are there other cases in which these would be different, and I'm just not very imaginative? Is the separate existence of the tf just for the (perhaps significant) convenience of having a homogeneous way to transform between odom
and map
frames? In that case, maybe it would be possible not to publish the /odom
topic, since the only extra thing it has is velocities, which I just approximate as the difference from the last message over time increment.
FWIW, my code is here, and in particular this script contains the publisher of both the /odom
topic and the broadcaster of the odom -> base_link
transformation. I might later solicit comments on the larger project, but at the moment it's a bit disorganized because of a relatively recent jettisoning of Arduino as a bridge to hardware.