rosbag数据回放与rviz可视化tf设置及时间戳问题“Message removed because it is too old”

TF设置

rviz添加数据做可视化的时候经常会出现这样的问题:
在这里插入图片描述
这是因为tf关系缺失,图中我们的数据“/scan"的参考系是“base_laser_link”,固定坐标系是“map”,需要确定从“base_laser_link”到“map”这两个坐标系之间的位姿关系才能显示。这里只需要给定一个固定的 tf 即可:
rosrun tf static_transformublisher 0.0 0.0 0.0 0.0 0.0 0.0 map base_laser_link 100
该命令的含义如下:

static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms

消息时间戳

如果我们使用的数据是来自rosbag的回放,很有可能会出现这样的问题:用于可视化的数据时间戳和tf关系时间戳相差太大,无法匹配因此被丢弃了,错误如下:
在这里插入图片描述
有两种处理方式:
1.把fix frame设置成想可视化的数据的坐标系(“base_laser_link”)
在这里插入图片描述
2.把ros的时间设置成模拟时间
首先启动roscore,然后设置参数 /use_sim_time

rosparam set /use_sim_time true

然后再启动 rosbag play 节点,加上参数 --clock以同时发布时钟信息,-l 用于循环播放

rosbag play -l --clock XXX.bag

再启动rviz和发布静态tf

rosrun tf static_transformublisher 0.0 0.0 0.0 0.0 0.0 0.0 map base_laser_link 100

此时发布的 tf 消息时间戳和rosbag中的消息时间戳一致。

参考链接:https://answers.ros.org/question/52788/error-in-display-of-pointcloud-in-base_link-frame/

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值