-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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版)

( 簡體 字)
作者:[印度]郎坦·約瑟夫(Lentin Joseph) [意大利]喬納森·卡卡切(Jonathan Cacace) 著類別:1. -> 電子工程 -> 機器人
譯者:
出版社:機械工業出版社精通ROS機器人編程(原書第2版) 3dWoo書號: 51003
詢問書籍請說出此書號!

缺書
NT售價: 495

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

譯者序:

前言:

機器人操作系統(Robot Operating System,ROS)本質是機器人系統的中間件,可幫助開發人員編寫機器人應用程序,現已被機器人公司、研究機構和大學廣泛采用。本書主要介紹ROS框架的高級概念,特別適合已經熟悉ROS基本概念的讀者。但是,第1章還是簡要介紹了ROS的基本概念,以幫助初學者快速入門。讀者將了解新機器人的軟件包生成、機器人建模、設計等,以及利用ROS框架對機器人進行仿真、與ROS連接。這里使用的是高級的仿真軟件和ROS工具,這些工具可以輔助機器人導航、控制和傳感器可視化。最后,讀者將學習如何使用ROS底層控制器、小節點(nodelet)和插件等重要概念。讀者可以使用普通計算機來運行本書中的大部分示例,而無須任何特殊硬件。但是,在本書的某些章節中將討論如何使用特殊硬件將ROS與外部傳感器、驅動器和I/O開發板一起使用。

本書是按照如下順序來組織的。在介紹了ROS的基本概念之后,開始討論如何對機器人進行建模和仿真。Gazebo和V-REP仿真器將用于控制機器人建模并與之交互,還將用于連接機器人與MoveIt!和ROS導航軟件包。然后討論ROS插件、控制器和小節點。最后,本書還會討論如何將Matlab和Simulink軟件與ROS連接。

本書的讀者對象

本書為有激情的機器人開發人員或想充分利用ROS功能的研究人員而寫。本書也適合已經熟悉典型機器人應用的用戶,或者想要進階學習ROS,學習如何建模、構建、控制自己機器人的用戶。如果你想輕松理解本書的所有內容,強烈建議你先掌握GNU/Linux和C++編程的基礎知識。

本書主要內容

第1章介紹ROS的核心基本概念。

第2章解釋如何使用ROS軟件包。

第3章討論兩類機器人的設計:一類是七自由度(7-DOF)機械臂,另一類是差速驅動機器人。

第4章討論7-DOF機械臂、差速輪式機器人和ROS控制器的仿真,這些控制器有助于控制Gazebo中的機器人關節。

第5章介紹如何使用V-REP仿真器和vrep_plugin將ROS連接到仿真場景中。然后討論7-DOF機械臂和差速移動機器人的控制。

第6章介紹如何使用ROS MoveIt!和導航軟件包集的現有功能,如機器人機械臂運動控制和機器人自主導航。

第7章展示ROS中的一些高級概念,例如ROS pluginlib、小節點和Gazebo插件。本章還將討論每個概念的功能和應用,并通過一個示例介紹其工作原理。

第8章展示如何為類似于PR2的機器人編寫基本的ROS控制器。在創建控制器后,我們將使用Gazebo中的PR2來運行控制器。與此同時,我們還將看到如何為RViz創建插件。

第9章討論一些硬件組件(如傳感器和執行器)與ROS的接口。我們將看到如何使用I/O開發板(如Arduino、樹莓派和Odroid-XU4)與ROS的傳感器通信。

第10章討論如何使用ROS連接各種視覺傳感器,并利用開源計算機視覺庫(OpenCV)和點云庫(PCL)與AR Markers一起對其進行編程。

第11章介紹如何構建具有差速驅動器配置的自主移動機器人,并將其與ROS連接。

第12章討論MoveIt!的功能,例如碰撞規避,使用3D傳感器進行感知、抓握、拾取和放置。在此之后,我們將學習如何將機器人控制器硬件與MoveIt!連接。

第13章討論如何將Matlab和Simulink軟件與ROS連接。

第14章幫助大家了解和安裝ROS中的ROS-Industrial軟件包。我們將學習如何為工業機器人開發MoveIt! IKFast插件。

第15章討論如何在Eclipse IDE中設置ROS開發環境,并介紹ROS中的最佳實戰經驗與調試技巧。

如何學習本書

為了運行本書中的示例,你需要一臺運行Linux系統的計算機。這里推薦安裝的Linux發行版是Ubuntu 16.04,Debian 8也可以。建議計算機配置至少有4GB的內存和一款性能優異的處理器(Intel i系列)來執行Gazebo仿真和圖像處理算法。

讀者甚至可以在Windows系統上托管的虛擬機或VMware軟件上安裝Linux系統,在這樣的虛擬系統中也可以工作。但這種選擇的缺點是需要更多的計算資源來運行示例,并且當ROS與真實的硬件連接時,可能會遇到各種問題。

本書中使用的ROS版本是Kinetic Kame。需要的其他軟件有V-REP仿真器、Git、Matlab和Simulink。

最后,某些章節要求讀者將ROS與商用硬件連接,例如I/O開發板(Arduino、Odroid和樹莓派)、視覺傳感器(Kinect/Asus Xition Pro)和驅動器。你必須購買這些硬件才能運行本書中的一些示例,但這并不是學習ROS必須要購買的。

下載示例代碼

你可以通過個人賬號下載本書的示例代碼,也可以訪問華章圖書官網,通過注冊并登錄個人賬號下載。

本書的代碼也在GitHub上托管,網址為tHub代碼倉庫中。

除此之外,我們還在中提供了其他書籍和視頻,這里還有一些其他代碼,有興趣就去看看吧!

下載彩圖

我們還提供了一個PDF文件,其中包含本書中使用的所有截圖和樣圖。可以在此處下載。

排版約定

在本書中使用了許多排版約定。

代碼格式如下:

命令行輸入或輸出格式如下:

粗體:表示你看到的是新術語、重要單詞或句子。例如,菜單或對話框中的單詞會出現在文本中。下面就是一個示例:在主工具欄上,選擇“File | Open Workspace”,然后選擇代表ROS工作區的目錄。

警告或重要說明標志。

提示和技巧標志。
內容簡介:

本書主要面向機器人開發人員和想充分利用ROS功能的研究人員,是一本側重ROS框架高級概念的進階學習指南。書中既介紹了ROS的基本概念,又系統地講解了使用ROS進行復雜機器人設計、建模、仿真和交互的實用技術、工具和編程技巧,包含大量示例,可以為你快速提升ROS實戰技能提供詳實參考。



全書共15章,第1章簡要介紹ROS的基本概念;第2章解釋如何使用ROS軟件包;第3章討論7- DOF機械臂和差速驅動機器人的設計;第4章和第5章通過示例詳細講解如何使用Gazebo和V- REP這兩個著名的機器人仿真軟件;第6章介紹如何使用ROS MoveIt!和導航軟件包集的現有功能;第7章討論ROS pluginlib、小節點和控制器等一些高級概念;第8章進一步討論RViz插件和ROS控制器;第9章討論一些硬件組件與ROS的接口;第10章討論如何使用ROS連接各種視覺傳感器,并利用開源計算機視覺庫(OpenCV)和點云庫(PCL)進行編程;第11章介紹如何構建差速驅動的自主移動機器人,并將其與ROS連接;第12章介紹Movelt!的高級功能;第13章討論如何將Matlab和Simulink軟件與ROS連接;第14章介紹ROS-lndustrial軟件包;第15章討論如何在ROS中安裝集成開發環境,并介紹ROS實戰經驗與調試技巧。



機器人技術在強調一致性與完美性的工業領域極具吸引力。 自動化在當今世界發揮著重要作用,其中的大多數是通過機器人應用和支持機器人的各類平臺實現的。 ROS是一個模塊化軟件平臺,用于開發通用性的機器人應用。本書聚焦于ROS當前穩定的發布版本Kinect Kame,討論機器人領域的高級概念,并展示如何使用ROS編程。

本書首先深入介紹ROS框架,幫助你清晰地了解ROS是如何工作的。然后,你將學習如何構建復雜機器人的模型,并用運動規劃庫(ROS MoveIt!)和ROS導航軟件包集(Navigation)對機器人進行仿真和交互。之后,你將了解如何把I/O開發板、傳感器和執行機構與ROS連接,還將學習如何連接硬件設備,以及如何用ROS和ROS-Industrial對復雜機器人進行仿真。最后,你將了解ROS程序設計的最佳實戰技巧與經驗。



通過閱讀本書,你將學到:

? 創建一個7-DOF機械臂,以及一個差速輪式移動機器人。

? 在ROS中,用Gazebo和V-REP進行機器人仿真。

? 用MoveIt!對7-DOF機械臂進行運動規劃。

? 在ROS中用SLAM和AMCL實現差速驅動機器人的自主導航。

? 深入了解ROS pluginlib、 ROS小節點和Gazebo插件。

? 將I/O開發板(如Arduino)、機器人傳感器及高端執行機構與ROS連接。

? 用ROS-Industrial對ABB機械臂和UR機械臂進行仿真和運動規劃。

? 用ROS新版本探究ROS的開放框架。
目錄:

譯者序
前言
作者簡介
譯者簡介
第1章 ROS簡介 1
1.1 為什么要學習ROS 1
1.2 在機器人開發中,人們為什么更愿意選擇ROS 2
1.3 為什么有些人不愿意選擇ROS 3
1.4 理解ROS的文件系統 4
1.4.1 ROS軟件包 5
1.4.2 ROS超軟件包 7
1.4.3 ROS消息 7
1.4.4 ROS服務 9
1.5 理解ROS的計算圖 9
1.5.1 ROS節點 11
1.5.2 ROS消息 12
1.5.3 ROS話題 13
1.5.4 ROS服務 13
1.5.5 ROS消息記錄包 14
1.5.6 ROS節點管理器 14
1.5.7 應用ROS參數 16
1.6 ROS的社區 17
1.7 學習ROS需要做哪些準備 17
1.8 習題 20
1.9 本章小結 20
第2章 ROS編程入門 21
2.1 創建一個ROS軟件包 21
2.1.1 學習ROS話題 23
2.1.2 創建ROS節點 23
2.1.3 編譯生成節點 26
2.2 添加自定義的msg和srv文件 28
2.3 使用ROS服務 30
2.3.1 使用ROS動作庫 34
2.3.2 編譯ROS動作服務器和客戶端 37
2.4 創建啟動文件 39
2.5 話題、服務和動作庫的應用 41
2.6 維護ROS軟件包 41
2.7 發布ROS軟件包 42
2.7.1 準備發布ROS軟件包 43
2.7.2 發布軟件包 43
2.7.3 為ROS軟件包創建維基頁面 45
2.8 習題 47
2.9 本章小結 47
第3章 在ROS中為3D機器人建模 48
3.1 機器人建模的ROS軟件包 49
3.2 利用URDF理解機器人建模 50
3.3 為機器人描述創建ROS軟件包 52
3.4 創建我們的第一個URDF模型 52
3.5 詳解URDF文件 54
3.6 在RViz中可視化機器人3D模型 55
3.7 向URDF模型添加物理屬性和碰撞屬性 57
3.8 利用xacro理解機器人建模 58
3.8.1 使用屬性 58
3.8.2 使用數學表達式 59
3.8.3 使用宏 59
3.9 將xacro轉換為URDF 59
3.10 為7-DOF機械臂創建機器人描述 60
3.10.1 機械臂規格 61
3.10.2 關節類型 61
3.11 解析7-DOF機械臂的xacro模型 61
3.11.1 使用常量 61
3.11.2 使用宏 62
3.11.3 包含其他xacro文件 62
3.11.4 在連桿中使用網格模型 63
3.11.5 使用機器人夾爪 63
3.11.6 在RViz中查看7-DOF機械臂 63
3.12 為差速驅動移動機器人創建機器人模型 66
3.13 習題 70
3.14 本章小結 70
第4章 使用ROS和Gazebo進行機器人仿真 71
4.1 使用Gazebo和ROS仿真機械臂 71
4.2 為Gazebo創建機械臂仿真模型 72
4.2.1 為Gazebo機器人模型添加顏色和紋理 73
4.2.2 添加transmission標簽來驅動模型 74
4.2.3 添加gazebo_ros_control插件 74
4.2.4 在Gazebo中添加3D視覺傳感器 75
4.3 仿真裝有Xtion Pro的機械臂 76
4.4 在Gazebo中使用ROS控制器 78
4.4.1 認識ros_control軟件包 78
4.4.2 不同類型的ROS控制器和硬件接口 79
4.4.3 ROS控制器如何與Gazebo交互 79
4.4.4 將關節狀態控制器和關節位置控制器連接到手臂 80
4.4.5 在Gazebo中啟動ROS控制器 81
4.4.6 控制機器人的關節運動 83
4.5 在Gazebo中仿真差速輪式機器人 83
4.5.1 將激光雷達添加到機器人中 85
4.5.2 在Gazebo中控制機器人移動 86
4.5.3 在啟動文件中添加關節狀態發布者 87
4.6 添加ROS遙控節點 88
4.7 習題 89
4.8 本章小結 89
第5章 用ROS和V-REP進行機器人仿真 91
5.1 安裝帶有ROS的V-REP 91
5.2 理解vrep_plugin 95
5.2.1 使用ROS服務與V-REP交互 96
5.2.2 使用ROS話題與V-REP交互 98
5.3 使用V-REP和ROS仿真機械臂 101
5.4 在V-REP下仿真差速輪式機器人 107
5.4.1 在V-REP中添加激光傳感器 109
5.4.2 在V-REP中添加3D視覺傳感器 110
5.5 習題 112
5.6 本章小結 112
第6章 ROS MoveIt!與導航軟件包集 113
6.1 安裝MoveIt! 113
6.2 使用配置助手工具生成MoveIt!配置軟件包 118
6.2.1 第1步:啟動配置助手工具 118
6.2.2 第2步:生成自碰撞矩陣 120
6.2.3 第3步:增加虛擬關節 120
6.2.4 第4步:添加規劃組 121
6.2.5 第5步:添加機器人姿態 122
6.2.6 第6步:設置機器人的末端執行器 122
6.2.7 第7步:添加被動關節 123
6.2.8 第8步:作者信息 123
6.2.9 第9步:生成配置文件 123
6.3 使用MoveIt!配置軟件包在RViz中進行機器人運動規劃 124
6.3.1 使用RViz運動規劃插件 125
6.3.2 MoveIt!配置軟件包與Gazebo的接口 128
6.4 理解ROS導航軟件包集 133
6.4.1 ROS導航硬件的要求 133
6.4.2 使用導航軟件包 134
6.5 安裝ROS導航軟件包集 136
6.6 使用SLAM構建地圖 136
6.6.1 為gmapping創建啟動文件 137
6.6.2 在差速驅動機器人上運行SLAM 138
6.6.3 使用amcl和靜態地圖實現自主導航 141
6.6.4 創建amcl啟動文件 141
6.7 習題 144
6.8 本章小結 144
第7章 使用pluginlib、小節點和Gazebo 插件 145
7.1 理解pluginlib 145
7.2 理解ROS小節點 151
7.3 理解Gazebo插件 156
7.4 習題 160
7.5 本章小結 160
第8章 ROS控制器和可視化插件編程 161
8.1 理解 ros_control軟件包集 162
8.1.1 controller_interface軟件包 162
8.1.2 控制器管理器 164
8.2 使用ROS編寫一個基本的關節控制器 164
8.2.1 第1步:創建控制器軟件包 165
8.2.2 第2步:創建控制器頭文件 165
8.2.3 第3步:創建控制器源文件 166
8.2.4 第4步:控制器源文件解析 166
8.2.5 第5步:創建插件描述文件 167
8.2.6 第6步:更新package.xml文件 168
8.2.7 第7步:更新CMake-Lists.txt文件 168
8.2.8 第8步:編譯控制器 168
8.2.9 第9步:編寫控制器配置文件 168
8.2.10 第10步:編寫控制器的啟動文件 169
8.2.11 第11步:在Gazebo中運行控制器和7-DOF機械臂 169
8.3 理解ROS可視化工具(RViz)及其插件 171
8.3.1 Displays面板 172
8.3.2 RViz工具欄 172
8.3.3 Views面板 172
8.3.4 Time面板 172
8.3.5 可停靠面板 172
8.4 編寫用于遙控操作的RViz插件 172
8.5 習題 178
8.6 本章小結 178
第9章 將ROS與I/O開發板、傳感器、執行機構連接 179
9.1 理解Arduino-ROS接口 179
9.2 Arduino-ROS接口是什么 180
9.2.1 理解ROS中的rosserial軟件包 181
9.2.2 理解Arduino中的ROS節點API 185
9.2.3 ROS-Arduino發布者和訂閱者實例 187
9.2.4 Arduino-ROS接口實例——LED燈閃爍/按按鈕 190
9.2.5 Arduino-ROS接口實例——ADXL 335加速度計 192
9.2.6 Arduino-ROS接口實例——超聲波測距傳感器 194
9.2.7 Arduino-ROS接口實例——里程計發布者 197
9.3 非Arduino開發板與ROS接口 199
9.3.1 在Odroid-XU4和樹莓派2上配置ROS 199
9.3.2 用ROS控制樹莓派2 上的LED燈閃爍 206
9.3.3 在樹莓派2上使用ROS測試按鈕和LED燈閃爍 208
9.3.4 在樹莓派2上運行示例 211
9.4 將DYNAMIXEL驅動器連接到ROS 212
9.5 習題 212
9.6 本章小結 212
第10章 用ROS對視覺傳感器編程、OpenCV、PCL 213
10.1 理解ROS-OpenCV開發接口軟件包 213
10.2 理解ROS-PCL開發接口軟件包 214
10.3 在ROS中連接USB相機 216
10.4 ROS與相機校準 218
10.4.1 使用cv_bridge在ROS和OpenCV之間轉換圖像 221
10.4.2 使用ROS和OpenCV進行圖像處理 221
10.5 在ROS中連接Kinect與華碩Xtion Pro 225
10.6 將英特爾Real Sense相機與ROS連接 228
10.7 在ROS中連接Hokuyo激光雷達 232
10.8 處理點云數據 233
10.8.1 如何發布點云 234
10.8.2 如何訂閱和處理點云 235
10.8.3 將點云數據寫入點云數據(PCD)文件 236
10.8.4 從PCD文件中讀取并發布點云 237
10.9 物體姿態估計與AR標記檢測 239
10.10 習題 243
10.11 本章小結 244
第11章 在ROS中構造與連接差速驅動移動機器人 245
11.1 Chefbot DIY移動機器人及其硬件配置 246
11.1.1 使用Energia IDE來燒寫Chefbot固件 248
11.1.2 討論Chefbot的ROS軟件包接口 249
11.1.3 從編碼器計數計算里程計信息 254
11.1.4 根據ROS twist消息計算馬達轉速 256
11.1.5 為Chefbot機器人配置導航軟件包集 257
11.1.6 配置gmapping節點 257
11.1.7 配置導航軟件包集 259
11.1.8 理解AMCL 264
11.1.9 在RViz中使用導航功能 267
11.1.10 導航軟件包中避障 272
11.1.11 Chefbot機器人仿真 273
11.1.12 從ROS節點向導航軟件包集發送一個目的地 276
11.2 習題 278
11.3 本章小結 278
第12章 探索ROS-MoveIt!的高級功能 279
12.1 使用move_group的C++接口進行運動規劃 279
12.1.1 使用MoveIt! C++ API規劃隨機路徑 280
12.1.2 使用MoveIt! C++ API規劃自定義路徑 281
12.2 使用MoveIt!進行機械臂的碰撞檢測 283
12.2.1 向MoveIt!添加碰撞對象 283
12.2.2 從規劃場景中移除碰撞對象 286
12.2.3 向機器人連桿上添加一個碰撞對象 286
12.2.4 使用MoveIt! API檢查自碰撞 287
12.3 使用MoveIt!和Gazebo處理視覺 288
12.4 使用MoveIt!執行拾取和放置任務 294
12.4.1 使用GPD計算抓握姿態 297
12.4.2 在Gazebo和真實機器人上執行拾取和放置動作 300
12.5 理解用于機器人硬件接口的DYNAMIXEL ROS伺服控制器 300
12.5.1 DYNAMIXEL伺服舵機 300
12.5.2 DYNAMIXEL-ROS接口 301
12.6 7-DOF機械臂與ROS MoveIt! 302
12.6.1 為COOL機械臂創建一個控制器軟件包 303
12.6.2 COOL機械臂的MoveIt!配置 306
12.7 習題 308
12.8 本章小結 308
第13章 在MATLAB和Simulink中使用ROS 309
13.1 學習使用MATLAB與MATLAB-ROS 309
13.1.1 機器人系統工具箱和ROS-MATLAB接口入門 310
13.1.2 ROS話題和MATLAB回調函數 313
13.1.3 為Turtlebot機器人設計一個避障系統 317
13.2 學習使用ROS與Simulink 321
13.2.1 在Simulink中創建波形信號積分器 321
13.2.2 在Simulink中使用ROS消息 323
13.2.3 在Simulink中發布ROS消息 323
13.2.4 在Simulink中訂閱ROS話題 327
13.3 用Simulink開發一個簡單的控制系統 328
13.4 習題 332
13.5 本章小結 332
第14章 ROS與工業機器人 333
14.1 理解ROS-Industrial軟件包 333
14.1.1 ROS-Industrial的目標 334
14.1.2 ROS-Industrial簡史 334
14.1.3 ROS-Industrial優點 334
14.2 安裝ROS-Industrial軟件包 334
14.3 ROS-Industrial軟件包框圖 335
14.4 為工業機器人創建URDF 336
14.5 為工業機器人創建MoveIt!配置 337
14.5.1 更新MoveIt!配置文件 340
14.5.2 測試MoveIt!配置 341
14.6 安裝UR機械臂的ROS-Industrial軟件包 341
14.7 理解UR機械臂的MoveIt!配置 343
14.8 使用真實的UR機器人和ROS-I 345
14.9 ABB機器人的MoveIt!配置 346
14.10 ROS-Industrial機器人支持軟件包 349
14.11 ROS-Industrial 機器人客戶端軟件包 351
14.12 ROS-Industrial 機器人驅動軟件包 352
14.13 理解MoveIt! IKFast插件 354
14.14 為ABB IRB 6640機器人創建MoveIt! IKFast插件 354
14.14.1 開發MoveIt! IKFast插件的前提條件 354
14.14.2 OpenRave和IKFast模塊 354
14.15 為使用OpenRave,創建機器人的COLLADA文件 357
14.16 為IRB 6640機器人生成IKFast CPP文件 358
14.17 習題 361
14.18 本章小結 361
第15章 調試方法與最佳實戰技巧 362
15.1 在Ubuntu中安裝RoboWare Studio 362
15.1.1 安裝和卸載RoboWare Studio 363
15.1.2 RoboWare Studio入門 363
15.1.3 在RoboWare Studio中創建ROS軟件包 364
15.1.4 在RoboWare Studio中編譯ROS工作區 366
15.1.5 在RoboWare Studio中運行ROS節點 367
15.1.6 在RoboWare界面啟動ROS工具 368
15.1.7 處理活動的ROS話題、節點和服務 369
15.1.8 使用RoboWare工具創建ROS節點和類 370
15.1.9 RoboWare Studio中的ROS軟件包管理器 371
15.2 ROS的最佳實戰技巧與經驗 372
15.3 ROS軟件包中的最佳實戰技巧與經驗 374
15.4 ROS中的重要調試技巧 374
15.5 習題 377
15.6 本章小結 378
序: