機(jī) 械 工 業(yè) 出 版 社本書是“十三五”江蘇省高等學(xué)校重點教材。全書貫徹“理論與實際相結(jié)合,教學(xué)與實踐相統(tǒng)一,緊跟當(dāng)前SLAM研究重點”的思想,以ROS系統(tǒng)作為平臺,以Turtlebot機(jī)器人為載體,以實際應(yīng)用為紐帶,在ROS系統(tǒng)中實現(xiàn)各種SLAM算法。
全書共分為5章。第1章介紹SLAM的基本定義、分類及其數(shù)學(xué)模型,對ROS系統(tǒng)進(jìn)行簡要描述,分析在ROS系統(tǒng)下基于激光特征點的SLAM技術(shù)和基于視覺的SLAM技術(shù)的特點。第2章詳細(xì)分析一些典型的基于矢量的SLAM算法和基于隨機(jī)有限集的SLAM算法的基本原理及其實現(xiàn)。第3章給出ROS系統(tǒng)的詳細(xì)安裝步驟以及部分常用的ROS系統(tǒng)基本操作命令,并以Turtlebot機(jī)器人為載體進(jìn)行基礎(chǔ)功能包的安裝和測試。第4章首先介紹用于SLAM的ROS相關(guān)工具及其使用,然后分別介紹基于激光雷達(dá)的Gmapping、Hector SLAM、Cartographer的原理,以及在機(jī)器人Turtlebot上的算法實現(xiàn)。第5章介紹基于視覺的MonoSLAM、ORB-SLAM2工作原理及其實現(xiàn)步驟,同時介紹多機(jī)器人視覺SLAM系統(tǒng)和地圖融合實現(xiàn)過程。
本書可作為機(jī)器人工程、自動化、機(jī)械電子工程、智能制造工程等相關(guān)專業(yè)高年級本科生或者研究生的教材,也可供相關(guān)工程技術(shù)人員參考。
本書結(jié)合編者多年科研成果以及應(yīng)用型本科課程教學(xué)經(jīng)驗撰寫而成,內(nèi)容新穎,覆蓋面廣,將科研成果分結(jié)構(gòu)、分層次地融入到知識體系之中,同時還吸納了國內(nèi)外該領(lǐng)域的眾多代表性成果。
隨著無人駕駛、機(jī)器人自主探測、智能物流配送等應(yīng)用越來越廣泛,定位與地圖構(gòu)建(Simultaneous Localization and Mapping,SLAM)作為這些應(yīng)用的基礎(chǔ),成為目前的研究熱點。SLAM相關(guān)的研究有很多,許多方法也得到了實際的應(yīng)用,相應(yīng)的出版物也較多,但關(guān)于所涉及的方法、技術(shù)的系統(tǒng)性與可操作性等方面的書籍仍然非常缺乏。
本書結(jié)合編者多年科研成果以及應(yīng)用型本科課程教學(xué)經(jīng)驗撰寫而成,內(nèi)容新穎,覆蓋面廣,將科研成果分結(jié)構(gòu)、分層次地融入到知識體系之中,同時還吸納了國內(nèi)外該領(lǐng)域的眾多代表性成果。本書在注重理論知識的同時,以ROS系統(tǒng)作為平臺,以Turtlebot機(jī)器人為載體,實現(xiàn)相應(yīng)的SLAM算法,以求理論與實際相結(jié)合,緊跟當(dāng)前SLAM的前沿研究成果。在講解算法原理的同時,以實際應(yīng)用為紐帶,在ROS系統(tǒng)中實現(xiàn)相應(yīng)算法,使讀者能夠快速地理解和掌握相關(guān)內(nèi)容。本書可作為機(jī)器人工程、自動化、機(jī)械電子工程、智能制造工程等相關(guān)專業(yè)高年級本科生或者研究生的教材,也可供相關(guān)工程技術(shù)人員參考。
本書的編寫隊伍由具有科研與工程經(jīng)驗的一線教師組成。全書共分為5章,由徐本連教授統(tǒng)稿并審定。 第1章介紹SLAM的基本定義、分類及其數(shù)學(xué)模型,對ROS系統(tǒng)進(jìn)行簡要描述,分析在ROS系統(tǒng)下基于激光特征點的SLAM技術(shù)和基于視覺的SLAM技術(shù)的特點,本章主要由徐本連教授完成。第2章詳細(xì)分析一些典型的基于矢量的SLAM算法和基于隨機(jī)有限集的SLAM算法的基本原理及其實現(xiàn),本章主要由魯明麗教授、 徐本連教授完成。第3章給出ROS系統(tǒng)的詳細(xì)安裝步驟以及部分常用的ROS系統(tǒng)基本操作命令,并以Turtlebot機(jī)器人為載體進(jìn)行基礎(chǔ)功能包的安裝和測試,本章主要由魯明麗教授、趙彩虹副教授完成。第4章介紹用于SLAM的ROS相關(guān)工具及其使用,以及基于激光雷達(dá)的Gmapping、Hector、Cartographer的原理,并在機(jī)器人Turtlebot上對這三種算法進(jìn)行功能實現(xiàn),本章主要由魯明麗教授、袁儒鵬博士完成。 第5章主要介紹基于視覺的MonoSLAM、ORB-SLAM2工作原理及其實現(xiàn)步驟,同時介紹多機(jī)器人視覺SLAM系統(tǒng)和地圖融合實現(xiàn)過程,本章主要由魯明麗教授、從金亮博士完成。施健、李震、孫士秦、趙康也參與了本書的編寫。同時特別感謝清華大學(xué)王凌教授在百忙中審閱書稿并提出寶貴的修改建議。
由于編者水平有限,書中難免有不妥之處,敬請廣大讀者批評指正。
編者
前言
高等院校教師
第1章緒論1
1.1SLAM簡介1
1.1.1SLAM的基本定義1
1.1.2SLAM的分類3
1.2ROS簡介5
1.3基于ROS系統(tǒng)的SLAM技術(shù)6
1.3.1基于激光的SLAM技術(shù)7
1.3.2基于視覺的SLAM技術(shù)8
1.4SLAM技術(shù)的未來發(fā)展13
1.5本章小結(jié)14
參考文獻(xiàn)14
第2章SLAM算法簡介與實現(xiàn)15
2.1SLAM算法簡介15
2.1.1SLAM算法分類15
2.1.2不同種類SLAM算法的
特點16
2.2基于矢量的SLAM經(jīng)典算法19
2.2.1EKF-SLAM算法基本原理19
2.2.2EKF-SLAM算法的MATLAB
仿真驗證23
2.2.3FastSLAM算法基本原理23
2.2.4FastSLAM算法的MATLAB
仿真27
2.3基于隨機(jī)有限集的SLAM算法27
2.3.1隨機(jī)有限集27
2.3.2基于隨機(jī)有限集的SLAM28
2.3.3PHD-SLAM算法基本原理29
2.3.4PHD-SLAM算法的MATLAB
仿真驗證33
2.4本章小結(jié)34
參考文獻(xiàn)34
第3章基于ROS系統(tǒng)的SLAM
技術(shù)36
3.1ROS系統(tǒng)36
3.1.1ROS的版本介紹和安裝38
3.1.2ROS文件系統(tǒng)級45
3.1.3ROS計算圖級47
3.1.4ROS開源社區(qū)級50
3.2ROS系統(tǒng)基本操作51
3.2.1創(chuàng)建工作空間51
3.2.2創(chuàng)建ROS功能包及功能包
編譯52
3.2.3ROS節(jié)點的使用53
3.2.4ROS主題與節(jié)點的交互55
3.2.5ROS服務(wù)的使用57
3.2.6節(jié)點的創(chuàng)建和編譯58
3.2.7服務(wù)和消息文件的創(chuàng)建和
使用62
3.2.8Launch啟動文件68
3.3基于ROS系統(tǒng)的機(jī)器人實踐69
3.3.1Turtlebot介紹69
3.3.2Turtlebot功能包安裝和
配置71
3.3.3機(jī)器人底盤測試73
3.3.4機(jī)器人傳感器測試73
3.3.5機(jī)器人跟隨功能實現(xiàn)74
3.3.6基于ROS的多機(jī)通信配置75
3.4基于ROS系統(tǒng)的SLAM開源
方案78
3.4.1基于激光雷達(dá)的SLAM
算法78
3.4.2基于視覺的SLAM算法79
3.5本章小結(jié)80
參考文獻(xiàn)81
第4章激光SLAM技術(shù)82
4.1ROS相關(guān)工具的使用82
4.1.1rviz和Gazebo的簡介82
4.1.2Gazebo的使用83
4.1.3rviz的使用85
4.1.4Turtlebot機(jī)器人在Gazebo中的
仿真87
4.1.5Turtlebot機(jī)器人在rviz中的
顯示89
4.2激光雷達(dá)傳感器89
4.2.1激光雷達(dá)探測原理89
4.2.2基于ROS的激光雷達(dá)驅(qū)動
安裝90
4.3基于激光的Gmapping算法91
4.3.1Gmapping背景91
4.3.2Gmapping算法原理92
4.3.3Gmapping功能包的安裝95
4.3.4Gmapping算法在Turtlebot上的
實現(xiàn)98
4.4基于激光的Hector SLAM算法101
4.4.1Hector SLAM背景101
4.4.2Hector SLAM算法原理102
4.4.3Hector SLAM功能包的
安裝105
4.4.4Hector SLAM算法在Turtlebot上
的實現(xiàn)107
4.5基于激光的Cartographer算法109
4.5.1Cartographer背景109
4.5.2Cartographer算法原理110
4.5.3Cartographer功能包的
安裝113
4.5.4Cartographer算法在Turtlebot
上的實現(xiàn)117
4.6本章小結(jié)123
參考文獻(xiàn)124
第5章視覺SLAM技術(shù)125
5.1經(jīng)典視覺SLAM框架125
5.2視覺傳感器及其基礎(chǔ)算法126
5.2.1視覺傳感器126
5.2.2視覺里程計129
5.2.3后端優(yōu)化137
5.2.4回環(huán)檢測140
5.3MonoSLAM算法144
5.3.1MonoSLAM背景144
5.3.2MonoSLAM算法145
5.3.3MonoSLAM功能包的安裝150
5.3.4MonoSLAM實現(xiàn)152
5.4ORB-SLAM2算法155
5.4.1ORB-SLAM2背景155
5.4.2ORB-SLAM2算法155
5.4.3ORB-SLAM2功能包的
安裝162
5.4.4ORB-SLAM2在Turtlebot上的
實現(xiàn)166
5.5多機(jī)器人視覺SLAM技術(shù)簡介171
5.5.1多機(jī)器人系統(tǒng)171
5.5.2機(jī)器人相互識別173
5.5.3地圖融合策略177
5.5.4地圖融合182
5.6本章小結(jié)182
參考文獻(xiàn)182目錄