方法1,立刻回放,并查看多个终端的输出
- 首先你要知道想从rosbag文件中读取的准确的Topic 名字。我们可以使用rosbag info demo.bag查看rosbag中的信息
- rostopic echo /turtle1/pose | tee topic1.yaml
打印Topics信息,输入到文件topic1.yaml中 - 播放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
- 因为rostopic是真的很慢!例如,这个命令在一台快速的计算机(4核/8线程奔腾i7 w/m.2ssd)上运行,读取一个18gb的包文件需要11.5分钟!而ros_readbagfile只花费1分钟37秒,在同样的配置上,快了7倍左右
- 还因为rostopic一次只能读一次文件,而ros_readbagfile可以同时读很多文件
网友评论