学习ROS之ROS多机ssh交互

1、环境

PC系统:Ubuntu16.04+ROS kinect

工控机NUC系统:Ubuntu16.04+ROS kinect

前提:PC和树莓派在同一局域网下;也就是都连同一个WIFI(路由器生成的那种,或者手机热点,校园网不行),或者PC连了WIFI、用根网线把树莓派和PC连起来也可以。

2、目的、作用

ssh通信:目的是通过电脑端访问树莓派,实现两者之间的文件互传、远程其他操作。

为了方便,在一台电脑可以操作两个终端。

多机分布式通信:当机器人运行后,在PC上控制、监控机器人。

为了分担树莓派的工作压力,而且ROS机器人控制,建图、导航反映在远端PC也更为人性化。

如果是在工控机端作为roscore启动的,那pc端就相当于一个节点,在发布消息,工控机在订阅pc端的消息,反之亦然.

3、SSH通信

ssh程序分为有客户端程序openssh-client和服务端程序openssh-server。

3.1 为两台电脑安装ssh服务(工控机端可操作情况):

sudo apt-get install openssh-server

pc端操作:

sudo apt-get install openssh-client

查看开启之:

sudo ps -e |grep ssh

如下则已经开启:

如果没开启,则: 

sudo service ssh start

3.3 查看IP,不用理会我的计算机名字哈,图片的跟文字的不太一样,看懂就行,改成自己的

1.先找两台机子的IP地址,终端输入

ifconfig
  • 如果电脑连接的时有线网,则显示结果中,etho 部分的 inet addr 后面就是该电脑的 IP 地址;

  • 如果电脑连接的是无线,则 wlan0 部分的 inet addr 后就是 IP 地址。

学习ROS之ROS多机ssh交互_第1张图片

2.分别了解了之后,需要在两台机子上的/etc/hosts文件加入对方的IP地址和对应的计算机名字
举例如下:
在工控机上终端操作,或者远程操工控机(计算机名为nuc):

sudo gedit /etc/hosts

这里的笔记本(计算机名为 pc )的IP地址是192.168.1.48,其实连到局域网的时候不是这个,因为编辑博客,所以连的是外网。假设就是上面的那个。
然后加上这段:

192.168.1.48  pc
127.0.0.1       localhost
127.0.1.1       pc
192.168.1.48    pc

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

工控机的就不放了,差不多。
最好ping一下,看看通信是否正常:
在工控机上:

学习ROS之ROS多机ssh交互_第2张图片

3.4.设置ROS_MASTER_URI

在ROS网络中,指定其中一台设备作为ROS master主机,那么该主机将负责运行roscore进程,其他设备必须配置ROS_MASTER_URI环境变量来指向该master主机。对于所有的设备都必须要设置的是ROS_HOSTNAME变量,这个ROS_HOSTNAME变量就是我们上面得到的zeroconf主机名。

接下来我们分别修改台式机和树莓派的home目录下的.bashrc文件,在其中增加如下框中配置,在这里我们把树莓派作为ROS master主机,所以ROS_MASTER_URI指向的是自己robot.local。我们又设置了台式机的ROS_MASTER_URI也指向robot.local,这就说明我们需要把台式机作为ROS的一个从节点设备,当然如果想修改台式机为master主机,树莓派为从节点设备的话只需要将各自的ROS_MASTER_URI中的robot.local修改为pc机的主机名pc即可。

学习ROS之ROS多机ssh交互_第3张图片

这里是借鉴:http://www.corvin.cn/635.html因为讲得比较详细

后面的测试内容参考 http://www.corvin.cn/635.html 即可.

本次教程参考的文章:

https://blog.csdn.net/wangguchao/article/details/83998666

http://www.corvin.cn/635.html

https://blog.csdn.net/hehedadaq/article/details/82898307

你可能感兴趣的:(学习ROS)