內容簡介
本書的基本目標是通過項目實踐講解ROS,探討具有ROS接口的各種新技術。例如,你將看到如何構建自動駕駛汽車的原型,如何使用ROS構建深度學習的應用程序,以及如何在ROS中構建虛擬現實(VR)應用程序。此外,還將介紹使用ROS及其庫的大約多個項目和應用程序。
目錄
Contents 目 錄
譯者序
推薦序一
推薦序二
作者簡介
審校者簡介
前言
緻謝
第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.9ROS在工業和研究中的機遇 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
前言/序言
前 言 Preface
本書是通過使用有趣的項目學習ROS的實用指南。這本書假設你有一些ROS的知識。但是,如果沒有ROS的經驗,你仍然可以使用本書開始學習ROS。第1章完全是為初學者準備的。ROS廣泛應用於機器人公司、大學和機器人研究實驗室,用於設計和編程機器人。如果你想在機器人軟件領域工作,或者你想成為一名機器人軟件工程師,那麼本書十分適閤你。
本書的基本目標是通過項目實踐講解ROS。這裏討論的項目也可以在學術或工業項目中重復使用。本書探討瞭具有ROS接口的各種新技術。例如,你將看到如何構建自動駕駛汽車的原型,如何使用ROS構建深度學習的應用程序,以及如何在ROS中構建虛擬現實(VR)應用程序。這些隻是幾個著重提及的主題。此外,你將會學習使用ROS及其庫的多個項目和應用程序。
你可以在滿足預備條件之後使用各類項目。大多數項目可以在沒有很多依賴的情況下完成。我們使用主流和可行的硬件組件來構建大多數項目。因此這使得我們在創建這些項目時不會遇到太多睏難。
本書首先講述瞭ROS的基礎知識及其廣泛的應用。第1章可以作為零基礎初學者的起點。之後,將深入探討ROS的各類項目。
我們來學習並用ROS實現酷炫的項目吧!
本書的主要內容第1章適用於ROS零基礎的初學者。如果你沒有ROS的相關經驗,也不必擔心。本章將幫助你瞭解ROS軟件框架及概念。
第2章通過使用ROS和OpenCV庫實現一個酷炫的項目。項目本質上是創建瞭一個人臉跟蹤的應用程序,實現瞭以攝像頭始終指嚮人臉的方式進行跟蹤。我們將使用如Dynamixel這樣的智能伺服係統使機器人在其軸上鏇轉。
第3章介紹如何提高機器人的互動性和智能化。該項目在ROS中創建一個可以使用文本或語音進行交流的聊天機器人。如果想要創建聊天或服務機器人,這個項目將會很有用。
第4章可以幫助你使用Arduino、嵌入式兼容闆、Raspberry Pi或Odroid以及ROS接口製作機器人。在該章中,你將看到各種嵌入式開發闆和與之配套的接口項目。
第5章包括如何使用Arduino和IMU製作手勢控製設備。手勢由ROS節點轉換為運動命令。
第6章介紹檢測物體的有趣項目。使用強大的ROS包學習二維物體和三維物體的識彆。
第7章介紹瞭一個在機器人上使用先進技術開發的項目。使用TensorFlow庫和ROS,可以實現有趣的深度學習應用程序。你可以使用深度學習實現圖像識彆,本章還有關於使用SVM的應用程序。
第8章介紹如何使用ROS、MATLAB和Android編寫機器人應用程序。
第9章介紹如何在ROS的幫助下製作一個自主移動機器人。你可以瞭解如何使用導航、gmapping和AMCL等軟件包實現機器人自主移動。
第10章介紹瞭本書中很有趣的一個項目。在該章中,我們將使用ROS和Gazebo實現自動駕駛汽車的仿真。
第11章展示瞭如何使用VR頭戴設備和Leap Motion傳感器控製機器人的動作。你可以使用虛擬現實這一前沿技術。
第12章介紹瞭如何在ROS中使用rosbridge開發交互式Web應用程序。
閱讀前的準備工作一個運行Linux發行版的強大PC,最好是Ubuntu 16.04 LTS。
使用帶有獨立顯卡的筆記本電腦或颱式機,推薦4~8GB的內存。主要用於運行Gazebo高端仿真以及處理點雲和計算機視覺。
有本書提到的傳感器、執行器和I/O闆,並且應該能將它們全部連接到PC。
需要安裝Git剋隆軟件包文件。
如果你是Windows用戶,那麼下載VirtualBox並設置Ubuntu。在VirtualBox中嘗試將實際硬件與ROS進行連接時,可能會遇到問題。所以,最好使用Linux係統。
本書的讀者對象如果你是機器人愛好者或研究人員並想瞭解更多有關使用ROS開發機器人應用程序的信息,本書正是為你準備的。為瞭學習本書,你應該具備ROS、GNU / Linux和C ++編程等概念的基礎知識。這本書也適用於想要探索ROS的高級功能的程序開發人員。
緻 謝 Acknowledgements感謝購買我之前兩本ROS書籍的讀者。事實上,正是他們的鼓勵促使我寫瞭本書。
感謝Packt齣版團隊為書的齣版所提供的支持。沒有你們,齣書就是一個遙遠的夢想。
特彆感謝Packt的編輯Amedh Pohad和Namrata Patil,感謝他們在寫作過程中的指導和建議。
特彆感謝Ruixiang Du等所有審校者對內容的改進和提齣的建議,是你們使本書變得更完美。
我生命中最重要的是我的傢人,沒有他們的支持,我不可能寫完本書。我想把這本書奉獻給我的父母,他們給瞭我寫作的靈感。這是我關於ROS的第三本書。感謝他們一直以來的支持。
還要感謝我之前的公司ASIMOV Robotics,在本書中為幾個項目提供瞭組件。非常感謝!
再次感謝我的讀者。我希望你們也喜歡這本書,我的小小成就都源於你們的支持。
ROS機器人項目開發11例 下載 mobi epub pdf txt 電子書