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端實現了監控與控制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章