不同版本ROS下的多机通信(一台主机、两台及以上从机)

1、不同版本的ROS之间可以进行通讯

安装了不同版本ROS的不同设备之间是可以进行通信的,甚至可以建立一台主机和多台从机之间的联系,但从目前完成的连接来看仅能够支持主机控制一台从机。但从机之间可以获取彼此topic。

2、ROS多机通讯部署过程

2.1、将进行通讯的ROS设备置于同一个局域网内

不同的ROS系统将在同一局域网内进行通信,若通过使用路由器,则需要固定路由器分配给各个设备的IP,通过路由器设置将分配的IP地址与设备的MAC地址绑定,使路由器分配给各个设备的IP地址固定不变。以TP-LINK的易展路由器设置为例。

不同版本ROS下的多机通信(一台主机、两台及以上从机)

IP与MAC映射表(TP-LINK路由器易展版)

不同版本ROS下的多机通信(一台主机、两台及以上从机)

将路由器分配的IP与对应设备的MAC地址绑定

2.2、查看各个设备的IP地址

在Terminal窗口输入 ifconfig,查看本设备IP地址。

不同版本ROS下的多机通信(一台主机、两台及以上从机)

查看本机设备IP地址

2.3、修改hosts文件

使用 sudo gedit /etc _/_hosts 命令打开hosts文件,分别输入各个设备分配的IP地址以及对应名字,名字可自己命名,如下图,4-5行为补充内容。作为主机的设备要把所有的设备IP以及自己命名的设备名称写入文件。从机只需要填写主机和自己对应的IP、名字。

不同版本ROS下的多机通信(一台主机、两台及以上从机)

hosts文件

2.4、修改.bashrc文件

所有设备上使用命令行 sudo gedit ~/.bashrc打开.bashrc文件,在最后分别加入两行代码,如下图119-120行代码:应输入:

export ROS_HOSTNAME=本设备命名

export ROS_MASTER_URI=http://主机设备名:11311

不同版本ROS下的多机通信(一台主机、两台及以上从机)

修改.bashrc文件

2.5、远程控制小乌龟模拟

主机控制台窗口输入:roscore,启动ros

从机输入:rosrun turtlesim turtlesim_node

主机再打开新的控制台窗口,输入:rosrun turtlesim turtle_teleop_key,便可以使用主机方向键控制从机中的小乌龟移动。

不同版本ROS下的多机通信(一台主机、两台及以上从机)

笔记本为主机进行控制

P.S.本次实验使用一台Dell G5和两台DJI Manifold2-C,笔记本安装了Ubuntu20.04、ROS版本为Noetic,两台Manifold2-C预装Ubuntu16.04,ROS版本为Kinetic。不同ROS版本间不受影响,有其他教程中遇到不同版本ROS在通信时出现问题,在修改文档中设备名后添加.local得到解决。

Original: https://blog.csdn.net/qq_38620433/article/details/122083401
Author: SUNSHANGZHE
Title: 不同版本ROS下的多机通信(一台主机、两台及以上从机)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/597874/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球