ROSbag
简介
-
rosbag是一套用于记录和回放ROS话题的工具。它旨在提高性能,并避免消息的反序列化和重新排序。rosbag package提供了命令行工具和代码API,可以用C++或者python来编写包。而且rosbag命令行工具和代码API是稳定的,始终保持向后的兼容性
-
.bag文件可以保存ros系统运行过程中产生的话题和服务数据,并可以播放出来以供其他系统使用,有种仿真器的感觉,在使用别人数据集的过程中十分有用
-
bag提供了一个途径,工作原理便是将正在运行的ROS系统中的数据记录到一个.bag文件中,然后回放这些数据,以在运行的系统中产生类似的数据流
常见命令
- rosbag 工具可以录制一个包、从一个或多个包中重新发布消息、查看一个包的基本信息、检查一个包的消息定义,基于 Python 表达式过滤一个包的消息,压缩和解压缩一个包以及重建一个包的索引
命令 |
作用 |
check |
确定一个包是否可以在当前系统中运行,或者是否可以迁移 |
decompress |
解压缩一个或多个包文件 |
compress |
压缩一个或多个包文件 |
fix |
在包文件中修复消息,以便在当前系统中回放 |
help |
获取相关命令指示帮助信息 |
info |
显示一个或多个包文件的内容 |
play |
以一种时间同步的方式回放一个或多个包文件的内容 |
record |
用指定话题的内容记录一个包文件 |
reindex |
重新索引一个或多个损坏的包文件 |
录制数据(创建bag文件)
| rosbag record -O bag_name.bag /topic1_name /topic2_name |
| |
- 不设置包名(默认是以年份、日期和时间开头且扩展名是.bag的文件)
| rosbag record /topic1_name /topic2_name |
回放bag文件
| rosbag play --pause record.bag |
| rosbag play --clock recorded1.bag |
| rosbag play -r 0.5 record.bag |
| |
| rosbag play -l record.bag |
修复损坏的bag文件
注意,每个 bag 文件(扩展名为 .orig.bag)在重新索引 bag 之前都会进行备份。 如果备份文件已存在(并且未指定 -f 选项),则该工具将不会重新索引该文件
其他
rosbag info
rosbag info 显示bag文件中的可读摘要,包括开始和结束时间,话题的名称及其类型,消息数量、频率以及压缩统计信息
例如:
| $ rosbag info foo.bag |
| path: foo.bag |
| version: 2.0 |
| duration: 1:38s (98s) |
| start: Dec 10 2014 20:08:35.83 (1418270915.83) |
| end: Dec 10 2014 20:10:14.38 (1418271014.38) |
| size: 865.0 KB |
| messages: 12471 |
| compression: none [1/1 chunks] |
| types: geometry_msgs/Twist [9f195f881246fdfa2798d1d3eebca84a] |
| rosgraph_msgs/Log [acffd30cd6b6de30f120938c17c593fb] |
| turtlesim/Color [353891e354491c51aabe32df673fb446] |
| turtlesim/Pose [863b248d5016ca62ea2e895ae5265cf9] |
| topics: /rosout 4 msgs : rosgraph_msgs/Log (2 connections) |
| /turtle1/cmd_vel 169 msgs : geometry_msgs/Twist |
| /turtle1/color_sensor 6149 msgs : turtlesim/Color |
| /turtle1/pose 6149 msgs : turtlesim/Pose |
| rosbag info -y bag_name.bag |
| rosbag info -y -k duration bag_name.bag |
rosbag compresss
rosbag compress 是一个用于压缩bag文件的命令行工具。在压缩bag文件之前备份每个bag文件(扩展名为 .orig.bag)。 如果备份文件已存在(并且未指定 -f 选项),则该工具将不会压缩该文件。目前支持两种格式:BZ2 和 LZ4。 默认选择 BZ2
| rosbag compress --lz4 *.bag |
rosbag decompress
rosbag decompress 是一个用于解压缩bag文件的命令行工具。 它会自动确定bag使用的压缩格式。每个bag文件(扩展名为 .orig.bag)在被解压之前进行备份。 如果备份文件已存在(并且未指定 -f 选项),则该工具将不会解压缩该文件
拾遗
更多关于ROSbag的信息,建议参考ROS Wiki
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!