目錄
第1章緒論………………………………………………………………1
1.1 移動(dòng)機(jī)器人概述………………………………………………………………1
1.1.1 早期的移動(dòng)機(jī)器人………………………………………………………1
1.1.2 移動(dòng)機(jī)器人的發(fā)展過程…………………………………………………2
1.1.3 移動(dòng)機(jī)器人發(fā)展的重要性………………………………………………4
1.2 ROSHunter自主導(dǎo)航機(jī)器人介紹……………………………………………6
第2章Linux Ubuntu入門基礎(chǔ)……………………………………………………10
2.1 Ubuntu概述…………………………………………………………………10
2.1.1 操作系統(tǒng)架構(gòu)……………………………………………………………11
2.1.2 Ubuntu的發(fā)展過程……………………………………………………13
2.2 安裝Ubuntu 20.04 …………………………………………………………15
2.3 Ubuntu 20.04使用入門……………………………………………………21
2.3.1 系統(tǒng)管理相關(guān)命令………………………………………………………22
2.3.2 文件管理相關(guān)命令………………………………………………………23
2.3.3 備份壓縮相關(guān)命令………………………………………………………32
2.3.4 網(wǎng)絡(luò)通信相關(guān)命令………………………………………………………34
2.3.5 其他常用命令……………………………………………………………35
第3章ROS2基礎(chǔ)概念與操作……………………………………………………39
3.1 ROS2系統(tǒng)概述………………………………………………………………39
3.1.1 ROS2系統(tǒng)發(fā)展背景介紹………………………………………………39
3.1.2 ROS2系統(tǒng)架構(gòu)與原理…………………………………………………42
3.1.3 ROS2系統(tǒng)插件介紹……………………………………………………43
3.2 ROS2系統(tǒng)的安裝……………………………………………………………45
3.3 ROS2系統(tǒng)的常用命令與操作………………………………………………48
第4章ROS編程與開發(fā)……………………………………………………………55
4.1 開發(fā)工具IDE ………………………………………………………………55
4.1.1 Rviz2簡介及使用………………………………………………………55
4.1.2 Rqt簡介及使用…………………………………………………………57
4.2 ROS2工作空間………………………………………………………………59
4.2.1 ROS2工作空間概述……………………………………………………59
4.2.2 編譯重建ROS2工作空間……………………………………………60
4.2.3 初識ROS2 ……………………………………………………………61
4.3 ROS2節(jié)點(diǎn)與話題……………………………………………………………65
4.4 ROS2編程實(shí)例………………………………………………………………66
4.4.1 編寫一個(gè)簡單的publisher ……………………………………………66
4.4.2 編寫一個(gè)簡單的subscriber……………………………………………70
4.4.3 編寫一個(gè)發(fā)布訂閱節(jié)點(diǎn)(CPP)…………………………………………75
4.4.4 編寫一個(gè)發(fā)布訂閱節(jié)點(diǎn)(PY) …………………………………………77
4.4.5 發(fā)布與訂閱話題…………………………………………………………80
第5章ROS環(huán)境感知與建模………………………………………………………86
5.1 ROS下的傳感器和執(zhí)行器…………………………………………………86
5.1.1 激光雷達(dá)接口……………………………………………………………86
5.1.2 攝像機(jī)接口及攝像頭的應(yīng)用……………………………………………90
5.1.3 測量手柄…………………………………………………………………94
5.1.4 電機(jī)控制…………………………………………………………………98
5.2 ROS2建模與仿真…………………………………………………………103
5.2.1 統(tǒng)一的機(jī)器人描述格式………………………………………………103
5.2.2 Gazebo仿真器…………………………………………………………103
第6章移動(dòng)機(jī)器人定位與導(dǎo)航……………………………………………………105
6.1 SLAM 概述…………………………………………………………………105
6.2 常見SLAM 算法講解………………………………………………………105
6.2.1 SLAM 的典型應(yīng)用領(lǐng)域………………………………………………105
6.2.2 SLAM 框架……………………………………………………………109
6.2.3 SLAM 分類(基于傳感器的SLAM 分類) …………………………110
6.3 常見SLAM 算法……………………………………………………………112
6.4 XR-ROSHunter機(jī)器人SLAM 建圖示例………………………………116
6.4.1 激光雷達(dá)建圖…………………………………………………………116
6.4.2 視覺建圖………………………………………………………………119
6.4.3 xrosmanager2保存地圖………………………………………………121
6.5 Navigation2路徑規(guī)劃算法…………………………………………………123
6.6 XR-ROSHunter機(jī)器人自主導(dǎo)航示例……………………………………126
6.6.1 激光雷達(dá)導(dǎo)航…………………………………………………………126
6.6.2 視覺導(dǎo)航………………………………………………………………129
第7章機(jī)器視覺應(yīng)用………………………………………………………………133
7.1 機(jī)器視覺介紹………………………………………………………………133
7.2 數(shù)字圖像……………………………………………………………………138
7.2.1 圖像與數(shù)字圖像………………………………………………………138
7.2.2 圖像的數(shù)字化…………………………………………………………140
7.2.3 圖像的采集與處理技術(shù)………………………………………………141
7.3 OpenCV 機(jī)器視覺入門……………………………………………………143
7.3.1 OpenCV 相關(guān)背景知識………………………………………………143
7.3.2 OpenCV 安裝…………………………………………………………145
7.3.3 OpenCV 應(yīng)用案例……………………………………………………146
7.4 機(jī)器視覺應(yīng)用實(shí)例…………………………………………………………147
7.4.1 機(jī)器視覺之人臉識別…………………………………………………147
7.4.2 機(jī)器視覺之二維碼識別………………………………………………149
7.4.3 機(jī)器視覺之顏色識別…………………………………………………151
7.4.4 機(jī)器視覺之視覺巡線…………………………………………………152
7.4.5 機(jī)器視覺之目標(biāo)跟蹤…………………………………………………154
參考文獻(xiàn)……………………………………………………………………………… 158