Skip to content

ROS Bag 转换为 ROS2 Bag#

使用 rosbags 工具将 ROS1 .bag 转换为 ROS2 .db3 格式

适用场景#

  • 推荐:标准消息类型、简单数据结构、快速转换
  • 不适用:大量自定义消息类型、复杂数据结构

优缺点#

优点 缺点
设置简单,无需编写代码 对自定义消息支持有限
自动处理标准消息类型 大文件可能不稳定
支持批量转换 无法精细控制转换过程

前置要求#

  • 系统:Linux (Ubuntu 18.04+) 或 WSL2
  • Python:3.9+
  • ROS 2:已安装

依赖检查#

python3 --version
pip3 --version

安装#

pip3 install rosbags

# 验证
rosbags-convert --help

转换#

# 基本语法
rosbags-convert --src <input.bag> --dst <output_path>

# 示例
rosbags-convert --src my_ros1_bag.bag --dst .

验证#

# 查看转换后的 bag
ros2 bag info my_converted_bag

# 列出主题
ros2 bag info my_converted_bag | grep -E "Topic|Type"

# 播放验证
ros2 bag play my_converted_bag

常见问题#

消息类型不兼容#

# 跳过有问题的主题
rosbags-convert --src original.bag --dst ./output/ --topics /topic1,/topic2

权限问题#

chmod 644 *.bag

参考#