Contents 目 錄
譯者序
推薦序一
推薦序二
作者簡介
審校者簡介
前言
致謝
第1章 入門ROS機器人應用程序開發(fā) 1
1.1 ROS入門 2
1.1.1 ROS發(fā)行版 2
1.1.2 支持ROS的操作系統 3
1.1.3支持ROS的機器人和傳感器 4
1.1.4為什么選擇ROS 5
1.2 ROS基礎 6
1.2.1文件系統級 7
1.2.2計算圖級 8
1.2.3ROS社區(qū)級 9
1.2.4ROS通信 9
1.3ROS客戶端庫 10
1.4ROS工具 11
1.4.1Rviz(ROS可視化) 11
1.4.2rqt_plot 11
1.4.3rqt_graph 12
1.5ROS仿真器 13
1.6在Ubuntu 16.04 LTS上安裝ROS Kinetic 13
1.7在VirtualBox上設置ROS 17
1.8設置ROS工作區(qū) 19
1.9ROS在工業(yè)和研究中的機遇 20
1.10 問題 22
1.11 本章總結 22
第2章 使用ROS、OpenCV和Dynamixel伺服舵機進行人臉檢測與跟蹤 23
2.1項目概述 23
2.2硬件和軟件需求 24
2.3ROS與Dynamixel伺服舵機的接口 33
2.4創(chuàng)建人臉跟蹤ROS包 34
2.5人臉跟蹤功能包的工作原理 36
2.5.1理解人臉跟蹤代碼 38
2.5.2理解CMakeLists.txt 41
2.5.3track.yaml文件 43
2.5.4啟動文件 43
2.5.5運行人臉跟蹤器節(jié)點 44
2.5.6face_tracker_control功能包 45
2.5.7 云臺控制器配置文件 46
2.5.8舵機參數配置文件 47
2.5.9人臉跟蹤控制器節(jié)點 47
2.5.10 創(chuàng)建CMakeLists.txt 49
2.5.11 測試人臉跟蹤控制功能包 49
2.5.12 集成所有節(jié)點 51
2.5.13 固定支架并安裝電路 51
2.5.14 最終測試 52
2.6 問題 52
2.7 本章總結 53
第3章 在ROS中構建一個像Siri的聊天機器人 54
3.1人機交互機器人 54
3.2構建人機交互機器人 55
3.3預備條件 56
3.4AIML入門 57
3.4.1AIML標簽 57
3.4.2PyAIML解釋器 58
3.4.3在Ubuntu 16.04 LTS上安裝PyAIML 59
3.4.4使用PyAIML 59
3.4.5加載多個AIML文件 60
3.4.6在ROS中創(chuàng)建AIML機器人 62
3.4.7AIML ROS功能包 62
3.5 問題 70
3.6 本章總結 70
第4章 使用ROS控制嵌入式電路板 71
4.1主流嵌入式電路板入門 71
4.1.1如何選擇Arduino開發(fā)板 71
4.1.2Raspberry Pi(樹莓派)介紹 74
4.1.3Odroid開發(fā)板 76
4.2Arduino與ROS的接口 76
4.2.1使用Arduino和ROS監(jiān)控光線亮度 79
4.2.2在PC上運行ROS串行服務器 81
4.2.3通過mbed連接STM32開發(fā)板和ROS 82
4.2.4使用Energia連接ROS與Tiva C Launchpad板 85
4.3在Raspberry Pi和Odroid上運行ROS 87
4.3.1將Raspberry Pi和Odroid連接到PC 88
4.3.2ROS控制GPIO引腳 90
4.4 問題 94
4.5 本章總結 95
第5章 使用手勢遠程操作機器人 96
5.1使用鍵盤遙控ROS龜 97
5.2使用手勢進行遙控 98
5.3項目配置 100
5.4MPU-9250、Arduino和ROS連接 101
5.5在Rviz中可視化IMU TF 106
5.6將IMU數據轉換為twist消息 107
5.7集成和最終運行 109
5.8使用Android手機進行遙控 111
5.9 問題 113
5.10 本章總結 113
第6章 物體檢測和識別 114
6.1物體檢測和識別的快速入門 114
6.2ROS中的find_object_2d包 116
6.2.1安裝find_object_2d包 116
6.2.2運行find_object_2d節(jié)點檢測網絡攝像頭圖像中的物體 117
6.2.3使用深度傳感器運行find_object_2d節(jié)點 121
6.33D物體識別快速入門 124
6.4ROS中3D物體識別包的介紹 125
6.5從3D網格中檢測和識別物體 127
6.5.1使用物體的3D模型進行訓練 127
6.5.2使用捕獲的3D模型進行訓練 129
6.6識別物體 132
6.7 問題 135
6.8 本章總結 135
第7章 使用ROS和TensorFlow進行深度學習 136
7.1深度學習及其應用簡介 136
7.2深度學習機器人 137
7.3深度學習庫 138
7.4TensorFlow入門 139
7.4.1在Ubuntu 16.04 LTS上安裝TensorFlow 139
7.4.2TensorFlow的概念 141
7.4.3在TensorFlow中編寫我們的第一個程序 143
7.5使用ROS和TensorFlow進行圖像識別 146
7.5.1前提條件 147
7.5.2ROS圖像識別節(jié)點 147
7.6scikit-learn介紹 150
7.7SVM及其在機器人中的應用 151
7.8 問題 154
7.9 本章總結 154
第8章 在MATLAB和Android上運行ROS 156
8.1ROS-MATLAB接口入門 156
8.2在MATLAB中設置機器人工具箱 157
8.2.1MATLAB中的基本ROS功能 157
8.2.2列出ROS節(jié)點、主題和消息 158
8.3MATLAB與ROS網絡通信 160
8.4利用MATLAB控制ROS機器人 163
8.4.1設計MATLAB GUI應用程序 164
8.4.2解釋回調 166
8.4.3運行應用程序 168
8.5Android及其ROS接口入門 169
8.5.1安裝rosjava 170
8.5.2通過Ubuntu軟件包管理器安裝android-sdk 172
8.6安裝ROS-Android接口 174
8.7使用ROS-Android應用程序 175
8.8代碼演練 180
8.9使用ROS-Android接口創(chuàng)建基本應用程序 182
8.10 問題 183
8.11 本章總結 184
第9章 構建自主移動機器人 185
9.1機器人規(guī)格和設計概述 185
9.2設計和選擇機器人的電動機和輪子 186
9.2.1計算電動機扭矩 186
9.2.2電動機轉速的計算 186
9.2.3設計總結 187
9.3構建機器人本體的2D和3D模型 187
9.3.1底盤 1