提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
在ROS中,主从通信是一种基于发布/订阅模式和服务调用的通信方式。通常,一个节点充当主节点,负责发布话题或提供服务,而其他节点则作为从节点,订阅话题或请求服务。主节点可以向特定话题发布消息,从节点可以订阅该话题以接收消息。同时,主节点也可以提供服务,而从节点可以请求该服务。这种通信方式使得不同节点之间可以进行灵活的数据交换和功能调用,从而实现机器人系统中的协同工作和信息传递。
分别在各自主机和从机中,打开终端输入:
hostname 如下图所示,hostname为chen:

分别在各自主机和从机中,打开终端输入:
ifconfig 主机的hostname和ip: chen 192.168.1.200 从机的hostname和ip: desktop 192.168.1.106 注意:这连接的ip和网线连接设置里的一样,主机和从机都要设置连接配置,才能主从
打开 /.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 注意:这步不配置的话,主从机之间只能进行话题共享,不能相互控制
打开主机的hosts文件
sudo gedit /etc/hosts 添加如下内容:
192.168.1.106 desktop //从机ip hostname 生效hosts内容
终端输入:
sudo /etc/init.d/networking restart 或者
sudo netplan apply 打开 /.bashr文件
sudo gedit ~/.bashrc 添加如下内容:
export ROS_HOSTNAME=desktop export ROS_MASTER_URI=http://192.168.1.200:11311 //主机的ip 生效环境
终端输入:
source ~/.bashrc 注意:这步不配置的话,主从机之间只能进行话题共享,不能相互控制
打开从机的hosts文件
sudo gedit /etc/hosts 添加如下内容:
192.168.1.200 chen //主机ip hostname 生效hosts内容
终端输入:
sudo /etc/init.d/networking restart 或者
sudo netplan apply (1) 在主机中启动ROS的master:
终端输入:
roscore 注意:只有主机才能成功运行roscore
(2) 在主机中运行乌龟节点:
终端输入:
rosrun turtlesim turtlesim_node (3) 在从机中运行键盘控制节点:
rosrun turtlesim turtle_teleop_key 通过从机的操作键盘的上下左右键,即可看到主机的小乌龟移动,画面如下:

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