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