ROS分布式多机通信(主从机配置)

    由于在我们使用ROS进行机器人开发的时候,比如,调试智能车,硬件资源有限或者不能直接进行开发、计算的时候,我们常常会进行主从机配置。

    节点可以运行在不同的计算平台上,但是ROS中 只允许存在一个Master ,在多机系统中Master只能运行在一台机器上。

     以两台计算机为例,介绍分布式多机通信的配置步骤:

( 主机:studieren-GS65-Stealth-Thin-8RE,从机:nvidia-virtual-machine )

1.首先需要确定ROS多机系统中的所有计算机处于同一网络。

1.1在主机从机上查询自己的ip地址

ifconfig

 主机IP为192.168.43.92,     从机IP为192.168.43.121

1.2 在主机从机上分别添加两行内容

在终端输入

sudo gedit /etc/hosts

打开文件并添加第三行和第四行 IP-ADDRESS HOST-NAME的格式

第三行为主机

第四行为从机

(存疑,这里顺序有关系吗?感觉无关...)

 1.3 测试能够通信成功

在主机上,输入 ping 从机的ip/hostname

ping 192.168.43.121
或者
ping nvidia-virtual-machine

 在从机上,输入ping 主机的ip/hostname

ping 192.168.43.92
或者
ping studieren-GS65-Stealth-Thin-8RE

通信结果如下显示为成功,

主机:

从机:

 通信成功!

以上参考自ROS分布式多机通信(主从机配置) - 古月居

2.实现主从机在ros上的通讯

2.1在主机的~/.bashrc 文件末尾增加两行.

sudo gedit ~/.bashrc

第一行, 主机的ip,第二行,主机的ip

export ROS_HOSTNAME=192.168.43.92
export ROS_MASTER_URI=http://192.168.43.92:11311

2.2在从机的~/.bashrc 文件末尾增加两行.

第一行, 从机的ip,第二行,主机的ip

export ROS_HOSTNAME=192.168.43.121
export ROS_MASTER_URI=http://192.168.43.92:11311

2.3 对主机和从机分别 更新一下

source ~/.bashrc

2.4 应该就可以通信了,可以验证一下.

3.验证

3.1 在主机终端输入

roscore

3.2 在从机终端

rosrun turtlesim turtlesim_node

3.3 在主机终端

rosrun turtlesim turtle_teleop_key

即可在主机的键盘上控制从机上的小乌龟运动了,显示在从机上.

注意! 一定要在同一个网下!

注意! 在配置~/.bashrc 时一定要别弄乱主从机IP.就是因为这个浪费了好久!

************************************************************************************************************

                                                                       低调做事,低调做人!------来自studieren的手动小尾巴.


版权声明:本文为qq_40297851原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。