前言

这两天将r3live跑通,并录制了自己的数据在其上面跑,在此记录一下整个录制的过程。


bag的作用

rosbag 主要用于记录、回放、分析 rostopic 中的数据。它可以将指定 rostopic 中的数据记录到 .bag 后缀的数据包中,便于对其中的数据进行离线分析和处理。

二、rosbag的使用

1.录制命令样式

如果要记录所有的topic,则可以直接使用-a来记录

rosbag record -a

如果仅记录某些感兴趣的topic的话,这可以使用下面这个命令样式来进行记录

rosbag record <topic_name> <topic_name>....

如果要指定录制文件名字的话,则使用-O/-o参数

rosbag record -O bagname.bag <topic_name> <topic_name>... #为文件命名
rosbag record -o bagname <topic_name> <topic_name>... #为文件名字做前缀

其他录制命令如下

rosbag record --duration=30 /topic_name #持续30s录制,还可以指定m,h,和--split类似
rosbag record --split --size=1024 /topic_name1 #空间达到1024M后分文件存储
rosbag record --split --duration=30 /topic_name1 #持续时间到30s后分文件存储
rosbag record --split --duration=5m /topic_name1 #持续时间到5m后分文件存储
rosbag record --split --duration=2h /topic_name1#持续时间到2h后分文件存储
rosbag record -l 1000 /topic_name1  # 录制该主题1000个消息限制

2.bag信息查看

当录制好bag以后,可以利用info参数来查看bag的相关信息

rosbag info filename.bag

会显示类似如下信息

$ rosbag info 1.bag 
path:        1.bag
version:     2.0
duration:    3.3s
start:       Aug 24 2019 21:37:53.35 (1566653873.35)
end:         Aug 24 2019 21:37:56.65 (1566653876.65)
size:        7.9 KB
messages:    20
compression: none [1/1 chunks]
types:       geometry_msgs/Twist [9f195f881246fdfa2798d1d3eebca84a]
topics:      /turtle1/cmd_vel   20 msgs    : geometry_msgs/Twist

3.bag的播放

当录制好bag以后,可以利用play参数让bag播放,回放bag中的topic

rosbag play <bagfile>

如果想改变消息的发布速率,可以用下面的命令,-r 后面的数字对应播放速率

rosbag play -r 2 <bagfile>

利用参数-l则可实验循环播放

rosbag play -l <bagfile>

如果只播放感兴趣的 topic ,则用命令

rosbag play bag_name.bag --topics /topic_name1 /topic_name2

4.可视化显示工具:rqt_bag

提供全方位的图形化界面,具有录制,播放,显示,保存,加载文件,暂停等功能

rqt_bag bag_name.bag

总结

这几个就是这两天使用到的命令,感觉ros是边用边学才容易上手


版权声明:本文为weixin_42856109原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_42856109/article/details/125107394