ROS中rosbag相关指令总结

写在前面

以下内容主要来自官网教程 (http://wiki.ros.org/rosbag/Commandline),看了很多博客发现官网教程才是最权威的,也是最全的。

一、rosbag 基本指令

具体可以查看 官网教程 (http://wiki.ros.org/rosbag/Commandline)

  1. 录制bag文件(附加参数可有可无)
rosbag record  topic-names 参数

在指令里面可以附加其他参数:

参数含义
-a, --all录制所有的topic
-O NAME, --output-name=NAME录制的bag文件前缀名为 NAME
–split–split --size=1024 录制的bag文件最大为 1024
–split–split --duration=30 录制的bag文件持续时间最大为30s
–split–split --duration=5m 录制的bag文件持续时间最大为5m
–split–split --duration=2h 录制的bag文件持续时间最大为2h
  1. 播放bag文件(附加参数可有可无)
rosbag play  bag-files   参数

在指令里面可以附加其他参数:

参数含义
-s SEC, --start=SEC从第 SEC放bag
-r FACTOR, --rate=FACTOR以FACTOR 倍速率 播放 bag
–topics–topics /topic1 /topic2 /topic3 只播放 /topic1 /topic2 /topic3 这是三个topic
  1. 查看bag信息
rosbag info  bag-files 

可以看到bag文件的基本信息,信息含有 bag 内包含的 message 类型、topic 名字,bag持续时间等等。

path:        dataset_2020-09-11-17-34-40_0.bag
version:     2.0
duration:    8:40s (520s)
start:       Sep 11 2020 17:34:40.28 (1599816880.28)
end:         Sep 11 2020 17:43:20.58 (1599817400.58)
size:        5.0 GB
messages:    116396
compression: none [5161/5161 chunks]
types:       gnss_msgs/gnss_imu      [575ef06bf4086c7b27d72aa4d719edfb]
             ins_msgs/ins_imu        [f0d5adee9eeaed1ccb408be291e1a32b]
             sensor_msgs/Imu         [6a62c6daae103f4ff57a132d6f95cec2]
             sensor_msgs/NavSatFix   [2d3a8cd499b9b4a0249fb98fd05cfa48]
             sensor_msgs/PointCloud2 [1158d486dd51d683ce2f1be655c3c181]
topics:      /GNSS_CHANAV_P3/gpsLLA_data     1038 msgs    : sensor_msgs/NavSatFix  
             /GNSS_CHANAV_P3/imu_data        1038 msgs    : gnss_msgs/gnss_imu     
             /ins_GI5651/gpsLLA_data         2585 msgs    : sensor_msgs/NavSatFix  
             /ins_GI5651/imu_data            2585 msgs    : ins_msgs/ins_imu       
             /lpms_medk/imu_data           103990 msgs    : sensor_msgs/Imu        
             /rslidar_points                 5160 msgs    : sensor_msgs/PointCloud2

二、.bag文件转.txt

将file_name.bag文件中topic_name话题的消息转换到Txt_name.txt文件中:

rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt

三、rosbag截取一部分bag

通过时间戳来截取相应时间段的bag

rosbag filter match_2021-12-07-17-41-02_31.bag  output.bag "t.to_sec() >= 1638872482 and t.to_sec() <= 1638872600"

三、.bag文件生成失败,只出现.bag.active文件

根据目前的经验,出现这情况是因为电脑在记录消息时卡掉了,没有完成最终的录制。可以转换成.bag文件,但是消息有丢失(电脑卡掉后的话题内容)
恢复:

①切换到"xxx.bag.active"文件所在的目录下;
②命令行输入“rosbag reindex xxx.bag.active”;
③输入"rosbag fix xxx.bag.active outfile_name.abg";
中文参考链接:
[1]ROS 中 rosbag 相关命令总结 https://www.jianshu.com/p/6dd2c08d688e
[2]ROS学习篇(七)rostopic消息记录、回放、转.txt https://blog.csdn.net/Tansir94/article/details/81513517


版权声明:本文为qq_39779233原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。