关于ROS/ROS2 bag包的名称修改问题

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包的名称和相应的备注。

猜你喜欢

转载自blog.csdn.net/weixin_45910027/article/details/131309614