如何配置机器人ROS操作系统之间的有线和无线的局域网通信(基于ROS的主从通讯)

avatar
作者
猴君
阅读量:0

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

在ROS中,主从通信是一种基于发布/订阅模式和服务调用的通信方式。通常,一个节点充当主节点,负责发布话题或提供服务,而其他节点则作为从节点,订阅话题或请求服务。主节点可以向特定话题发布消息,从节点可以订阅该话题以接收消息。同时,主节点也可以提供服务,而从节点可以请求该服务。这种通信方式使得不同节点之间可以进行灵活的数据交换和功能调用,从而实现机器人系统中的协同工作和信息传递。

1. 主从配置前的准备工作

(1) 查看主从机的hostname

分别在各自主机和从机中,打开终端输入:

 hostname 

如下图所示,hostname为chen:

**差个图**

(2) 查看各自主机和从机的IP

分别在各自主机和从机中,打开终端输入:

ifconfig 

(3) 本教程的hostname和ip如下

   主机的hostname和ip:   chen             192.168.1.200     从机的hostname和ip:   desktop    192.168.1.106 

注意:这连接的ip和网线连接设置里的一样,主机和从机都要设置连接配置,才能主从

2. 在主机中的修改

(1) 修改主机的/.bashr文件

打开 /.bashr文件

 sudo gedit ~/.bashrc 

添加如下内容:

 export ROS_HOSTNAME=chen                  ####注意这里是填主机的hostname  export ROS_MASTER_URI=http://192.168.1.200:11311  export ROS_IP=192.168.1.200 

生效环境
终端输入:

source ~/.bashrc 

(2) 修改主机的hosts文件

注意:这步不配置的话,主从机之间只能进行话题共享,不能相互控制
打开主机的hosts文件

sudo gedit /etc/hosts 

添加如下内容:

192.168.1.106   desktop     //从机ip   hostname 

生效hosts内容
终端输入:

sudo /etc/init.d/networking restart 

或者

sudo netplan apply 

3. 在从机中的修改

(1) 修改从机的/.bashr文件

打开 /.bashr文件

 sudo gedit ~/.bashrc 

添加如下内容:

 export ROS_HOSTNAME=desktop                  export ROS_MASTER_URI=http://192.168.1.200:11311    //主机的ip 

生效环境
终端输入:

source ~/.bashrc 

(2) 修改从机的hosts文件

注意:这步不配置的话,主从机之间只能进行话题共享,不能相互控制
打开从机的hosts文件

sudo gedit /etc/hosts 

添加如下内容:

192.168.1.200   chen    //主机ip   hostname 

生效hosts内容
终端输入:

sudo /etc/init.d/networking restart 

或者

sudo netplan apply 

4. 运行ROS小乌龟测试

(1) 在主机中启动ROS的master:
终端输入:

roscore 

注意:只有主机才能成功运行roscore

(2) 在主机中运行乌龟节点:
终端输入:

rosrun turtlesim turtlesim_node 

(3) 在从机中运行键盘控制节点:

rosrun turtlesim turtle_teleop_key 

通过从机的操作键盘的上下左右键,即可看到主机的小乌龟移动,画面如下:

在这里插入图片描述

(4) 验证是否相互可以控制

  1. 从机中运行乌龟节点
  2. 主机中运行键盘控制节点
  3. 通过操作主机键盘的上下左右键,观察从机的小乌龟是否移动

总结

以上就是配置ROS主从的全部流程,上述的ros主从配置流程也适用利用局域网进行两台及其的ros主从通讯,有什么问题可以评论区留言讨论。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!