機(jī)器人操作系統(tǒng)ROS應(yīng)用實(shí)踐
定 價(jià):79.9 元
當(dāng)前圖書(shū)已被 38 所學(xué)校薦購(gòu)過(guò)!
查看明細(xì)
- 作者:彭剛 等
- 出版時(shí)間:2023/7/1
- ISBN:9787121386022
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP242
- 頁(yè)碼:352
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
越來(lái)越多的機(jī)器人正走向人們的生活及生產(chǎn)環(huán)境,機(jī)器人操作系統(tǒng)(Robot Operating System,ROS)作為一種重要的軟件開(kāi)發(fā)框架,提高了機(jī)器人系統(tǒng)的開(kāi)發(fā)與部署效率,在分工協(xié)作、軟件維護(hù)和系統(tǒng)擴(kuò)展中具有重要意義。本書(shū)以任務(wù)為驅(qū)動(dòng),按照工作導(dǎo)向的思路展開(kāi)教學(xué)與實(shí)踐學(xué)習(xí),通過(guò)“學(xué)中做、做中學(xué)”的方式,循序漸進(jìn)地介紹機(jī)器人操作系統(tǒng)應(yīng)用開(kāi)發(fā)方法,通過(guò)構(gòu)思、設(shè)計(jì)、實(shí)施和運(yùn)行多個(gè)環(huán)節(jié),構(gòu)建基于傳感器的智能機(jī)器人系統(tǒng)。本書(shū)內(nèi)容全面,包括機(jī)器人系統(tǒng)組成、將機(jī)器人連接到ROS、建立機(jī)器人系統(tǒng)模型、移動(dòng)機(jī)器人激光SLAM、移動(dòng)機(jī)器人自主導(dǎo)航、基于多傳感器的SLAM、機(jī)械臂運(yùn)動(dòng)控制、計(jì)算機(jī)視覺(jué)、基于視覺(jué)的機(jī)械臂抓取、移動(dòng)機(jī)器人視覺(jué)SLAM、ROS 2.0介紹與編程基礎(chǔ)等內(nèi)容,有利于讀者掌握ROS原理與應(yīng)用實(shí)踐開(kāi)發(fā)方法,培養(yǎng)軟件全棧開(kāi)發(fā)能力。 本書(shū)通俗易懂、內(nèi)容豐富,是作者團(tuán)隊(duì)多年機(jī)器人科研項(xiàng)目和產(chǎn)品開(kāi)發(fā)的積累,書(shū)中提供了大量的實(shí)例代碼供讀者學(xué)習(xí)研究。 本書(shū)可作為高等院校自動(dòng)化、機(jī)器人工程、人工智能、機(jī)電一體化等相關(guān)專業(yè)的“機(jī)器人系統(tǒng)原理”“機(jī)器人操作系統(tǒng)”“機(jī)器人系統(tǒng)應(yīng)用開(kāi)發(fā)”課程的教材和教學(xué)參考書(shū),也可以作為工程實(shí)訓(xùn)與學(xué)科競(jìng)賽的實(shí)踐教材和實(shí)驗(yàn)配套教材,同時(shí)還可供廣大希望從事機(jī)器人系統(tǒng)開(kāi)發(fā)和設(shè)計(jì)的工程技術(shù)人員、教師或者個(gè)人參考。
彭剛,博士,研究方向?yàn)橹悄軝C(jī)器人與智能制造系統(tǒng)、基于傳感器融合的智能感知與控制等,長(zhǎng)期從事機(jī)器人智能控制、多傳感器集成與信息融合、智能駕駛及人機(jī)協(xié)作共融機(jī)器人系統(tǒng)的教學(xué)、科研和開(kāi)發(fā)工作。主編3部中文著作和1部英文著作,在IEEE Transactions等機(jī)器人和自動(dòng)化領(lǐng)域的國(guó)際期刊發(fā)表多篇論文,獲授權(quán)發(fā)明專利40余項(xiàng),主持完成了多項(xiàng)科技成果產(chǎn)品轉(zhuǎn)化。
目 錄
第1章 機(jī)器人系統(tǒng)組成 1
1.1 移動(dòng)底盤和機(jī)械臂 1
1.1.1 移動(dòng)底盤 1
1.1.2 機(jī)械臂 4
1.2 機(jī)器人系統(tǒng)的硬件組成 6
1.2.1 控制系統(tǒng) 6
1.2.2 驅(qū)動(dòng)系統(tǒng) 7
1.2.3 執(zhí)行機(jī)構(gòu) 7
1.2.4 傳感系統(tǒng) 8
1.3 傳感器說(shuō)明與功能介紹 8
1.3.1 編碼器 8
1.3.2 慣性測(cè)量單元 9
1.3.3 激光雷達(dá) 10
1.3.4 相機(jī) 13
1.3.5 紅外傳感器 14
1.3.6 超聲波傳感器 14
1.3.7 毫米波雷達(dá) 15
1.3.8 碰撞傳感器 16
1.3.9 多傳感器融合 16
1.4 機(jī)器人系統(tǒng)的軟件組成 17
1.4.1 操作系統(tǒng) 17
1.4.2 應(yīng)用軟件 17
任務(wù) 遠(yuǎn)程桌面連接:使用Spark機(jī)器人平臺(tái) 17
1.5 本章小結(jié) 20
擴(kuò)展閱讀 20
練習(xí)題 20
第2章 將機(jī)器人連接到ROS 22
2.1 初識(shí)ROS 22
2.1.1 ROS起源 22
2.1.2 ROS架構(gòu) 22
2.1.3 ROS特點(diǎn) 24
2.2 如何安裝ROS 24
2.2.1 操作系統(tǒng)和ROS版本 24
2.2.2 Linux基礎(chǔ)簡(jiǎn)介 25
2.2.3 ROS安裝 29
2.2.4 設(shè)置環(huán)境變量 30
2.2.5 驗(yàn)證安裝 31
2.3 ROS文件系統(tǒng)與通信機(jī)制 31
2.3.1 文件系統(tǒng) 31
2.3.2 ROS通信及其工作機(jī)制 33
2.4 編寫(xiě)第一個(gè)ROS程序 38
2.4.1 ROS功能包依賴管理 38
2.4.2 ROS工作空間 39
2.4.3 功能包創(chuàng)建與編譯 42
任務(wù)1 運(yùn)行一個(gè)簡(jiǎn)單ROS程序 48
2.4.4 ROS 節(jié)點(diǎn)的編寫(xiě)規(guī)則 50
2.4.5 運(yùn)行節(jié)點(diǎn)的兩種途徑 52
2.4.6 launch文件 53
2.4.7 坐標(biāo)變換基礎(chǔ) 54
任務(wù)2 讓小海龜跑起來(lái) 58
2.5 ROS常用組件 59
2.5.1 可視化工具 60
2.5.2 rosbag數(shù)據(jù)記錄與回放 62
2.5.3 ROS調(diào)試工具箱 64
2.6 Spark底盤控制 66
任務(wù)3 讓Spark機(jī)器人運(yùn)動(dòng)起來(lái) 67
2.7 ROS外接設(shè)備介紹 69
2.7.1 遙控手柄 69
2.7.2 激光雷達(dá) 72
2.7.3 視覺(jué)傳感器 74
2.7.4 慣性測(cè)量單元與定位模塊 76
2.7.5 伺服電機(jī) 78
2.7.6 嵌入式控制器 79
2.8 本章小結(jié) 80
擴(kuò)展閱讀 80
練習(xí)題 80
第3章 建立機(jī)器人系統(tǒng)模型 81
3.1 移動(dòng)底盤運(yùn)動(dòng)模型與控制 81
3.1.1 移動(dòng)機(jī)器人運(yùn)動(dòng)模型與位置表示 81
3.1.2 URDF建模 85
3.1.3 機(jī)器人狀態(tài)發(fā)布 97
3.1.4 移動(dòng)底盤運(yùn)動(dòng)控制 99
任務(wù)1 控制ROS仿真機(jī)器人與真實(shí)機(jī)器人同步運(yùn)動(dòng) 103
3.2 基于激光雷達(dá)的環(huán)境感知 105
3.2.1 rplidar功能包 105
3.2.2 hector_mapping介紹 107
3.2.3 hector_mapping的使用 108
任務(wù)2 小車運(yùn)動(dòng)時(shí)的點(diǎn)云數(shù)據(jù) 110
3.3 本章小結(jié) 111
參考文獻(xiàn) 111
擴(kuò)展閱讀 111
練習(xí)題 112
第4章 移動(dòng)機(jī)器人激光SLAM 113
4.1 SLAM基本原理 113
4.1.1 SLAM概述 113
4.1.2 移動(dòng)機(jī)器人坐標(biāo)系 114
任務(wù)1 機(jī)器人坐標(biāo)變換 115
4.1.3 ROS導(dǎo)航與定位過(guò)程 119
4.1.4 環(huán)境建圖與位姿估計(jì) 120
4.2 Gmapping算法 121
4.2.1 原理分析 122
4.2.2 實(shí)施流程 122
任務(wù)2 基于Gmapping算法的激光2D建圖 123
4.3 Hector SLAM算法 125
4.3.1 原理分析 125
任務(wù)3 基于Hector SLAM算法的激光2D建圖 127
4.3.2 建圖結(jié)果 128
4.4 本章小結(jié) 129
參考文獻(xiàn) 129
擴(kuò)展閱讀 130
練習(xí)題 130
第5章 移動(dòng)機(jī)器人自主導(dǎo)航 131
5.1 基于地圖的定位 131
5.1.1 蒙特卡羅定位 131
5.1.2 自適應(yīng)蒙特卡羅定位 133
任務(wù)1 移動(dòng)機(jī)器人定位 137
5.2 基于地圖的自主導(dǎo)航 139
5.2.1 導(dǎo)航框架 139
5.2.2 全局路徑規(guī)劃 140
5.2.3 局部路徑規(guī)劃 145
5.2.4 導(dǎo)航功能包 151
任務(wù)2 移動(dòng)機(jī)器人導(dǎo)航 157
5.3 本章小結(jié) 159
參考文獻(xiàn) 159
擴(kuò)展閱讀 160
練習(xí)題 160
第6章 基于多傳感器的SLAM 161
6.1 慣性測(cè)量單元模型與標(biāo)定 161
6.1.1 慣性測(cè)量單元測(cè)量模型 162
6.1.2 系統(tǒng)誤差的預(yù)標(biāo)定 162
6.1.3 隨機(jī)誤差的預(yù)標(biāo)定 164
6.2 激光雷達(dá)與IMU的外參標(biāo)定 165
6.3 差速輪式移動(dòng)機(jī)器人的運(yùn)動(dòng)里程計(jì)模型 167
6.4 基于卡爾曼濾波的多傳感器融合 169
任務(wù)1 基于濾波器的SLAM算法 170
6.5 Cartographer算法 172
6.5.1 原理分析 173
任務(wù)2 基于圖優(yōu)化的SLAM 174
6.5.2 建圖結(jié)果 178
6.6 本章小結(jié) 179
參考文獻(xiàn) 179
擴(kuò)展閱讀 180
練習(xí)題 180
第7章 機(jī)械臂運(yùn)動(dòng)控制 181
7.1 機(jī)械臂建模 181
7.1.1 ROS中常用的機(jī)械臂 181
7.1.2 機(jī)械臂URDF模型 182
7.1.3 機(jī)械臂URDF建模 184
7.2 機(jī)械臂控制——MoveIt 188
7.2.1 MoveIt簡(jiǎn)介 188
7.2.2 Setup Assistant配置機(jī)械臂 188
7.2.3 MoveIt可視化控制 193
7.2.4 機(jī)械臂運(yùn)動(dòng)學(xué) 194
任務(wù)1 讓機(jī)械臂動(dòng)起來(lái)——MoveIt與Gazebo仿真 198
7.3 MoveIt編程——機(jī)械臂運(yùn)動(dòng)規(guī)劃 202
7.3.1 關(guān)節(jié)空間運(yùn)動(dòng)規(guī)劃 202
7.3.2 工作空間運(yùn)動(dòng)規(guī)劃 204
7.3.3 笛卡爾空間運(yùn)動(dòng)規(guī)劃 207
7.3.4 機(jī)械臂碰撞檢測(cè) 211
任務(wù)2 數(shù)字孿生——真實(shí)機(jī)械臂與仿真機(jī)械臂同步運(yùn)動(dòng) 214
7.4 本章小結(jié) 216
參考文獻(xiàn) 216
擴(kuò)展閱讀 217
練習(xí)題 217
第8章 計(jì)算機(jī)視覺(jué) 218
8.1 認(rèn)識(shí)OpenCV 218
8.1.1 安裝OpenCV 218
8.1.2 使用OpenCV 218
8.2 單目視覺(jué)傳感器的使用 220
任務(wù)1 圖像采集 220
8.3 相機(jī)標(biāo)定 221
8.3.1 針孔相機(jī)模型 222
8.3.2 畸變模型 224
8.3.3 相機(jī)標(biāo)定的原理和過(guò)程 225
8.3.4 相機(jī)標(biāo)定功能包 227
8.4 圖像變換與處理 230
8.4.1 透視變換 230
8.4.2 圖像匹配 233
8.4.3 圖像拼接 234
8.5 常見(jiàn)的圖像特征點(diǎn)檢測(cè)算法 235
8.5.1 SIFT算法 235
8.5.2 SURF算法 239
8.5.3 FAST算法 243
8.5.4 ORB算法 245
8.6 目標(biāo)識(shí)別 247
任務(wù)2 基于單目相機(jī)的物體識(shí)別 247
8.7 本章小結(jié) 252
參考文獻(xiàn) 252
擴(kuò)展閱讀 253
練習(xí)題 253
第9章 基于視覺(jué)的機(jī)械臂抓取 254
9.1 深度相機(jī) 254
9.1.1 雙目相機(jī)和RGB-D深度相機(jī) 254
9.1.2 雙目相機(jī)模型和RGB-D深度相機(jī)模型 257
任務(wù)1 深度相機(jī)驅(qū)動(dòng)安裝 259
9.2 基于深度學(xué)習(xí)的物體識(shí)別 260
9.2.1 基于卷積神經(jīng)網(wǎng)絡(luò)的物體識(shí)別 260
9.2.2 常見(jiàn)深度學(xué)習(xí)框架 265
任務(wù)2 基于卷積神經(jīng)網(wǎng)絡(luò)的物體識(shí)別實(shí)現(xiàn) 266
9.3 手眼標(biāo)定原理和過(guò)程 267
任務(wù)3 機(jī)器人手眼視覺(jué)外參標(biāo)定 270
9.4 基于視覺(jué)的機(jī)械臂抓取實(shí)現(xiàn) 273
9.4.1 目標(biāo)物體定位 274
9.4.2 姿態(tài)估計(jì) 277
9.4.3 抓取姿態(tài)檢測(cè) 280
9.4.4 運(yùn)動(dòng)規(guī)劃 282
任務(wù)4 完成基于視覺(jué)的機(jī)械臂抓取 284
任務(wù)5 控制機(jī)械臂指向物體 286
9.5 本章小結(jié) 289
參考文獻(xiàn) 289
擴(kuò)展閱讀 290
練習(xí)題 290
第10章 移動(dòng)機(jī)器人視覺(jué)SLAM 291
10.1 視覺(jué)SLAM框架 291
10.1.1 視覺(jué)里程計(jì) 291
10.1.2 非線性優(yōu)化 292
10.1.3 回環(huán)檢測(cè) 293
10.1.4 建圖 293
10.2 ORB-SLAM算法 295
任務(wù)1 在單目數(shù)據(jù)集上運(yùn)行ORB-SLAM2 298
10.3 稠密建圖 301
10.3.1 空間地圖的表示方式 303
10.3.2 雙目相機(jī)幾何模型與標(biāo)定 307
10.3.3 稠密建圖 311
任務(wù)2 基于深度相機(jī)的場(chǎng)景建圖 313
10.4 其他視覺(jué)SLAM算法或框架 314
10.4.1 LSD-SLAM 316
10.4.2 SVO 318
10.4.3 OpenVSLAM 318
10.4.4 VINS-Fusion 320
10.5 本章小結(jié) 322
參考文獻(xiàn) 322
擴(kuò)展閱讀 323
練習(xí)題 324
第11章 ROS 2.0介紹與編程基礎(chǔ) 325
11.1 ROS 2.0設(shè)計(jì)思想 325
11.1.1 ROS 1.0問(wèn)題總結(jié) 325
11.1.2 ROS 2.0發(fā)展現(xiàn)狀 326
11.1.3 ROS 2.0通信模型 326
11.2 ROS 2.0安裝與使用 328
11.2.1 ROS 2.0安裝 328
11.2.2 運(yùn)行小海龜案例 329
11.2.3 ROS 2.0命令行 331
11.3 ROS 2.0編程基礎(chǔ) 332
11.3.1 ROS 2.0編程方法 332
11.3.2 ROS 2.0與ROS 1.0編程區(qū)別 338
11.4 本章小結(jié) 339
擴(kuò)展閱讀 339
練習(xí)題 339