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: 这个文件夹的名字