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