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

Revision history [back]

I'm assuming, based on the frames reported, that this message

Transform from base_link to map was unavailable for the time requested. Using latest instead.

is coming from this line in navsat_transform_node.

The root of the issue is that the map->base_link transform is not available as of the requested transform_time.

That value was passed as a parameter here.

That call came from here, and so the stamp in question is gps_odom.header.stamp.

That value got set when we called this, specifically, here.

So we're setting the value to gps_update_time_, which, in turn, is set here.

That stamp is just the time stamp of your most recent GPS message.

So then the problem is that navsat_transform_node is receiving a GPS message, and it wants to convert it to an odometry message (in this case, one that can be consumed by the EKF itself). In order to do that, it needs to look up the robot's pose in the map frame at that moment, but the ekf_se_map EKF hasn't produced it yet.

Your proposed solutions involved modifying parameter for the ekf_se_odom node, but that won't produce the map->base_link transform; it's producing odom->base_link. So you really want to change those settings for ekf_se_map so that navsat_transform_node can get the transform it needs at the time it needs it.

I'm assuming, based on the frames reported, that this message

Transform from base_link to map was unavailable for the time requested. Using latest instead.

is coming from this line in navsat_transform_node.

The root of the issue is that the map->base_link transform is not available as of the requested transform_time.

That value was passed as a parameter here.

That call came from here, and so the stamp in question is gps_odom.header.stamp.

That value got set when we called this, specifically, here.

So we're setting the value to gps_update_time_, which, in turn, is set here.

That stamp is just the time stamp of your most recent GPS message.

So then the problem is that navsat_transform_node is receiving a GPS message, and it wants to convert it to an odometry message (in this case, one that can be consumed by the EKF itself). In order to do that, it needs to look up the robot's pose in the map frame at that moment, but the ekf_se_map EKF hasn't produced it yet.

Your proposed solutions involved modifying parameter parameters for the ekf_se_odom node, but that won't produce the map->base_link transform; it's producing odom->base_link. So you really want to change those settings for ekf_se_map so that navsat_transform_node can get the transform it needs at the time it needs it.