ROS 機器人編程實踐 (Hands-On ROS for Robotics Programming)

Bernardo Ronquillo Japón 譯 張瑞雷,李靜,顧人睿,劉錦濤

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

相關主題

商品描述

本書首先介紹GoPiGo3及其配備的傳感器和執行器。
然後,通過從零開始創建3D模型並使用Gazebo在ROS中運行模擬機器人來使用GoPiGo3的數字孿生模型。
接下來展示如何使用GoPiGo3構建和運行一個了解周圍環境的自主移動機器人。
還探索了機器人如何學習尚未在代碼中編程但通過觀察其環境而獲得的任務。
本書甚至還涵蓋深度學習和強化學習等主題。
在本書的末尾,讀者將熟悉在機器人技術中構建特定用途應用程序的基礎知識,
並具備從零起步開發高度智能自主機器人的能力。
本書適合機器人技術人員和業餘愛好者閱讀。

目錄大綱

譯者序
前言
作者簡介
審校者簡介
一部分 物理機器人組裝與
1章 組裝機器人 2
1.1GoPiGo3機器人介紹 2
1.1.1機器人技術角度 3
1.1.2編程角度 3
1.1.3機器人套件和資源 4
1.2熟悉嵌入式硬件 7
1.2.1GoPiGo3開發板 7
1.2.2Raspberry Pi 3B+ 9
1.2.3為什麼機器人需要CPU 10
1.3深入理解機電 10
1.4整合到一起 17
1.5快速硬件 18
1.5.1資源 18
1.5.2DexterOS入門 19
1.5.3用Bloxter編程 20
1.5.4校準機器人 20
1.5.5驅動機器人 22
1.5.6檢查傳感器 22
1.5.7關閉機器人 23
1.6總結 23
1.7習題 24
1.8進一步閱讀 24

2章 GoPiGo3的組件 25
2.1技術要求 25
2.2Python和JupyterLab入門 25
2.2.1為GoPiGo3啟動JupyterLab 26
2.2.2硬件 29
2.3傳感器和驅動的組件 32
2.3.1快速入門傳感器和電動機 32
2.3.2機器人漫遊 32
2.3.3距離傳感器 35
2.3.4伺服軟件包 40
2.3.5巡線跟隨器 42
2.3.6IMU 43
2.3.7Raspberry Pi 43
2.3.8GoPiGo3項目 45
2.4總結 46
2.5習題 46
2.6進一步閱讀 47

3章 ROS入門 48
3.1技術要求 48
3.2ROS基本概念 49
3.2.1ROS圖 50
3.2.2roscore 51
3.2.3工作空間和catkin 51
3.3配置ROS開發環境 52
3.3.1安裝ROS 52
3.3.2集成開發環境 55
3.4ROS節點之間的通信—消息和主題 56
3.4.1創建工作空間 56
3.4.2設置ROS軟件包 60
3.4.3發布主題的節點 62
3.4.4訂閱主題的節點 65
3.4.5在同一節點中合併發布者和訂閱者 67
3.5對ROS使用公開可用的軟件包 69
3.6總結 69
3.7習題 70
3.8進一步閱讀 70
二部分 使用Gazebo進行
機器人仿真

4章 創建虛擬兩輪ROS機器人 72
4.1技術要求 72
4.2RViz機器人可視化入門 73
4.3使用URDF構建差動驅動機器人 74
4.3.1用於GoPiGo3的URDF概述 75
4.3.2機器人主體URDF 76
4.3.3左右輪的URDF模型 79
4.4使用RViz在ROS中查看GoPiGo3模型 81
4.4.1理解roslaunch命令 82
4.4.2通過RViz控制GoPiGo3機器人的車輪 84
4.5URDF模型中的機器人參考坐標系 86
4.6在構建時使用RViz查看模型 88
4.6.1在RViz窗口中更改模型的外觀 88
4.6.2使用ROS工具進行檢查 89
4.7總結 90
4.8習題 90
4.9進一步閱讀 91

5章 使用Gazebo進行機器人行為仿真 92
5.1技術要求 92
5.2Gazebo仿真器入門 93
5.3修改機器人URDF 96
5.3.1擴展URDF以生成SDF機器人定義 97
5.3.2碰撞和物理性質 97
5.3.3Gazebo標籤 99
5.4驗證Gazebo模型並查看URDF 99
5.5移動模型 102
5.6總結 105
5.7習題 105
5.8進一步閱讀 106

三部分 使用SLAM進行自主導航
6章 在ROS中編程—命令和工具 108
6.1技術要求 109
6.2設置物理機器人 109
6.2.1下載並設置Ubuntu Mate 18.04 109
6.2.2訪問自定義 110
6.2.3設置VNC服務器(x11vnc) 110
6.2.4Geany IDE 112
6.2.5安裝GoPiGo3和DI傳感器的驅動程序 112
6.2.6設置Pi Camera 114
6.2.7安裝ROS Melodic 115
6.3ROS編程快速入門 116
6.3.1設置工作空間 116
6.3.2克隆ROS軟件包 117
6.3.3一次執行ROS節點 117
6.4案例研究1:編寫ROS距離傳感器軟件包 118
6.4.1創建一個新軟件包 119
6.4.2編寫自己的源代碼 119
6.5使用ROS命令 125
6.5.1Shell命令 125
6.5.2執行命令 126
6.5.3信息命令 127
6.5.4軟件包和catkin工作空間 128
6.6創建並運行發布者和訂閱者節點 129
6.7使用roslaunch自動執行節點 131
6.8案例研究2:ROS GUI開發工具—Pi Camera 133
6.8.1使用rqt_graph分析ROS圖 134
6.8.2使用rqt_image_view顯示圖像數據 135
6.8.3用rqt_plot繪製傳感器數據的時間序列 135
6.8.4使用rqt_bag播放錄製的ROS會話 136
6.9使用ROS參數自定義機器人功能 138
6.10總結 140
6.11習題 140
6.12進一步閱讀 141

7章 機器人控制與仿真 142
7.1技術要求 142
7.2設置GoPiGo3開發環境 143
7.3案例研究3:使用鍵盤進行遠程控制 146
7.3.1在機器人中運行gopigo3節點 146
7.3.2遙控軟件包 149
7.3.3在筆記本電腦上運行遠程操作 149
7.4使用ROS主題進行遠程控制 151
7.4.1運動控制主題—/cmd_vel 151
7.4.2使用/cmd_vel直接驅動GoPiGo3 152
7.4.3檢查GoPiGo3的X、Y和Z軸 154
7.4.4組合運動 154
7.5遠程控制物理和虛擬機器人 155
7.5.1將ROS主節點還原到本地計算機 155
7.5.2用Gazebo仿真GoPiGo3 156
7.5.3同時在真實世界和仿真中運行 158
7.6總結 159
7.7習題 160
7.8進一步閱讀 160

8章 使用Gazebo進行虛擬SLAM和導航 162
8.1技術要求 162
8.1.1ROS導航軟件包 163
8.1.2在本地計算機上運行ROS主節點 164
8.2使用Gazebo進行動態仿真 164
8.3導航組件 171
8.4機器人感知和SLAM 172
8.4.1添加LDS 172
8.4.2SLAM概念 176
8.5使用GoPiGo3練習SLAM和導航 178
8.5.1探索使用SLAM構建地圖的環境 178
8.5.2使用導航沿著計劃的軌跡行駛 180
8.6總結 182
8.7習題 182
8.8進一步閱讀 183

9章 用於機器人導航的SLAM 184
9.1技術要求 184
9.2為機器人準備LDS 186
9.2.1設置YDLIDAR 186
9.2.2與Raspberry Pi集成 188
9.2.3從遠程筆記本電腦處理YDLIDAR數據 193
9.3在ROS中創建導航應用程序 195
9.4使用GoPiGo3練習導航 196
9.4.1繪製環境圖 196
9.4.2在現實世界中導航GoPiGo3 198
9.5總結 199
9.6習題 199
9.7進一步閱讀 199

四部分 使用機器學習的
自適應機器人行為
10章 在機器人技術中應用機器學習 202
10.1技術要求 202
10.2在中配置TensorFlow 203
10.2.1安裝pip 203
10.2.2安裝TensorFlow及其他依賴項 204
10.2.3使用GPU獲得更好的性能 204
10.3機器人技術中的機器學習 205
10.3.1機器學習的核心概念 206
10.3.2機器學習線程 207
10.4從機器學習到深度學習 208
10.4.1機器學習算法 208
10.4.2深度學習和神經網絡 210
10.5通過編程將機器學習應用於機器人技術的方法 213
10.5.1應用程序編程的一般方法 213
10.5.2集成機器學習任務 214
10.6深度學習應用於機器人技術—計算機視覺 215
10.6.1Gazebo中的目標識別 216
10.6.2現實世界中的目標識別 217
10.7總結 220
10.8習題 220
10.9進一步閱讀 221

11章 使用OpenAI Gym進行機器學習 222
11.1技術要求 223
11.2OpenAI Gym簡介 224
11.2.1安裝OpenAI Gym 224
11.2.2安裝OpenAI ROS 226
11.2.3智能體、人工智能和機器學習 226
11.2.4倒立擺示例 227
11.2.5Q-learning說明—自動駕駛出租車示例 231
11.3運行環境 235
11.4配置環境文件 236
11.5運行仿真並繪製結果 237
11.6總結 240
11.7習題 240
11.8進一步閱讀 241

12章 通過強化學習實現目標 242
12.1技術要求 242
12.2使用TensorFlow、Keras和Anaconda配置環境 243
12.2.1TensorFlow後端 243
12.2.2使用Keras進行深度學習 244
12.2.3ROS依賴軟件包 244
12.3了解ROS機器學習軟件包 244
12.3.1訓練場景 245
12.3.2用於運行強化學習任務的ROS軟件包結構 245
12.4設置訓練任務參數 246
12.5訓練GoPiGo3避開障礙物到達目標位置 247
12.5.1如何運行仿真 249
12.5.2場景1—前往目標位置 249
12.5.3場景2—避開障礙物前往目標位置 251
12.6總結 255
12.7習題 256
12.8進一步閱讀 256
附錄 習題答案 257