機器人 SLAM 技術及其 ROS 系統應用
內容描述
本書是“十三五”江蘇省高等學校重點教材。
全書貫徹“理論與實際相結合,教學與實踐相統一,緊跟當前SLAM研究重點”的思想,
以ROS系統作為平台,以Turtlebot機器人為載體,以實際應用為紐帶,在ROS系統中實現各種SLAM算法。
全書共分為5章。
第1章介紹SLAM的基本定義、分類及其數學模型,對ROS系統進行簡要描述,
分析在ROS系統下基於激光特徵點的SLAM技術和基於視覺的SLAM技術的特點。
第2章詳細分析一些典型的基於矢量的SLAM算法和基於隨機有限集的SLAM算法的基本原理及其實現。
第3章給出ROS系統的詳細安裝步驟以及部分常用的ROS系統基本操作命令,
並以Turtlebot機器人為載體進行基礎功能包的安裝和測試。
第4章首先介紹用於SLAM的ROS相關工具及其使用,然後分別介紹基於激光雷達的Gmapping、
Hector SLAM、Cartographer的原理,以及在機器人Turtlebot上的算法實現。
第5章介紹基於視覺的MonoSLAM、ORBSLAM2工作原理及其實現步驟,
同時介紹多機器人視覺SLAM系統和地圖融合實現過程。
本書可作為機器人工程、自動化、機械電子工程、
智能製造工程等相關專業高年級本科生或者研究生的教材,
也可供相關工程技術人員參考。
目錄大綱
前言
第1章緒論1
1.1SLAM簡介1
1.1.1SLAM的基本定義1
1.1.2SLAM的分類3
1.2ROS簡介5
1.3基於ROS系統的SLAM技術6
1.3.1基於激光的SLAM技術7
1.3.2基於視覺的SLAM技術8
1.4SLAM技術的未來發展13
1.5本章小結14
參考文獻14
第2章SLAM算法簡介與實現15
2.1SLAM算法簡介15
2.1.1SLAM算法分類15
2.1.2不同種類SLAM算法的特點16
2.2基於矢量的SLAM經典算法19
2.2.1EKFSLAM算法基本原理19
2.2.2EKFSLAM算法的MATLAB仿真驗證23
2.2.3FastSLAM算法基本原理23
2.2.4FastSLAM算法的MATLAB仿真27
2.3基於隨機有限集的SLAM算法27
2.3.1隨機有限集27
2.3.2基於隨機有限集的SLAM28
2.3.3PHDSLAM算法基本原理29
2.3.4PHDSLAM算法的MATLAB
仿真驗證33
2.4本章小結34
參考文獻34
第3章基於ROS系統的SLAM技術36
3.1ROS系統36
3.1.1ROS的版本介紹和安裝38
3.1.2ROS文件系統級45
3.1.3ROS計算圖級47
3.1.4ROS開源社區級50
3.2ROS系統基本操作51
3.2.1創建工作空間51
3.2.2創建ROS功能包及功能包編譯52
3.2.3ROS節點的使用53
3.2.4ROS主題與節點的交互55
3.2.5ROS服務的使用57
3.2.6節點的創建和編譯58
3.2.7服務和消息文件的創建和使用62
3.2.8Launch啟動文件68
3.3基於ROS系統的機器人實踐69
3.3.1Turtlebot介紹69
3.3.2Turtlebot功能包安裝和配置71
3.3.3機器人底盤測試73
3.3.4機器人傳感器測試73
3.3.5機器人跟隨功能實現74
3.3.6基於ROS的多機通信配置75
3.4基於ROS系統的SLAM開源方案78
3.4.1基於激光雷達的SLAM算法78
3.4.2基於視覺的SLAM算法79
3.5本章小結80
參考文獻81
第4章基於特徵估計的激光SLAM技術82
4.1ROS相關工具的使用82
4.1.1rviz和Gazebo的簡介82
4.1.2Gazebo的使用83
4.1.3rviz的使用85
4.1.4Turtlebot機器人在Gazebo中的仿真87
4.1.5Turtlebot機器人在rviz中的顯示89
4.2激光雷達傳感器89
4.2.1激光雷達探測原理89
4.2.2基於ROS的激光雷達驅動安裝90
4.3基於激光的Gmapping算法91
4.3.1Gmapping背景91
4.3.2Gmapping算法原理92
4.3.3Gmapping功能包的安裝95
4.3.4Gmapping算法在Turtlebot上的實現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上的實現107
4.5基於激光的Cartographer算法109
4.5.1Cartographer背景109
4.5.2Cartographer算法原理110
4.5.3Cartographer功能包的安裝113
4.5.4Cartographer算法在Turtlebot上的實現117
4.6本章小結123
參考文獻124
第5章基於視覺SLAM技術125
5.1經典視覺SLAM框架125
5.2視覺傳感器及其基礎算法126
5.2.1視覺傳感器126
5.2.2視覺里程計129
5.2.3後端優化137
5.2.4回環檢測140
5.3MonoSLAM算法144
5.3.1MonoSLAM背景144
5.3.2MonoSLAM算法145
5.3.3MonoSLAM功能包的安裝150
5.3.4MonoSLAM實現152
5.4ORBSLAM2算法155
5.4.1ORBSLAM2背景155
5.4.2ORBSLAM2算法155
5.4.3ORBSLAM2功能包的安裝162
5.4.4ORBSLAM2在Turtlebot上的實現166
5.5多機器人視覺SLAM技術簡介171
5.5.1多機器人系統171
5.5.2機器人相互識別173
5.5.3地圖融合策略177
5.5.4地圖融合182
5.6本章小結182
參考文獻182