Community程式設計與開發github.com

wzyn20051216/ros-robotics-skill

適用於 ROS 1 / ROS 2 機器人開發、遷移與聯合調試的技能。涵蓋 catkin/catkin_tools、colcon/ament、package.xml、CMakeLists.txt、launch、URDF/Xacro、RViz、TF、Navigation2、ros2_control、串口/CAN、MCU 與 micro-ROS 等常見工程場景。

ros-robotics-skill 是什麼?

此技能專為 ROS 1 和 ROS 2 機器人開發者設計,提供從工作區建立、套件建置到複雜系統除錯的全面指引。它涵蓋了建置系統、模型描述、導航控制、嵌入式開發、模擬、DDS/QoS 配置等廣泛主題,並包含一個結構化的參考文件庫,可按需載入。該技能根據 SKILL.md 文件中的「先做什麼」清單,引導使用者先識別工作區與進行一致性檢查,再針對具體問題(如新增套件、建置失敗、導航異常)套用對應的處理流程,同時強調遵循「必須遵守的原則」以避免常見反模式。它支援所有主流 ROS 開發平台,包括 Docker 容器化環境,並整合了 micro-ROS 與 MCU 協同開發的場景。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add wzyn20051216/ros-robotics-skill

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

ROS 機器人開發

何時使用

當使用者請求涉及以下任一主題時使用本技能:

  • catkin_ws、colcon_ws、src/CMakeLists.txt、package.xml、setup.py
  • ROS 1 / ROS 2 套件新建、移植、建置、測試、除錯
  • launch / launch.py、參數 YAML、URDF/Xacro、RViz、TF
  • topic / service / action / msg / srv / QoS
  • 底盤、IMU、LiDAR、相機、定位、SLAM、Navigation2、ros2_control
  • Gazebo / Ignition 模擬、感測器模擬、ros_gz_bridge
  • Docker 容器化 ROS 開發、docker-compose 多節點編排
  • Lifecycle 節點、rclcpp_components 元件化、行程內通訊
  • rosbag2 錄製回放、mcap、離線診斷
  • SLAM 建圖(Cartographer、SLAM Toolbox、ORB-SLAM)
  • DDS / QoS 配置、ROS_DOMAIN_ID、RMW 選擇、多機網路
  • 自訂 msg / srv / action 介面定義與生成
  • 多機器人系統、命名空間隔離、跨機通訊
  • MoveIt 2 運動規劃、SRDF、運動學插件
  • ROS 2 CI/CD(GitHub Actions、colcon test、ament_lint)
  • Foxglove Studio / PlotJuggler 數據可視化與離線分析
  • MCU / RTOS / UART / CAN / micro-ROS 協同開發

先做什麼

1. 先識別工作區

python scripts/detect_ros_workspace.py <workspace-path>

2. 再做一致性檢查

python scripts/check_ros_workspace_consistency.py <workspace-path>

3. 按問題載入最少必要文件

  • ROS 1:references/ros1-catkin.md
  • ROS 2:references/ros2-colcon.md
  • 混合 / 遷移:references/interop-and-migration.md
  • 模型 / TF:references/robot-description-and-tf.md
  • 導航:references/navigation2.md
  • 控制:references/ros2-control.md
  • 嵌入式:references/micro-ros-and-embedded.md
  • 模擬:references/gazebo-simulation.md
  • Lifecycle / 元件:references/lifecycle-and-components.md
  • DDS / QoS / 網路:references/dds-qos-networking.md
  • 錄製回放 / 診斷:references/rosbag-diagnostics.md
  • SLAM / 建圖:references/slam-mapping.md
  • Docker:references/docker-ros.md
  • 自訂介面:references/custom-interfaces.md
  • 多機器人:references/multi-robot.md
  • MoveIt 2:references/moveit2.md
  • CI/CD:references/ros2-cicd.md
  • 可視化:references/foxglove-visualization.md
  • 排障:references/debug-playbooks.md
  • 審查:references/review-checklist.md

必須遵守的原則

  • 先識別建置系統,再改程式碼
  • 先修 package.xml / CMakeLists.txt 一致性,再談重構
  • 先看 TF、時間戳、frame、單位,再怪演算法
  • 先證據鏈,再修改:建置輸出、topic、TF、參數、日誌必須可驗證
  • ROS 1 → ROS 2 先橋接或分層,不要一口氣推倒重來
  • MCU / micro-ROS 先判斷是否真的需要進入 ROS 圖

常見任務處理方式

新增或修復套件

  • 先判定套件類型:catkin、ament_cmake、ament_python
  • 先補依賴聲明,再補建置邏輯,再補安裝規則
  • 自訂 msg / srv / action 優先檢查生成順序和依賴閉環(詳見 references/custom-interfaces.md)

建置失敗

  • 先跑 rosdep
  • 再核對 package.xml 與建置腳本
  • 再看環境是否正確 source
  • 再看系統依賴、ABI、發行版相容

運作正常但機器人表現不對

  • 先看 launch、namespace、remap、參數
  • 再看 topic 名稱、頻率、時間戳、單位、frame_id
  • 再看 TF 是否單根、靜態 / 動態是否分清
  • 最後再懷疑演算法本身

Nav2 / ros2_control

  • Navigation2 優先排 /cmd_vel 鏈路、定位品質、控制頻率和底盤單位
  • ros2_control 優先排硬體介面類型、控制器 YAML、讀寫週期和 active 狀態

MCU / micro-ROS

  • 先判斷 Linux 側橋接節點是否足夠
  • 若 MCU 必須進入 ROS 2 圖,再考慮 micro-ROS
  • 嚴格檢查位元組序、校驗、超時、重連、時間源和斷線保護

反模式

  • 同一個套件混寫 catkin 與 ament
  • 只改 CMakeLists.txt 不改 package.xml
  • 忽略 TF、時間戳、單位、座標軸定義
  • 把驅動、協定、濾波、控制、診斷全塞進一個大節點
  • 遷移 ROS 1 → ROS 2 時只做 API 替換,不做系統驗證

輸出要求

使用本技能處理任務時,優先輸出:

  1. 當前工作區和套件類型判斷
  2. 關鍵依據與假設
  3. 修改點與原因
  4. 最小建置 / 測試 / 運行命令
  5. 風險點與回歸檢查點

相關技能