rosbag 有用的指令

【ROS笔记本】——rosbag相关命令_萌新SI的博客-CSDN博客

 ROS:rosbag play系列指令(详解)-CSDN博客

也可以只记录某些感兴趣的 topic:

rosbag record /topic_name1 /topic_name2 /topic_name3

    如果要指定生成数据包的名字,则用-O /-o 参数,如下:

rosbag record -O bag_name.bag /topic_name #为文件命名
rosbag record -o bag_name /topic_name #为文件名字做前缀

开始播放立刻暂停,按空格继续:

rosbag play --pause bag_name.bag

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

rosbag play -r 2 <bagfile>

以频率形式显示包中的话题信息:

rosbag info bag_name.bag --freq

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

rosbag play <bagfile> --topic /topic_name1
#或者
rosbag play bag_name.bag --topics /topic_name1 /topic_name2

在上述播放命令执行期间,空格键可以暂停播放。

    指定播放起始点

rosbag play bag_name.bag -s 5 #从5s的地方开始播放

    指定播放时长

rosbag play bag_name.bag -u 250 #播放250s信息

发布时钟
    默认/clock话题是没有消息的。

rosbag play --clock bag_name.bag #默认/clock的话题频率100hz
rosbag play --clock --hz 200 bag_name.bag #指定/clock的时钟为200hz

五、重新录制rostopic filter

过滤时可以使用或(or)和与(and)操作。

过滤单个topic:

rosbag filter input.bag only-tf.bag "topic == '/tf'"    
#生成的tf.bag仅包含‘/tf’这一个topic

过滤多个topic:

rosbag filter input.bag output.bag "topic == '/velodyne_point_cloud' or topic =='/visensor/imu' or topic == '/visensor/left/image_raw'"  
#生成的output.bag包含‘/velodyne_point_cloud、/visensor/imu、/visensor/left/image_raw‘这三个topic

根据时间过滤:

rosbag filter input.bag output.bag "t.to_sec() <= 1284703931.86"

同时过滤topic和时间:

rosbag filter input.bag output.bag "topic == '/odometry/gps' and t.to_sec() <= 1284703931.86"

同时过滤多个topic和时间:

rosbag filter input.bag output.bag "(topic == '/velodyne_point_cloud' or topic =='/visensor/imu' or topic == '/visensor/left/image_raw') and (t.to_sec() >= 1506117983.884751 and t.to_sec() <= 1506118069.884751)"

使用压缩命令,会将原来的bag备份并重命名为.orig.bag。

#默认bz2格式压缩,特点:压缩数据小,但是慢
rosbag compress bag_name.bag
rosbag compress -j bag_name.bag

#lz4格式压缩,特点:压缩快,但是被压缩后的文件稍大
rosbag compress --lz4 bag_name.bag

    解压缩

rosbag decompress bag_name.bag

八、rosbag reindex

Rosbag 重新索引是一个命令行工具,用于修复破损的袋文件(或记录在 ROS 版本0.11之前的袋文件)如果某个包由于任何原因没有清洁地关闭,则索引信息可能已损坏。使用此工具重新读取消息数据并重新生成索引。

$ rosbag reindex old.bag

提取bag文件中的数据并保存为csv格式,提取topic的标准格式为:

rostopic echo -b <BAGFILE> -p <TOPIC> > <output>.csv 
# <BAGFILE>是bag文件,<TOPIC>为数据所在的topic

rostopic echo命令一次只能提取一个topic。

# save into .csv files
rostopic echo -b rosbag.bag -p /topic/sub_topic1 > topic1.csv

# save into .txt files
rostopic echo -b rosbag.bag -p /topic/sub_topic1 > topic1.txt

十、rosbag fix

rosbag fix old.bag repaired.bag myrules.bmr #使用规则文件恢复包文件内容

其他录制信息:

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个消息限制

    如果在 launch 文件中使用 rosbag record 命令,如下:

<node pkg="rosbag" type="record" name="bag_record" args="/topic1 /topic2"/> 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值