1 问题的提出
在ROS/ROS2中,ROS 的 bag包的名称通常会包含录制的具体时间:YYYY-MM-DD-小时-分钟-秒钟
,但是这样可读性不强,而且过一段时间,就不知道这个包是关于什么内容的了。如果需要修改bag包的名称,该怎么操作呢?
经测试,对于ROS和ROS2有不一样的方法:
2 问题的解决
2.1 ROS中bag包重命名
ROS中对bag包的重命名非常简单,就是直接重命名,如2023-06-20-15-45-26.bag
修改为rosbag_test.bag
输入命令:
rosbag play rosbag_test.bag
即可正常播放。
2.2 ROS2中bag包的重命名
ROS2的bag包使用的时db3格式,包的结构为
rosbag2_2023_04_07-06_30_31_0
├── metadata.yaml
└── rosbag2_2023_04_07-06_30_31_0.db3
最外层是一个文件夹,里面有一个metadata.yaml文件和一个db3文件。
起初我以为修改文件夹的名称和db3的名称就可以了:
test_ros2bag
├── metadata.yaml
└── test_ros2bag.db3
但是结果是报错:
后来发现在metadata.yaml文件中,有两行涉及路径的内容:
将这两行修改为test_ros2bag.db3
:
播放成功:
因此,对于ROS2来说,其bag包名称修改需要改四个地方,并不是太推荐这种方法。
而如果想为bag包增加信息呢,我目前想到的是可以增加一个类似于README
的文件,里面记录bag包的名称和相应的备注。