ROS 2機(jī)器人操作系統(tǒng)與Gazebo機(jī)器人仿真
定 價(jià):89 元
叢書(shū)名:跟我一起學(xué)人工智能
- 作者:侯偉、靳紫軒
- 出版時(shí)間:2024/12/1
- ISBN:9787302702535
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP242
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)全面地介紹了ROS2機(jī)器人操作系統(tǒng)與Gazebo機(jī)器人仿真技術(shù),內(nèi)容涵蓋了機(jī)器人技術(shù)的基礎(chǔ)知識(shí)、ROS2的運(yùn)行原理、基本操作與編程方法,以及新一代Gazebo仿真工具的使用,通過(guò)詳細(xì)的操作步驟解析和豐富的實(shí)踐案例,幫助讀者快速掌握機(jī)器人開(kāi)發(fā)與仿真的關(guān)鍵技能。書(shū)共9章,第1章介紹了機(jī)器人技術(shù)基礎(chǔ)知識(shí),對(duì)機(jī)器人領(lǐng)域進(jìn)行了全面概述;第2~4章重點(diǎn)介紹了ROS2的安裝、編程和仿真案例,以便讀者熟練掌握ROS2;第5章和第6章介紹了Gazebo的安裝、仿真環(huán)境和機(jī)器人建模方法,第7章介紹ROS2和Gazebo進(jìn)行聯(lián)合仿真的方法,第8章以移動(dòng)機(jī)器人的自主建圖和導(dǎo)航仿真介紹導(dǎo)航框架Nav2的使用方法,第9章介紹六足、四足、雙足機(jī)器人、多旋翼無(wú)人機(jī)、海面船舶和水平潛艇等6種機(jī)器人仿真方法和流程。本書(shū)內(nèi)容豐富,理論與實(shí)踐相結(jié)合,適合機(jī)器人技術(shù)初學(xué)者、高校計(jì)算機(jī)與機(jī)器人相關(guān)專業(yè)高年級(jí)本科生和研究生、科研院所的研究人員及從事機(jī)器人開(kāi)發(fā)的工程師閱讀和參考。隨書(shū)附贈(zèng),本書(shū)中的所有仿真模型、全書(shū)源碼、授課PPT和授課視頻。
●內(nèi)容全面本書(shū)從基礎(chǔ)的Ubuntu系統(tǒng)的安裝與開(kāi)發(fā)環(huán)境搭建起步,初學(xué)者易入門(mén);全面介紹ROS2機(jī)器人操作系統(tǒng)的安裝、配置,以及命令行工具、rqt工具、TF2坐標(biāo)系管理、Launch文件等重點(diǎn)內(nèi)容。通過(guò)豐富的案例和實(shí)踐,讀者可快速掌握ROS2的機(jī)器人開(kāi)發(fā)方法。在機(jī)器人仿真方面,本書(shū)詳細(xì)介紹了Gazebo的使用方法,包括基于SDF的仿真環(huán)境與機(jī)器人構(gòu)建、ROS2與Gazebo聯(lián)合仿真的全流程和7種不同類型機(jī)器人的仿真案例!窦夹g(shù)先進(jìn)本書(shū)選用Ubuntu24.04長(zhǎng)期版操作系統(tǒng)、ROS2Jazzy長(zhǎng)期版和新一代GazeboHarmonic為主進(jìn)行介紹。隨著老版本的退出,新版本憑借其的性能和豐富的新特性,將為機(jī)器人開(kāi)發(fā)和仿真提供更強(qiáng)大的支持,滿足目前及未來(lái)機(jī)器人開(kāi)發(fā)的需求。●組織結(jié)構(gòu)好本書(shū)遵循由易到難、由淺入深的原則,精心組織內(nèi)容。從機(jī)器人基礎(chǔ)理論與知識(shí)入手,逐步深入到ROS2機(jī)器人操作系統(tǒng)的詳細(xì)講解,再過(guò)渡到Gazebo仿真工具的運(yùn)用,最后重點(diǎn)剖析ROS2與Gazebo聯(lián)合仿真的方法及7種不同類型機(jī)器人仿真案例,使讀者能夠循序漸進(jìn)地構(gòu)建知識(shí)體系!駥W(xué)習(xí)資源豐富隨書(shū)附贈(zèng)了全套教學(xué)課件、程序源碼,既方便自學(xué),也便于教師用于課堂理論授課和實(shí)驗(yàn)指導(dǎo)。此外,每章配備教學(xué)視頻,助力讀者輕松高效地學(xué)習(xí)。
前言
隨著人工智能技術(shù)的飛速發(fā)展,機(jī)器人領(lǐng)域正迎來(lái)前所未有的變革與機(jī)遇。機(jī)器人不再僅僅是工業(yè)生產(chǎn)中的自動(dòng)化工具,而是正在逐漸融入人類生活的方方面面,從家庭服務(wù)到太空探索,從醫(yī)療到危險(xiǎn)環(huán)境作業(yè),其應(yīng)用場(chǎng)景不斷拓展。在這一背景下,掌握機(jī)器人開(kāi)發(fā)與仿真技術(shù)已成為進(jìn)入機(jī)器人行業(yè)的關(guān)鍵技能。
ROS(Robot Operating System,機(jī)器人操作系統(tǒng))作為機(jī)器人領(lǐng)域的主流開(kāi)發(fā)框架,為機(jī)器人編程提供了一個(gè)高效、靈活且易于擴(kuò)展的平臺(tái)。近年來(lái),隨著ROS 2的推出,其在實(shí)時(shí)性、跨平臺(tái)支持、安全性等方面進(jìn)行了全面升級(jí),進(jìn)一步推動(dòng)了機(jī)器人技術(shù)的發(fā)展。與此同時(shí),Gazebo作為一款強(qiáng)大的物理仿真工具,能夠高度逼真地模擬機(jī)器人與環(huán)境的交互,為機(jī)器人的設(shè)計(jì)、測(cè)試和優(yōu)化提供了有力支持。長(zhǎng)期以來(lái)Gazebo作為仿真工具能夠與ROS 2進(jìn)行聯(lián)合仿真,一方面作為ROS的默認(rèn)仿真工具,解決了ROS缺乏機(jī)器人仿真工具的問(wèn)題; 另一方面Gazebo仿真工具為ROS 2程序的實(shí)驗(yàn)和驗(yàn)證提供了平臺(tái),可在程序部署到真實(shí)機(jī)器人前進(jìn)行算法檢驗(yàn),提升ROS 2程序的開(kāi)發(fā)效率。
目前ROS 2和Gazebo發(fā)展迅速,已成為機(jī)器人開(kāi)發(fā)和仿真領(lǐng)域的核心工具。然而,國(guó)內(nèi)缺乏系統(tǒng)介紹二者特性的書(shū)籍和資料,鑒于這一現(xiàn)狀,本書(shū)精心選取了ROS 2在2024年5月發(fā)布的長(zhǎng)期支持版本Jazzy和與之所配套的在2023年9月發(fā)布的新一代Gazebo的長(zhǎng)期支持版本Harmonic作為核心內(nèi)容進(jìn)行系統(tǒng)介紹。新的ROS 2和Gazebo不論在安裝、使用和編程方面均展現(xiàn)出易用性。同時(shí),二者的聯(lián)合仿真也更加規(guī)范、合理,整體邏輯也更為清晰,極大地降低了學(xué)習(xí)和開(kāi)發(fā)的門(mén)檻。基于以上優(yōu)勢(shì),本書(shū)建議初學(xué)者直接從新的ROS 2和Gazebo入手,以便充分利用其強(qiáng)大的新特性,并在未來(lái)的開(kāi)發(fā)中獲得長(zhǎng)期技術(shù)支持和持續(xù)收益。對(duì)于有一定經(jīng)驗(yàn)的讀者,可參考本書(shū)介紹的內(nèi)容,將現(xiàn)有項(xiàng)目遷移到新的ROS 2和Gazebo版本,確保項(xiàng)目在未來(lái)的開(kāi)發(fā)和應(yīng)用中保持高效和可持續(xù)性。無(wú)論是機(jī)器人技術(shù)的初學(xué)者,還是希望深入了解ROS 2與Gazebo高級(jí)應(yīng)用的開(kāi)發(fā)者,本書(shū)都將是一本極具價(jià)值的參考書(shū)。
本書(shū)旨在為讀者提供一本系統(tǒng)、全面且實(shí)用的教材和參考資料,幫助讀者快速地掌握ROS 2與Gazebo的基本原理與核心技術(shù)。第1章為機(jī)器人技術(shù)基礎(chǔ)知識(shí),介紹了機(jī)器人的定義、發(fā)展歷史、分類、構(gòu)成到產(chǎn)業(yè)現(xiàn)狀,是對(duì)機(jī)器人領(lǐng)域的概述。第2~4章全面地介紹了ROS 2機(jī)器人操作系統(tǒng)。第2章介紹了ROS 2的基本原理、安裝方法、命令行工具和rqt的使用方法等基礎(chǔ)內(nèi)容。第3章以Python語(yǔ)言為主介紹了ROS 2工作空間的結(jié)構(gòu)、rclpy庫(kù)的使用、坐標(biāo)系管理、Launch文件編寫(xiě)和URDF的使用等內(nèi)容。第4章通過(guò)TurtleSim仿真環(huán)境介紹了ROS 2基礎(chǔ)仿真,通過(guò)豐富的案例展示了話題控制、服務(wù)調(diào)用、動(dòng)作反饋及群機(jī)器人仿真等內(nèi)容。第5章和第6章細(xì)致地介紹了新一代Gazebo仿真工具。第5章介紹了Gazebo的架構(gòu)、安裝、圖形用戶界面,以及命令行工具的使用方法等基礎(chǔ)知識(shí)。第6章詳細(xì)地介紹了使用SDF構(gòu)建仿真環(huán)境、創(chuàng)建模型和機(jī)器人等內(nèi)容。第7~9章介紹了ROS 2和Gazebo聯(lián)合仿真的方法和實(shí)際應(yīng)用案例。第7章介紹了ROS 2和Gazebo聯(lián)合仿真的基本原理和一般流程。第8章詳細(xì)地介紹了Nav2無(wú)人車(chē)導(dǎo)航框架的基本原理和仿真方法。第9章介紹了六足機(jī)器人、四足機(jī)器人、雙足機(jī)器人、四旋翼無(wú)人機(jī)、海面船舶和水下潛艇6種不同類型的機(jī)器人仿真方法,展示了ROS 2與Gazebo聯(lián)合仿真的一般流程和步驟,以及二者在多樣化機(jī)器人開(kāi)發(fā)和應(yīng)用中的廣泛前景。隨書(shū)附贈(zèng)的全部代碼均經(jīng)過(guò)驗(yàn)證,方便讀者運(yùn)行和修改。
資源下載提示
素材(源碼)等資源: 掃描目錄上方的二維碼下載。
視頻等資源: 掃描封底的文泉云盤(pán)防盜碼,再掃描書(shū)中相應(yīng)章節(jié)的二維碼,可以在線學(xué)習(xí)。
在編寫(xiě)本書(shū)的過(guò)程中,筆者力求做到內(nèi)容翔實(shí)、語(yǔ)言通俗易懂,并通過(guò)大量實(shí)例和詳細(xì)的步驟解析,幫助讀者更好地理解和掌握相關(guān)知識(shí)。同時(shí),我們也注意到機(jī)器人技術(shù)的快速發(fā)展,在內(nèi)容選擇上注重前沿性與實(shí)用性,確保本書(shū)能夠滿足當(dāng)前機(jī)器人開(kāi)發(fā)與仿真的實(shí)際需求。
最后,感謝所有支持本書(shū)編寫(xiě)工作的同事和朋友,也期待讀者在學(xué)習(xí)過(guò)程中提出寶貴意見(jiàn)和建議。
作者
2025年5月5日
侯偉,華北理工大學(xué)理學(xué)院教師,工學(xué)博士,碩士研究生導(dǎo)師。長(zhǎng)期從事圖像處理和計(jì)算機(jī)視覺(jué)、人工智能、大數(shù)據(jù)、機(jī)器人控制等方面的教研工作。主持和參與科研項(xiàng)目多項(xiàng),完成企業(yè)技術(shù)攻關(guān)2項(xiàng)。目前已發(fā)表學(xué)術(shù)論文6篇,授權(quán)發(fā)明專利2項(xiàng),授權(quán)軟件著作權(quán)3項(xiàng),編寫(xiě)和參編教材3本。指導(dǎo)學(xué)生參加科技競(jìng)賽10余項(xiàng),指導(dǎo)學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目5項(xiàng),獲得、省級(jí)獎(jiǎng)多項(xiàng)。靳紫軒,北京科技大學(xué)計(jì)算機(jī)與通信工程學(xué)院2024級(jí)碩士研究生,本科畢業(yè)于華北理工大學(xué)智能科學(xué)與技術(shù)專業(yè)。碩士研究生期間專注于多智能體系統(tǒng)涌現(xiàn)行為建模與仿真、基于深度強(qiáng)化學(xué)習(xí)的分布式群體行為控制算法及多智能體通用系統(tǒng)編程框架設(shè)計(jì)等方向的研究。在群智能體控制領(lǐng)域具有較豐富的理論和實(shí)踐經(jīng)驗(yàn)。
目錄
教學(xué)課件(PPT)
本書(shū)源碼
第1章機(jī)器人概述(93min)
1.1機(jī)器人定義
1.2機(jī)器人發(fā)展歷史
1.2.1萌芽時(shí)期
1.2.2近代時(shí)期
1.2.3信息時(shí)期
1.2.4智能時(shí)期
1.3機(jī)器人分類
1.4機(jī)器人構(gòu)成
1.5機(jī)器人產(chǎn)業(yè)
1.5.1各國(guó)政策
1.5.2機(jī)器人產(chǎn)業(yè)鏈
1.6本章小結(jié)
第2章ROS 2機(jī)器人操作系統(tǒng)(185min)
2.1ROS 2基本原理
2.1.1ROS 2和ROS 1的比較
2.1.2ROS 2架構(gòu)
2.1.3ROS 2的核心概念
2.2ROS 2的安裝
2.2.1VirtualBox安裝
2.2.2Ubuntu 24.04安裝與配置
2.2.3ROS 2 Jazzy安裝
2.2.4ROS 2第三方功能包
2.3ROS 2命令行工具
2.3.1節(jié)點(diǎn)管理
2.3.2話題操作
2.3.3服務(wù)操作
2.3.4參數(shù)操作
2.3.5動(dòng)作操作
2.3.6記錄與重播操作
2.3.7功能包管理
2.4rqt工具
2.4.1rqt簡(jiǎn)介
2.4.2rqt的使用
2.4.3案例: 繪制奧運(yùn)五環(huán)旗
2.5RViz簡(jiǎn)介
2.6本章小結(jié)
第3章ROS 2編程基礎(chǔ)(231min)
3.1ROS 2項(xiàng)目
3.1.1工作空間
3.1.2創(chuàng)建功能包
3.1.3編寫(xiě)程序
3.1.4編譯功能包
3.1.5運(yùn)行功能包
3.1.6功能包的結(jié)構(gòu)
3.2rclpy庫(kù)的使用
3.2.1節(jié)點(diǎn)
3.2.2話題
3.2.3服務(wù)
3.2.4動(dòng)作
3.2.5參數(shù)
3.2.6消息接口
3.2.7案例: 創(chuàng)建話題發(fā)布者
3.2.8案例: 創(chuàng)建話題訂閱者
3.2.9案例: 創(chuàng)建服務(wù)器
3.2.10案例: 創(chuàng)建客戶端
3.2.11案例: 創(chuàng)建動(dòng)作服務(wù)器
3.2.12案例: 創(chuàng)建動(dòng)作客戶端
3.2.13案例: 創(chuàng)建參數(shù)服務(wù)
3.2.14案例: 創(chuàng)建自定義消息類型
3.3坐標(biāo)系管理
3.3.1坐標(biāo)變換原理
3.3.2TF2簡(jiǎn)介
3.3.3案例: 發(fā)布靜態(tài)坐標(biāo)系
3.3.4案例: 發(fā)布動(dòng)態(tài)坐標(biāo)系
3.3.5案例: 查詢坐標(biāo)系變換
3.4Launch文件
3.4.1Launch文件簡(jiǎn)介
3.4.2常用類介紹
3.4.3案例: Launch文件編寫(xiě)
3.4.4案例: 命名空間與節(jié)點(diǎn)名稱設(shè)置
3.4.5案例: 參數(shù)設(shè)置
3.4.6案例: 話題重映射
3.5URDF簡(jiǎn)介
3.5.1機(jī)器人狀態(tài)發(fā)布器
3.5.2案例: URDF可視化
3.6本章小結(jié)
第4章ROS 2仿真基礎(chǔ)(42min)
4.1TurtleSim仿真環(huán)境簡(jiǎn)介
4.2基礎(chǔ)仿真
4.2.1案例: 話題控制
4.2.2案例: 服務(wù)調(diào)用
4.2.3案例: 動(dòng)作反饋
4.3群機(jī)器人仿真
4.3.1案例: 隨機(jī)游走
4.3.2案例: 繪制奧運(yùn)五環(huán)
4.4機(jī)器人移動(dòng)與TF2
4.4.1案例: 坐標(biāo)廣播
4.4.2案例: 移動(dòng)至目標(biāo)點(diǎn)
4.4.3案例: 小海龜跟隨
4.5本章小結(jié)
第5章Gazebo基礎(chǔ)(75min)
5.1Gazebo簡(jiǎn)介
5.1.1相關(guān)術(shù)語(yǔ)
5.1.2Gazebo架構(gòu)
5.1.3與ROS、RViz和rqt間的區(qū)別與聯(lián)系
5.2安裝與運(yùn)行
5.2.1Gazebo安裝
5.2.2Gazebo運(yùn)行
5.3GUI功能簡(jiǎn)介
5.3.1GUI
5.3.2案例: 利用GUI控制小車(chē)
5.4Gazebo命令行工具
5.4.1話題
5.4.2服務(wù)
5.4.3消息類型
5.5在線模型與本地模型庫(kù)
5.6本章小結(jié)
第6章SDF基礎(chǔ)(113min)
6.1SDF簡(jiǎn)介
6.1.1SDF、URDF與XACRO
6.1.2SDF的結(jié)構(gòu)
6.2環(huán)境仿真
6.2.1基礎(chǔ)插件
6.2.2物理要素仿真
6.2.3環(huán)境顯示效果
6.2.4光源
6.2.5演員
6.3模型
6.3.1模型的結(jié)構(gòu)
6.3.2模型的引入
6.3.3從三維模型創(chuàng)建
6.3.4從簡(jiǎn)單幾何體創(chuàng)建
6.4機(jī)器人仿真
6.4.1關(guān)節(jié)簡(jiǎn)介
6.4.2JointController控制器
6.4.3JointPositionController控制器
6.4.4JointTractoryController控制器
6.4.5專用控制器
6.5傳感器仿真
6.5.1激光雷達(dá)
6.5.2接觸傳感器
6.5.3IMU傳感器
6.5.4相機(jī)
6.5.5深度相機(jī)
6.5.6RGBD相機(jī)
6.5.7BoundingBox相機(jī)
6.5.8Segmentation相機(jī)
6.6案例: 視覺(jué)輪式移動(dòng)機(jī)器人建模
6.7本章小結(jié)
第7章Gazebo與ROS 2聯(lián)合仿真(60min)
7.1簡(jiǎn)介
7.2ros_gz_sim功能包
7.2.1啟動(dòng)仿真環(huán)境
7.2.2添加模型
7.3ros_gz_bridge功能包
7.3.1bridge_parameter節(jié)點(diǎn)
7.3.2案例: 橋接單個(gè)話題
7.3.3案例: 橋接多個(gè)話題
7.4其他注意事項(xiàng)
7.4.1實(shí)體的控制
7.4.2話題消息類型
7.4.3相機(jī)話題
7.4.4RViz可視化SDF模型
7.5案例: 視覺(jué)巡線移動(dòng)輪式機(jī)器人
7.6本章小結(jié)
第8章輪式機(jī)器人的建圖與導(dǎo)航(69min)
8.1Nav2概述
8.1.1Nav2結(jié)構(gòu)
8.1.2Nav2核心功能
8.2Nav2相關(guān)概念
8.2.1動(dòng)作服務(wù)器
8.2.2生命周期節(jié)點(diǎn)
8.2.3行為樹(shù)
8.2.4狀態(tài)估計(jì)
8.2.5環(huán)境表示
8.3Nav2的安裝
8.4slam_toolbox建圖
8.4.1slam_toolbox簡(jiǎn)介
8.4.2slam_toolbox建圖流程
8.4.3地圖的保存
8.4.4地圖的發(fā)布
8.5Cartographer建圖
8.5.1Cartographer簡(jiǎn)介
8.5.2Cartographer建圖流程
8.6路徑規(guī)劃
8.6.1路徑規(guī)劃簡(jiǎn)介
8.6.2路徑規(guī)劃算法
8.6.3案例: A*路徑規(guī)劃算法
8.7案例: 自建地圖的導(dǎo)航
8.8案例: 自定義路徑規(guī)劃的導(dǎo)航
8.9本章小結(jié)
第9章其他類型機(jī)器人仿真簡(jiǎn)介(31min)
9.1六足機(jī)器人仿真
9.1.1建模
9.1.2步態(tài)
9.1.3仿真
9.2四足機(jī)器人仿真
9.2.1建模
9.2.2仿真
9.3雙足機(jī)器人仿真
9.3.1建模
9.3.2仿真
9.4四旋翼無(wú)人機(jī)仿真
9.4.1建模
9.4.2仿真
9.5海面船舶仿真
9.5.1建模
9.5.2仿真
9.6水下潛艇仿真
9.6.1建模
9.6.2仿真
9.7本章小結(jié)