Ubuntu24树莓派5(ROS2)与Ubuntu20笔记本(ROS Noetic)跨版本ROS通信咨询
跨ROS版本(ROS2 ↔ ROS Noetic)通信可行方案
可以实现树莓派ROS2与笔记本ROS Noetic的跨版本通信,以下是两种经过验证的可行方案:
方案一:官方ROS1-ROS2桥接工具(ros1_bridge)
这是ROS官方提供的跨版本桥接方案,适合标准消息或自定义消息的直接映射。
实施步骤(推荐在笔记本上部署桥接节点)
- 笔记本端准备
- 保留已有的ROS Noetic,额外安装ROS2 Humble(Ubuntu20官方支持的LTS版本),确保ROS1和ROS2的环境变量可分别加载(比如通过
source /opt/ros/noetic/setup.bash和source /opt/ros/humble/setup.bash)。 - 安装ros1_bridge:
sudo apt install ros-humble-ros1-bridge - 网络配置:
- 确保树莓派与笔记本在同一局域网,互相能ping通。
- 设置ROS1环境变量:
export ROS_MASTER_URI=http://<笔记本IP>:11311(笔记本自身也需设置)。 - 设置ROS2环境变量:
export ROS_DOMAIN_ID=1(树莓派ROS2环境需设置相同ID)。
- 保留已有的ROS Noetic,额外安装ROS2 Humble(Ubuntu20官方支持的LTS版本),确保ROS1和ROS2的环境变量可分别加载(比如通过
- 启动桥接
- 先启动ROS1核心:
roscore。 - 在笔记本的终端中同时加载ROS1和ROS2环境变量,然后运行动态桥接:
source /opt/ros/noetic/setup.bash source /opt/ros/humble/setup.bash ros2 run ros1_bridge dynamic_bridge --bridge-all-topics
- 先启动ROS1核心:
- 树莓派ROS2端操作
- 部署ROS2(推荐Iron版本,适配Ubuntu24),设置环境变量:
export ROS_DOMAIN_ID=1 export ROS_IP=<树莓派IP> - 发布测试消息:
ros2 topic pub /chatter std_msgs/String "data: 'Hello from Raspberry Pi ROS2'"
- 部署ROS2(推荐Iron版本,适配Ubuntu24),设置环境变量:
- 验证
- 在笔记本终端运行ROS1命令:
rostopic echo /chatter,即可看到来自ROS2的消息。
- 在笔记本终端运行ROS1命令:
注意事项
- 自定义消息需在ROS1和ROS2两端定义完全一致的消息结构,然后重新编译ros1_bridge才能支持。
- 若树莓派需订阅ROS1消息,仅需调整桥接方向,逻辑一致。
方案二:MQTT中间件中转
适合不想在单设备上部署双ROS版本的场景,通过MQTT broker作为中间层转发消息。
实施步骤
- 部署MQTT Broker
- 在笔记本或树莓派上安装Mosquitto:
sudo apt install mosquitto mosquitto-clients sudo systemctl enable --now mosquitto
- 在笔记本或树莓派上安装Mosquitto:
- 树莓派ROS2端配置
- 安装ROS2的MQTT桥接包:
sudo apt install ros-iron-mqtt-bridge - 创建配置文件,将目标ROS2话题(如
/chatter)映射到MQTT主题(如ros2/chatter),指定MQTT broker地址为笔记本IP。 - 启动MQTT桥接节点。
- 安装ROS2的MQTT桥接包:
- 笔记本ROS1端配置
- 安装ROS1的MQTT桥接包:
sudo apt install ros-noetic-mqtt-bridge - 创建配置文件,将MQTT主题
ros2/chatter映射到ROS1话题/chatter,指定MQTT broker地址。 - 启动MQTT桥接节点。
- 安装ROS1的MQTT桥接包:
- 验证
- 树莓派发布ROS2话题后,笔记本通过
rostopic echo /chatter即可收到消息。
- 树莓派发布ROS2话题后,笔记本通过
通用注意事项
- 关闭两台设备的防火墙,或开放对应端口(ROS1默认11311,Mosquitto默认1883,ROS2 DDS需确保同一DOMAIN_ID下的网络连通)。
- 消息类型必须完全匹配,否则会出现解析失败的情况。
内容的提问来源于stack exchange,提问作者李嘉雷
相关产品推荐
相关产品推荐

