如何使用Ros进行多机通信

本篇文章实现多台计算机之间的ROS通讯,笔记本作为master,通过笔记本控制台式机
step1:时间同步
在笔记本和台式机上分别运行:

sudo apt-get install chrony

step2:安装ssh服务器(在笔记本和台式机上分别运行)

sudo apt-get install openssh-server

step3:在台式机和笔记本上分别获取各自的ip和hostname
获取ip:

ifconfig

如何使用Ros进行多机通信可以看出此处的ip地址为192.168.43.224
同理获取hostname

hostname

如何使用Ros进行多机通信
step4:修改/etc文件夹下的hosts文件,将两电脑的IP和主机名绑定
首先安装gksu

sudo apt-get install gksu

打开文件

gksu gedit /etc/hosts

以 IP hostname 的形式添加,如下图所示:
如何使用Ros进行多机通信注意这里ip和hostname的空白不是空格键而是TAB键
同理,在台式机上操作也是如此

step5:修改~/.bashrc文件
本文中将笔记本daniel-Lenovo-Legion-Y7000作为主机master, 通过如下命令编辑~/.bashrc文件

gedit ~/.bashrc

在笔记本这边的~/.bashrc文件最后添加

export ROS_HOSTNAME=daniel-Lenovo-Legion-Y7000
export ROS_MASTER_URI=http://daniel-Lenovo-Legion-Y7000:11311

在台式机上的~/.bashrc文件最后添加

export ROS_HOSTNAME=daniel-Vostro-270s
export ROS_MASTER_URI=http://daniel-Lenovo-Legion-Y7000:11311

step6:正式开始通讯
1.相互ping
在笔记本上ping台式机:

ping daniel-Vostro-270s

同时在台式机上运行

ping daniel-Lenovo-Legion-Y7000

两个屏幕上出现如下图所示,即表示通讯成功
如何使用Ros进行多机通信2.小例子:用笔记本来控制台式机上的小海鬼运动
在笔记本上运行

roscore

然后在台式机上运行

rosrun turtlesim turtlesim_node

最后在笔记本上运行

rosrun turtlesim draw_square

然后就会发现小海龟在屏幕上画正方形
如何使用Ros进行多机通信