Skip to main content

ROS Bag

ros2 bag 命令

在 ROS 2 中,ros2 bag 是一个用于记录和回放系统中话题数据的工具。

ros2 bag record

记录指定话题消息

ros2 bag record <topic_name>  # 记录单个话题消息
ros2 bag record -o <file_name> <topic_name_1 topic_name_2 ...>  # 记录多个话题消息
ros2 bag record -a  # 记录系统内所有话题消息

ros2 bag info

查看数据文件信息

ros2 bag info <file_dir_name>

ros2 bag play

回放记录下来的数据

ros2 bag play <file_dir_name>

如果记录的数据有自定义消息,则需要先配置环境变量(source your_custom_msg_workspace/install/setup.bash)

ros2 bag record 编程实现

除了上文介绍的的命令行操作,数据记录也可以通过编程实现。但我们使用不多,这里不做介绍,感兴趣的同学自行查阅。

ros2 bag 数据格式

当你使用 ros2 bag record 命令记录数据时,会产生一个文件夹。这个文件夹包含了录制的话题数据和一些元数据文件。

metadata.yaml

这是一个 YAML 格式的文件,包含了关于录制数据的元数据,比如录制的时间、话题名称、话题类型等信息。

xxx.db3

这是主要的数据文件,包含了实际记录的话题数据。这些数据是使用 SQLite 数据库格式存储的,以 .db3 扩展名保存。

你可以将这个文件夹看作一个 bag 整体,当你要回放它时,请在这个文件夹的父目录下播放它。

ros2 bag play <file_dir_name> # file_dir_name: 这个文件夹的名字