機器人操作系統(tǒng)(ROS2)入門與實踐 劉相權(quán) 張萬杰
定 價:79.8 元
- 作者:劉相權(quán) 張萬杰
- 出版時間:2024/7/1
- ISBN:9787111758433
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP242
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書首先對ROS2 的安裝與系統(tǒng)架構(gòu)、開發(fā)資源與工具、ROS2 編程基礎(chǔ)、機器人運動控制、傳感器應(yīng)用進行了介紹,然后在仿真環(huán)境中對ROS2中的SLAM 環(huán)境建圖、自主導(dǎo)航、視覺圖像應(yīng)用、三維視覺應(yīng)用、機械臂應(yīng)用進行了詳細介紹,最后通過一個完整的仿真實例,實現(xiàn)地圖創(chuàng)建、航點設(shè)置、物品自動抓取功能。讀者只需要擁有一臺運行Ubuntu 系統(tǒng)的計算機,具備Linux 的基本知識,了解C++的編程方法,即可完成本書的學(xué)習(xí)。
書中列舉了大量應(yīng)用實例,所有實例均在ROS2 中調(diào)試通過,可以直接運行,且每個應(yīng)用實例均給出相應(yīng)的源代碼。
本書在編寫時力求做到內(nèi)容通俗易懂、圖文并茂;針對工程應(yīng)用型院校學(xué)生的特點,內(nèi)容講解在夠用的基礎(chǔ)上,突出實際應(yīng)用。
本書可作為普通高等院校機器人、機械電子、智能制造、機械等專業(yè)的教材,也可作為廣大從事機器人開發(fā)的工程技術(shù)人員的參考書。
本書配有以下教學(xué)資源:課件PPT、程序代碼。歡迎選用本書作教材的教師登錄www. cmpedu. com 注冊后下載,或聯(lián)系微信13910750469 索。ㄗ⒚餍彰+學(xué)校)。
本書遵循教指委相關(guān)指導(dǎo)文件和高等院校學(xué)生學(xué)習(xí)規(guī)律編寫而成。踐行四新理念,融入思政元素,注重理論與實踐相結(jié)合。
ROS作為一種開源軟件,在眾多機器人中得到廣泛應(yīng)用,但由于最初設(shè)計時的局限性,ROS的缺陷也開始顯露出來。為了彌補這些缺陷,使其能夠適用于所有機器人的操作系統(tǒng),ROS2在2017年底正式發(fā)布。歷經(jīng)多年迭代,在2022年5月底,ROS2第一個長期支持版本——ROS2 Humble誕生。ROS2采用了更加現(xiàn)代化的軟件架構(gòu),提供了更好的實時性能和安全性。目前ROS2已經(jīng)成熟,機器人行業(yè)也進入了一個全新的ROS2時代。
ROS2提供了許多功能和工具,包括通信機制、分布式系統(tǒng)、參數(shù)服務(wù)器、組件庫和仿真環(huán)境等,可以幫助開發(fā)人員更快速、更高效地開發(fā)機器人應(yīng)用程序。此外,ROS2還廣泛應(yīng)用于機器人導(dǎo)航、機器人控制、機器人視覺和機器人教育等領(lǐng)域。
本書主要面向應(yīng)用型本科院校,由淺入深、循序漸進地介紹了ROS2的功能和操作步驟。本書內(nèi)容涉及Ubuntu 22.04的安裝與使用、ROS2安裝與系統(tǒng)架構(gòu)、ROS2編程基礎(chǔ)、ROS2機器人運動控制、激光雷達及IMU在ROS2中的使用、SLAM環(huán)境建圖、自主導(dǎo)航、視覺圖像應(yīng)用、三維視覺應(yīng)用、機械臂應(yīng)用以及對前面所有知識點的綜合應(yīng)用。每一環(huán)節(jié)引用大量仿真應(yīng)用實例,并給出源代碼,便于讀者學(xué)習(xí)。書中使用大量圖片,讓抽象的內(nèi)容立體化、形象化,非常便于讀者閱讀和按步驟對照學(xué)習(xí)ROS2機器人操作系統(tǒng)。讀者只需要擁有一臺運行Ubuntu系統(tǒng)的計算機,具備Linux的基本知識,了解C++的編程方法,即可完成本書的學(xué)習(xí)。
在本書的編寫過程中,編者參閱了大量的相關(guān)教材和專著,也在網(wǎng)上查找了很多資料,在此向相關(guān)作者表示感謝!同時,楊蕊東、王偉豪兩位碩士生積極參與了本書的核對工作,他們的嚴(yán)謹和專注確保了本書內(nèi)容的準(zhǔn)確性和完整性,特此表示感謝!
由于編者水平有限,書中不足、疏漏之處在所難免,懇請廣大讀者批評、指正。
編者
高等院校教師
前言
第1章Linux Ubuntu入門基礎(chǔ)
1.1Ubuntu簡介
1.2安裝Ubuntu 22.04
1.2.1準(zhǔn)備工作
1.2.2制作Ubuntu系統(tǒng)安裝啟動U盤
1.2.3關(guān)閉BitLocker
1.2.4Windows磁盤空間壓縮
1.2.5BIOS設(shè)置
1.2.6Ubuntu系統(tǒng)的安裝
1.3Ubuntu 22.04使用入門
1.3.1Ubuntu 22.04桌面介紹
1.3.2連接無線網(wǎng)絡(luò)
1.3.3軟件源的更換
1.3.4Ubuntu文件系統(tǒng)
1.3.5終端運行和常用指令
1.3.6管理員權(quán)限
1.3.7環(huán)境變量和 source 指令
1.3.8時間同步問題
1.3.9修改默認引導(dǎo)系統(tǒng)
1.4本章小結(jié)
第2章ROS2安裝與系統(tǒng)架構(gòu)
2.1ROS2簡介
2.2ROS2系統(tǒng)架構(gòu)
2.2.1ROS2文件系統(tǒng)
2.2.2ROS2中的重要組成部分——DDS
2.3ROS2安裝與配置
2.4從APT軟件源安裝應(yīng)用程序
2.5ROS2的工作空間
2.6從Github下載安裝應(yīng)用程序
2.7Visual Studio Code編輯器
2.7.1安裝Visual Studio Code
2.7.2安裝中文插件
2.7.3安裝CMake插件
2.7.4導(dǎo)入工作空間文件夾
2.8Terminator終端工具
2.9本章小結(jié)
第3章ROS2編程基礎(chǔ)
3.1節(jié)點和軟件包
3.1.1創(chuàng)建軟件包
3.1.2編寫節(jié)點
3.1.3運行節(jié)點
3.1.4練習(xí)題
3.2話題和消息
3.2.1編寫話題發(fā)布者
3.2.2編寫話題訂閱者
3.2.3練習(xí)題
3.3面向?qū)ο蟮墓?jié)點實現(xiàn)
3.3.1話題發(fā)布者的類封裝
3.3.2話題訂閱者的類封裝
3.3.3練習(xí)題
3.4Launch文件
3.4.1XML格式的Launch文件
3.4.2YAML格式的Launch文件
3.4.3Python格式的Launch文件
3.4.4練習(xí)題
3.5本章小結(jié)
第4章ROS2機器人運動控制
4.1速度控制消息包格式
4.2機器人運動控制的實現(xiàn)
4.2.1編寫速度控制程序
4.2.2仿真運行速度控制程序
4.2.3練習(xí)題
4.3本章小結(jié)
第5章激光雷達在ROS2中的使用
5.1ROS2中的激光雷達數(shù)據(jù)
5.1.1激光雷達的話題名稱
5.1.2激光雷達的消息包格式
5.2在RViz2中查看激光雷達數(shù)據(jù)
5.2.1RViz2的使用
5.2.2界面配置的保存
5.2.3界面配置的加載
5.3激光雷達數(shù)據(jù)獲取
5.3.1編寫激光雷達數(shù)據(jù)獲取程序
5.3.2仿真運行激光雷達數(shù)據(jù)
獲取程序
5.3.3練習(xí)題
5.4基于激光雷達的避障實現(xiàn)
5.4.1編寫激光雷達避障程序
5.4.2仿真運行激光雷達避障程序
5.4.3練習(xí)題
5.5本章小結(jié)
第6章IMU在ROS2中的使用
6.1ROS2中的IMU數(shù)據(jù)
6.1.1IMU的話題名稱
6.1.2IMU的消息包格式
6.2IMU數(shù)據(jù)獲取
6.2.1編寫IMU數(shù)據(jù)獲取程序
6.2.2仿真運行IMU數(shù)據(jù)獲取程序
6.2.3練習(xí)題
6.3基于IMU的航向鎖定實現(xiàn)
6.3.1編寫航向鎖定程序
6.3.2仿真運行航向鎖定程序
6.3.3練習(xí)題
6.4本章小結(jié)
第7章ROS2中的SLAM環(huán)境建圖
7.1SLAM建圖原理
7.2SLAM Toolbox簡介
7.3仿真環(huán)境實現(xiàn)SLAM建圖
7.3.1SLAM Toolbox的啟動
7.3.2仿真環(huán)境建圖
7.3.3地圖的保存
7.3.4SLAM Toolbox的參數(shù)設(shè)置
7.3.5練習(xí)題
7.4本章小結(jié)
第8章ROS2中的NAV2自主導(dǎo)航
8.1NAV2的組成結(jié)構(gòu)
8.1.1地圖服務(wù)器
8.1.2路徑規(guī)劃器
8.1.3路徑平滑器
8.1.4AMCL
8.1.5運動控制器
8.1.6導(dǎo)航恢復(fù)行為
8.1.7速度平滑器
8.1.8行為樹管理器
8.1.9練習(xí)題
8.2使用NAV2進行自主導(dǎo)航
8.2.1NAV2的安裝
8.2.2使用NAV2實現(xiàn)自主導(dǎo)航
8.2.3仿真環(huán)境運行自主導(dǎo)航
8.2.4NAV2的參數(shù)設(shè)置
8.2.5練習(xí)題
8.3開源導(dǎo)航插件的使用
8.3.1安裝導(dǎo)航插件
8.3.2添加航點
8.3.3啟動導(dǎo)航服務(wù)
8.3.4構(gòu)建航點導(dǎo)航程序
8.3.5仿真運行航點導(dǎo)航程序
8.3.6練習(xí)題
8.4本章小結(jié)
第9章ROS2中的視覺圖像應(yīng)用
9.1視覺圖像數(shù)據(jù)的獲取
9.1.1編寫圖像數(shù)據(jù)獲取程序
9.1.2仿真運行圖像數(shù)據(jù)獲取程序
9.1.3練習(xí)題
9.2OpenCV顏色特征提取和目標(biāo)定位
9.2.1編寫顏色特征提取和目標(biāo)定位程序
9.2.2仿真運行顏色特征提取和目標(biāo)定位程序
9.2.3練習(xí)題
9.3基于視覺圖像的目標(biāo)追蹤實現(xiàn)
9.3.1編寫目標(biāo)追蹤程序
9.3.2仿真運行目標(biāo)追蹤程序
9.3.3練習(xí)題
9.4基于視覺圖像的人臉檢測實現(xiàn)
9.4.1編寫人臉檢測程序
9.4.2仿真運行人臉檢測程序
9.4.3練習(xí)題
9.5本章小結(jié)
第10章ROS2的三維視覺應(yīng)用
10.1RGB-D相機的三維點云數(shù)據(jù)獲取
10.1.1編寫點云數(shù)據(jù)獲取程序
10.1.2仿真運行點云數(shù)據(jù)獲取程序
10.1.3練習(xí)題
10.2使用PCL進行物品檢測
10.2.1編寫物品檢測程序
10.2.2仿真運行物品檢測程序
10.2.3練習(xí)題
10.3本章小結(jié)
第11章ROS2的機械臂應(yīng)用
11.1ROS2中的機械臂消息包格式
11.2機械臂控制
11.2.1編寫機械臂控制程序
11.2.2仿真運行點云數(shù)據(jù)獲取程序
11.2.3練習(xí)題
11.3使用機械臂進行物品抓取
11.3.1編寫物品抓取程序
11.3.2仿真運行物品抓取程序
11.3.3練習(xí)題
11.4本章小結(jié)
第12章基于ROS2的綜合應(yīng)用
12.1方案設(shè)計
12.1.1建圖導(dǎo)航方案設(shè)計
12.1.2物品抓取方案設(shè)計
12.1.3主體任務(wù)方案設(shè)計
12.2采集環(huán)境數(shù)據(jù)
12.2.1SLAM環(huán)境建圖
12.2.2設(shè)置航點坐標(biāo)
12.3編寫程序代碼
12.3.1Launch文件的編寫
12.3.2服務(wù)機器人程序?qū)崿F(xiàn)
12.4仿真運行服務(wù)機器人程序
12.5本章小結(jié)
參考文獻