-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

ROS機器人程序設計

( 簡體 字)
作者:(西班牙)Aaron Martinez, Enrique Fernandez 著類別:1. -> 電子工程 -> 機器人
譯者:
出版社:機械工業出版社ROS機器人程序設計 3dWoo書號: 39878
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:10/1/2014
頁數:222
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787111473961
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

性地介紹了ROS系統的各種工具。ROS 是一個先進的機器人操作系統框架,現今已有數百個研究團體和公司將其應用在機器人技術產業中。對于機器人技術的非專業人士來說,它也相對容易上手。在本書中,你將了解如何安裝 ROS,如何開始使用ROS的基本工具,以及如何最終應用先進的計算機視覺和導航工具。

在閱讀本書的過程中無需使用任何特殊的設備。書中每一章都附帶了一系列的源代碼示例和教程,你可以在自己的計算機上運行。這是你唯一需要做的事情。當然,我們還會告訴你如何使用硬件,這樣,你可以將你的算法應用到現實環境中。我們在選擇設備時特意去選擇一些業余用戶負擔得起的設備,并同時涵蓋了在機器人研究中最典型的傳感器或執行機構。

最后,由于ROS系統的存在使得整個機器人具備在虛擬環境中工作的能力。你將學習如何創建自己的機器人并結合功能強大的導航功能包集。此外如果使用Gazebo仿真環境,你將能夠在虛擬環境中運行一切。我們會在本書的結尾提供一個能夠在ROS虛擬環境中進行模擬試驗的機器人列表。你將發現你已經可以與機器人一起工作,并理解其背后的原理。

主要內容

第1章簡單介紹安裝ROS系統的方法,同時還介紹ROS不同版本的安裝包的安裝,本書使用的是ROS Fuerte。這一章還會說明如何從Debian軟件包安裝或從源代碼進行編譯安裝,以及在虛擬機中安裝。

第2章涉及ROS 框架及相關的概念和工具。該章介紹節點、 主題和服務,以及如何使用它們,還將通過一系列示例來說明如何調試一個節點或通過可視化方法直觀地查看通過主題所發布的消息。

第3章進一步展示ROS強大的調試工具,以及通過對節點主題的圖形化可以將節點間的通信數據可視化。ROS 提供一個日志記錄 API,允許輕松地診斷節點的問題。事實上在使用過程中,我們會看到一些功能強大的圖形化工具如 rxconsole 和 rxgraph,以及可視化接口如 rxplot 和 rviz。最后介紹如何使用 rosbag 和 rxbag記錄和回放消息。

第4章介紹ROS系統與真實世界如何連接。這一章介紹在ROS下使用的一些常見傳感器和執行機構,如激光雷達、伺服電動機、攝像頭、RGB-D傳感器等設備。此外,還會解釋如何使用嵌入式系統與微控制器,例如非常流行的Arduino。

第5章介紹我們在ROS系統中實現機器人的第一步是在ROS中創建一個機器人模型,包括在Gazebo仿真環境中如何從頭開始對一個機器人進行建模和仿真,并使其在仿真環境中運行。這是后續學習如何使用ROS的導航功能包集和其他工具的前提條件。

第6章介紹ROS對攝像頭和計算機視覺任務的支持。首先使用FireWire和USB攝像頭驅動程序將攝像頭連接到計算機并采集圖像。然后,你就可以使用ROS的標定工具標定你的攝像頭。我們會詳細介紹和說明什么是圖像管道,學習如何使用集成了OpenCV的多個機器視覺API。最后,安裝并使用一個視覺測距軟件。

第7章是本書關于ROS導航功能包集的兩章中的第1章。介紹如何對你的機器人進行使用導航功能包集所需的初始化配置。然后用幾個例子對導航功能包集進行說明。

第8章延續第7章的內容,介紹如何使用導航功能包集使我們的機器人有效地自主導航。本章介紹使用ROS的Gazebo仿真環境和rviz創建一個虛擬的環境,并在其中構建地圖、定位我們的機器人并做路徑規劃與避障。

第9章結合前面幾章所學的內容,介紹能夠支持ROS并使用Gazebo仿真環境的一些機器人。在該章中,你將看到如何在仿真環境中運行這些機器人,并執行幾項本書中介紹過的任務,尤其是與導航功能包集相關的。

預備知識

我們寫作本書的目的是希望盡可能讓每位讀者都可以完成本書的學習并運行示例代碼。基本上,你只需要在計算機上安裝一個 Linux 發行版。雖然每個Linux 發行版本應該都能使用,但還是建議你使用Ubuntu的最新版。這樣你可以根據第1章的內容安裝ROS Fuerte。對于ROS的這一版本,你將需要Ubuntu 12.10 之前的版本,因為之后的版本已經不再支持Fuerte了。

對于硬件要求,一般來說任何臺式計算機或筆記本電腦都滿足。但是,最好使用獨立顯卡來運行Gazebo仿真環境。此外,如果能夠有足夠的外圍接口將會更好,因為這樣你可以連接幾個傳感器和執行機構,包括攝像頭和Arduino。

你還需要 Git (git-core Debian 軟件包),以便從本書提供的軟件源下載源代碼。同樣,你需要具備Bash 命令行、GNU/Linux工具的基本知識和一些 C/C++編程技巧。

目標讀者

本書的目標讀者包括所有機器人開發人員,可以是初學者也可以是專業人員。它涵蓋了整個機器人系統的各個方面,展示了ROS系統如何幫助完成機器人真正自主化的任務。對于聽說過ROS卻從未使用過的機器人領域的學生或科研人員來說,本書將是非常有益的。ROS 初學者能從本書中學習很多ROS軟件框架的先進理念和工具。不僅如此,經常使用ROS的用戶也可能從某些章節中學習到一些新東西。當然,只有前3章是純粹為初學者準備的,所以那些已經使用過ROS 的人可以跳過這部分直接閱讀后面的章節。

排版說明

在本書中,你會發現一些文本的樣式與其他正文內容不同。下面是一些樣式的示例及含義。

當我們希望能夠著重顯示示例代碼中的某些內容的時候,相關的代碼行會如下表示:



Bash命令行下輸入的命令或顯示的結果如下表示:



警告或注意事項會這樣顯示。

提示與小竅門會這樣顯示。

讀者反饋

我們非常歡迎讀者能夠提出意見與建議。讓我們知道你關于本書的一些想法,例如:你喜歡什么,不喜歡什么。讀者的反饋對我們是非常重要的,這讓我們知道我們最需要做的是什么。

向我們反饋信息只需發送電子郵件至 feedback@packtpub.com,并在郵件的主題中說明書籍名稱。

如果你在某項上有所專長,或者你有興趣寫一本書或者為書籍的出版做出貢獻,你可以瀏覽 www.packtpub.com/authors 閱讀我們的作者指南。

讀者支持

你現在自豪地擁有了Packt出版的書籍,我們會幫助你使你購買的產品物超所值。

源代碼下載

可以訪問http://www.packtpub.com/support,完成網站注冊并通過E-mail接收所有代碼

文件。

彩色圖片下載

我們同時提供包含了本書所有彩色的屏幕截圖、對話框的PDF文件,這些彩色圖片能夠更好地幫助你理解輸出的變化。可以從這里下載這個文件:http://www.packtpub.com/sites/default/files/ downloads/1448OS_Graphics.pdf。

勘誤

雖然我們已盡力確保本書內容的準確性,但錯誤在所難免。如果你在我們的書中發現錯誤,即使是一個錯字或一段錯誤的代碼,我們將非常感謝你把錯誤告知我們。這樣可以避免其他讀者發生困擾并幫助我們提高本書后續版本的質量。如果你發現任何錯誤,請訪問http://www.packtpub.com/ submit-errata報告這些問題。訪問網頁,選擇你的書,點擊勘誤提交表格的鏈接,并輸入你的勘誤細節。一旦確認了你的勘誤,我們會告知你的提交被接受并在我們的網站上更新勘誤表。你可以在http://www. packtpub.com/support根據你選擇的標題查看現有的勘誤表。

問題

如果關于本書你有任何疑問,請聯系我們 questions@packtpub.com,我們會竭盡所能為你解答。
內容簡介:

對象
本書主要針對希望學習機器人制作和設計,尤其是想要設計自己的機器人、真正熱愛機器人的愛好者。本書將會為你提供讓你的機器人可維護可升級,并且能夠相互分享的途徑。為了能夠更好地學習本書的內容,你最好具備一定的C++程序設計基礎以及GNU/Linux系統和計算機科學知識。而你并不需要對ROS有任何了解,因為本書正是要介紹這些基本知識和技能。還有,你最好能夠了解一定的版本控制系統的知識,如SVN或GIT。在本書中會經常使用它們。

無論是業余機器人愛好者還是專業機器人開發人員,在開始進行機器人系統及程序設計時,首先要面對的問題都是最基本的驅動機器人輪子的設計。ROS通過軟件代碼復用集成了眾多已經開發完成的功能組件。而本書就是專門幫助讀者從對ROS一無所知到能夠通過ROS系統完成小型機器人系統的開發和編程工作的。
本書提供了各種示例代碼供讀者學習和理解ROS的軟件框架。你可以在仿真環境中自行構建機器人相應的功能程序,并在ROS社區中分享你的學習心得和知識。
目錄:

譯者序

前 言

第1章 ROS系統入門 1

1.1 使用軟件源安裝ROS Electric 3

1.1.1 添加軟件源到sources.list文件中 4

1.1.2 設置密碼 4

1.1.3 安裝 4

1.1.4 環境配置 5

1.2 使用軟件源安裝ROS Fuerte 6

1.2.1 配置Ubuntu軟件源 6

1.2.2 配置source.list文件 6

1.2.3 設置密碼 7

1.2.4 安裝 7

1.2.5 環境配置 8

1.2.6 獨立工具 9

1.3 如何安裝VirtualBox和Ubuntu 9

1.3.1 下載VirtualBox 9

1.3.2 創建虛擬機 10

1.4 本章小結 12

第2章 ROS系統架構及示例 13

2.1 理解ROS文件系統級 13

2.1.1 功能包 14

2.1.2 功能包集 16

2.1.3 消息類型 16

2.1.4 服務類型 17

2.2 理解ROS計算圖級 18

2.2.1 節點 19

2.2.2 主題 20

2.2.3 服務 21

2.2.4 消息 22

2.2.5 消息記錄包 22

2.2.6 節點管理器 22

2.2.7 參數服務器 22

2.3 理解ROS開源社區級 23

2.4 ROS系統試用練習 23

2.4.1 ROS文件系統導覽 24

2.4.2 創建工作空間 24

2.4.3 創建ROS功能包 25

2.4.4 編譯ROS功能包 26

2.4.5 使用ROS節點 26

2.4.6 使用主題與節點交互 28

2.4.7 學習如何使用服務 31

2.4.8 使用參數服務器 33

2.4.9 創建節點 34

2.4.10 編譯節點 36

2.4.11 創建msg和srv文件 37

2.4.12 使用新建的srv和msg文件 38

2.5 本章小結 42

第3章 調試和可視化 43

3.1 調試ROS節點 44

3.1.1 使用GDB調試器調試ROS節點 45

3.1.2 ROS節點啟動時調用GDB調試器 46

3.1.3 設置ROS節點core文件轉存 47

3.2 調試信息 47

3.2.1 輸出調試信息 47

3.2.2 設置調試信息級別 48

3.2.3 為特定節點配置調試信息級別 48

3.2.4 信息命名 50

3.2.5 條件顯示信息與過濾信息 50

3.2.6 信息的更多功能——單次顯示、可調、組合 51

3.2.7 使用rosconsole和rxconsole在運行時修改調試級別 52

3.3 監視系統狀態 56

3.3.1 節點、主題與服務列表 56

3.3.2 使用rxgraph在線監視節點狀態圖 56

3.4 當奇怪的事情發生——使用roswtf 58

3.5 畫標量數據圖 58

3.5.1 用rxplot畫出時間趨勢曲線 59

3.5.2 另一個畫圖工具rxtools 60

3.6 圖像可視化 61

3.6.1 顯示單一圖片 61

3.6.2 FireWire接口攝像頭 62

3.6.3 使用雙目立體視覺 63

3.7 3D可視化 64

3.7.1 使用rviz在3D世界中實現數據可視化 64

3.7.2 主題與坐標系的關系 66

3.7.3 可視化坐標變換 67

3.8 保存與回放數據 68

3.8.1 什么是消息記錄包文件 69

3.8.2 使用rosbag在包文件中記錄數據 69

3.8.3 回放消息記錄文件 70

3.8.4 使用rxbag檢查消息記錄包的主題和消息 71

3.9 rqt插件與rx應用 72

3.10 本章小結 73

第4章 在ROS下使用傳感器和執行機構 74

4.1 使用游戲桿或游戲手柄 74

4.1.1 joy_node如何發送游戲桿動作消息 75

4.1.2 使用游戲桿數據在turtlesim中移動海龜 76

4.2 使用激光雷達——Hokuyo URG-04lx 79

4.2.1 了解激光雷達如何在 ROS 中發送數據 80

4.2.2 訪問和修改激光雷達數據 82

4.3 使用Kinect傳感器查看3D環境 84

4.3.1 如何發送和查看Kinect數據 85

4.3.2 創建和使用Kinect示例 86

4.4 使用伺服電動機——Dynamixel 88

4.4.1 Dynamixel如何發送和接收運動命令 89

4.4.2 創建和使用伺服電動機示例 90

4.5 使用Arduino添加更多的傳感器和執行機構 91

4.6 使用慣性測量模組——Xsens MTi 94

4.6.1 Xsens如何在ROS中發送數據 95

4.6.2 創建和使用Xsens示例 96

4.7 使用低成本慣性測量模組IMU-10自由度 98

4.7.1 下載加速度傳感器庫 99

4.7.2 Arduino Nano和10自由度傳感器編程 99

4.7.3 創建ROS節點并使用10自由度傳感器數據 101

4.8 本章小結 103

第5章 3D建模與仿真 104

5.1 自定義機器人在ROS中的3D模型 104

5.2 創建第一個URDF文件 104

5.2.1 解釋文件格式 106

5.2.2 在rviz里查看3D模型 107

5.2.3 加載圖形到機器人模型 109

5.2.4 使機器人模型運動 109

5.2.5 物理和碰撞屬性 110

5.3 xacro——一個寫機器人模型的更好方法 111

5.3.1 使用常量 111

5.3.2 使用數學方法 112

5.3.3 使用宏 112

5.3.4 使用代碼移動機器人 112

5.3.5 使用SketchUp進行3D建模 116

5.4 在ROS中仿真 117

5.4.1 在Gazebo中使用URDF3D模型 117

5.4.2 在Gazebo中添加傳感器 120

5.4.3 在Gazebo中加載和使用地圖 121

5.4.4 在Gazebo中移動機器人 123

5.5 本章小結 125

第6章 機器視覺 126

6.1 連接和運行攝像頭 128

6.1.1 FireWire IEEE1394 攝像頭 128

6.1.2 USB攝像頭 132

6.2 使用OpenCV制作USB攝像頭驅動程序 133

6.2.1 創建 USB 攝像頭驅動功能包 134

6.2.2 使用ImageTransport API發布攝像頭幀 135

6.2.3 使用 cv_bridge 進行OpenCV 和 ROS 圖像處理 138

6.2.4 使用ImageTransport 發布圖像 139

6.2.5 在ROS中使用OpenCV 139

6.2.6 顯示攝像頭輸入的圖像 140

6.3 如何標定攝像頭 140

6.4 ROS 圖像管道 147

6.5 對于計算機視覺任務有用的 ROS功能包 152

6.6 使用viso2執行視覺測距 153

6.6.1 攝像頭位姿標定 154

6.6.2 運行 viso2 在線演示 156

6.6.3 使用低成本雙目攝像頭運行 viso2 158

6.7 本章小結 159

第7章 導航功能包集入門 160

7.1 ROS導航功能包集 160

7.2 創建轉換 161

7.2.1 創建廣播機構 162

7.2.2 創建偵聽器 162

7.2.3 查看坐標變換樹 164

7.3 發布傳感器信息 165

7.4 發布里程數據 168

7.4.1 Gazebo如何獲取里程數據 169

7.4.2 創建自定義里程數據 171

7.5 創建基礎控制器 175

7.5.1 使用Gazebo 創建里程數據 176

7.5.2 創建基礎控制器 178

7.6 使用ROS創建地圖 180

7.6.1 使用map_server保存地圖 181

7.6.2 使用map_server加載地圖 182

7.7 本章小結 183

第8章 導航功能包集進階 184

8.1 創建功能包 184

8.2 創建機器人配置 184

8.3 配置全局和局部代價地圖 187

8.3.1 基本參數的配置 187

8.3.2 全局代價地圖的配置 188

8.3.3 局部代價地圖的配置 189

8.4 基本局部規劃器配置 189

8.5 為導航功能包集創建啟動文件 190

8.6 為導航功能包集設置rviz 191

8.6.1 2D位姿估計 191

8.6.2 2D導航目標 192

8.6.3 靜態地圖 193

8.6.4 點云 193

8.6.5 機器人立足點 193

8.6.6 障礙 194

8.6.7 膨脹障礙 194

8.6.8 全局規劃 195

8.6.9 局部規劃 195

8.6.10 規劃器規劃 196

8.6.11 當前目標 196

8.7 自適應蒙特卡羅定位 197

8.8 避免障礙 199

8.9 發送目標 200

8.10 本章小結 202

第9章 在實踐中學習 203

9.1 REEM——類人形PAL機器人 204

9.1.1 從官方軟件源安裝REEM 205

9.1.2 使用Gazebo仿真環境運行REEM 208

9.2 PR2——柳樹車庫機器人 210

9.2.1 安裝 PR2仿真環境 210

9.2.2 在仿真環境中運行PR2 211

9.2.3 生成地圖與定位 214

9.2.4 在仿真環境中運行PR2演示程序 216

9.3 Robonaut 2——NASA的敏捷型人形機器人 217

9.3.1 從軟件源安裝Robonaut 2 217

9.3.2 在國際空間站的固定支座上運行Robonaut2 218

9.4 Husky——Clearpath的輪式機器人 222

9.4.1 安裝Husky仿真環境 222

9.4.2 運行Husky仿真環境 222

9.5 TurtleBot——低成本移動機器人 224

9.5.1 安裝TurtleBot仿真環境 224

9.5.2 運行TurtleBot仿真環境 224

9.6 本章小結 225
序: