ROS 機器人編程零基礎入門與實踐

劉伏志//朱有鵬著

  • 出版商: 機械工業
  • 出版日期: 2022-12-21
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 247
  • 裝訂: 平裝
  • ISBN: 7111716914
  • ISBN-13: 9787111716914
  • 相關分類: 機器人製作 Robots
  • 立即出貨

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

商品描述

本書是針對ROS(機器人操作系統)初學者的入門教程,內容聚焦於ROS的使用和開發。
以Ubuntu操作系統安裝和使用為起點,依次介紹了ROS安裝、實體/仿真機器人搭建、
機器視覺、SLAM建圖、導航、多機器人系統等知識,*終引導讀者獨立完成機器人應用開發的任務。
本書中的實驗環境和代碼基於ROS的Noetic版本。
本書為讀者提供了全部案例源代碼和學習資料,讀者可以直接掃描二維碼下載。
本書適合ROS用戶及其編程開發人員使用,也可以作為高等學校或培訓學校相關專業的參考教材。

目錄大綱

前言
二維碼清單
第1章學習ROS必備的Linux知識1
1.1 Linux操作系統介紹1
1.1.1 Linux的誕生1
1.1.2 Linux、UNIX、系統、內核和發行版2
1.2 Ubuntu環境搭建3
1.2.1 VMWare的安裝使用3
1.2.2 安裝Ubuntu系統5
1.3 Ubuntu桌面使用10
1.3.1 Ubuntu的桌面佈局10
1.3.2 安裝VMware Tools工具11
1.4 shell和常用命令12
1.4.1 shell、終端和命令12
1.4.2 常用shell命令14
1.5 Ubuntu安裝和卸載軟件17
1.5.1 使用國內軟件源提升下載速度17
1.5.2 通過apt管理軟件19
1.5.3 通過應用商店安裝卸載軟件19
1.6 vim編輯器使用21
1.7 Linux文件系統22
1.7.1 Linux文件系統結構22
1.7.2 目錄內容存放規則24
1.8 root用戶和權限管理24
1.8.1 Linux中的權限概念25
1.8.2 文件/目錄權限查看和修改25
1.8.3 啟用root用戶26
1.9 嵌入式單板計算機和Linux27
第2章認識ROS30
2.1 ROS是什麼30
2.1.1 ROS從何而來30
2.1.2 為什麼要使用ROS31
2.2 如何安裝ROS32
2.3 ROS通信結構37
2.3.1 節點和主節點38
2.3.2 話題(Topic)39
2.3.3 服務(Service)40
2.3.4 動作(Action)41
2.3.5 參數服務器42
2.4 ROS常用shell命令43
2.5 ROS常用圖形工具50
2.5.1 rqt工具箱51
2.5.2 rviz52
2.6 ROS坐標系和tf變換53
2.6.1 ROS中的坐標定義53
2.6.2 ROS中的tf變換54
2.7 ROS工作空間56
2.7.1 ROS工作空間是什麼57
2.7.2 創建並使用一個工作空間58
第3章ROS編程基礎60
3.1 ROS開發環境搭建60
3.1.1 Ubuntu下安裝VSCode60
3.1.2 VSCode常用插件安裝61
3.2 新建一個ROS功能包62
3.3 編寫一對發布訂閱節點(C )64
3.3.1 編寫發布節點(C )64
3.3.2 編寫訂閱節點(C )66
3.4 編寫一對發布訂閱節點(Python)67
3.4.1 編寫發布節點(Python)67
3.4.2 編寫訂閱節點(Python)68
3.5 編寫launch文件用於啟動節點70
3.5.1 通過launch文件啟動C 編譯的節點70
3.5.2 通過launch文件啟動Python節點71
3.5.3 在launch文件中調用launch文件72
3.6 創建新消息類型並編寫節點發布消息73
3.6.1 編寫自定義消息74
3.6.2 驗證消息正常產生75
3.6.3 編寫節點發布自定義消息類型(C )76
3.6.4 編寫節點訂閱自定義消息類型(Python)76
3.7 創建一個服務類型並編寫服務端/客戶端節點77
3.7.1 定義並編寫一個自定義服務77
3.7.2 通過rossrv驗證服務產生78
3.7.3 編寫自定義服務的服務端(C )79
3.7.4 編寫自定義服務的服務端(Python)80
3.7.5 編寫自定義服務的客戶端(C )80
3.7.6 編寫自定義服務的客戶端(Python)81
3.8 tf變換編程入門82
3.8.1 通過static_transform_publisher發布靜態坐標變換82
3.8.2 編寫節點實現動態tf變換(Python)84
3.8.3 編寫節點實現動態tf變換(C )85
第4章ROS機器人平台搭建87
4.1 機器人系統的典型構成87
4.2 幾種常見的機器人底盤運動學模型88
4.2.1 差速轉向結構89
4.2.2 阿克曼轉向結構90
4.2.3 全向運動結構92
4.3 驅動和電池系統95
4.3.1 驅動系統電動機95
4.3.2 電池系統97
4.4 控制系統底盤控制器98
4.5 控制系統車載計算機100
4.5.1 車載計算機需要實現的功能100
4.5.2 車載計算機的選擇100
4.5.3 將車載計算機和底盤控制器連接起來102
4.6 機器人上常用的傳感器105
4.6.1 獲取機器人運動狀態編碼器和IMU105
4.6.2 讓機器人看見世界攝像頭107
4.6.3 讓機器人感知世界的深淺立體相機108
4.6.4 讓機器人具備全向感知能力激光雷達109
4.7 遠程連接車載計算機111
4.7.1 路由模式和WiFi模式111
4.7.2 SSH遠程登錄112
4.7.3 使用遠程桌面連接機器人113
4.8 底盤啟動和控制115
4.8.1 啟動底盤驅動節點115
4.8.2 控制機器人運動116
4.8.3 向launch文件中傳入變量118
4.9 機器人底盤ROS節點源碼解析119
4.9.1 base_control功能包文件結構120
4.9.2 base_control.launch文件解讀120
4.9.3 base_control.py源碼解讀122
4.9.4 bash腳本與udev規則131
4.10 ROS分佈式通信配置132
4.10.1 分佈式通信配置條件檢查133
4.10.2 分佈式通信配置和測試驗證135
第5章機器人仿真環境搭建137
5.1 為什麼要有機器人仿真環境137
5.1.1 機器人仿真主要解決的問題137
5.1.2 仿真環境中的機器人和真實機器人的聯繫138
5.2 在Stage仿真器中創建機器人139
5.2.1 Stage仿真器簡介139
5.2.2 創建Stage仿真器地圖和機器人模型140
5.2.3 控制Stage仿真器中的機器人143
5.3 在Gazebo仿真器中創建機器人144
5.3.1 Gazebo仿真器簡介144
5.3.2 Gazebo仿真器中的環境模型147
5.4 機器人模型和URDF文件150
5.4.1 URDF文件150
5.4.2 xacro文件和Gazebo插件155
5.4.3 通過Solidworks 創建機器人模型157
第6章ROS中的OpenCV和機器視覺159
6.1 攝像頭的驅動和圖像話題訂閱159
6.1.1 啟動攝像頭159
6.1.2 訂閱攝像頭圖像並顯示161
6.1.3 攝像