文章目录
- 写在前面
- 一、rosbag 基本指令
- 二、.bag文件转.txt
- 三、rosbag截取一部分bag
- 四、.bag文件生成失败,只出现.bag.active文件
- 参考链接:
写在前面
以下内容主要来自官网教程 (http://wiki.ros.org/rosbag/Commandline),看了很多博客发现官网教程才是最权威的,也是最全的。
一、rosbag 基本指令
具体可以查看 官网教程 (http://wiki.ros.org/rosbag/Commandline)
- 录制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 |
- 播放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 |
- 查看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”;此时当前目录会生成xxx.bag.active
(原来的xxx.bag.active
被重命名为xxx.bag.orig.active
)
③输入"rosbag fix xxx.bag.active outfile_name.bag"。(注意此时操作的xxx.bag.active
是第②步reindex之后得到的文件)。
参考链接:
[1]ROS 中 rosbag 相关命令总结 https://www.jianshu.com/p/6dd2c08d688e
[2]ROS学习篇(七)rostopic消息记录、回放、转.txt https://blog.csdn.net/Tansir94/article/details/81513517
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)