ROS 機器人編程實戰 (Robot Operating System Cookbook: Over 70 recipes to help you master advanced ROS concepts)

[印度]庫馬爾·比平(Kumar Bipin)

  • ROS 機器人編程實戰 (Robot Operating System Cookbook: Over 70 recipes to help you master advanced ROS concepts)-preview-1
  • ROS 機器人編程實戰 (Robot Operating System Cookbook: Over 70 recipes to help you master advanced ROS concepts)-preview-2
ROS 機器人編程實戰 (Robot Operating System Cookbook: Over 70 recipes to help you master advanced ROS concepts)-preview-1

買這商品的人也買了...

商品描述

ROS(Robot Operating System)是一個機器人軟件平臺,是用於實現機器人編程和開發復雜機器人應用的開源軟件框架,它能為異質電腦集群提供類似操作系統的功能。ROS的前身是斯坦福人工智能實驗室為了支持斯坦福智能機器人STAIR而建立的交換庭(switchyard)項目。

本書包含10章內容,循序漸進地介紹了ROS相關的知識,包括ROS入門、結構與概念、可視化和調試工具、傳感器和執行器、建模與模擬、移動機器人、機械臂、微型飛行器、ROS工業軟件包等。

本書適合機器人領域的工程師及研究人員閱讀,書中涉及許多實用的案例和解決方案,同時涵蓋了未來機器人應用開發中可預見的研究問題。

作者簡介

庫馬爾·比平(Kumar Bipin)擁有在意法半導體和摩托羅拉等全球知名消費電子公司15年以上的研發經驗。他曾參加超級計算教育研究中心(SERC)和印度科技學院(簡稱IISc,位於班加羅爾)的研究獎學金項目,並在信息技術國際學院(位於海德拉巴)獲得機器人學和計算機視覺的碩士學位。他一直致力於為消費類電子產品提供系統級的解決方案。這些解決方案包括系統軟件、自動駕駛汽車的感知規劃和控制。目前,他在Tata Elxsi領導自主汽車產品(Autonomai)的開發。

目錄大綱

 

第1章ROS入門1
1.1簡介1
1.2在桌面系統中安裝ROS 2
1.2.1 ROS發行版2
1.2.2支持的操作系統3
1.2.3如何完成4
1.3在虛擬機中安裝ROS 8
1.4在Linux容器中運行ROS 10
1.4.1準備工作10
1.4.2如何完成10
1.4.3參考資料13
1.5在基於ARM的開發板上安裝ROS 13
1.5.1準備工作13
1.5.2如何完成15
1.5.3設置系統位置16
1.5.4設置sources.list (源列表) 17
1.5.5設置秘鑰17
1.6安裝ROS包17
1.6.1添加單個軟件包17
1.6.2初始化rosdep 18
1.6.3環境配置18
1.6.4獲取rosinstall 18


第2章ROS的體系結構與概念Ⅰ 20
2.1簡介20
2.2對ROS文件系統的深入解析21
2.2.1準備工作21
2.2.2如何完成22
2.2.3擴展學習25
2.3 ROS計算圖分析30
2.3.1準備工作30
2.3.2如何完成32
2.4加入ROS社區37
2.5學習ROS的使用38
2.5.1準備工作38
2.5.2如何完成38
2.5.3工作原理47
2.6理解ROS啟動(launch)文件59


第3章ROS的體系結構與概念Ⅱ 61
3.1簡介61
3.2掌握參數服務器和動態參數62
3.2.1準備工作62
3.2.2如何完成62
3.3掌握ROS actionlib 68
3.3.1準備工作68
3.3.2如何完成69
3.4掌握ROS pluginlib 78
3.4.1準備工作78
3.4.2如何完成78
3.5掌握ROS nodelet 83
3.5.1準備工作83
3.5.2如何完成83
3.5.3擴展學習86
3.6掌握Gazebo框架與插件88
3.6.1準備工作88
3.6.2如何完成89
3.7掌握ROS的TF(坐標變換) 91
3.7.1準備工作92
3.7.2如何完成95
3.8掌握ROS可視化工具(RViz)及其插件99
3.8.1準備工作99
3.8.2如何完成101


第4章ROS可視化與調試工具104
4.1簡介104
4.2對ROS節點的調試和分析105
4.2.1準備工作105
4.2.2如何完成105
4.3 ROS消息的記錄與可視化108
4.3.1準備工作108
4.3 .2如何完成110
4.3.3更多內容112
4.4 ROS系統的檢測與診斷114
4.4.1準備工作114
4.4.2如何完成114
4.5標量數據的可視化和繪圖118
4.5.1準備工作118
4.5.2如何完成119
4.5.3更多內容120
4.6非標量數據的可視化—— 2D/3D圖像121
4.6.1準備工作122
4.6.2如何完成122
4.7 ROS話題的錄製與回放126
4.7.1準備工作126
4.7.2如何完成126
4.7.3更多內容129


第5章在ROS中使用傳感器和執行器131
5.1簡介131
5.2理解Arduino-ROS接口132
5.2 .1準備工作132
5.2.2如何完成133
5.2.3工作原理134
5.3使用9 DoF(自由度,Degree of Freedom)慣性測量模塊137
5.3.1準備工作138
5.3.2如何完成138
5.3.3工作原理139
5.4使用GPS系統——Ublox 141
5.4.1準備工作142
5.4.2如何完成142
5.4.3工作原理143
5.5使用伺服電動機——Dynamixel 144
5.5.1如何完成144
5.5.2工作原理144
5.6用激光測距儀——Hokuyo 146
5.6.1準備工作146
5.6.2如何完成146
5.6.3工作原理146
5.7使用Kinect傳感器查看3D環境中的對象148
5.7.1準備工作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簡介153
6.2理解使用URDF實現機器人建模154
6.2.1準備工作154
6.2.2工作原理154
6.3理解使用Xacro實現機器人建模163
6.3.1準備工作164
6.3.2工作原理164
6.4理解關節狀態發佈器和機器人狀態發佈器165
6.4.1準備動作165
6.4.2工作原理168
6.4.3更多內容172
6.5理解Gazebo系統結構以及與ROS的接口174
6.5.1準備工作174
6.5.2如何完成174


第7章ROS中的移動機器人184
7.1簡介184
7.2 ROS導航功能包集185
7.2.1準備工作185
7.2.2工作原理185
7.3移動機器人與導航系統的交互196
7.3.1準備工作196
7.3.2如何完成197
7.3.3工作原理198
7.4為導航功能包集創建launch文件201
7.4 .1準備工作201
7.4.2工作原理202
7.5為導航功能包集設置Rviz可視化203
7.5.1準備工作203
7.5.2工作原理203
7.5.3更多內容210
7.6機器人定位——自適應蒙特卡羅定位(AMCL) 211
7.6.1準備工作211
7.6.2工作原理211
7.7使用rqt_reconfigure配置導航功能包集參數212
7.8移動機器人的自主導航——避開障礙物213
7.8.1準備工作213
7.8.2工作原理213
7.9發送目標214
7.9.1準備工作214
7.9.2工作原理214


第8章ROS中的機械臂217
8.1簡介217
8.1.1危險工作場所218
8.1.2重複或令人厭煩的工作218
8.1.3人類難以操作的工作環境218
8.2 MoveIt的基本概念220
8.2.1 MoveIt 220
8.2.2運動規劃220
8.2.3感知221
8.2.4抓取221
8.2.5準備工作221
8.3使用圖形化界面完成運動規劃223
8.3.1準備工作223
8.3.2如何完成232
8.3.3工作原理234
8.3.4更多內容235
8.4使用控製程序執行運動規劃238
8.4.1準備工作238
8.4.2如何完成240
8.4.3執行軌跡245
8.5在運動規劃中增加感知246
8.5.1準備工作247
8.5.2如何完成249
8.5.3工作原理251
8.5. 4更多內容251
8.5.5參考資料252
8.6使用機械臂或者機械手來完成抓取操作253
8.6.1準備工作253
8.6.2如何完成256
8.6.3工作原理268
8.6.4參考資料273


第9章基於ROS的微型飛行器276
9.1簡介276
9.2 MAV系統設計概述277
9.3 MAV/無人機的通用數學模型279
9.4使用RotorS /Gazebo來模擬MAV/無人機283
9.4.1準備工作283
9.4.2如何完成285
9.4.3工作原理292
9.4.4更多內容293
9.4.5參考資料296
9.5 MAV/無人機的自主導航框架297
9.5.1準備工作297
9.5.2如何完成299
9.5.3工作原理314
9.6操作真正的MAV/drone—— Parrot和Bebop 318
9.6.1準備工作319
9.6.2如何完成319
9.6.3工作原理321


第10章ROS-Industrial(ROS-I) 323
10.1簡介323
10.2了解ROS-I功能包324
10.3工業機器人與MoveIt的3D建模與仿真326
10.3.1準備工作326
10.3.2如何完成327
10.4使用ROS-I軟件包——優傲機器人、ABB機器人336
10.5 ROS-I機器人支持包342
10.6 ROS -I機器人客戶端功能包345
10.7 ROS-I機器人驅動程序規範346
10.8開發自定義的MoveIt IKFast插件348
10.8.1準備工作348
10.8.2如何完成351
10.9了解ROS-I-MTConnect 353
10.9.1準備工作354
10.9.2如何完成355
10.10 ROS-I的未來——硬件支持、功能和應用356