在使用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># 播放一个或

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

被折叠的 条评论
为什么被折叠?



