摘要
通過前面一系列的鋪墊,相信大家對整個miiboo機器人的DIY有了一個清晰整體的認識。接下來就正式進入機器人大腦(嵌入式主板:樹莓派3)的開發。本章將從樹莓派3的開發環境搭建入手,為后續ros開發、slam導航及語音交互算法做准備。本章內容:
3.裝機后一些實用軟件安裝和系統設置
雖然我們順利安裝了ubuntu-mate-16.04系統,並且在系統上裝好了ROS-kinetic發行版,為了后面跟高效和便捷的開發,這里將進行一些非常實用軟件的安裝和系統設置。
3.1.開機自動登錄
裝完系統后第一次開機,會要求設置用戶名和密碼,這里應該設置用戶開機自動登錄,只有登錄后樹莓派3才能自動連接到無線網絡,從而才能遠程控制。如果裝機時已經設置了,請直接跳過這一部分;如果你搞忘記或遺漏了,沒有設置開機自動登錄,也不要緊,用下面的的方法進行自動登錄設置。
打開文件/usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greet.conf,在[seat:*]節點下修改或添加以下代碼
autologin-user=ubuntu #ubuntu是要自動登錄的用戶名
3.2.超級用戶root密碼設置
裝完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.3.擴展SWAP空間
由於后續在樹莓派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
3.4.連接wifi網絡
為了讓機器人啟動后,我們能通過網絡遠程訪問,需要給機器人配置好網絡連接,並分配靜態IP,讓機器人開機后就能自動連接wifi。關於設置的內容已經在上面安裝ros-kinetic詳細介紹了,有需要的直接前去翻閱就行。
3.5.安裝chromium瀏覽器
前一段時間,在ubuntu-mate-16.04上安裝ROS后,ubuntu-mate-16.04系統自帶的Firefox瀏覽器不能用了,Firefox最近對這個故障進行了修復。不過為了保險起見,還是推薦安裝谷歌為linux系統推出的瀏覽器chromium,跟我們平時用的聞名於世的chrome瀏覽器是差不多的。安裝很簡單,就一條命令。
sudo apt-get install chromium-browser
3.6.安裝vim、ssh工具
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.7.通過ssh遠程登錄到機器人
樹莓派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遠程登錄機器人,這樣在不同的終端下可以開啟機器人上不同的程序。
3.8.在工作PC端遠程編輯機器人上的文件
已經介紹了通過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技術交流群,一起討論學習^_^
關於我們:
視頻教程:
https://www.bilibili.com/video/av61448040