ROS新手指导 - 从bag文件读消息

2020-07-08  本文已影响0人  irene0_0

方法1,立刻回放,并查看多个终端的输出

  1. 首先你要知道想从rosbag文件中读取的准确的Topic 名字。我们可以使用rosbag info demo.bag查看rosbag中的信息
  2. rostopic echo /turtle1/pose | tee topic1.yaml
    打印Topics信息,输入到文件topic1.yaml中
  3. 播放rosbag信息
time rosbag play --immediate demo.bag --topics /topic1 /topic2 /topic3 /topicN

前边加上time是会打印命令执行的时间, --immediate 尽可能块的播放

方法2,使用ros_readbagfile脚本轻松抽取感兴趣的Topics

ros_readbagfile <mybagfile.bag> [topic1] [topic2] [topic3] [...]
time ros_readbagfile demo.bag /obs1/gps/fix /diagnostics_agg | tee topics.yaml

为什么使用ros_readbagfile而不是用rostopic echo -b

  1. 因为rostopic是真的很慢!例如,这个命令在一台快速的计算机(4核/8线程奔腾i7 w/m.2ssd)上运行,读取一个18gb的包文件需要11.5分钟!而ros_readbagfile只花费1分钟37秒,在同样的配置上,快了7倍左右
  2. 还因为rostopic一次只能读一次文件,而ros_readbagfile可以同时读很多文件
上一篇下一篇

猜你喜欢

热点阅读