背景介绍

多机通信是ROS的基础能力之一,相比于ROS1,ROS2通过非常简单的配置即可实现多机通信。

对于两个安装了ROS2(或者地平线的TogetherROS)的设备,设备的IP地址在同一网段,并且ROS_DOMAIN_ID相同(如果不设置,默认是0),即可实现设备之间通过ROS2通信。

下面介绍X3派和PC虚拟机都连接无线wifi网络的情况下,通过ROS2实现跨设备通信。

准备工作

X3派

PC虚拟机

  • PC宿主机为windows,使用VMware workstation 15.5举例说明。
  • 虚拟机已安装Ubuntu 20.0.4系统。
  • 虚拟机已安装ROS2 Foxy。

操作方法

  • PC宿主机断开有线连接,和X3派连接同一wifi。
  • 虚拟机网络设置成桥接&复制物理网络连接状态:
  • 启动虚拟机。

结果分析

查看X3派的IP地址:

查看PC虚拟机中Ubuntu的IP地址:

连接同一wifi后,X3派和PC虚拟机中Ubuntu的IP地址相同。开始测试X3派和PC虚拟机之间通过ROS2进行通信。

X3派发布消息:

PC端订阅消息:

可以看到,PC端的ROS2 Foxy订阅到了X3派TogetherROS发布的消息,说明两个设备在连接同一wifi的情况下,通过ROS2跨设备通信成功。

本文转自地平线开发者社区

原作者:zhuk

原链接:https://developer.horizon.ai/forumDetail/98129467158916230