了解物理世界的AI: 搶先了解ROS2智慧機器人OS開發

了解物理世界的AI: 搶先了解ROS2智慧機器人OS開發

出版日期:
2025/09/23
9
1,080972
查詢門市庫存
https://youtu.be/oxfPu5VI6Ec

☆ROS 2 核心架構與通訊機制深度解析
☆ROS 2 節點、話題、服務、動作完整實作
☆DDS 通訊模型與QoS參數實務設定

內容簡介

https://youtu.be/oxfPu5VI6Ec

☆ROS 2 核心架構與通訊機制深度解析
☆ROS 2 節點、話題、服務、動作完整實作
☆DDS 通訊模型與QoS參數實務設定
☆tf 座標系統操作與動態轉換程式開發
☆Gazebo 模擬環境與 URDF/XACRO 模型建構
☆ROS 2 驅動層設計:從PWM到閉環控制實作
☆差速運動學正逆解與底盤驅動開發
☆相機標定、影像處理與 OpenCV 整合應用
☆深度學習視覺巡線與 YOLO 物件辨識部署
☆SLAM Toolbox、Cartographer、ORB 與 RTAB地圖建構實戰
☆Nav2 導航框架全域規劃、局部避障與定位技術實務
☆rqt、rosbag 與 RViz 資料視覺化工具詳解
☆ROS 2 分散式通訊與 SSH 網路整合部署
☆C++ 與 Python 雙語言範例完整提供

【內容簡介】
本書共分三部分、九章,完整涵蓋ROS 2在實際機器人開發中的應用。
第一部分為基礎原理篇(第1至第3章),說明ROS 2的核心概念與技術基礎,包括節點、話題、服務、動作、參數機制,並深入解析ROS 2所採用的DDS通訊架構與QoS設定方式,此外也介紹實務開發常用的工具,如ros2 launch、tf變換、RViz可視化、rosbag記錄與Gazebo模擬環境的整合方法。
第二部分為機構與驅動篇(第4至第6章),從機器人建模的URDF與XACRO語法開始,延伸到機構模擬與差速底盤的運動學正逆解與實作,並包含感測器資料處理、馬達PWM控制、編碼器讀值、PID閉環控制與ROS 2硬體驅動的整合流程。
第三部分為應用實作篇(第7至第9章),涵蓋影像處理與機器視覺模組建置,包含OpenCV影像分析、YOLO物件偵測與視覺巡線應用,並介紹常見SLAM建圖方案如SLAM Toolbox、Cartographer與RTAB-Map的使用流程與設定方式,最後完整說明導航框架Nav2的架構設計、路徑規劃、障礙物避讓與自主探索參數調校方法,協助開發者快速建立具備自我定位與導航能力的智慧型移動機器人。

展開看更多

產品目錄

◆第1部分 ROS 2 基礎原理

▍第1章 ROS:智慧型機器人的靈魂
1.1 智慧型機器人時代
1.2 ROS 發展歷程
1.2.1 ROS 的起源
1.2.2 ROS 的發展
1.2.3 ROS 的特點
1.3 ROS 2 與ROS 1
1.3.1 ROS 1 的局限性
1.3.2 全新的ROS 2
1.3.3 ROS 2 與ROS 1 的對比
1.4 ROS 2 安裝方法
1.4.1 Linux 是什麼
1.4.2 Ubuntu 是什麼
1.4.3 Ubuntu 作業系統安裝
1.4.4 ROS 2 系統安裝
1.5 ROS 2 命令列操作
1.5.1 Linux 中的命令列
1.5.2 海龜模擬實踐
1.5.3 ROS 2 中的命令列
1.6 本章小結

▍第2章 ROS 2 核心原理:建構機器人的基石
2.1 ROS 2 機器人開發流程
2.2 工作空間:機器人開發的大本營
2.2.1 工作空間是什麼
2.2.2 建立工作空間
2.2.3 編譯工作空間
2.2.4 設置環境變數
2.3 功能套件:機器人功能分類
2.3.1 功能套件是什麼
2.3.2 建立功能套件
2.3.3 功能套件的結構
2.3.4 編譯功能套件
2.4 節點:機器人的工作細胞
2.4.1 節點是什麼
2.4.2 節點程式設計方法(Python)
2.4.3 節點程式設計方法(C++)
2.4.4 節點的命令列操作
2.4.5 節點應用範例:物件辨識
2.5 話題:節點間傳遞資料的橋樑
2.5.1 話題是什麼
2.5.2 話題通訊模型
2.5.3 話題通訊程式設計範例
2.5.4 話題發行者程式設計方法(Python)
2.5.5 話題訂閱者程式設計方法(Python)
2.5.6 話題發行者程式設計方法(C++)
2.5.7 話題訂閱者程式設計方法(C++)
2.5.8 話題的命令列操作
2.5.9 話題應用範例:物件辨識(週期式)
2.6 服務:節點間的你問我答
2.6.1 服務是什麼
2.6.2 服務通訊模型
2.6.3 服務通訊程式設計範例
2.6.4 使用者端程式設計方法(Python)
2.6.5 服務端程式設計方法(Python)
2.6.6 使用者端程式設計方法(C++)
2.6.7 服務端程式設計方法(C++)
2.6.8 服務的命令列操作
2.6.9 服務應用範例:物件辨識(請求式)
2.7 通訊介面:資料傳遞的標準結構
2.7.1 通訊介面是什麼
2.7.2 通訊介面的定義方法
2.7.3 通訊介面的命令列操作
2.7.4 服務介面應用範例:請求物件辨識的座標
2.7.5 話題介面應用範例:週期性發佈物件辨識的座標
2.8 動作:完整行為的流程管理
2.8.1 動作是什麼
2.8.2 動作通訊模型
2.8.3 動作通訊程式設計範例
2.8.4 動作介面的定義方法
2.8.5 服務端程式設計方法(Python)
2.8.6 使用者端程式設計方法(Python)
2.8.7 使用者端程式設計方法(C++)
2.8.8 服務端程式設計方法(C++)
2.8.9 動作的命令列操作
2.9 參數:機器人系統的全域字典
2.9.1 參數是什麼
2.9.2 參數通訊模型
2.9.3 參數的命令列操作
2.9.4 參數程式設計方法(Python)
2.9.5 參數程式設計方法(C++)
2.9.6 參數應用範例:設置物件辨識的設定值
2.10 資料分發服務(DDS):機器人的神經網路
2.10.1 DDS 是什麼
2.10.2 DDS 通訊模型
2.10.3 品質服務策略
2.10.4 命令列中配置DDS 的QoS
2.10.5 DDS 程式設計範例
2.11 分散式通訊
2.11.1 分散式通訊是什麼
2.11.2 SSH 遠端網路連接
2.11.3 分散式資料傳輸
2.11.4 分散式網路分組
2.11.5 海龜分散式通訊範例
2.12 本章小結

▍第3章 ROS 2 常用工具:讓機器人開發更便捷
3.1 Launch:多節點啟動與配置指令稿
3.1.1 多節點啟動方法
3.1.2 命令列參數配置
3.1.3 資源重映射
3.1.4 ROS 參數設置
3.1.5 Launch 開機檔案巢狀結構包含
3.2 tf:機器人座標系管理系統
3.2.1 機器人中的座標系
3.2.2 tf 命令列操作
3.2.3 靜態tf 廣播(Python)
3.2.4 靜態tf 廣播(C++)
3.2.5 動態tf 廣播(Python)
3.2.6 動態tf 廣播(C++)
3.2.7 tf 監聽(Python)
3.2.8 tf 監聽(C++)
3.2.9 tf 綜合應用範例:海龜跟隨(Python)
3.2.10 tf 綜合應用範例:海龜跟隨(C++)
3.3 Gazebo:機器人三維物理模擬平臺
3.3.1 Gazebo 介紹
3.3.2 機器人模擬範例
3.3.3 感測器模擬範例
3.4 RViz:資料視覺化平臺
3.4.1 RViz 介紹
3.4.2 資料視覺化操作流程
3.4.3 應用範例一:tf 資料視覺化
3.4.4 應用範例二:圖像資料視覺化
3.4.5 Gazebo 與RViz 的關係
3.5 rosbag:資料記錄與重播
3.5.1 記錄資料
3.5.2 重播資料
3.6 rqt:模組化視覺化工具箱
3.6.1 rqt 介紹
3.6.2 日誌顯示
3.6.3 影像顯示
3.6.4 發佈話題/ 服務資料
3.6.5 繪製資料曲線
3.6.6 資料封包管理
3.6.7 節點視覺化
3.7 ROS 2 開發環境配置
3.7.1 版本管理軟體git
3.7.2 整合式開發環境VSCode
3.8 本章小結

◆第2部分 ROS 2 機器人設計

▍第4章 ROS 2 機器人模擬:零成本玩轉機器人
4.1 機器人的定義與組成
4.2 URDF 機器人建模
4.2.1 連桿的描述
4.2.2 關節的描述
4.2.3 完整機器人模型
4.3 建立機器人URDF 模型
4.3.1 機器人模型功能套件
4.3.2 機器人模型視覺化
4.3.3 機器人模型解析
4.4 XACRO 機器人模型最佳化
4.4.1 XACRO 檔案常見語法
4.4.2 機器人模型最佳化
4.4.3 機器人模型視覺化
4.5 完善機器人模擬模型
4.5.1 完善物理參數
4.5.2 增加控制器外掛程式
4.6 Gazebo 機器人模擬
4.6.1 在Gazebo 中載入機器人模型
4.6.2 機器人運動控制模擬
4.6.3 RGB 相機模擬與視覺化
4.6.4 RGBD 相機模擬與視覺化
4.6.5 雷射雷達模擬與視覺化
4.7 本章小結

▍第5章 ROS 2 機器人建構:從模擬到實物
5.1 機器人從模擬到實物
5.1.1 案例剖析
5.1.2 機器人設計
5.1.3 軟體架構設計
5.1.4 電腦端開發環境配置
5.1.5 機器人模擬測試
5.2 驅動系統設計:讓機器人動得了
5.2.1 馬達驅動原理:從PWM 到H 橋
5.2.2 馬達正反轉控製程式設計
5.3 底盤運動控制:讓機器人動得穩
5.3.1 馬達編碼器測速原理
5.3.2 編碼器測速程式設計
5.3.3 馬達閉環控制方法
5.3.4 馬達閉環控製程式設計
5.4 運動學正逆解:讓機器人動得準
5.4.1 常見機器人運動學模型
5.4.2 差速運動學原理
5.4.3 差速運動學逆解:計算兩個輪子的轉速
5.4.4 差速運動學正解:計算機器人整體的速度
5.5 運動控制器中還有什麼
5.5.1 電源管理:一個輸入多種輸出
5.5.2 IMU:測量機器人的姿態變化
5.5.3 人機互動:底層狀態清晰明瞭
5.6 機器人控制系統:從「肌肉」到「大腦」
5.6.1 控制系統的計算平臺
5.6.2 控制系統的燒錄與配置
5.7 本章小結

▍第6章 ROS 2 控制與感知:讓機器人動得了、看得見
6.1 機器人通訊協定開發
6.1.1 通訊協定設計
6.1.2 通訊協定範例解析
6.1.3 運動控制器端協定開發(下位機)
6.1.4 應用處理器端協定開發(上位機)
6.2 機器人ROS 2 底盤驅動開發
6.2.1 機器人ROS 2 底盤驅動
6.2.2 速度控制話題的訂閱
6.2.3 里程計話題與tf 的維護
6.2.4 機器人狀態的動態監控
6.3 機器人運動程式設計與視覺化
6.3.1 ROS 2 速度控制訊息定義
6.3.2 運動程式設計與視覺化
6.4 相機驅動與圖像資料
6.4.1 常用相機類型
6.4.2 相機驅動與視覺化
6.4.3 ROS 2 影像訊息定義
6.4.4 三維相機驅動與視覺化
6.4.5 ROS 2 點雲訊息定義
6.5 雷射雷達驅動與視覺化
6.5.1 常見雷射雷達類型
6.5.2 ROS 2 雷達訊息定義
6.5.3 雷射雷達驅動與資料視覺化
6.6 IMU 驅動與資料視覺化
6.6.1 ROS 2 IMU 訊息定義
6.6.2 IMU 驅動與視覺化
6.7 本章小結

◆第3部分 ROS 2 機器人應用

▍第7章 ROS 2 視覺應用:讓機器人看懂世界
7.1 機器視覺原理簡介
7.2 ROS 2 相機標定
7.2.1 安裝相機標定功能套件
7.2.2 執行相機標定節點
7.2.3 相機標定流程
7.2.4 相機標定檔案的使用
7.2.5 二元相機標定
7.3 OpenCV 影像處理
7.3.1 安裝OpenCV
7.3.2 在ROS 2 中使用OpenCV
7.4 視覺應用一:視覺巡線
7.4.1 基本原理與實現框架
7.4.2 機器人視覺巡線模擬
7.4.3 真實機器人視覺巡線
7.5 視覺應用二:QR Code 辨識
7.5.1 QR Code 掃描函式庫——Zbar
7.5.2 相機辨識QR Code
7.5.3 真實機器人相機辨識QR Code
7.5.4 真實機器人QR Code 跟隨
7.6 機器學習應用一:深度學習視覺巡線
7.6.1 基本原理與實現框架
7.6.2 深度學習視覺巡線應用
7.6.3 資料獲取與模型訓練
7.6.4 模型效果評估測試
7.6.5 在機器人中部署模型
7.7 機器學習應用二:YOLO 物件辨識
7.7.1 基本原理與實現框架
7.7.2 YOLO 物件辨識部署
7.7.3 資料獲取與模型訓練
7.7.4 機器人物件辨識與跟隨
7.8 本章小結

▍第8章 ROS 2 地圖建構:讓機器人理解環境
8.1 SLAM 地圖建構原理
8.1.1 SLAM 是什麼
8.1.2 SLAM 基本原理
8.1.3 SLAM 後端最佳化
8.2 SLAM Toolbox 地圖建構
8.2.1 演算法原理介紹
8.2.2 安裝與配置方法
8.2.3 模擬環境中的SLAM Toolbox 地圖建構
8.2.4 真實機器人SLAM Toolbox 地圖建構
8.3 Cartographer:二維地圖建構
8.3.1 演算法原理介紹
8.3.2 安裝與配置方法
8.3.3 模擬環境中的Cartographer 地圖建構
8.3.4 真實機器人Cartographer 地圖建構
8.4 ORB:視覺地圖建構
8.4.1 演算法原理介紹
8.4.2 安裝與配置方法
8.4.3 真實機器人ORB 地圖建構
8.5 RTAB:三維地圖建構
8.5.1 演算法原理介紹
8.5.2 安裝與配置方法
8.5.3 模擬環境中的RTAB 地圖建構
8.5.4 真實機器人RTAB 地圖建構
8.6 本章小結

▍第9章 ROS 2 自主導航:讓機器人運動自由
9.1 機器人自主導航原理
9.2 Nav2 自主導航框架
9.2.1 系統框架
9.2.2 全域導航
9.2.3 局部導航
9.2.4 定位功能
9.3 Nav2 安裝與體驗
9.3.1 Nav2 安裝方法
9.3.2 Nav2 案例體驗
9.4 機器人自主導航模擬
9.4.1 Nav2 參數配置
9.4.2 Launch 開機檔案配置
9.4.3 機器人自主導航模擬
9.5 機器人自主導航實踐
9.5.1 導航地圖配置
9.5.2 Nav2 參數與Launch 開機檔案配置
9.5.3 機器人自主導航實踐
9.6 機器人自主導航程式設計
9.6.1 功能執行
9.6.2 程式設計方法(C++)
9.6.3 程式設計方法(Python)
9.7 機器人自主探索應用
9.7.1 Nav2+SLAM Toolbox 自主探索應用
9.7.2 Nav2+Cartographer 自主探索應用
9.8 本章小結

作者介紹

胡春旭
ROS機器人社區「古月居」創始人,D-Robotics開發者生態負責人。專注於機器人操作系統及人工智慧相關技術的推廣與應用,撰寫了《ROS機器人開發實踐》、《移動機器人原理與應用(基於ROS作業系統)》等多本暢銷技術書。主導了基於RDK機器人開發者套件的全新機器人開發範式的研發工作,任教於多所高校及機器人/人工智慧教育平臺。曾獲2019 ROS全球十大影響力人物、ROS佈道師等榮譽稱號。

李喬龍
ROS機器人社區「古月居」負責人,負責古月居社區生態的推廣、建設和產品研發。主導設計了古月居Origin系列機器人套件。曾負責全國大學生智慧汽車競賽地平線賽項策劃與推廣,學生時期獲得多項全國機器人獎項。目前專注於機器人技術和人工智慧技術的推廣與應用。

規格

誠品貨碼 / 2682995462001
ISBN13 / 9786267757307
ISBN10 /
EAN貨碼 / 9786267757307
頁數 / 632
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 17X23X3.1CM
級別 / N:無

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送