-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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機器人程序設計(原書第2版)

( 簡體 字)
作者:作者:(西班牙)恩里克·費爾南德斯(Enrique Fernandez) 路易斯·桑切斯·克雷斯波(Luis Sanchez Crespo)類別:1. -> 電子工程 -> 機器人
譯者:
出版社:機械工業出版社ROS機器人程序設計(原書第2版) 3dWoo書號: 45553
詢問書籍請說出此書號!

缺書
NT售價: 345

出版日:11/1/2016
頁數:296
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111551058
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

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

在閱讀本書的過程中無需使用任何特殊的設備。書中每一章都附帶了一系列的源代碼示例和教程,你可以在自己的計算機上運行。這是你唯一需要做的事情。

當然,我們還會告訴你如何使用硬件,這樣你可以將你的算法應用到現實環境中。我們在選擇設備時特意選擇一些業余用戶負擔得起的設備,同時涵蓋了在機器人研究中最典型的傳感器或執行器。

最后,由于ROS系統的存在使得整個機器人具備在虛擬環境中工作的能力。你將學習如何創建自己的機器人并結合功能強大的導航功能包集。此外如果使用Gazebo仿真環境,你將能夠在虛擬環境中運行一切。第2版在最后增加了一章,講如何使用“Move it!”包控制機械臂執行抓取任務。讀完本書后,你會發現已經可以使用ROS機器人進行工作了,并理解其背后的原理。

主要內容

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

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

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

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

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

第6章將展示如何在ROS節點中使用點云庫。該章從基本功能入手,如讀或寫PCL數據片段以及發布或訂閱這些消息所必需的轉換。然后,將在不同節點間創建一個管道來處理3D數據,以及使用PCL進行縮減采樣、過濾和搜索特征點。

第7章介紹在ROS系統中實現機器人的第一步是創建一個機器人模型,包括在Gazebo仿真環境中如何從頭開始對一個機器人進行建模和仿真,并使其在仿真環境中運行。你也可以仿真攝像頭和激光測距傳感器,為后續學習如何使用ROS的導航功能包集和其他工具奠定基礎。

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

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

第10章討論ROS中移動機器人機械臂的一個工具包。該章包含安裝這個包所需要的文檔,以及使用MoveIt!操作機械臂進行抓取、放置,簡單的運動規劃等任務的演示示例。

預備知識

我們寫作本書的目的是讓每位讀者都可以完成本書的學習并運行示例代碼。基本上,你只需要在計算機上安裝一個Linux發行版。雖然每個Linux發行版應該都能使用,但還是建議你使用Ubuntu 12.04 LTS。這樣你可以根據第1章的內容安裝ROS Hydro。

對于ROS的這一版本,你將需要Ubuntu 14.04之前的版本,因為之后的版本已經不再支持Hydro了。

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

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

目標讀者

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

源代碼和彩色圖片下載
我們同時提供了本書所有彩色的屏幕截圖、對話框的PDF文件,這些彩色圖片能夠更好地幫助你理解輸出的變化。
內容簡介:

無論是業余愛好者還是專業的機器人開發人員,在開始進行機器人系統及程序設計時,首先要面對的問題都是最基本的如何驅動機器人的輪子。ROS通過軟件代碼復用集成了眾多已經開發完成的功能組件。
本書專門幫助ROS初學者通過ROS系統完成小型機器人系統的開發和編程工作。書中提供了各種實際的示例代碼供讀者學習和理解ROS的軟件框架。你可以在仿真環境中自行構建機器人相應的功能程序。本書第2版在第1版的基礎上增加了與ROS Hydro一起工作,如何創建、可視化和處理不同傳感器的點云信息,如何控制和利用多關節機械臂等內容,并提供簡單易懂的實用教程編寫自己的機器人。



機器人操作系統一站式指南
本書從入門級內容開始介紹,包括傳感器集成、建模、仿真、計算機視覺、導航算法等。然后,探索主題、消息和節點等概念。接下來,介紹機器人如何使用高清攝像頭觀測或使用距離傳感器導航避障。
第2版新增了ROS Hydro,不僅介紹如何創建、可視化和處理來自不同傳感器的點云信息,還展示如何使用MoveIt! 控制和規劃包含多個關節的機械臂的運動。
為了充分利用這本書,讀者應有C++編程基礎、GNU/Linux系統知識和計算機科學的一般技能。不需要ROS經驗背景,這本書可以帶你從零開始。

通過閱讀本書,你將學到
安裝一個完整的ROS Hydro系統
ROS功能包和綜合功能包的創建及其實時使用和調試
ROS節點的編譯、處理和調試
設計三維機器人模型并使用Gazebo在虛擬環境中進行仿真
在機器人上生成和調整導航功能包集
將不同的傳感器如激光測距儀、Arduino和Kinect集成到機器人上
可視化和處理來自不同傳感器的點云信息
使用MoveIt!控制和規劃包含多個關節的機械臂的運動
目錄:

推薦序一

推薦序二

譯者序

前言

作者簡介

審校者簡介

第1章 ROS Hydro系統入門 1

1.1 PC安裝教程 3

1.2 使用軟件庫安裝ROS Hydro 3

1.2.1 配置Ubuntu軟件庫 4

1.2.2 添加軟件庫到sources.list文件中 4

1.2.3 設置密鑰 5

1.2.4 安裝ROS 5

1.2.5 初始化rosdep 6

1.2.6 配置環境 6

1.2.7 安裝rosinstall 7

1.3 如何安裝VirtualBox和Ubuntu 8

1.3.1 下載VirtualBox 8

1.3.2 創建虛擬機 8

1.4 在BeagleBone Black上安裝ROS Hydro 11

1.4.1 準備工作 12

1.4.2 配置主機和source.list文件 13

1.4.3 設置密鑰 14

1.4.4 安裝ROS功能包 14

1.4.5 初始化rosdep 15

1.4.6 在BeagleBone Black中配置環境 15

1.4.7 在BeagleBone Black中安裝rosinstall 15

1.5 本章小結 15

第2章 ROS系統架構及概念 16

2.1 理解ROS文件系統級 16

2.1.1 工作空間 17

2.1.2 功能包 18

2.1.3 綜合功能包 19

2.1.4 消息 20

2.1.5 服務 21

2.2 理解ROS計算圖級 22

2.2.1 節點與nodelet 23

2.2.2 主題 24

2.2.3 服務 25

2.2.4 消息 26

2.2.5 消息記錄包 26

2.2.6 節點管理器 26

2.2.7 參數服務器 27

2.3 理解ROS開源社區級 27

2.4 ROS系統試用練習 28

2.4.1 ROS文件系統導覽 28

2.4.2 創建工作空間 29

2.4.3 創建ROS功能包和綜合功能包 30

2.4.4 編譯ROS功能包 30

2.4.5 使用ROS節點 31

2.4.6 如何使用主題與節點交互 33

2.4.7 如何使用服務 36

2.4.8 使用參數服務器 38

2.4.9 創建節點 38

2.4.10 編譯節點 41

2.4.11 創建msg和srv文件 42

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

2.4.13 啟動文件 48

2.4.14 動態參數 50

2.5 本章小結 54

第3章 可視化和調試工具 55

3.1 調試ROS節點 57

3.1.1 使用gdb調試器調試ROS節點 57

3.1.2 ROS節點啟動時調用gdb調試器 58

3.1.3 ROS節點啟動時調用valgrind分析節點 59

3.1.4 設置ROS節點core文件轉儲 59

3.2 日志信息 59

3.2.1 輸出日志信息 59

3.2.2 設置調試信息級別 60

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

3.2.4 信息命名 62

3.2.5 按條件顯示信息與過濾信息 62

3.2.6 顯示信息的方式——單次、可調、組合 63

3.2.7 使用rqt_console和rqt_logger_level在運行時修改調試級別 63

3.3 檢測系統狀態 66

3.3.1 檢測節點、主題、服務和參數 67

3.3.2 使用rqt_graph在線檢測節點狀態圖 70

3.4 設置動態參數 71

3.5 當出現異常狀況時使用   roswtf 72

3.6 可視化節點診斷 74

3.7 繪制標量數據圖 75

3.8 圖像可視化 77

3.9 3D可視化 79

3.9.1 使用rqt_rviz在3D世界中實現數據可視化 79

3.9.2 主題與坐標系的關系 82

3.9.3 可視化坐標變換 82

3.10 保存與回放數據 83

3.10.1 什么是消息記錄包文件 84

3.10.2 使用rosbag在消息記錄包中記錄數據 84

3.10.3 回放消息記錄包文件 85

3.10.4 檢查消息記錄包文件的主題和消息 86

3.11 應用rqt與rqt_gui插件 88

3.12 本章小結 88

第4章 在ROS下使用傳感器和執行器 90

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

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

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

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

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

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

4.3 使用Kinect傳感器查看3D環境中的對象 100

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

4.3.2 創建使用Kinect的示例 102

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

4.5 使用Arduino添加更多的傳感器和

 執行器 107

4.6 在Arduino上使用超聲波傳感器 111

4.7 距離傳感器如何發送消息 113

4.7.1 創建使用超聲波的示例 113

4.7.2 Xsens如何在ROS中發送數據 116

4.7.3 創建使用Xsens的示例 116

4.8 使用10自由度低成本慣性測量模組IMU 118

4.8.1 下載加速度傳感器庫 119

4.8.2 Arduino Nano和10自由度傳感器編程 120

4.8.3 創建ROS節點以使用10自由度傳感器數據 121

4.9 GPS的使用 123

4.9.1 GPS如何發送信息 125

4.9.2 創建一個使用GPS的工程實例 126

4.10 本章小結 127

第5章 計算機視覺 128

5.1 連接和運行攝像頭 129

5.1.1 FireWire IEEE1394攝像頭 129

5.1.2 USB攝像頭 133

5.2 使用OpenCV制作USB攝像頭 驅動程序 134

5.2.1 通過cv_bridge使用OpenCV處理ROS圖像 139

5.2.2 使用image transport發布圖像 139

5.2.3 在ROS中使用OpenCV 140

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

5.3 標定攝像頭 141

5.4 ROS圖像管道 148

5.5 計算機視覺任務中有用的ROS功能包 152

5.6 使用viso2實現視覺里程計 153

5.6.1 攝像頭位姿標定 154

5.6.2 運行viso2在線演示 157

5.6.3 使用低成本雙目攝像頭運行viso2 159

5.7 使用RGBD深度攝像頭實現視覺里程計 160

5.7.1 安裝fovis 160

5.7.2 用Kinect RGBD深度攝像頭運行fovis 160

5.8 計算兩幅圖像的單應性 161

5.9 本章小結 162

第6章 點云 163

6.1 理解點云庫 163

6.1.1 不同的點云類型 164

6.1.2 PCL中的算法 164

6.1.3 ROS的PCL接口 165

6.2 我的第一個PCL程序 166

6.2.1 創建點云 167

6.2.2 加載和保存點云到硬盤 170

6.2.3 可視化點云 173

6.2.4 濾波和縮減采樣 176

6.2.5 配準與匹配 181

6.2.6 點云分區 184

6.3 分割 187

6.4 本章小結 191

第7章 3D建模與仿真 192

7.1 在ROS中自定義機器人的3D模型 192

7.2 創建第一個URDF文件 192

7.2.1 解釋文件格式 194

7.2.2 在rviz里查看3D模型 195

7.2.3 加載網格到機器人模型 197

7.2.4 使機器人模型運動 198

7.2.5 物理屬性和碰撞屬性 198

7.3 xacro——?一個更好的機器人建模方法 199

7.3.1 使用常量 199

7.3.2 使用數學方法 200

7.3.3 使用宏 200

7.3.4 使用代碼移動機器人 201

7.3.5 使用SketchUp進行3D建模 204

7.4 在ROS中仿真 205

7.4.1 在Gazebo中使用URDF 3D模型 206

7.4.2 在Gazebo中添加傳感器 208

7.4.3 在Gazebo中加載和使用地圖 211

7.4.4 在Gazebo中移動機器人 213

7.5 本章小結 215

第8章 導航功能包集入門 216

8.1 ROS導航功能包集 216

8.2 創建變換 217

8.2.1 創建廣播機構 218

8.2.2 創建偵聽器 218

8.2.3 查看坐標變換樹 221

8.3 發布傳感器信息 221

8.4 發布里程數據信息 224

8.4.1 Gazebo如何獲取里程數據 225

8.4.2 創建自定義里程數據 228

8.5 創建基礎控制器 232

8.5.1 使用Gazebo創建里程數據 233

8.5.2 創建自己的基礎控制器 235

8.6 使用ROS創建地圖 237

8.6.1 使用map_server保存地圖 238

8.6.2 使用map_server加載地圖 239

8.7 本章小結 240

第9章 導航功能包集進階 241

9.1 創建功能包 241

9.2 創建機器人配置 241

9.3 配置全局和局部代價地圖 243

9.3.1 基本參數的配置 244

9.3.2 全局代價地圖的配置 245

9.3.3 局部代價地圖的配置 245

9.3.4 基本局部規劃器配置 246

9.4 為導航功能包集創建啟動文件 247

9.5 為導航功能包集設置rviz 248

9.5.1 2D位姿估計 248

9.5.2 2D導航目標 249

9.5.3 靜態地圖 249

9.5.4 粒子云 251

9.5.5 機器人占地空間 251

9.5.6 局部代價地圖 252

9.5.7 全局代價地圖 252

9.5.8 全局規劃 254

9.5.9 局部規劃 254

9.5.10 規劃器規劃 254

9.5.11 當前目標 255

9.6 自適應蒙特卡羅定位 256

9.7 使用rqt_reconfigure修改參數 258

9.8 機器人避障 259

9.9 發送目標 260

9.10 本章小結 262

第10章 使用MoveIt! 264

10.1 MoveIt!體系結構 264

10.1.1 運動規劃 265

10.1.2 規劃場景 267

10.1.3 運動學 268

10.1.4 碰撞檢測 268

10.2 在MoveIt!中集成一個機械臂 268

10.2.1 工具箱里有什么 268

10.2.2 使用設置助手生成一個MoveIt!包 269

10.2.3 集成到rviz 273

10.2.4 集成到Gazebo或實際機器人的手臂 276

10.3 簡單的運動規劃 277

10.3.1 規劃單個目標 278

10.3.2 規劃一個隨機目標 278

10.3.3 規劃預定義的群組狀態 280

10.3.4 顯示目標的運動 280

10.4 考慮碰撞的運動規劃 280

10.4.1 將對象添加到規劃場景中 281

10.4.2 從規劃的場景中刪除對象 282

10.4.3 應用點云進行運動規劃 283

10.5 抓取和放置任務 284

10.5.1 規劃的場景 285

10.5.2 感知 288

10.5.3 抓取 288

10.5.4 抓取操作 290

10.5.5 放置操作 292

10.5.6 演示模式 295

10.5.7 在Gazebo中仿真 295

10.6 本章小結 296
序: