ROS 2中db3格式的数据包支持的较早,也是默认保存的格式,如何转换为mcap呢?

0. ROS1 bag和ROS2的包文件互相转换

参考

rosbags-convert --src ros1_bag.bag --dst ros2_bag_dir

1. mcap工具

  1. 安装mcap支持
    直接在官方发布地址下载对应版本的mcap的编译后的文件即可
  2. 安装ROS2支持
sudo apt install ros-humble-rosbag2-storage-mcap
  1. 根据官方教程转换文件

优点:全局时间戳保持不变

2. 播放录制法

  1. 录制mcap
ros2 bag record </topic> -s mcap
  1. 播放db3
ros2 bag play <.db3文件> --clock

注意:也可能需要安装第1种方法的ROS 2支持。

缺点:录制过程中帧对应的包的全局时间戳(注意,不是topic自己内部的时间戳)会改变,因为即便使用仿真时间,读取原db3文件并发出之后,ros2 bag record接受的时候总是存在延时,且这个延时可能会根据系统资源的占用情况而抖动。而记录的全局时间戳是以接收到该topic时的系统(或仿真)时间戳为准。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐