我正在用rosbag replay调试我的代码。在我的代码中,我做了这样的tf转换:
tf.transformPose(target_frame, input_pose, output_pose);有时,会抛出异常,其内容为:
"Lookup would require extrapolation into the future.
Requested time 1484037737.206813097
but the latest data is at time 1484037724.492085834,
when looking up transform from frame [odom] to frame [map]"我检查了调试器,发现消息input_pose的时间戳晚于rosbag时间:
p input_pose.stamp_
$1 sec = 1484037737, nsec = 206813097
p ros::Time::now()
$2 sec = 1484037724, nsec = 918256570此外,rosbag play控制台显示:
[PAUSED] Bag Time: 1484037724.967132我用来运行rosbag的命令是
rosbag play --clock --pause bagfile.bag并且参数use_sim_time已经设置为true:
$rosparam get use_sim_time
true有人能帮我解决这个问题吗?谢谢!
发布于 2017-01-12 10:30:40
看起来你有一些tf源代码以较低的速度发布。您可以查看tf_monitor或view_frames对其进行调试。
另外,在执行transformPose之前(通过使用waitForTransform()),您是否在等待转换准备就绪?
发布于 2017-01-13 18:00:02
结果是我重新启动了rosbag play,但是调试过程并没有重新启动。
https://stackoverflow.com/questions/41603994
复制相似问题