ROS機(jī)器人編程實(shí)戰(zhàn)
定 價(jià):99 元
- 作者:[印度]庫(kù)馬爾·比平(Kumar Bipin)
- 出版時(shí)間:2020/2/1
- ISBN:9787115523594
- 出 版 社:人民郵電出版社
- 中圖法分類:TP242
- 頁(yè)碼:360
- 紙張:
- 版次:01
- 開本:16開
ROS(Robot Operating System)是一個(gè)機(jī)器人軟件平臺(tái),是用于實(shí)現(xiàn)機(jī)器人編程和開發(fā)復(fù)雜機(jī)器人應(yīng)用的開源軟件框架,它能為異質(zhì)計(jì)算機(jī)集群提供類似操作系統(tǒng)的功能。ROS的前身是斯坦福人工智能實(shí)驗(yàn)室為了支持斯坦福智能機(jī)器人STAIR而建立的交換庭(switchyard)項(xiàng)目。
本書包含10章內(nèi)容,循序漸進(jìn)地介紹了ROS相關(guān)的知識(shí),包括ROS入門、結(jié)構(gòu)與概念、可視化和調(diào)試工具、傳感器和執(zhí)行器、建模與仿真、移動(dòng)機(jī)器人、機(jī)械臂、微型飛行器、ROS工業(yè)軟件包等。
本書適合機(jī)器人領(lǐng)域的工程師及研究人員閱讀,書中涉及許多實(shí)用的案例和解決方案,同時(shí)涵蓋了未來(lái)機(jī)器人應(yīng)用開發(fā)中可預(yù)見的研究問題。
70多個(gè)案例幫助你深入了解ROS高級(jí)概念及實(shí)踐應(yīng)用
本書從ROS的基礎(chǔ)知識(shí)講起,通過豐富的案例和圖示引導(dǎo)讀者掌握ROS編程技巧。本書涉及移動(dòng)機(jī)器人、機(jī)械臂、微型飛行器等應(yīng)用,同時(shí)包含nodelet、actionlib、Gazebo、SLAM、MoveIt等重要知識(shí)點(diǎn)。
庫(kù)馬爾·比平(Kumar Bipin)擁有在意法半導(dǎo)體和摩托羅拉等全球知名消費(fèi)電子公司15年以上的研發(fā)經(jīng)驗(yàn)。他曾參加超級(jí)計(jì)算教育研究中心(SERC)和印度科技學(xué)院(簡(jiǎn)稱IISc,位于班加羅爾)的研究獎(jiǎng)學(xué)金項(xiàng)目,并在信息技術(shù)國(guó)際學(xué)院(位于海德拉巴)獲得機(jī)器人學(xué)和計(jì)算機(jī)視覺的碩士學(xué)位。他一直致力于為消費(fèi)類電子產(chǎn)品提供系統(tǒng)級(jí)的解決方案。這些解決方案包括系統(tǒng)軟件、自動(dòng)駕駛汽車的感知規(guī)劃和控制。目前,他在Tata Elxsi領(lǐng)導(dǎo)自主汽車產(chǎn)品(Autonomai)的開發(fā)。
第 1章 ROS入門 1
1.1 簡(jiǎn)介 1
1.2 在桌面系統(tǒng)中安裝ROS 2
1.2.1 ROS 發(fā)行版 2
1.2.2 支持的操作系統(tǒng) 3
1.2.3 如何完成 4
1.3 在虛擬機(jī)中安裝ROS 8
1.4 在Linux容器中運(yùn)行ROS 10
1.4.1 準(zhǔn)備工作 10
1.4.2 如何完成 10
1.4.3 參考資料 13
1.5 在基于ARM的開發(fā)板上安裝ROS 13
1.5.1 準(zhǔn)備工作 13
1.5.2 如何完成 15
1.5.3 設(shè)置系統(tǒng)位置 16
1.5.4 設(shè)置sources.list(源列表) 17
1.5.5 設(shè)置秘鑰 17
1.6 安裝ROS包 17
1.6.1 添加單個(gè)軟件包 17
1.6.2 初始化rosdep 18
1.6.3 環(huán)境配置 18
1.6.4 獲取rosinstall 18
第 2章 ROS的體系結(jié)構(gòu)與概念Ⅰ 20
2.1 簡(jiǎn)介 20
2.2 對(duì)ROS文件系統(tǒng)的深入解析 21
2.2.1 準(zhǔn)備工作 21
2.2.2 如何完成 22
2.2.3 擴(kuò)展學(xué)習(xí) 25
2.3 ROS計(jì)算圖分析 30
2.3.1 準(zhǔn)備工作 30
2.3.2 如何完成 32
2.4 加入ROS社區(qū) 37
2.5 學(xué)習(xí)ROS的使用 38
2.5.1 準(zhǔn)備工作 38
2.5.2 如何完成 38
2.5.3 工作原理 47
2.6 理解ROS啟動(dòng)(launch)文件 59
第3章 ROS的體系結(jié)構(gòu)與概念Ⅱ 61
3.1 簡(jiǎn)介 61
3.2 掌握參數(shù)服務(wù)器和動(dòng)態(tài)參數(shù) 62
3.2.1 準(zhǔn)備工作 62
3.2.2 如何完成 62
3.3 掌握ROS actionlib 68
3.3.1 準(zhǔn)備工作 68
3.3.2 如何完成 69
3.4 掌握ROS pluginlib 78
3.4.1 準(zhǔn)備工作 78
3.4.2 如何完成 78
3.5 掌握ROS nodelet 83
3.5.1 準(zhǔn)備工作 83
3.5.2 如何完成 83
3.5.3 擴(kuò)展學(xué)習(xí) 86
3.6 掌握Gazebo框架與插件 88
3.6.1 準(zhǔn)備工作 88
3.6.2 如何完成 89
3.7 掌握ROS的TF(坐標(biāo)變換) 91
3.7.1 準(zhǔn)備工作 92
3.7.2 如何完成 95
3.8 掌握ROS 可視化工具(RViz)及其插件 99
3.8.1 準(zhǔn)備工作 99
3.8.2 如何完成 101
第4章 ROS可視化與調(diào)試工具 104
4.1 簡(jiǎn)介 104
4.2 對(duì)ROS節(jié)點(diǎn)的調(diào)試和分析 105
4.2.1 準(zhǔn)備工作 105
4.2.2 如何完成 105
4.3 ROS消息的記錄與可視化 108
4.3.1 準(zhǔn)備工作 108
4.3.2 如何完成 110
4.3.3 更多內(nèi)容 112
4.4 ROS系統(tǒng)的檢測(cè)與診斷 114
4.4.1 準(zhǔn)備工作 114
4.4.2 如何完成 114
4.5 標(biāo)量數(shù)據(jù)的可視化和繪圖 118
4.5.1 準(zhǔn)備工作 118
4.5.2 如何完成 119
4.5.3 更多內(nèi)容 120
4.6 非標(biāo)量數(shù)據(jù)的可視化—— 2D/3D圖像 121
4.6.1 準(zhǔn)備工作 122
4.6.2 如何完成 122
4.7 ROS話題的錄制與回放 126
4.7.1 準(zhǔn)備工作 126
4.7.2 如何完成 126
4.7.3 更多內(nèi)容 129
第5章 在ROS中使用傳感器和執(zhí)行器 131
5.1 簡(jiǎn)介 131
5.2 理解Arduino-ROS接口 132
5.2.1 準(zhǔn)備工作 132
5.2.2 如何完成 133
5.2.3 工作原理 134
5.3 使用9 DoF(自由度,Degree of Freedom)慣性測(cè)量模塊 137
5.3.1 準(zhǔn)備工作 138
5.3.2 如何完成 138
5.3.3 工作原理 139
5.4 使用GPS系統(tǒng)——Ublox 141
5.4.1 準(zhǔn)備工作 142
5.4.2 如何完成 142
5.4.3 工作原理 143
5.5 使用伺服電動(dòng)機(jī)——Dynamixel 144
5.5.1 如何完成 144
5.5.2 工作原理 144
5.6 用激光測(cè)距儀——Hokuyo 146
5.6.1 準(zhǔn)備工作 146
5.6.2 如何完成 146
5.6.3 工作原理 146
5.7 使用Kinect傳感器查看3D環(huán)境中的對(duì)象 148
5.7.1 準(zhǔn)備工作 149
5.7.2 如何完成 149
5.7.3 工作原理 149
5.8 用游戲桿或游戲手柄 151
5.8.1 如何完成 151
5.8.2 工作原理 151
第6章 ROS建模與仿真 153
6.1 簡(jiǎn)介 153
6.2 理解使用URDF實(shí)現(xiàn)機(jī)器人建模 154
6.2.1 準(zhǔn)備工作 154
6.2.2 工作原理 154
6.3 理解使用Xacro實(shí)現(xiàn)機(jī)器人建模 163
6.3.1 準(zhǔn)備工作 164
6.3.2 工作原理 164
6.4 理解關(guān)節(jié)狀態(tài)發(fā)布器和機(jī)器人狀態(tài)發(fā)布器 165
6.4.1 準(zhǔn)備動(dòng)作 165
6.4.2 工作原理 168
6.4.3 更多內(nèi)容 172
6.5 理解Gazebo系統(tǒng)結(jié)構(gòu)以及與ROS的接口 174
6.5.1 準(zhǔn)備工作 174
6.5.2 如何完成 174
第7章 ROS中的移動(dòng)機(jī)器人 184
7.1 簡(jiǎn)介 184
7.2 ROS導(dǎo)航功能包集 185
7.2.1 準(zhǔn)備工作 185
7.2.2 工作原理 185
7.3 移動(dòng)機(jī)器人與導(dǎo)航系統(tǒng)的交互 196
7.3.1 準(zhǔn)備工作 196
7.3.2 如何完成 197
7.3.3 工作原理 198
7.4 為導(dǎo)航功能包集創(chuàng)建launch文件 201
7.4.1 準(zhǔn)備工作 201
7.4.2 工作原理 202
7.5 為導(dǎo)航功能包集設(shè)置Rviz可視化 203
7.5.1 準(zhǔn)備工作 203
7.5.2 工作原理 203
7.5.3 更多內(nèi)容 210
7.6 機(jī)器人定位——自適應(yīng)蒙特卡羅定位(AMCL) 211
7.6.1 準(zhǔn)備工作 211
7.6.2 工作原理 211
7.7 使用rqt_reconfigure配置導(dǎo)航功能包集參數(shù) 212
7.8 移動(dòng)機(jī)器人的自主導(dǎo)航——避開障礙物 213
7.8.1 準(zhǔn)備工作 213
7.8.2 工作原理 213
7.9 發(fā)送目標(biāo) 214
7.9.1 準(zhǔn)備工作 214
7.9.2 工作原理 214
第8章 ROS中的機(jī)械臂 217
8.1 簡(jiǎn)介 217
8.1.1 危險(xiǎn)工作場(chǎng)所 218
8.1.2 重復(fù)或令人厭煩的工作 218
8.1.3 人類難以操作的工作環(huán)境 218
8.2 MoveIt的基本概念 220
8.2.1 MoveIt 220
8.2.2 運(yùn)動(dòng)規(guī)劃 220
8.2.3 感知 221
8.2.4 抓取 221
8.2.5 準(zhǔn)備工作 221
8.3 使用圖形化界面完成運(yùn)動(dòng)規(guī)劃 223
8.3.1 準(zhǔn)備工作 223
8.3.2 如何完成 232
8.3.3 工作原理 234
8.3.4 更多內(nèi)容 235
8.4 使用控制程序執(zhí)行運(yùn)動(dòng)規(guī)劃 238
8.4.1 準(zhǔn)備工作 238
8.4.2 如何完成 240
8.4.3 執(zhí)行軌跡 245
8.5 在運(yùn)動(dòng)規(guī)劃中增加感知 246
8.5.1 準(zhǔn)備工作 247
8.5.2 如何完成 249
8.5.3 工作原理 251
8.5.4 更多內(nèi)容 251
8.5.5 參考資料 252
8.6 使用機(jī)械臂或者機(jī)械手來(lái)完成抓取操作 253
8.6.1 準(zhǔn)備工作 253
8.6.2 如何完成 256
8.6.3 工作原理 268
8.6.4 參考資料 273
第9章 基于ROS的微型飛行器 276
9.1 簡(jiǎn)介 276
9.2 MAV系統(tǒng)設(shè)計(jì)概述 277
9.3 MAV/無(wú)人機(jī)的通用數(shù)學(xué)模型 279
9.4 使用RotorS/Gazebo來(lái)模擬MAV/無(wú)人機(jī) 283
9.4.1 準(zhǔn)備工作 283
9.4.2 如何完成 285
9.4.3 工作原理 292
9.4.4 更多內(nèi)容 293
9.4.5 參考資料 296
9.5 MAV/無(wú)人機(jī)的自主導(dǎo)航框架 297
9.5.1 準(zhǔn)備工作 297
9.5.2 如何完成 299
9.5.3 工作原理 314
9.6 操作真正的MAV/drone—— Parrot和Bebop 318
9.6.1 準(zhǔn)備工作 319
9.6.2 如何完成 319
9.6.3 工作原理 321
第 10章 ROS-Industrial(ROS-I) 323
10.1 簡(jiǎn)介 323
10.2 了解ROS-I功能包 324
10.3 工業(yè)機(jī)器人與MoveIt的3D建模與仿真 326
10.3.1 準(zhǔn)備工作 326
10.3.2 如何完成 327
10.4 使用ROS-I軟件包——優(yōu)傲機(jī)器人、ABB機(jī)器人 336
10.5 ROS-I機(jī)器人支持包 342
10.6 ROS-I機(jī)器人客戶端功能包 345
10.7 ROS-I機(jī)器人驅(qū)動(dòng)程序規(guī)范 346
10.8 開發(fā)自定義的MoveIt IKFast插件 348
10.8.1 準(zhǔn)備工作 348
10.8.2 如何完成 351
10.9 了解ROS-I-MTConnect 353
10.9.1 準(zhǔn)備工作 354
10.9.2 如何完成 355
10.10 ROS-I的未來(lái)——硬件支持、功能和應(yīng)用 356