ROS—基于树莓派的ROS机器人ssh通信,以及多机分布式通信

1、环境

PC系统:Ubuntu16.04+ROS kinect

树莓派系统:Ubuntu16.04+ROS kinect

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

注:PC连接的网络要设置为共享模式,即编辑连接,在IPV4设置里把方法(Method)改为与其他计算机共享网络(Shared to other computers)。

2、目的、作用

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

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

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

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

3、SSH通信

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

3.1 为两台电脑安装ssh服务(树莓派可操作情况):

$ sudo apt-get install openssh-server

查看开启之:

$ sudo ps -e |grep ssh

如下则已经开启: 

如果没开启,则: 

$ sudo service ssh start

3.2 修改配置文件

输入命令

$ sudo gedit /etc/ssh/sshd_config

把配置文件中的"PermitRootLogin without-password"加一个"#"号注释掉,再增加一句"PermitRootLogin yes",保存文件,是为了允许root用户登录。 

3.3 查看IP

点击右上角的网络图标,看到最下面的连接信息(Connection Information)或者终端输入:ifconfig 查看当前IP,同样方法查看树莓派IP(树莓派可操作),如若树莓派没东西操作,就在电脑端执行以下操作:

(1)通过电脑端ip地址寻找网线另一端raspberry pi的ip地址,用到nmap软件。 
打开terminal,输入如下命令: 

$ sudo apt-get install nmap 

(2)安装完成后根据你之前获得的电脑端ip地址,以192.168.1.100为例,终端输入如下命令进行搜索; 

$nmap 192.168.1.0/24 

一般第二个IP地址即为raspberry pi的ip地址:

第二个IP192.168.1.101就是树莓派的 

3.4 PC终端输入:

$ ssh [email protected]

上面的pibot是树莓派名,@后面就是树莓派的IP地址。

OK

4、分布式多机通信

树莓派为主机;PC为从机;

4.1 修改hosts文件

PC端:

sudo gedit /etc/hosts

加两行:

树莓派端一样。

4.2 ping一下

4.3 设置ROS-MASTER-URI

编辑.bashrc文件

gedit .bashrc

PC端和树莓派都加1行:

export ROS_MASTER_URI='http://192.168.1.101:11311'

保存退出。source一下

source .bashrc

4.4 测试

树莓派运行rosmaster(在PC上SSH操作即可)

roscore

PC运行小乌龟节点

rosrun turtlesim turtlesim_node

PC另一个终端运行键盘控制节点:

rosrun turtlesim turtlesim_teleop_key

 PC端实现了监控与控制

猜你喜欢

转载自blog.csdn.net/wangguchao/article/details/83998666