Ubuntu 20.04 ROS1 与 ROS2 通过 ros1_bridge 通讯

在实际开发中遇到需要 ROS1 与 ROS2 通讯的场景,查阅资料发现可以通过 ros1_bridge 这个包解决。

我的环境

  • Ubuntu 20.04
  • ros1 noetic
  • ros2 foxy

安装 ros1_bridge

source /opt/ros/foxy/setup.bash
sudo apt install ros-foxy-ros1-bridge

问题

查阅相关教程均告知,在分别运行 ROS1 与 ROS2 的节点之后,再新开一个终端,在该终端中同时刷新 ROS1 与 ROS2 环境变量,并运行 ros1_bridge 即可,如下

source /opt/ros/noetic/setup.bash
source /opt/ros/foxy/setup.bash
ros2 run ros1_bridge dynamic_bridge

看其他人说可以进行通讯,但我的没有成功,在 ROS2 中没有读取到 ROS1 的话题。

解决办法

ROS2 官网教程
通过查询 ROS2 官网教程最终找到解决办法,如下:

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

在最后一条命令添加 –bridge-all-topics 这一参数,最终成功实现 ROS1 与 ROS2 通信。

你可能感兴趣的:(ubuntu,自动驾驶)