rosbag数据记录工具命令详解

本文详细整理了ROSbag的常用命令,包括记录所有话题、指定话题录制、查询包信息、回放控制、压缩解压缩以及过滤重录等操作,旨在帮助开发者更高效地管理和使用ROSbag数据。此外,还介绍了可视化工具rqt_bag,提供图形化的交互体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经常会使用rosbag进行数据记录和回放,尽管使用时间比较长,但是有一些命令还是要经过查询后才能回忆起来。这里为了自己和大家方便,统一记录整理一些常用的指令。

1. 记录-rosbag

  • 录制所有话题
rosbag record -a

记录下的bag会以录制结束时间进行命名。

  • 录制指定话题,设置 bag 包名
rosbag record -O bag_name.bag /chatter #为文件命名
rosbag record -o bag_name /chatter #为文件名字做前缀
  • 其它录制信息
rosbag record --duration=30 /chatter #持续30s录制,还可以指定m,h,和--split类似
rosbag record --split --size=1024 /chatter #空间达到1024M后分文件存储
rosbag record --split --duration=30 /chatter #持续时间到30s后分文件存储
rosbag record --split --duration=5m /chatter #持续时间到5m后分文件存储
rosbag record --split --duration=2h /chatter#持续时间到2h后分文件存储
rosbag record -l 1000 /chatter  # 录制该主题1000个消息限制

2. 查询信息-info

  • 显示包中的信息
rosbag info bag_name.bag
  • 以频率形式显示包中的话题信息
rosbag info bag_name.bag --freq
  • 以yaml形式显示话题信息
rosbag info bag_name.bag -y
#或者
rosbag info bag_name.bag --yaml

3. 回放信息-play

  • 原始信息播放
rosbag play bag_name.bag
  • 开始播放立刻暂停,按空格继续:
rosbag play --pause bag_name.bag
  • 播放多个bag

同时播放bag时,播放bag的顺序与录制的顺序相同,由于我们的bag录制文件并不是同一时间录制,因此bag录制文件会因录制顺序不同播放顺序也不同,同时两个录制文件播放的时间间隔等于两个录制文件录制的时间间隔。

rosbag play bag1.bag bag2.bag
  • 播放指定的多个topic
rosbag play bag_name.bag --topic /chatter1 /chatter2
#或者
rosbag play bag_name.bag --topics /chatter1 /chatter2
  • 加速或延迟播放速度
rosbag play bag_name.bag -r 2#以2倍速度播放
rosbag play bag_name.bag -r 0.5#以0.5倍速度播放
  • 指定播放起始点
rosbag play  bag_name.bag -s 5 #从5s的地方开始播放
  • 指定播放时长
rosbag play  bag_name.bag -u 250 #播放250s信息
  • 循环播放
rosbag play  bag_name.bag -l
  • 发布时钟

默认/clock话题是没有消息的

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

4. 压缩和解压缩命令-compress&decompress

  • 压缩

使用压缩命令,会将原来的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

5. 重新录制-filter

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

  • 按照topic过滤

注意topic要用单引号

rosbag filter my.bag out.bag "topic == '/tf' or topic == '/tf2'"
  • 按时间过滤
rosbag filter my.bag out.bag "t.to_sec() >= 123444.77 and t.to_sec() <= 234545.88"

6. 可视化显示工具-rqt_bag

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

rqt_bag bag_name.bag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非晚非晚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值