機(jī)器人SLAM導(dǎo)航:核心技術(shù)與實(shí)戰(zhàn)
定 價(jià):149 元
叢書(shū)名:機(jī)器人工程技術(shù)叢書(shū)
- 作者:張虎
- 出版時(shí)間:2021/12/1
- ISBN:9787111697428
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP242
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
全書(shū)分為4部分。第1部分對(duì)基礎(chǔ)知識(shí)展開(kāi)講解,包括Linux基礎(chǔ)和ROS入門(mén)。第2部分主要關(guān)注一個(gè)實(shí)際的機(jī)器人中的硬件和核心傳感器模塊的構(gòu)造,重點(diǎn)講解機(jī)器人上的傳感器、差分底盤(pán)、樹(shù)莓派主板開(kāi)發(fā)方面的知識(shí)。第3部分是SLAM地圖構(gòu)建的核心算法,SLAM中的數(shù)學(xué)基礎(chǔ)、基于激光的SLAM系統(tǒng)、基于視覺(jué)的SLAM系統(tǒng)、混合SLAM系統(tǒng)、新型SLAM系統(tǒng)。第4部分是自主導(dǎo)航相關(guān)的核心技術(shù)與應(yīng)用,包括自主導(dǎo)航中的數(shù)學(xué)基礎(chǔ)、基于地圖的導(dǎo)航、基于環(huán)境探索建圖的導(dǎo)航、強(qiáng)化學(xué)習(xí)在機(jī)器人導(dǎo)航中的應(yīng)用。
通過(guò)閱讀本書(shū),讀者不僅可以自己設(shè)計(jì)出一套SLAM導(dǎo)航機(jī)器人出來(lái),還可以在軟硬件結(jié)合的環(huán)境中提高自己的C++/Python/Java方面的編程能力,同時(shí)還可以接觸到流行的SLAM算法的實(shí)際應(yīng)用。
互聯(lián)網(wǎng)和人工智能技術(shù)可以看成是對(duì)人類(lèi)大腦的進(jìn)一步延展,而機(jī)器人技術(shù)則可以看成是對(duì)人類(lèi)軀體的進(jìn)一步延展。如果人工智能技術(shù)僅僅停留在虛擬的網(wǎng)絡(luò)和數(shù)據(jù)之中,那么其挖掘并利用新知識(shí)的能力將很難擴(kuò)展開(kāi)來(lái)?梢哉f(shuō),機(jī)器人是人工智能技術(shù)應(yīng)用能力的有效延展,而能自主移動(dòng)的機(jī)器人更是極大地拓展了人工智能技術(shù)的應(yīng)用范圍。SLAM導(dǎo)航技術(shù)正是當(dāng)下實(shí)現(xiàn)機(jī)器人自主移動(dòng)的熱門(mén)研究領(lǐng)域,也是本書(shū)內(nèi)容的核心所在。
為什么寫(xiě)這本書(shū)
幫助機(jī)器人實(shí)現(xiàn)完全自主化的每一種底層技術(shù)無(wú)疑將成為“機(jī)器人時(shí)代”的基礎(chǔ)設(shè)施,其中的自主移動(dòng)技術(shù)在當(dāng)下備受矚目,其實(shí)質(zhì)就是解決從地點(diǎn)A到地點(diǎn)B的問(wèn)題。這個(gè)問(wèn)題看似簡(jiǎn)單,實(shí)則非常復(fù)雜。當(dāng)向機(jī)器人下達(dá)移動(dòng)到地點(diǎn)B的命令后,機(jī)器人不免會(huì)問(wèn)出三個(gè)頗具哲學(xué)性的問(wèn)題,即“我在哪”“我將到何處去”和“我該如何去”。經(jīng)過(guò)近幾十年來(lái)的研究,業(yè)界形成了一套有效解決機(jī)器人自主移動(dòng)的方案,即SLAM導(dǎo)航
方案。
目前以SLAM導(dǎo)航技術(shù)為支撐的自主移動(dòng)應(yīng)用已經(jīng)十分廣泛,涵蓋航天、軍事、特種作業(yè)、工業(yè)生產(chǎn)、智慧交通、消費(fèi)娛樂(lè)等眾多領(lǐng)域。典型應(yīng)用包括火星探測(cè)車(chē)、軍事機(jī)器人、特種作業(yè)機(jī)器人、農(nóng)業(yè)領(lǐng)域機(jī)器人、自動(dòng)駕駛汽車(chē)、終端物流配送機(jī)器人、機(jī)器人智慧養(yǎng)老、機(jī)器人餐廳、家庭服務(wù)機(jī)器人等。
雖然SLAM導(dǎo)航技術(shù)在許多方面取得了突破,但其仍處于發(fā)展階段且尚未真正落地。這就需要有更多的人參與到這個(gè)龐大且深?yuàn)W的項(xiàng)目中來(lái),以加快技術(shù)突破和產(chǎn)品落地的速度。而機(jī)器人是多專(zhuān)業(yè)知識(shí)交叉的學(xué)科,通常涉及傳感器、驅(qū)動(dòng)程序、多機(jī)通信、機(jī)械結(jié)構(gòu)、算法等眾多領(lǐng)域。這就導(dǎo)致各個(gè)領(lǐng)域的研究、開(kāi)發(fā)人員都在自己熟悉的領(lǐng)域內(nèi)“閉門(mén)造車(chē)”,缺乏領(lǐng)域之間的必要交流與實(shí)踐。軟件層面的開(kāi)發(fā)者由于缺乏對(duì)機(jī)器人傳感器、機(jī)器人主機(jī)和機(jī)器人底盤(pán)的系統(tǒng)性認(rèn)識(shí),因此往往會(huì)在涉及軟硬件深度優(yōu)化方面的問(wèn)題時(shí)束手無(wú)策。而硬件層面的開(kāi)發(fā)者由于缺乏軟件方面的基礎(chǔ),因此經(jīng)常會(huì)在理解軟件層需求時(shí)出現(xiàn)偏差。由于缺乏相關(guān)的數(shù)學(xué)理論體系,因此ROS及硬件相關(guān)領(lǐng)域的開(kāi)發(fā)人員大多只能充當(dāng)“調(diào)參俠”,很難對(duì)SLAM導(dǎo)航方面的算法提出實(shí)質(zhì)性的改善建議。缺乏工程思維和實(shí)踐經(jīng)驗(yàn),SLAM算法或?qū)Ш剿惴ǚ矫娴难芯咳藛T則很難將研究成果真正落地。
可以說(shuō),機(jī)器人SLAM導(dǎo)航是一個(gè)軟硬件相結(jié)合、理論加實(shí)戰(zhàn)的浩大工程性問(wèn)題。而目前各領(lǐng)域之間還存在很大的交流屏障,這無(wú)疑成了機(jī)器人SLAM導(dǎo)航技術(shù)突破與落地的突出痛點(diǎn)。我由此萌生了寫(xiě)一本兼具理論性和實(shí)踐性的系統(tǒng)化圖書(shū)的想法,希望通過(guò)這樣一本書(shū)將機(jī)器人SLAM導(dǎo)航中的軟件技術(shù)、硬件技術(shù)、數(shù)學(xué)理論、工程落地等一系列問(wèn)題打通。
歷經(jīng)兩年多的艱苦創(chuàng)作,這本書(shū)終于要完稿了。開(kāi)始寫(xiě)這本書(shū)的時(shí)候,想法其實(shí)比較簡(jiǎn)單。當(dāng)時(shí)自以為對(duì)機(jī)器人SLAM導(dǎo)航技術(shù)很了解,因而有著強(qiáng)烈的欲望想將自己所理解的知識(shí)和經(jīng)驗(yàn)分享給更多有需要的人,為機(jī)器人SLAM導(dǎo)航技術(shù)的普及與產(chǎn)品落地貢獻(xiàn)一份力量。但隨著寫(xiě)作的逐步深入,我發(fā)現(xiàn)以前的很多理解存在不少偏差和局限,所以這倒逼著自己不斷去學(xué)習(xí)更深層的知識(shí),不斷進(jìn)行自我認(rèn)知革新。直到寫(xiě)完后一章回頭望時(shí),我發(fā)現(xiàn)自己已經(jīng)超越從前的自己很多很多了。希望大家也能以這樣的心態(tài)去學(xué)習(xí)本書(shū),不斷進(jìn)行自我革新,等你學(xué)完整本書(shū)再回首時(shí)一定能發(fā)現(xiàn)一個(gè)全新的自己。
本書(shū)特色
本書(shū)的大亮點(diǎn)是對(duì)SLAM理論體系做了深入淺出的分析。本書(shū)先對(duì)SLAM理論做了總結(jié)性討論,這作為SLAM討論的開(kāi)篇章節(jié)有利于讀者快速理清學(xué)習(xí)思路;而更深層的SLAM理論知識(shí)則放在后續(xù)具體SLAM系統(tǒng)中詳細(xì)展開(kāi)討論,結(jié)合實(shí)例進(jìn)行講解,這樣的好處是能大大降低深?yuàn)W理論知識(shí)的理解難度。
本書(shū)的第二大亮點(diǎn)是將SLAM與導(dǎo)航兩大研究領(lǐng)域有機(jī)地串接起來(lái)。目前很多資料只側(cè)重于討論SLAM問(wèn)題,而很少談及導(dǎo)航問(wèn)題。其實(shí)對(duì)自主移動(dòng)機(jī)器人來(lái)說(shuō),SLAM技術(shù)只相當(dāng)于給機(jī)器人提供了一條腿,而另一條腿則是導(dǎo)航技術(shù)。由于本書(shū)前幾章對(duì)機(jī)器人硬件、系統(tǒng)、SLAM理論及具體算法實(shí)現(xiàn)做了大量鋪墊,這就為SLAM與導(dǎo)航相結(jié)合內(nèi)容的討論提供了土壤。
本書(shū)的第三大亮點(diǎn)是對(duì)機(jī)器學(xué)習(xí)所涉及的理論基礎(chǔ)進(jìn)行了全面介紹,特別是對(duì)與SLAM前沿方向密切相關(guān)的深度學(xué)習(xí)及與自主導(dǎo)航前沿方向密切相關(guān)的強(qiáng)化學(xué)習(xí)進(jìn)行了深入對(duì)比分析。深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)理論知識(shí)的講解為本書(shū)學(xué)習(xí)者后續(xù)的持續(xù)研究提供了廣闊的想象空間,為機(jī)器人實(shí)現(xiàn)強(qiáng)人工智能提供了技術(shù)路線(xiàn)的參考。
讀者對(duì)象
本書(shū)適合的讀者范圍極為廣泛,主要包括:
從事自主移動(dòng)機(jī)器人或者無(wú)人駕駛方面工作的開(kāi)發(fā)人員;
智能機(jī)器人方面的市場(chǎng)調(diào)研人員、產(chǎn)品經(jīng)理等;
想要轉(zhuǎn)型到機(jī)器人算法崗位的開(kāi)發(fā)者;
SLAM導(dǎo)航領(lǐng)域的本科生或研究生;
從事機(jī)械設(shè)計(jì)、機(jī)器人底盤(pán)研發(fā)、AGV算法升級(jí)等方面工作的開(kāi)發(fā)人員;
對(duì)SLAM導(dǎo)航感興趣的愛(ài)好者。
如何閱讀本書(shū)
本書(shū)分為四篇,共13章。
編程基礎(chǔ)篇(第1~3章)。本篇帶領(lǐng)大家了解ROS的核心概念、大型C++工程的代碼組織方式以及圖像處理方面的基礎(chǔ)知識(shí),為后續(xù)學(xué)習(xí)打好必要的編程基礎(chǔ)。
硬件基礎(chǔ)篇(第4~6章)。本篇通過(guò)對(duì)機(jī)器人傳感器、機(jī)器人主機(jī)和機(jī)器人底盤(pán)的討論,讓缺少硬件基礎(chǔ)的開(kāi)發(fā)者對(duì)機(jī)器人的硬件有一個(gè)系統(tǒng)的認(rèn)識(shí)并更好地理解軟件與硬件之間的協(xié)同關(guān)系。機(jī)器人傳感器相當(dāng)于機(jī)器人的眼耳口鼻,機(jī)器人主機(jī)相當(dāng)于機(jī)器人的大腦,而機(jī)器人底盤(pán)則相當(dāng)于集成傳感器和主機(jī)的軀干。
SLAM篇(第7~10章)。本篇首先總結(jié)式地介紹整個(gè)SLAM的理論知識(shí)體系,接著以各個(gè)具體的SLAM系統(tǒng)實(shí)現(xiàn)為例進(jìn)一步介紹SLAM算法的代碼框架及核心算法的實(shí)現(xiàn)細(xì)節(jié)。
自主導(dǎo)航篇(第11~13章)。本篇首先給出整個(gè)自主導(dǎo)航的理論體系知識(shí)的總結(jié),接著以各個(gè)具體的自主導(dǎo)航系統(tǒng)實(shí)現(xiàn)為例進(jìn)一步介紹自主導(dǎo)航算法的代碼框架以及核心算法的細(xì)節(jié)實(shí)現(xiàn),后以一個(gè)真實(shí)機(jī)器人為例介紹應(yīng)用SLAM導(dǎo)航技術(shù)進(jìn)行開(kāi)發(fā)的完整流程。學(xué)完本書(shū)的全部?jī)?nèi)容后,相信大家能夠繼續(xù)進(jìn)行SLAM導(dǎo)航技術(shù)的獨(dú)立研究和開(kāi)發(fā)。
勘誤與支持
由于本人水平有限,因此書(shū)中難免會(huì)出現(xiàn)一些錯(cuò)誤或者表述不嚴(yán)謹(jǐn)?shù)牡胤剑瑧┱?qǐng)讀者朋友批評(píng)指正,你可以發(fā)郵件到我的郵箱(robot4xiihoo@163.com)或者添加我的個(gè)人微信號(hào)(xiaohugege277)來(lái)與我聯(lián)系。另外,我還為本書(shū)制作了配套的課件文檔和教學(xué)視頻,大家可以關(guān)注我的知乎賬號(hào)(@小虎哥哥愛(ài)學(xué)習(xí))獲取課件文檔,或者關(guān)注我的bilibili賬號(hào)(@小虎哥哥愛(ài)學(xué)習(xí))獲取教學(xué)視頻。大家還可以前往GitHub倉(cāng)庫(kù)(https://github.com/xiihoo/Books_Robot_SLAM_Navigation)下載本書(shū)相關(guān)實(shí)驗(yàn)代碼以及課后習(xí)題答案。同時(shí)大家也可以加入QQ技術(shù)交流群(728661815)參與本書(shū)的話(huà)題討論,或者前往網(wǎng)站(www.xiihoo.com)獲取機(jī)器人SLAM導(dǎo)航方面的更多相關(guān)資料。
致謝
感謝機(jī)械工業(yè)出版社華章公司的高婧雅編輯在寫(xiě)作方面給予我的細(xì)心指導(dǎo);感謝清華大學(xué)的高翔博士為本書(shū)作序;感謝亮風(fēng)臺(tái)首席架構(gòu)師侯曉輝、海軍工程大學(xué)吳中紅老師、香港大學(xué)博士生王斯煜對(duì)本書(shū)進(jìn)行審閱并給予高度評(píng)價(jià);感謝廣大網(wǎng)友在本書(shū)寫(xiě)作過(guò)程中提供的眾多寶貴建議;感謝在本書(shū)寫(xiě)作過(guò)程中給予我極大鼓勵(lì)與關(guān)懷的親朋好友。
后,希望這本書(shū)能陪伴大家走過(guò)一段難忘的學(xué)習(xí)之旅,并收獲一份珍貴的成長(zhǎng)經(jīng)歷。星辰大海,如你所見(jiàn),如你所愿。
序
前言
編程基礎(chǔ)篇
第1章 ROS入門(mén)知識(shí) 2
1.1 ROS簡(jiǎn)介 2
1.1.1 ROS的性能特色 2
1.1.2 ROS的發(fā)行版本 3
1.1.3 ROS的學(xué)習(xí)方法 3
1.2 ROS開(kāi)發(fā)環(huán)境的搭建 3
1.2.1 ROS的安裝 4
1.2.2 ROS文件的組織方式 4
1.2.3 ROS網(wǎng)絡(luò)通信配置 5
1.2.4 集成開(kāi)發(fā)工具 5
1.3 ROS系統(tǒng)架構(gòu) 5
1.3.1 從計(jì)算圖視角理解ROS架構(gòu) 6
1.3.2 從文件系統(tǒng)視角理解ROS架構(gòu) 7
1.3.3 從開(kāi)源社區(qū)視角理解ROS架構(gòu) 8
1.4 ROS調(diào)試工具 8
1.4.1 命令行工具 9
1.4.2 可視化工具 9
1.5 ROS節(jié)點(diǎn)通信 10
1.5.1 話(huà)題通信方式 12
1.5.2 服務(wù)通信方式 15
1.5.3 動(dòng)作通信方式 19
1.6 ROS的其他重要概念 25
1.7 ROS 2.0展望 28
1.8 本章小結(jié) 28
第2章 C++編程范式 29
2.1 C++工程的組織結(jié)構(gòu) 29
2.1.1 C++工程的一般組織結(jié)構(gòu) 29
2.1.2 C++工程在機(jī)器人中的組織結(jié)構(gòu) 29
2.2 C++代碼的編譯方法 30
2.2.1 使用g++編譯代碼 31
2.2.2 使用make編譯代碼 32
2.2.3 使用CMake編譯代碼 32
2.3 C++編程風(fēng)格指南 33
2.4 本章小結(jié) 34
第3章 OpenCV圖像處理 35
3.1 認(rèn)識(shí)圖像數(shù)據(jù) 35
3.1.1 獲取圖像數(shù)據(jù) 35
3.1.2 訪(fǎng)問(wèn)圖像數(shù)據(jù) 36
3.2 圖像濾波 37
3.2.1 線(xiàn)性濾波 37
3.2.2 非線(xiàn)性濾波 38
3.2.3 形態(tài)學(xué)濾波 39
3.3 圖像變換 40
3.3.1 射影變換 40
3.3.2 霍夫變換 42
3.3.3 邊緣檢測(cè) 42
3.3.4 直方圖均衡 43
3.4 圖像特征點(diǎn)提取 44
3.4.1 SIFT特征點(diǎn) 44
3.4.2 SURF特征點(diǎn) 50
3.4.3 ORB特征點(diǎn) 52
3.5 本章小結(jié) 54
硬件基礎(chǔ)篇
第4章 機(jī)器人傳感器 56
4.1 慣性測(cè)量單元 56
4.1.1 工作原理 56
4.1.2 原始數(shù)據(jù)采集 60
4.1.3 參數(shù)標(biāo)定 65
4.1.4 數(shù)據(jù)濾波 73
4.1.5 姿態(tài)融合 75
4.2 激光雷達(dá) 91
4.2.1 工作原理 92
4.2.2 性能參數(shù) 94
4.2.3 數(shù)據(jù)處理 96
4.3 相機(jī) 100
4.3.1 單目相機(jī) 101
4.3.2 雙目相機(jī) 107
4.3.3 RGB-D相機(jī) 109
4.4 帶編碼器的減速電機(jī) 111
4.4.1 電機(jī) 111
4.4.2 電機(jī)驅(qū)動(dòng)電路 112
4.4.3 電機(jī)控制主板 113
4.4.4 輪式里程計(jì) 117
4.5 本章小結(jié) 118
第5章 機(jī)器人主機(jī) 119
5.1 X86與ARM主機(jī)對(duì)比 119
5.2 ARM主機(jī)樹(shù)莓派3B+ 120
5.2.1 安裝Ubuntu MATE 18.04 120
5.2.2 安裝ROS melodic 122
5.2.3 裝機(jī)軟件與系統(tǒng)設(shè)置 122
5.3 ARM主機(jī)RK3399 127
5.4 ARM主機(jī)Jetson-tx2 128
5.5 分布式架構(gòu)主機(jī) 129
5.5.1 ROS網(wǎng)絡(luò)通信 130
5.5.2 機(jī)器人程序的遠(yuǎn)程開(kāi)發(fā) 130
5.6 本章小結(jié) 131
第6章 機(jī)器人底盤(pán) 132
6.1 底盤(pán)運(yùn)動(dòng)學(xué)模型 132
6.1.1 兩輪差速模型 132
6.1.2 四輪差速模型 136
6.1.3 阿克曼模型 140
6.1.4 全向模型 144
6.1.5 其他模型 148
6.2 底盤(pán)性能指標(biāo) 148
6.2.1 載重能力 148
6.2.2 動(dòng)力性能 148
6.2.3 控制精度 150
6.2.4 里程計(jì)精度 150
6.3 典型機(jī)器人底盤(pán)搭建 151
6.3.1 底盤(pán)運(yùn)動(dòng)學(xué)模型選擇 152
6.3.2 傳感器選擇 152
6.3.3 主機(jī)選擇 153
6.4 本章小結(jié) 155
SLAM篇
第7章 SLAM中的數(shù)學(xué)基礎(chǔ) 158
7.1 SLAM發(fā)展簡(jiǎn)史 158
7.1.1 數(shù)據(jù)關(guān)聯(lián)、收斂和一致性 160
7.1.2 SLAM的基本理論 161
7.2 SLAM中的概率理論 163
7.2.1 狀態(tài)估計(jì)問(wèn)題 164
7.2.2 概率運(yùn)動(dòng)模型 166
7.2.3 概率觀測(cè)模型 171
7.2.4 概率圖模型 173
7.3 估計(jì)理論 182
7.3.1 估計(jì)量的性質(zhì) 182
7.3.2 估計(jì)量的構(gòu)建 183
7.3.3 各估計(jì)量對(duì)比 190
7.4 基于貝葉斯網(wǎng)絡(luò)的狀態(tài)估計(jì) 193
7.4.1 貝葉斯估計(jì) 194
7.4.2 參數(shù)化實(shí)現(xiàn) 196
7.4.3 非參數(shù)化實(shí)現(xiàn) 202
7.5 基于因子圖的狀態(tài)估計(jì) 206
7.5.1 非線(xiàn)性小二乘估計(jì) 206
7.5.2 直接求解方法 206
7.5.3 優(yōu)化方法 208
7.5.4 各優(yōu)化方法對(duì)比 218
7.5.5 常用優(yōu)化工具 219
7.6 典型SLAM算法 221
7.7 本章小結(jié) 221
第8章 激光SLAM系統(tǒng) 223
8.1 Gmapping算法 223
8.1.1 原理分析 223
8.1.2 源碼解讀 228
8.1.3 安裝與運(yùn)行 233
8.2 Cartographer算法 240
8.2.1 原理分析 240
8.2.2 源碼解讀 247
8.2.3 安裝與運(yùn)行 258
8.3 LOAM算法 266
8.3.1 原理分析 266
8.3.2 源碼解讀 267
8.3.3 安裝與運(yùn)行 270
8.4 本章小結(jié) 270
第9章 視覺(jué)SLAM系統(tǒng) 272
9.1 ORB-SLAM2算法 274
9.1.1 原理分析 274
9.1.2 源碼解讀 310
9.1.3 安裝與運(yùn)行 319
9.1.4 拓展 327
9.2 LSD-SLAM算法 329
9.2.1 原理分析 329
9.2.2 源碼解讀 334
9.2.3 安裝與運(yùn)行 337
9.3 SVO算法 338
9.3.1 原理分析 338
9.3.2 源碼解讀 341
9.4 本章小結(jié) 341
第10章 其他SLAM系統(tǒng) 344
10.1 RTABMAP算法 344
10.1.1 原理分析 344
10.1.2 源碼解讀 351
10.1.3 安裝與運(yùn)行 357
10.2 VINS算法 362
10.2.1 原理分析 364
10.2.2 源碼解讀 373
10.2.3 安裝與運(yùn)行 376
10.3 機(jī)器學(xué)習(xí)與SLAM 379
10.3.1 機(jī)器學(xué)習(xí) 379
10.3.2 CNN-SLAM算法 411
10.3.3 DeepVO算法 413
10.4 本章小結(jié) 414
自主導(dǎo)航篇
第11章 自主導(dǎo)航中的數(shù)學(xué)基礎(chǔ) 418
11.1 自主導(dǎo)航 418
11.2 環(huán)境感知 420
11.2.1 實(shí)時(shí)定位 420
11.2.2 環(huán)境建模 421
11.2.3 語(yǔ)義理解 422
11.3 路徑規(guī)劃 422
11.3.1 常見(jiàn)的路徑規(guī)劃算法 423
11.3.2 帶約束的路徑規(guī)劃算法 430
11.3.3 覆蓋的路徑規(guī)劃算法 434
11.4 運(yùn)動(dòng)控制 435
11.4.1 基于PID的運(yùn)動(dòng)控制 437
11.4.2 基于MPC的運(yùn)動(dòng)控制 438
11.4.3 基于強(qiáng)化學(xué)習(xí)的運(yùn)動(dòng)控制 441
11.5 強(qiáng)化學(xué)習(xí)與自主導(dǎo)航 442
11.5.1 強(qiáng)化學(xué)習(xí) 443
11.5.2 基于強(qiáng)化學(xué)習(xí)的自主導(dǎo)航 465
11.6 本章小結(jié) 467
第12章 典型自主導(dǎo)航系統(tǒng) 470
12.1 ros-navigation導(dǎo)航系統(tǒng) 470
12.1.1 原理分析 470
12.1.2 源碼解讀 475
12.1.3 安裝與運(yùn)行 479
12.1.4 路徑規(guī)劃改進(jìn) 492
12.1.5 環(huán)境探索 496
12.2 riskrrt導(dǎo)航系統(tǒng) 498
12.3 autoware導(dǎo)航系統(tǒng) 499
12.4 導(dǎo)航系統(tǒng)面臨的一些挑戰(zhàn) 500
12.5 本章小結(jié) 500
第13章 機(jī)器人SLAM導(dǎo)航綜合實(shí)戰(zhàn) 502
13.1 運(yùn)行機(jī)器人上的傳感器 502
13.1.1 運(yùn)行底盤(pán)的ROS驅(qū)動(dòng) 503
13.1.2 運(yùn)行激光雷達(dá)的ROS驅(qū)動(dòng) 503
13.1.3 運(yùn)行IMU的ROS驅(qū)動(dòng) 504
13.1.4 運(yùn)行相機(jī)的ROS驅(qū)動(dòng) 504
13.1.5 運(yùn)行底盤(pán)的urdf模型 505
13.1.6 傳感器一鍵啟動(dòng) 506
13.2 運(yùn)行SLAM建圖功能 506
13.2.1 運(yùn)行激光SLAM建圖功能 507
13.2.2 運(yùn)行視覺(jué)SLAM建圖功能 508
13.2.3 運(yùn)行激光與視覺(jué)聯(lián)合建圖功能 508
13.3 運(yùn)行自主導(dǎo)航 509
13.4 基于自主導(dǎo)航的應(yīng)用 510
13.5 本章小結(jié) 511
附錄A Linux與SLAM性能優(yōu)化的探討 512
附錄B 習(xí)題 523