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 通信。

### 安装和配置 ROS1 on Ubuntu 20.04 #### 设置密钥源 为了确保能够顺利安装 ROS1,在开始之前需设置系统的软件源并导入仓库的公钥。对于 Ubuntu 20.04 来说,可以通过如下命令来完成这一步骤: ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' ``` 接着,通过以下命令获取官方 GPG 密钥以验证下载包的真实性[^2]。 ```bash curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - ``` #### 更新本地索引文件 更新 APT 软件包列表以便于后续操作可以找到最新版本的 ROS1 包: ```bash sudo apt-get update ``` #### 安装 ROS1 Desktop Full 版本 针对希望获得全面功能体验的开发者而言,推荐安装 `desktop-full` 变体,它包含了几乎所有的核心组件以及图形化工具集。执行下面这条指令即可实现这一目标: ```bash sudo apt install ros-noetic-desktop-full ``` 此过程可能耗时较长,请耐心等待直至完成安装[^1]。 #### 配置环境变量 为了让终端识别新安装好的 ROS 命令,建议将下列语句追加到个人用户的 `.bashrc` 文件末尾处: ```bash source /opt/ros/noetic/setup.bash ``` 之后重新加载该脚本或者重启终端窗口使更改生效。 #### 初始化 rosdep 工具 Rosdep 是一个用于解析依赖关系的小型实用程序,有助于简化项目构建流程中的依赖管理任务。初始化及同步数据库的操作可通过这两条简单的命令达成: ```bash sudo rosdep init && rosdep update ``` 以上步骤完成后即代表成功完成了在 Ubuntu 20.04 上部署 ROS1 的全过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值