ROS1 rosbag的详细使用,并且使用python来合并bag包

rosbag是ROS中用于数据录制和回放的重要工具,包括record、play、info等命令。record用于录制指定或全部topic的数据,支持多种参数如限定时间、压缩格式等。play可回放bag文件,调整播放速度、选择topics等。info提供包的详细信息。此外,还介绍了如何使用Python脚本合并多个bag文件。
该文章已生成可运行项目,

在使用ros的时候经常会用到rosbag来录制或者回放算法,是个非常有用的工具。

rosbag 命令列表

命令 作用
record 录制一个包,并且指定topic
info 总结一个包的详细信息
play 回放一个或者多个包,并且可以指定topic
check 确定一个包是否可以在当前系统中播放,或者是否可以迁移
fix 修复一个包使得它能在当前系统中播放
filter 通过python脚本转换包内容
compress 压缩包
decompress 解压缩包
reindex 重新索引一个或者多个损坏的包

record 命令使用

  • record <topic-names> # 指定一个或者多个topic来录制
$ rosbag record body_status gnss_imu
  • record -a, --all # 录制所有topic
$ rosbag record -a
  • record -e, --regex # 录制使用正则表达式匹配的topic
$ rosbag record -e "/(.*)_log/point"
  • rocord -p, -publish # (Melodic 新特性)当开始录制包时,发布一个topic=”begin_write“
$ rosbag record -p
  • record -x, --exclude # 录制时排除正则表达式匹配的topic
$ rosbag record -e "/(.*)_log/point" -x "(.*)/point"
  • record -q, --quiet # 录制时抑制指定topic的log输出
$ rosbag record -q /body_status
  • record -d, --duration # 指定topic录制最大时常
$ rosbag record -d 30 /body_status
$ rosbag record -d 3m /body_status
$ rosbag record -d 3h /body_status
  • record -o, --output-prefix # 输出包名前加上前缀
$ rosbag record -o output /topic_name /topic_name2 
  • record -O, --output-name # 指定输出包名
$ rosbag record -O output.bag /topic_name /topic_name2 
  • record --split # 每隔设定的时常或者大小分割包录制
$ rosbag record --split --size=1024 /topic_name
$ rosbag record --split --duration=30 /topic_name
$ rosbag record --split --duration=5m /topic_name
$ rosbag record --split --duration=2h /topic_name
  • record --max-splits # (Kinetic 新特性)分割包的最大个数
$ rosbag record --split --max-splits 3 --duration=30 /topic_name
  • record -b, --buffsize # 使用内部缓冲区(默认值:256MB,无限为0)
$ rosbag record -b 1024 /topic_name
  • record --chunksize # 开辟缓冲区,比buffsize更为先进(默认值: 768KB,无限为0)
$ rosbag record --chunksize=1024 /topic_name
  • record -l, --limit # 在topic中只录制指定数量的消息
$ rosbag record -l 1000 /topic_name
  • record --node # 记录指定节点订阅的所有消息
$ rosbag record --node=/node
  • record -j, --bz2 # 设置录制以bz2格式压缩
$ rosbag record -j /topic_name
  • record --lz4 # 设置录制以lz4格式压缩
$ rosbag record --lz4 /topic_name
  • record --tcpnodelay # 订阅主题时使用TCP_NODELAY传输 参考资料
  • record --udp # 订阅主题时使用UDP传输

info 指令使用

  • info <bag-files> # 查看一个或者多个包的详细信息
$ rosbag info test.bag
  • info -y, --yaml # 以yaml格式输出一个或者多个包的详细信息
$ rosbag info -y test.bag
  • info -k, --key # 查看以yaml格式输出,包内key值对应的数据
$ rosbag info -y -k topics test.bag

play 指令使用

  • play <bag_name> # 播放一个或
本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

锡城筱凯

你的鼓励是我创造的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值