【自己動(dòng)手做一臺(tái)SLAM導(dǎo)航機(jī)器人】第一章:Linux基礎(chǔ)

本專欄目錄:
第一章:Linux基礎(chǔ)
第二章:ROS入門
第三章:感知與大腦
第四章:差分底盤設(shè)計(jì)
第五章:樹(shù)莓派3開(kāi)發(fā)環(huán)境搭建
第六章:SLAM建圖與自主避障導(dǎo)航
第七章:語(yǔ)音交互與自然語(yǔ)言處理
附錄A:用于ROS機(jī)器人交互的Android手機(jī)APP開(kāi)發(fā)
附錄B:用于ROS機(jī)器人管理調(diào)度的后臺(tái)服務(wù)器搭建
附錄C:如何選擇ROS機(jī)器人平臺(tái)進(jìn)行SLAM導(dǎo)航入門
視頻教程
https://www.bilibili.com/video/BV1jS4y1a7Lz

由于機(jī)器人SLAM、自動(dòng)導(dǎo)航、語(yǔ)音交互、機(jī)械臂控制這一系列的算法都在機(jī)器人操作系統(tǒng)ROS中有很好的支持,所以后續(xù)的章節(jié)中都會(huì)使用ROS來(lái)組織構(gòu)建代碼;而ROS又是安裝在Linux發(fā)行版ubuntu系統(tǒng)之上的,先學(xué)一些Linux命令行相關(guān)的知識(shí),對(duì)后續(xù)ROS教程的快速上手會(huì)大有幫助。由于后續(xù)ROS的開(kāi)發(fā)都是在Linux發(fā)行版ubuntu系統(tǒng)上進(jìn)行,所以本章節(jié)就以u(píng)buntu系統(tǒng)為例,對(duì)Linux命令行相關(guān)的知識(shí)進(jìn)行展開(kāi)講解,本章節(jié)主要內(nèi)容:
1.Linux簡(jiǎn)介
2.安裝Linux發(fā)行版ubuntu系統(tǒng)
3.Linux命令行基礎(chǔ)操作

下面這本書是本篇文章的參考文獻(xiàn),大家有需要可以入手一本:

1.Linux簡(jiǎn)介
Linux是一個(gè)開(kāi)源、免費(fèi)的操作系統(tǒng),它以強(qiáng)大的安全、穩(wěn)定、多并發(fā)性能得到業(yè)界的廣泛認(rèn)可,目前l(fā)inux被使用在很多中大型,甚至巨型項(xiàng)目中。很多軟件公司考慮到開(kāi)發(fā)成本,都選用linux,在中國(guó)軟件公司得到廣泛的使用。
1.1.Linux系統(tǒng)組成

Linux操作系統(tǒng)的核心為L(zhǎng)inus Torvalds開(kāi)發(fā)的內(nèi)核(Kernel),Linux內(nèi)核之上的組件分為幾部分:一部分是GNU的組件(如gcc、bash等);另一些重要組成部分則來(lái)自UC Berkeley分校的BSD Unix項(xiàng)目和麻省理工學(xué)院的X Windows項(xiàng)目,以后在這之后成千上萬(wàn)的程序員開(kāi)發(fā)的應(yīng)用程序等,Linux代碼貢獻(xiàn)者見(jiàn)圖2。

1.2.Linux的版本
Linux的發(fā)行版就是將Linux內(nèi)核和應(yīng)用軟件打成一個(gè)包。內(nèi)核版并不能直接使用,需要進(jìn)行包裝后用戶才能更直接的使用。各個(gè)廠商針對(duì)Linux的內(nèi)核所發(fā)布的各自的發(fā)行版,用戶可以直接使用操作。幾種常見(jiàn)的發(fā)行版見(jiàn)圖3所示。

2.安裝Linux發(fā)行版ubuntu系統(tǒng)
如果已經(jīng)在物理機(jī)電腦上安裝了ubuntu系統(tǒng)的朋友,可以直接跳過(guò)這一節(jié)的講解,直接看下一節(jié)關(guān)于Linux命令行的講解。
考慮到大部分朋友平時(shí)都使用windows系統(tǒng)進(jìn)行學(xué)習(xí)和辦公,方便起見(jiàn),強(qiáng)烈推薦在windows系統(tǒng)中用虛擬機(jī)運(yùn)行ubuntu系統(tǒng),進(jìn)行ubuntu的體驗(yàn)和學(xué)習(xí)。這樣做的好處是,在同一個(gè)電腦上使用ubuntu系統(tǒng)的同時(shí),又不妨礙使用物理機(jī)原來(lái)的windows系統(tǒng),兩個(gè)系統(tǒng)之間還可以實(shí)現(xiàn)文件的共享,不用擔(dān)心因初學(xué)沒(méi)經(jīng)驗(yàn)損壞ubuntu系統(tǒng)后難以重裝的麻煩。下面就以VMware虛擬機(jī)+ubuntu16.04為例,跟大家介紹安裝ubuntu的過(guò)程。
2.1.安裝VMware虛擬機(jī)
首先去VMware的官網(wǎng)https://www.vmware.com/cn.html下載安裝包,在頁(yè)面中找到“下載”按鈕,如圖4,并點(diǎn)擊進(jìn)入。

選擇Workstation Pro這個(gè)版本,如圖5。

選著一個(gè)合適自己系統(tǒng)的安裝包,我準(zhǔn)備在windows系統(tǒng)上安裝VMware,本文寫作時(shí)對(duì)應(yīng)的最新版本是Workstation 15 Pro for Windows,點(diǎn)擊“立即下載”,如圖6,等待下載完成。

下載完成后,找到文件名為“VMware-workstation-full-15.0.2-10952284.exe”的安裝包,以管理員權(quán)限運(yùn)行此安裝包,安裝方法和其他軟件安裝方法類似,首先是一個(gè)歡迎界面,如圖7,直接點(diǎn)擊“下一步”就好了。

接下來(lái)是許可證,如圖8,勾選“我接受許可協(xié)議中的條款”欄,然后點(diǎn)擊“下一步”。

接下來(lái)是安裝路徑,使用默認(rèn)的路徑就行了,如圖9,直接“下一步”。

接下來(lái),詢問(wèn)用戶體驗(yàn)設(shè)置,建議都不要勾選,如圖10,然后“下一步”。

接下來(lái),快捷方式創(chuàng)建,如圖11,默認(rèn)創(chuàng)建就行了,直接“下一步”。

接下來(lái),就可以點(diǎn)擊“安裝”,開(kāi)始安裝了。

接下來(lái),進(jìn)入安裝等待界面,如圖13,等待安裝進(jìn)度完成后,點(diǎn)擊“下一步”。

接下來(lái),這一步需要特別說(shuō)明一下,如果只是想臨時(shí)試用一下VMware的話,直接點(diǎn)擊“完成”按鈕,就可以完成試用版的安裝了;如果是想要長(zhǎng)期使用VMware的話,就需要點(diǎn)擊“許可證”按鈕,進(jìn)行接下來(lái)的注冊(cè)流程,我這里選擇點(diǎn)擊“許可證”按鈕。

接下來(lái),輸入您購(gòu)買的許可秘鑰,或者稍后輸入。

到這里,VMware的安裝就完成了,點(diǎn)擊桌面上的VMware圖標(biāo)便可以使用了。
2.2.在VMware虛擬機(jī)中安裝ubuntu系統(tǒng)
在VMware虛擬機(jī)中安裝操作系統(tǒng)的原理很簡(jiǎn)單,其實(shí)就是VMware虛擬機(jī)給你先虛擬一個(gè)物理機(jī)資源(CPU,內(nèi)存,硬盤,網(wǎng)卡等)出來(lái),然后你在這個(gè)虛擬出來(lái)的物理機(jī)資源上安裝你想運(yùn)行的操作系統(tǒng)。其實(shí)就是兩步,第一步創(chuàng)建虛擬機(jī)資源,第二步在虛擬機(jī)資源上安裝自己的操作系統(tǒng)。好了,接下來(lái)就來(lái)看看怎么具體操作了。
首先要下載好ubuntu系統(tǒng)的安裝鏡像文件(ubuntu-16.04.4-desktop-amd64.iso),這里推薦去ubuntu的官網(wǎng)下載ubuntu 16.04 Desktop這個(gè)版本,因?yàn)閡buntu 16.04 Desktop這個(gè)版本現(xiàn)在最穩(wěn)定,下載鏈接(https://www.ubuntu.com/download/alternative-downloads),如圖16,推薦迅雷進(jìn)行下載,下載完成后得到ubuntu-16.04.4-desktop-amd64.iso文件備用。

接下來(lái),點(diǎn)擊桌面上的VMware圖標(biāo),進(jìn)入后點(diǎn)擊“創(chuàng)建新的虛擬機(jī)”按鈕,如圖17。

選擇典型配置,然后點(diǎn)擊“下一步”,如圖18。

選擇“稍后安裝操作系統(tǒng)”,然后點(diǎn)擊“下一步”,如圖19。

選擇“Linux”和“Ubuntu 64位”選項(xiàng),然后點(diǎn)擊“下一步”,如圖20。

這一步是給新建的虛擬機(jī)取名稱并保存虛擬機(jī),“虛擬機(jī)名稱”欄填上你取得虛擬機(jī)名稱,“位置”欄填保存新建虛擬機(jī)的路徑,然后點(diǎn)擊“下一步”,如圖21。

這一步是給新建的虛擬機(jī)指定磁盤容量,默認(rèn)分配20GB,將虛擬磁盤拆分成多個(gè)文件,然后點(diǎn)擊“下一步”,如圖22。

這一步是確認(rèn)硬件參數(shù)設(shè)置,點(diǎn)擊“自定義硬件”可以查看硬件的詳細(xì)參數(shù)(比如內(nèi)存:2GB,網(wǎng)絡(luò)適配器:NAT,顯示器:自動(dòng)檢測(cè)),這些參數(shù)默認(rèn)參數(shù)就行了,退出查看硬件窗口,點(diǎn)擊“完成”,如圖23。

最后,看到圖24,第一步創(chuàng)建虛擬機(jī)資源的操作便完成了,接下來(lái)就是第二步在虛擬機(jī)資源上安裝自己的操作系統(tǒng)ubuntu-16.04.4-desktop-amd64.iso。

在左側(cè)欄中找到剛剛創(chuàng)建的虛擬機(jī)“Ubuntu 64位”,右鍵單擊此處后在彈出的選項(xiàng)中選擇“設(shè)置”,在彈出的選項(xiàng)中選擇“CD/DVD(SATA)”,在對(duì)應(yīng)右邊欄中選擇“使用ISO映像文件”,并點(diǎn)擊“瀏覽”找到之前下載好的文件ubuntu-16.04.4-desktop-amd64.iso,點(diǎn)擊“打開(kāi)”,點(diǎn)擊“確定”,這個(gè)時(shí)候便已經(jīng)將ubuntu鏡像文件插入虛擬機(jī)了,如圖25。

接下來(lái),點(diǎn)擊虛擬機(jī)的“開(kāi)機(jī)”按鈕,ubuntu鏡像便開(kāi)始載入,正式進(jìn)入ubuntu系統(tǒng)的安裝過(guò)程了,如圖26,接下來(lái)安裝ubuntu過(guò)程的設(shè)置和在物理機(jī)上安裝ubuntu是一樣的了。

在ubuntu開(kāi)機(jī)載入完成后,彈出的選項(xiàng)中,選擇“中文(簡(jiǎn)體)”,然后點(diǎn)擊“安裝Ubuntu”,如圖27。

這里直接使用默認(rèn)選項(xiàng),然后點(diǎn)擊“繼續(xù)”,如圖28。

選擇“清除整個(gè)磁盤并安裝Ubuntu”,這里不是真的清除物理機(jī)磁盤上的內(nèi)容,只是清除虛擬機(jī)申請(qǐng)的20GB虛擬磁盤空間,所以可以放心清除,然后點(diǎn)擊“現(xiàn)在安裝”,如圖29。

這一步是給你展示清除磁盤的具體內(nèi)容,直接點(diǎn)擊“繼續(xù)”,如圖30。

這一步是選擇時(shí)區(qū),用鼠標(biāo)在地圖中點(diǎn)擊中國(guó)區(qū)域,會(huì)自動(dòng)鎖定到Shanghai時(shí)區(qū),然后點(diǎn)擊“繼續(xù)”,如圖31。

這一步是選擇鍵盤布局,默認(rèn)設(shè)置就行了,點(diǎn)擊“繼續(xù)”,如圖32。

這一步是用戶名和登錄密碼設(shè)置,由于是用來(lái)做實(shí)驗(yàn)用,所以用戶名設(shè)置為:ubuntu64,密碼設(shè)置為:123456,選擇“自動(dòng)登錄”,然后點(diǎn)擊“繼續(xù)”,如圖33。

最后,如圖34,看到這個(gè)畫面,安裝設(shè)置就算完成了,接下來(lái)就是漫長(zhǎng)的安裝過(guò)程了,安裝全程請(qǐng)保證物理機(jī)網(wǎng)絡(luò)連接良好且能上外網(wǎng),因?yàn)榘惭b過(guò)程中需要從網(wǎng)絡(luò)中下載一些更新包,安裝進(jìn)度完成后,重啟虛擬機(jī)電源,便完成安裝了。

最后,提一提鼠標(biāo)在物理機(jī)與虛擬機(jī)之間的切換技巧,鼠標(biāo)放入虛擬機(jī)窗口區(qū)域點(diǎn)擊后便進(jìn)入虛擬機(jī)操作,Ctrl+Alt+Esc便可以將鼠標(biāo)從虛擬機(jī)切回到物理機(jī)操作了。
最后的最后,還需要安裝一個(gè)非常重要的工具VMware Tools,這個(gè)工具幫助虛擬機(jī)自動(dòng)適應(yīng)屏幕分辨率、實(shí)現(xiàn)物理機(jī)與虛擬機(jī)之間的文件復(fù)制與粘貼等重要功能。
左側(cè)欄中找到虛擬機(jī)“Ubuntu 64位”,右鍵單擊此處后在彈出的選項(xiàng)中選擇“安裝VMware Tools”,這時(shí)候會(huì)彈出安裝VMware Tools的詳細(xì)方法步驟,如圖35。

首先,點(diǎn)擊左側(cè)欄DVD圖標(biāo),將DVD中的VMwareTools-10.3.2-9925305.tar.gz拷貝到Home目錄中來(lái),拷貝文件的方法和windows系統(tǒng)的一樣,如圖36。

雙擊Home目錄下的VMwareTools安裝包,在彈出來(lái)的窗口中點(diǎn)擊“提取”,來(lái)完成對(duì)VMwareTools安裝包的解壓,如圖37。

接下來(lái),ctrl+alt+t組合鍵打開(kāi)ubuntu的命令行終端,在終端中用命令行完成VMwareTools的安裝。
$ cd vmware-tools-distrib/
$ ls
$ sudo ./vmware-install.pl
$ yes
$ 接下來(lái)一路[回車],直到安裝完成
VMwareTools的安裝完成后,重啟虛擬機(jī)電源,VMwareTools的屏幕分辨率自適應(yīng)和物理機(jī)與虛擬機(jī)之間拷貝文件等功能便生效了。
3.Linux命令行基礎(chǔ)操作
通過(guò)上面的安裝操作,我們現(xiàn)在就可以在虛擬機(jī)上體驗(yàn)ubuntu系統(tǒng)的奧妙了,按下虛擬機(jī)中的“電源”按鈕便可以給ubuntu系統(tǒng)開(kāi)機(jī)了,趕緊去試試吧。
3.1.打開(kāi)終端命令行
雖然也能像windows系統(tǒng)中用圖形交互的方式使用ubuntu系統(tǒng),但是終端命令行的交互方式在ubuntu系統(tǒng)中使用的更廣泛。所以我們得知道如何打開(kāi)ubuntu系統(tǒng)中的終端命令行,其實(shí)很簡(jiǎn)單:
方法一:右鍵->打開(kāi)終端。
方法二:Ctrl+Alt+t 或者 Ctrl+Shift+t
3.2.常用快捷鍵
(1)tab鍵
tab鍵是有兩個(gè)功能,一個(gè)一次tab命令補(bǔ)齊,另一個(gè)兩次tab提示內(nèi)容,如果我們不記得一個(gè)命令的全拼,或者不記得某個(gè)路徑的全拼,可以輸入命令的前面幾個(gè)字母,然后使用tab鍵自動(dòng)補(bǔ)齊命令或查看提示信息。
(2)Ctrl+c組合鍵
Ctrl+c中斷,強(qiáng)行打斷進(jìn)程,如果終端命令行正在執(zhí)行某個(gè)進(jìn)程的程序,這時(shí)想要中斷掉該進(jìn)程就可以使用Ctrl+c。
(3)Ctrl+d組合鍵
Ctrl+d退出,相當(dāng)于exit和quit,比如用python命令進(jìn)入python交互環(huán)境后,就可以用Ctrl+d退出python交互。
(4)Ctrl+Shift+c組合鍵和Ctrl+Shift+v組合鍵
在終端中復(fù)制粘貼時(shí),先用鼠標(biāo)選中需要復(fù)制的內(nèi)容,然后用Ctrl+Shift+c進(jìn)行復(fù)制,再用Ctrl+Shift+v進(jìn)行粘貼。
(5)圖形界面和純文本交互模式切換
Ctrl+Alt+F1~F6:純文本交互模式登入tty1~tty6終端機(jī);
Ctrl+Alt+F7:切回圖形界面。
3.3.終端命令行中一些常用符號(hào)了解
(1)用戶主目錄:~
(2)系統(tǒng)根目錄:/
(3)一般用戶提示符:$
(4)root用戶提示符:#
3.4.關(guān)機(jī)與重啟命令
(1)關(guān)機(jī)
$ sudo poweroff
(2)重啟
$ sudo reboot
3.5.目錄與文件相關(guān)命令
(1)顯示文件和目錄列表
$ ls
(2)切換目錄
$ cd <目標(biāo)目錄>
(3)顯示當(dāng)前所在工作目錄
$ pwd
(4)創(chuàng)建文件
$ touch <文件名>
(5)復(fù)制文件
$ cp <源文件路徑> <目標(biāo)文件路徑>
(6)移動(dòng)文件
$ mv <源文件路徑> <目標(biāo)文件路徑>
(7)刪除文件
$ rm <文件名>
(8)顯示文件內(nèi)容
$ cat <文件名>
(9)創(chuàng)建文件夾
$ mkdir <文件夾名>
(10)刪除文件夾
$ rmdir <文件夾名>
3.6.文件權(quán)限
(1)修改文件讀寫可執(zhí)行權(quán)限,具體權(quán)限由掩碼值決定,如777權(quán)限全開(kāi)
$ sudo chmod 777 <文件名>
(2)修改文件所有者
$ sudo chown <用戶名>:<組名> <文件名>
3.7.文件查找
(1)locate命令查找文件
$ sudo updatedb
$ locate <待查找文件名>
(2)find命令查找文件
$ find -name <待查找文件名>
3.8.網(wǎng)絡(luò)相關(guān)命令
(1)網(wǎng)絡(luò)連接與否測(cè)試
$ ping <待測(cè)目標(biāo)主機(jī)IP或域名>
(2)本地IP地址查看
$ ifconfig
(3)遠(yuǎn)程登錄到目標(biāo)主機(jī)
$?ssh <目標(biāo)主機(jī)用戶名>@<目標(biāo)主機(jī)IP地址>
3.9.系統(tǒng)軟件安裝與軟件運(yùn)行方法
(1)系統(tǒng)默認(rèn)的軟件安裝方法apt-get
$ sudo apt-get update
$ sudo apt-get install <軟件包名稱>
(2)source方法執(zhí)行系統(tǒng)腳本,比如執(zhí)行用戶默認(rèn)配置腳本.bashrc
$ source ~/.bashrc
(3)./方法執(zhí)行一般可執(zhí)行文件
$ ./<可執(zhí)行文件>
3.10.文本編輯器vim使用
(1)vim查看文件內(nèi)容
$ vim <文件名>
(2)vim進(jìn)入編輯模式
在vim查看文件內(nèi)容的界面中,按i鍵進(jìn)入編輯模式,然后就可以編輯文件的內(nèi)容了
(3)vim退出編輯模式
在vim編輯文件內(nèi)容的界面中,按Esc鍵退出編輯模式,然后就又回到查看文件內(nèi)容的界面了
(4)vim編輯內(nèi)容保存
vim在編輯完文件內(nèi)容,退出到查看文件內(nèi)容的界面后,可以輸入“:w”對(duì)編輯內(nèi)容進(jìn)行保存,也可以輸入“:wq”對(duì)編輯內(nèi)容進(jìn)行保存并退出vim
3.11.關(guān)于Linux命令行知識(shí)的學(xué)習(xí)方法建議
上面介紹的Linux命令是一些平時(shí)用的頻率比較高的,但是Linux命令的數(shù)量非常的多,并且很多命令都不常用,而且每個(gè)命令都有很多額外的參數(shù),所以想要一下子記住所有的Linux命令和使用方法是不現(xiàn)實(shí)的,也是沒(méi)有必要的。
建議大家對(duì)常用的一些Linux命令進(jìn)行學(xué)習(xí)后,Linux命令有了一個(gè)大概的整體了解。對(duì)在日后的實(shí)際工作中遇到不會(huì)的的命令,通過(guò)上網(wǎng)查找使用教程來(lái)學(xué)習(xí)和使用。
后記
為了防止后續(xù)大家找不到本篇文章,我同步制作了一份文章的pdf和本專欄涉及的例程代碼放在github和gitee方便大家下載,如果下面給出的github下載鏈接打不開(kāi),可以嘗試gitee下載鏈接:
github下載鏈接:https://github.com/xiihoo/DIY_A_SLAM_Navigation_Robot
gitee下載鏈接:https://gitee.com/xiihoo-robot/DIY_A_SLAM_Navigation_Robot
技術(shù)交流
QQ技術(shù)交流群:117698356
參考文獻(xiàn)
[1] 張虎,機(jī)器人SLAM導(dǎo)航核心技術(shù)與實(shí)戰(zhàn)[M]. 機(jī)械工業(yè)出版社,2022.
