ros1的rosbag和ros2的rosbag互换

一. ros1的rosbag转换成ros2的rosbag

方法1: 使用rosbag2 plugin

安装:

sudo  apt install -y ros-foxy-rosbag2-bag-v2-plugins	ros-foxy-rosbag2-converter-default-plugins ros-foxy-rosbag2-storage ros-foxy-rosbag2-transport ros-foxy-rosbag2-storage-default-plugins ros-foxy-ros2bag

开启终端1:

source /opt/ros/noetic/setup.bash
source /opt/ros/foxy/setup.bash
ros2 bag play -s rosbag_v2 xxx.bag

开启终端2:

source /opt/ros/foxy/setup.bash
ros2 bag record -a

这里一定要注意顺序。因为我们原有的rosbag是ros1格式,用的是ros2里面的bag工具,所以要先source ROS1,再source ROS2,否则可能出现问题。开启终端1便已经将ros1的bag以ros2的形式播放出来了,可以使用ros2 topic list 查看,开启终端2是为了生成ros2 的bag便于后续直接使用.

方法2: 直接转换
参考链接:https://gitlab.com/MapIV/rosbags

安装:
pip install rosbags
 
将 rosbag1 转换为 rosbag2:
# Convert "foo.bag", result will be "foo/"
rosbags-convert foo.bag
 
# Convert "foo.bag", save the result as "bar"
rosbags-convert foo.bag --dst /path/to/bar
 
将 rosbag2 转换为 rosbag1(仅克隆存储库):
# Convert "foo", save the result as "foo.bag"
rosbags-convert-2to1 /path/to/foo
转换一些连续的 rosbag2 文件(仅克隆存储库):
# Convert "foo0" and  "foo1", save the result as "foo0.bag" and "foo1.bag"
# The sequence number in std_msgs/Header is continued from foo0.bag to foo1.bag
rosbags-convert-2to1 /path/to/foo0 /path/to/foo1

二. ros2的rosbag转换成ros1的rosbag
为了将录制的ROS2的bag包转换ROS1格式的bag包,大致流程需要以下步骤:

1.播放ros2的包
2.ros1监听到ros2播放的topic,然后再录制topic即可

1.当不需要使用自定义消息类型进行两个ROS 通信的时候,没有必要通过源码编译安装ros1_bridge
2.我们可以直接安装ros-foxy-ros1-bridge,这个库包主要是用于ros2和ros1之间的通信

sudo apt update
sudo apt install ros-foxy-ros1-bridge

3.启动 一个新的终端

source /opt/ros/noetic/setup.bash
roscore

4.再启动一个新的终端

source /opt/ros/noetic/setup.bash
source /opt/ros/foxy/setup.bash
ros2 run ros1_bridge dynamic_bridge  // --bridge-all-topics

5.再启动一个新的终端

source /opt/ros/foxy/setup.bash
ros2 bag play rosbag2_2021_05_19-11_28_34/

6.再启动一个新的终端

source /opt/ros/noetic/setup.bash
rosbag record /image /scan

7.等待录制完成即可尝试播放

rosbag play rosbag2_2021_05_19-11_28_34.bag

参考链接:
https://www.guyuehome.com/35570
https://blog.csdn.net/YOULANSHENGMENG/article/details/129300103
https://blog.csdn.net/lovely_yoshino/article/details/120646909

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值