跳到正文

Wiki

Jazzy版本

約 9 分鐘閱讀

本文由簡體中文內容確定性轉換,並受版本化術語表保護。

本教程面向 Ubuntu 24.04 和 ROS 2 Jazzy。通過完整例項、執行現象、執行順序和原始碼閱讀,學習硬體介面、控制器、物理模擬與裝置通訊。

1.學習路線

运行官方 RRBot
  → 自己创建双关节学习工程
  → GenericSystem 与自编模拟硬件
  → 接口、生命周期、控制周期与轨迹
  → Harmonic 机械臂与差速底盘
  → 自编控制器与管理器源码
  → Asio 虚拟串口与模拟下位机
  → 根据实际设备完成实物适配

工作區從建立目錄、功能包和檔案開始,隨著實踐逐步完善。前半部分不需要真實機器人;實物階段按具體裝置協議實現,不把模擬協議直接當作裝置驅動。

2.環境與寫法約定

普通使用者使用 Ubuntu Bash 終端,系統安裝使用 sudo,工作區構建和程式執行不提權。~ 是當前使用者主目錄。每個新終端 source 系統 Jazzy 和當前使用的一個工作區。

程式碼以 C++17 為基礎,自編回撥優先用 std::bind,官方原始碼保留原寫法。每個例子講清目標、檔案位置、必要完整程式碼、編譯執行、預期現象、關鍵函式及常見問題。

模擬統一採用 Gazebo Harmonic 與 gz_ros2_control。圖形桌面中可執行 RViz 和 Gazebo 視窗,無介面方式可通過介面、Topic、時鐘和世界位姿檢查後臺鏈路。

3.章節目錄

  1. 環境準備與原始碼地圖
  2. ros2_control整體工作過程
  3. 執行第一個RRBot例項
  4. 從零建立學習工作區
  5. URDF與控制介面
  6. YAML與spawner啟動過程
  7. 從零編寫模擬硬體外掛
  8. 狀態介面與命令介面原始碼
  9. 硬體與控制器生命週期
  10. read-update-write控制週期
  11. 狀態廣播與機器人顯示
  12. 命令轉發與控制模式
  13. Joint-Trajectory-Controller
  14. Harmonic機械臂物理模擬
  15. DiffBot與差速底盤控制
  16. Harmonic差速底盤模擬
  17. 多介面與硬體型別
  18. 從零編寫控制器
  19. 管理器與資源管理原始碼
  20. 即時迴圈與非同步通訊
  21. 虛擬序列埠與模擬下位機
  22. 單執行器實物適配
  23. 完整機器人與進階例項
  24. 綜合工程與系統排錯

4.三個目錄分別做什麼

路徑 用途
~/ros2_control_jazzy_demos_ws 固定提交的官方例項
~/ros2_control_jazzy_ws 自己逐步編寫的學習工程
~/ros2_control_jazzy_reference 框架與控制器原始碼閱讀

不要在同一終端疊加不相關的機器人工作區。同一 ROS domain 一次只執行一個本教程機器人,避免管理器和狀態釋出者相互干擾。

5.原始碼參考版本

倉庫 標籤或提交
ros2_control 4.48.1 / b7f1a5d420443c7a079f4c81e80d5e39759acf4c
ros2_controllers 4.42.1 / aacd842600a09d556b983ac3d53a0983e9ebcbb1
realtime_tools 3.13.0 / 459776c99f1f80606f7b9616496166ccaf207cf8
gz_ros2_control 1.2.20 / 89ca76ed20842377f879c711c756d444c5b7c20b
ros2_control_demos 34933be69fc76c33b5889f4d8993eb0f3a92e20f

這些版本用於對應具體原始碼與配置。Jazzy 的子包會隨維護更新;型別或引數不符時,先核對實際包版本、標頭檔案和共享庫路徑,再檢查程式碼。主線硬體外掛採用框架自動建立介面及 HardwareComponentInterfaceParams 的寫法。

6.各階段驗收

階段 應觀察到什麼
環境與官方例項 包可找到,模型與控制器可啟動
自建模擬硬體 介面建立正常,反饋向目標收斂
生命週期與切換 狀態明確,命令資源按預期借用與釋放
軌跡 Action 目標接受,按容差完成或給出可解釋結果
自編控制器 合法目標生效,非法目標被拒絕
Harmonic 機械臂 模型生成、時鐘前進、關節反饋變化
Harmonic 底盤 輪子與車體運動,里程計與世界位姿可對照
虛擬序列埠 命令、反饋與超時鏈路可觀察
實物適配 身份、單位、方向、模式、故障與停止逐項確認

RViz 是顯示工具,教學模型不是物理動力學,反饋里程計不是世界真值。示例輸出說明現象,實際數值會受引數、執行時長和排程影響。裝置專用實現需要實際硬體獨立驗收。

7.官方資料