ROS 機器人項目開發 11例 ROS Robotics Projects

朗坦·約瑟夫

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

商品描述

本書的基本目標是通過項目實踐講解ROS,探討具有ROS接口的各種新技術。例如,你將看到如何構建自動駕駛汽車的原型,如何使用ROS構建深度學習的應用程序,以及如何在ROS中構建虛擬現實(VR)應用程序。此外,還將介紹使用ROS及其庫的大約多個項目和應用程序。

目錄大綱

第1章入門ROS機器人應用程序開發1 
1.1 ROS入門2 
1.1.1 ROS發行版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社區級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工作區19 
1.9 ROS在工業和研究中的機遇20 
1.10問題22 
1.11本章總結22

第2章使用ROS、OpenCV和Dynamixel伺服舵機進行人臉檢測與跟踪23 
2.1項目概述23 
2.2硬件和軟件需求24 
2.3ROS與Dynamixel伺服舵機的接口33 
2.4創建人臉跟踪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運行人臉跟踪器節點44 
2.5.6face_tracker_control功能包45 
2.5.7雲台控制器配置文件46 
2.5.8舵機參數配置文件47 
2.5.9人臉跟踪控制器節點47 
2.5.10創建CMakeLists.txt 49 
2.5.11測試人臉跟踪控制功能包49 
2.5.12集成所有節點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中創建AIML機器人62 
3.4.7AIML ROS功能包62 
3.5問題70 
3.6本章總結70 

第4章使用ROS控制嵌入式電路板71 
4.1主流嵌入式電路板入門71 
4.1.1如何選擇Arduino開發板71 
4.1.2Raspberry Pi(樹莓派)介紹74 
4.1.3Odroid開發板76 
4.2Arduino與ROS的接口76 
4.2.1使用Arduino和ROS監控光線亮度79 
4.2.2在PC上運行ROS串行服務器81 
4.2.3通過mbed連接STM32開發板和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節點檢測網絡攝像頭圖像中的物體117 
6.2.3使用深度傳感器運行find_object_2d節點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圖像識別節點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節點、主題和消息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接口創建基本應用程序182 
8.10問題183 
8.11本章總結184 

第9章構建自主移動機器人185 
9.1機器人規格和設計概述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