自主移動機器人涉及電子學、控制科學、電腦科學、人工智慧等眾多學科。本書引導讀者動手搭建軟硬件開發平臺,並通過實現機器人自主行走等任務來驅動技術學習和理論驗證,實踐表明這是一種不錯的入門方法。本書以自主搭建硬體平台和ROS為載體,系統介紹了機器人感知、控制、建圖、路徑規劃與導航的實現方法,手把手帶領讀者用程式設計實現一個送餐機器人的基本功能,讓讀者瞭解和再現機器人開發的全過程。此
外,本書還設計了大量的實驗供讀者動手實戰,且所有實驗的原始程式碼均可通過開源網站供讀者自行下載。在開源網站中,附贈移動機器人硬體結構設計文檔和底層驅動源代碼,供讀者作為自行設計機器人的參考資料。本書的硬體平臺同樣適合ROS2。完成本書的學習後,讀者可嘗試閱讀ROS2官方文檔或ROS2教材複現書中實驗。限於篇幅,本書沒有涉及ROS2原始程式碼。但在本書配套的開源網站中同時提供ROS和ROS2兩個版本的實驗原始程式碼,可供讀者下載對照學習。
本書重點面向高等院校師生,特別關注移動機器人技術的實際開發過程,可作為相關專業的入門教材,也可作為擬從事移動機器人研究和應用的技術人員的參考書。
第1章 認識移動機器人
1.1 移動機器人概述
1.1.1 移動機器人概念
1.1.2 移動機器人分類
1.2 移動機器人發展歷史
1.3 移動機器人應用領域
1.4 需要的前置知識及學習參考資源
本章小結
第2章 機器人作業系統(ROS)
2.1 ROS概述
2.2 ROS安裝和測試
2.2.1 Ubuntu18.04虛擬機器安裝步驟
2.2.2 ROS安裝和測試步驟
2.3 個ROS程式——hello_world
2.3.1 安裝開發工具
2.3.2 創建 個ROS程式hello_world
2.3.3 對Catkin的總結
2.4 ROS工具包
2.4.1 Qt工具箱
2.4.2 RViz
2.4.3 Gazebo
2.4.4 檔案系統工具
2.5 ROS通信機制
2.5.1 節點(Node)
2.5.2 節點管理器Master
2.5.3 Node與Master相關命令
2.5.4 ROS通信方式
2.5.5 Topic話題模式
2.5.6 Topic話題通信實例
2.5.7 Topic自訂消息
2.5.8 Service服務模式
2.5.9 Service服務通信實例
2.5.10 Service服務消息的定義與使用
2.5.11 Parameter Service
2.5.12 Parameter Service的使用
2.5.13 Actionlib
2.5.14 Action的定義與使用
2.6 ROS分散式多機通信
2.6.1 設置IP位址
2.6.2 設置ROS_MASTER_URI
2.6.3 多機通信測試
2.7 座標變換(TF)與統一機器人描述格式(URDF)
2.7.1 TF簡介
2.7.2 TF實例
2.7.3 TF資料類型
2.7.4 URDF基礎
2.8 移動機器人ROS模擬實戰
2.8.1 RViz模擬實驗——littlecar
2.8.2 在RViz上用鍵盤控制小車移動