ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The time in the Velodyne message looks a little odd to me. Make sure that's working correctly. RViz will look at that timestamp, then ask the transform tree where the sensor was located at that time, then render the sensor message at that position based in the fixed frame you are currently in. Since the earliest timestamp available for the odom->base_link is at 1658783002 seconds, and the lidar reports the current time as 4103 seconds, RViz concludes that it has no idea where the sensor was at that time and aborts. However, all other transforms are static, so standing in any other frame allows RViz to pick a transform from any time it can find instead. The proposed solution which you link to suggests making map->any_frame be static too, which would essentially be the same as changing the fixed frame in RVIz to any_frame.

A small primer on transforms in ROS:

Transforms are how you keep track of where things are in the world. This is typically critically important for many use cases, whereby old information can be useless at best or dangerous at worst. There is a REP which explains the standard for coordinate systems used in ROS. You will find that odom->base_link represents the movement that the robot thinks it has done, and map->odom being the correction which makes map->odom->base_link make sense in our world. I think RViz might default to looking for the map frame, which might be why you see it even though nothing is connected to it.