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