ROS 機器人理論與實踐

張新鈺、趙虛左、邱楠、郭世純

  • 出版商: 清華大學
  • 出版日期: 2023-05-01
  • 售價: $432
  • 貴賓價: 9.5$410
  • 語言: 簡體中文
  • 頁數: 376
  • 裝訂: 平裝
  • ISBN: 7302631026
  • ISBN-13: 9787302631026
  • 相關分類: 機器人製作 Robots
  • 立即出貨 (庫存 < 3)

  • ROS 機器人理論與實踐-preview-1
  • ROS 機器人理論與實踐-preview-2
  • ROS 機器人理論與實踐-preview-3
ROS 機器人理論與實踐-preview-1

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

商品描述

本書針對ROS機器人操作系統的初學者,以理論與實踐相結合的設計思想為主線,循序漸進地介紹機器人操作系統,以幫助有志於機器人開發的讀者方便快捷地上手ROS。主要內容包括ROS機器人操作系統的基礎知識、通信機制、運行管理、機器人系統模擬、實體機器人設計、機器人導航,以及ROS進階等內容。讀者學習完本書後,能夠入門ROS機器人操作系統,掌握機器人的相關理論知識、構建屬於自己的機器人平臺並實現機器人自主導航功能,為基於ROS機器人操作系統的產品開發奠定基礎。 本書理論結合實踐、深入淺出,適用於各類學校的ROS機器人操作系統課程。

目錄大綱

目錄

 

第1章ROS概述與開發環境搭建1

1.1ROS簡介2

1.1.1ROS概要3

1.1.2ROS的設計目標3

1.1.3ROS發展歷程4

1.2ROS安裝6

1.2.1安裝虛擬機軟件6

1.2.2虛擬一臺主機10

1.2.3安裝和優化Ubuntu12

1.2.4安裝ROS20

1.2.5測試ROS22

1.3ROS快速體驗24

1.3.1HelloWorld實現簡介24

1.3.2HelloWorld(C++版)25

1.3.3HelloWorld(Python版)26

1.4ROS集成開發環境搭建27

1.4.1安裝終端27

1.4.2安裝VSCode29

1.4.3launch文件演示32

1.5ROS架構32

1.5.1ROS文件系統34

1.5.2ROS文件系統相關命令40

1.5.3ROS計算圖41

1.6本章小結42

第2章ROS通信機制43

2.1話題通信43

2.1.1理論模型45

2.1.2基本操作(C++)462.1.3基本操作(Python)49

2.1.4自定義msg51

2.1.5自定義msg調用(C++)53

2.1.6自定義msg調用(Python)56

2.2服務通信58

2.2.1理論模型58

2.2.2自定義srv59

2.2.3自定義srv調用(C++)61

2.2.4自定義srv調用(Python)65

2.3參數服務器68

2.3.1理論模型68

2.3.2參數操作(C++)69

2.3.3參數操作(Python)73

2.4常用命令75

2.4.1rosnode75

2.4.2rostopic75

2.4.3rosmsg76

2.4.4rosservice77

2.4.5rossrv78

2.4.6rosparam78

2.5通信機制實操79

2.5.1話題發布80

2.5.2話題訂閱83

2.5.3服務調用86

2.5.4參數設置89

2.6通信機制比較91

2.7本章小結92

〖3〗ROS機器人理論與實踐目錄〖3〗第3章ROS通信機制進階93

3.1常用API93

3.1.1初始化93

3.1.2話題與服務相關對象94

3.1.3迴旋函數99

3.1.4時間99

3.1.5其他函數103

3.2ROS中的頭文件與源文件104

3.2.1自定義頭文件調用104

3.2.2自定義源文件調用106

3.3Python模塊導入107

3.4本章小結108

第4章ROS運行管理109

4.1ROS元功能包109

4.2ROS節點運行管理launch文件110

4.2.1<launch>標簽111

4.2.2<node>標簽111

4.2.3<include>標簽112

4.2.4<remap>標簽112

4.2.5<param>標簽112

4.2.6<rosparam>標簽113

4.2.7<group>標簽113

4.2.8<arg>標簽113

4.3ROS工作空間覆蓋114

4.4ROS節點重名115

4.4.1rosrun設置命名空間與名稱重映射116

4.4.2launch文件設置命名空間與名稱重映射117

4.4.3編碼設置命名空間與名稱重映射117

4.5ROS話題名稱設置117

4.5.1rosrun設置話題重映射118

4.5.2launch文件設置話題重映射119

4.5.3編碼設置話題名稱119

4.6ROS參數名稱設置122

4.6.1rosrun設置參數122

4.6.2launch文件設置參數123

4.6.3編碼設置參數123

4.7ROS分佈式通信125

4.8本章小結126

第5章ROS常用組件127

5.1TF坐標變換128

5.1.1坐標msg消息129

5.1.2靜態坐標變換130

5.1.3動態坐標變換136

5.1.4多坐標變換142

5.1.5坐標系關系查看145

5.1.6TF坐標變換實操146

5.1.7TF2與TF155

5.1.8小結156

5.2rosbag156

5.2.1在命令行使用rosbag157

5.2.2rosbag的編碼實現157

5.3rqt工具箱159

5.3.1rqt安裝、啟動與基本使用160

5.3.2rqt_graph160

5.3.3rqt_console160

5.3.4rqt_plot161

5.3.5rqt_bag162

5.4本章小結163

第6章ROS機器人系統模擬164

6.1機器人系統模擬概述164

6.1.1機器人系統模擬的概念164

6.1.2機器人系統模擬的作用165

6.1.3相關組件165

6.1.4機器人系統模擬綜合說明166

6.2URDF集成RViz基本流程167

6.2.1創建功能包並導入依賴包168

6.2.2編寫URDF文件168

6.2.3在launch文件中集成URDF與RViz168

6.2.4在RViz中顯示機器人模型168

6.2.5優化RViz啟動169

6.3URDF語法詳解170

6.3.1robot170

6.3.2link171

6.3.3joint172

6.3.4URDF練習176

6.3.5URDF常用工具180

6.4URDF優化——Xacro181

6.4.1Xacro快速體驗181

6.4.2Xacro語法詳解184

6.4.3Xacro完整使用流程示例184

6.4.4Xacro實操188

6.5在RViz中控制機器人模型運動190

6.6URDF集成Gazebo193

6.6.1URDF與Gazebo基本集成流程193

6.6.2URDF集成Gazebo相關設置195

6.6.3URDF集成Gazebo實操196

6.6.4Gazebo模擬環境搭建202

6.7URDF、Gazebo與RViz綜合應用205

6.7.1機器人運動控制以及里程計數據顯示205

6.7.2雷達數據模擬以及顯示208

6.7.3攝像頭數據模擬以及顯示211

6.7.4kinect數據模擬以及顯示212

6.8本章小結216

第7章模擬環境下的機器人導航218

7.1概述218

7.1.1導航模塊簡介219

7.1.2導航中的坐標系221

7.1.3導航條件說明221

7.2導航實現222

7.2.1SLAM建圖222

7.2.2地圖服務225

7.2.3定位227

7.2.4路徑規劃232

7.2.5導航與SLAM建圖238

7.3導航相關消息240

7.3.1地圖240

7.3.2里程計241

7.3.3坐標變換241

7.3.4定位242

7.3.5目標點與路徑規劃242

7.3.6激光雷達243

7.3.7相機244

7.3.8深度圖像信息轉激光雷達數據245

7.4本章小結249

第8章機器人平臺設計250

8.1概述252

8.2Arduino基礎252

8.2.1Arduino開發環境搭建253

8.2.2Arduino基本語法257

8.2.3Arduino基本語法展示之一261

8.2.4Arduino基本語法展示之二262

8.2.5Arduino基本語法展示之三263

8.3電機驅動264

8.3.1電機與電機驅動板264

8.3.2電機基本控制實驗267

8.3.3電機測速理論268

8.3.4電機測速實現270

8.3.5電機調速PID控制理論272

8.3.6電機調速PID控制實現274

8.4底盤設計277

8.4.1底盤實現概述277

8.4.2Arduino端入口279

8.4.3編碼器287

8.4.4Arduino端電機驅動292

8.4.5Arduino端PID控制294

8.5控制系統299

8.5.1樹莓派概述300

8.5.2分佈式框架302

8.5.3SSH遠程連接303

8.5.4安裝ros_arduino_bridge305

8.5.5在樹莓派上安裝ROS307

8.6傳感器313

8.6.1激光雷達簡介313

8.6.2雷達的使用314

8.6.3相機簡介316

8.6.4相機的使用316

8.6.5傳感器集成318

8.7本章小結320

第9章實體機器人導航321

9.1概述321

9.2VSCode遠程開發322

9.3導航實現324

9.3.1準備工作325

9.3.2SLAM建圖329

9.3.3地圖服務331

9.3.4定位332

9.3.5路徑規劃333

9.3.6導航與SLAM建圖336

9.4本章小結337

第10章ROS進階338

10.1action通信338

10.1.1自定義action文件340

10.1.2自定義action文件調用(C++)342

10.1.3自定義action文件調用(Python)346

10.2動態配置參數349

10.2.1動態配置參數客戶端350

10.2.2動態配置參數服務器端(C++)351

10.2.3動態配置參數服務器端(Python)354

10.3pluginlib355

10.4nodelet360

10.4.1使用演示361

10.4.2nodelet實現362

10.5本章小結364