經過前面一系列的鋪墊,相信你們對整個miiboo機器人的DIY有了一個清晰總體的認識。接下來就正式進入機器人大腦(嵌入式主板:樹莓派3)的開發。本章將從樹莓派3的開發環境搭建入手,爲後續ros開發、slam導航及語音交互算法作準備。本章內容:html
1.安裝系統ubuntu_mate_16.04python
2.安裝ros-kineticlinux
3.裝機後一些實用軟件安裝和系統設置nginx
5.Android手機端與robot端ROS網絡通訊chrome
6.樹莓派USB與tty串口號綁定django
7.開機自啓動ROS節點ubuntu
雖然咱們順利安裝了ubuntu-mate-16.04系統,而且在系統上裝好了ROS-kinetic發行版,爲了後面跟高效和便捷的開發,這裏將進行一些很是實用軟件的安裝和系統設置。vim
裝完系統後第一次開機,會要求設置用戶名和密碼,這裏應該設置用戶開機自動登陸,只有登陸後樹莓派3才能自動鏈接到無線網絡,從而才能遠程控制。若是裝機時已經設置了,請直接跳過這一部分;若是你搞忘記或遺漏了,沒有設置開機自動登陸,也沒關係,用下面的的方法進行自動登陸設置。centos
打開文件/usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greet.conf,在[seat:*]節點下修改或添加如下代碼
autologin-user=ubuntu #ubuntu是要自動登陸的用戶名
裝完ubuntu-mate-16.04系統後,root用戶默認是沒有密碼的;用普通用戶ubuntu的sudo權限去設置root用戶的密碼。
反正咱們是用於學習,出於方便記憶的考慮,因此和以前設置ubuntu的用戶名和密碼同樣,這裏設置root的用戶名和密碼也同樣,也就是root用戶的密碼也是root。
ubuntu@ubuntu-desktop:~$ sudo passwd root [sudo] password for ubuntu: #鍵入ubuntu密碼 Enter new UNIX password: #鍵入root新密碼 Retype new UNIX password: #確認root新密碼 passwd: password updated successfully
root密碼設置成功後,su root登陸進去驗證一下,若是能登陸就設置成功了。
因爲後續在樹莓派3上須要編譯一些大型的程序和運行復雜的SLAM算法,默認的物理內存1GB是不夠用的,經常形成卡機死機等現象,這裏須要添加SWAP擴展空間,其實就是當系統內存不足時會用硬盤上SWAP分區做爲虛擬內存。
因爲個人microSD卡是32GB的,因此能夠多分配一些給SWAP,因此分配4GB給SWAP空間。具體步驟:
#先關閉swap cd /var sudo swapoff /var/swap #重設swap大小1M*4096=4GB,會花較長時間,請耐心等待 sudo dd if=/dev/zero of=swap bs=1M count=4096 #格式化 sudo mkswap /var/swap #開啓swap sudo swapon /var/swap #設置開機啓動,在/etc/fstab文件中添加以下代碼 /var/swap swap swap defaults 0 0 #查看當前已生效的swap swapon -s #查看當前swap使用狀況 free -m
爲了讓機器人啓動後,咱們能經過網絡遠程訪問,須要給機器人配置好網絡鏈接,並分配靜態IP,讓機器人開機後就能自動鏈接wifi。關於設置的內容已經在上面安裝ros-kinetic詳細介紹了,有須要的直接前去翻閱就行。
前一段時間,在ubuntu-mate-16.04上安裝ROS後,ubuntu-mate-16.04系統自帶的Firefox瀏覽器不能用了,Firefox最近對這個故障進行了修復。不過爲了保險起見,仍是推薦安裝谷歌爲linux系統推出的瀏覽器chromium,跟咱們平時用的聞名於世的chrome瀏覽器是差很少的。安裝很簡單,就一條命令。
sudo apt-get install chromium-browser
vim是Linux中一款很經典的代碼文本編輯器,不管是本地仍是遠程編輯文本都很強大;ssh功能很強大,不緊能夠提供用戶遠程登陸控制系統和編輯文件,還提供命令終端下的scp遠程文件傳輸。安裝很簡單,幾條命令就搞定。
#安裝vim sudo apt-get install vim
#安裝ssh服務端 sudo apt-get install openssh-server #開啓ssh服務 sudo service ssh start #設置開機自啓動ssh服務,在開機自啓動腳本/etc/rc.local加入下面這條命令, #注意加入位置是在exit 0這一句以前 service ssh start #檢查ssh是否啓動,使用下面命令 ps -e | grep ssh 若是輸出中含有ssh-agent和sshd就說明成功了
樹莓派3主板是安裝在miiboo機器人上的,因爲機器人要在地上自由移動,給機器人上的樹莓派配一個HDMI顯示器和鼠標鍵盤用於程序調試顯然是不方便的。一個很好的方法是,工做端PC和機器人鏈接到同一個路由器完成局域網組網,而後在PC端用ssh遠程登陸到機器人,這樣就能夠在工做PC端對機器人上的程序和文件進行調試開發了。
ssh遠程登陸方法:
#在PC端上打開終端,ssh遠程登陸機器人, #ubuntu爲登陸用戶名,192.168.0.117爲登陸機器的IP,根據實際替換 ssh ubuntu@192.168.0.117 #退出ssh遠程登陸 exit
一旦PC端打開的終端窗口ssh遠程登陸機器人後,就能夠在該終端下像在機器人上使用終端同樣進行操做了。PC端能夠打開多個終端窗口ssh遠程登陸機器人,這樣在不一樣的終端下能夠開啓機器人上不一樣的程序。
已經介紹了經過ssh遠程登陸機器人的方法,其實能夠直接在登入的終端下用vim對機器人上的文件進行查看編輯。可是,若是須要同時編輯多個文件,或對一個軟件項目源碼進行編輯,vim就不方便了。
這裏推薦在PC端安裝IDE開發工具(比較推薦atom,不過sublime text也不錯,根據我的喜愛選擇吧),而後將機器人上的系統文件夾遠程掛載在PC端系統,這樣就能夠在PC端上用IDE開發工具直接對遠程掛載過來的文件及文件夾進行編輯了。
在PC端安裝IDE開發工具atom很簡單,直接在ubuntu軟件中搜索atom,而後點擊安裝就好了,如圖21。
(圖21)在PC端安裝IDE開發工具atom
將機器人上的系統文件夾遠程掛載在PC端系統,首先打開[文件]管理器,找到左側欄的[鏈接到服務器],在服務器地址欄輸入遠程文件地址(如sftp://192.168.0.117/home/ubuntu,這裏的sftp是協議,192.168.0.117是遠程設備IP地址,/home/ubuntu是遠程設備中想要被掛載的文件夾請根據實際替換),而後點擊[鏈接],這是須要輸入遠程設備的登陸名和密碼,如圖22。
(圖22)將機器人上的系統文件夾遠程掛載在PC端系統
掛載好後,就可使用各類咱們喜歡的編輯工具對文件夾中的文件進行編輯了,如圖23,不過遠程文件系統掛載會比較佔用網路帶寬,不用時建議儘可能斷開。
(圖23)掛載好後的遠程文件夾
------SLAM+語音機器人DIY系列【目錄】快速導覽------
第1章:Linux基礎
第2章:ROS入門
第3章:感知與大腦
第4章:差分底盤設計
第5章:樹莓派3開發環境搭建
第6章:SLAM建圖與自主避障導航
2.google-cartographer機器人SLAM建圖
第7章:語音交互與天然語言處理
第8章:高階拓展
2.centos7下部署Django(nginx+uwsgi+django+python3)
----------------文章將持續更新,敬請關注-----------------
若是你們對博文的相關類容感興趣,或有什麼技術疑問,歡迎加入下面的《SLAM+語音機器人DIY》QQ技術交流羣,一塊兒討論學習^_^
關於咱們:
視頻教程: