srdf

srdf

熱門

MoveIt2 SRDF 生成、驗證與規劃語意工作流程。適用於建立、編輯、重新產生、檢查或驗證 `.srdf` 檔案、`gen_srdf()` 來源、MoveIt 規劃群組、虛擬關節、被動關節、末端執行器、群組狀態、停用碰撞、URDF 連結的規劃語意,或 SRDF 交接供即時審查。請使用 URDF 技能處理機器人結構,使用 SDF 技能處理模擬器描述,使用 cad-viewer 技能處理渲染、即時審查連結與選用的 MoveIt2 控制。

8286星標
946分支
更新於 2026/7/11
SKILL.md
readonlyread-only
name
srdf
description

MoveIt2 SRDF 生成、驗證與規劃語意工作流程。適用於建立、編輯、重新產生、檢查或驗證 `.srdf` 檔案、`gen_srdf()` 來源、MoveIt 規劃群組、虛擬關節、被動關節、末端執行器、群組狀態、停用碰撞、URDF 連結的規劃語意,或 SRDF 交接供即時審查。請使用 URDF 技能處理機器人結構,使用 SDF 技能處理模擬器描述,使用 cad-viewer 技能處理渲染、即時審查連結與選用的 MoveIt2 控制。

SRDF

來源:維護於 earthtojake/text-to-cad
使用已安裝的本機技能檔案作為執行階段的真實來源;
儲存庫連結僅供來源追溯與版本審查。

此技能用於在現有有效 URDF 之上定義 MoveIt 語意機器人描述。SRDF 定義規劃語意;它不定義實體機器人結構。

SRDF 正確性是一個規劃語意問題。常見的失敗並非無效的 XML;而是看似合理的 SRDF 卻提供 MoveIt 錯誤的規劃群組、錯誤的工具連結、錯誤的預設狀態、不安全的停用碰撞矩陣,或錯誤的關節單位。由於語言模型在空間與運動學推理上較弱,請根據 URDF 拓撲、MoveIt Setup Assistant 輸出、取樣碰撞分析或明確的使用者資料來推導規劃群組、末端執行器、群組狀態與停用碰撞。請勿僅憑視覺外觀推斷。

格式邊界

  • URDF 負責實體機器人結構:連結、關節、幾何、慣性、限制、模仿關節、傳動裝置與機器人狀態發布。
  • SRDF 負責 MoveIt 語意:虛擬關節、被動關節、規劃群組、群組狀態、末端執行器與停用碰撞對。
  • SDF 負責模擬器/世界語意:物理、感測器、光源、插件、世界與模擬特定中繼資料。

請勿將幾何、慣性、關節原點、連結姿勢、網格參考、實體關節限制、傳動裝置或 ros2_control 介面放入 SRDF。

CAD Viewer 交接

完成建立或修改 .srdf 的 SRDF 工作後,若該技能已安裝,您必須將明確的檔案路徑交給 $cad-viewer$cad-viewer 必須啟動 CAD Viewer(若尚未執行),並回傳相關已建立或更新檔案的連結;僅在使用者需要互動式 IK 或路徑規劃審查時,才在交接中包含選用的 MoveIt2 控制。如果 $cad-viewer 不可用或啟動失敗,請回報此情況,而非默默省略交接。

必要工作流程

  1. 從有效的 URDF 開始。 先產生或修正 URDF。SRDF 產生器會根據 gen_srdf() 提供的來源相對 .urdf 路徑進行驗證。
  2. 識別規劃任務。 記錄目標是手臂 IK、夾爪控制、行動底座規劃、雙臂規劃、工具使用或本機煙霧測試。
  3. 建立或更新規劃記錄。 在撰寫 XML 之前使用 references/planning-ledger.md
  4. 審慎定義虛擬與被動關節。 當機器人模型需要時才使用,即使目前輕量執行階段尚未完整盤點它們。
  5. 根據 URDF 拓撲定義規劃群組。 對於串聯機械臂,若基底/末端形成實際路徑,優先使用鏈結群組。僅在審慎考量下才使用關節/連結/子群組定義。
  6. 在群組成員確定後定義末端執行器。 避免末端執行器群組與其父群組之間的重疊。記錄實際目標/TCP 連結。
  7. 以 URDF 原生單位定義群組狀態。 旋轉與連續關節值為弧度;稜柱關節值為公尺。請勿在 SRDF 中儲存度數。
  8. 根據證據產生停用碰撞。 使用鄰接性、MoveIt Setup Assistant 取樣或明確的使用者提供碰撞矩陣。請勿憑空編造廣泛的停用清單。
  9. 僅重新產生明確的 SRDF 目標。 產生器在寫入前會驗證產生的 SRDF 是否與連結的 URDF 一致。
  10. 在可用時執行 MoveIt 煙霧測試。 直接使用 MoveIt Setup Assistant 或專案的 MoveIt 啟動檔。
  11. 回報假設與跳過的檢查。 包括不完整的驗證、缺少 MoveIt 環境、手動推理的碰撞停用與推斷的目標連結。

指令

使用專案或工作區的 Python 環境執行。將範例中的 python 視為直譯器佔位符;若裸 python 不可用,請替換為 python3、專案虛擬環境直譯器或已設定的直譯器路徑。

從此技能目錄,SRDF 啟動器的形式為:

python scripts/srdf path/to/source.py
python scripts/srdf path/to/source.py -o path/to/robot.srdf
python scripts/srdf path/to/a.py=out/a.srdf path/to/b.py=out/b.srdf

相對來源目標與 CLI 輸出覆蓋會從目前工作目錄解析。當從此技能目錄外部執行時,請加上啟動器路徑前綴,以便目標檔案仍能從預期的工作區解析。

嚴格規則

  • SRDF 必須參考一個現有的有效 URDF。
  • SRDF 的機器人名稱必須與 URDF 的機器人名稱相符。
  • 群組狀態使用 URDF 原生單位:旋轉/連續關節為弧度,稜柱關節為公尺。
  • 停用碰撞對需要真實的原因與來源。
  • 末端執行器群組不應與其父規劃群組共用連結。
  • $cad-viewer 負責選用的本機 moveit2_server 指引,以進行互動式規劃審查。
  • 視覺渲染審查有幫助,但無法證明規劃正確性。

參考資料

  • 產生指令:references/gen-srdf.md
  • 產生器合約:references/generator-contract.md
  • SRDF 工作流程:references/srdf-workflow.md
  • 規劃記錄:references/planning-ledger.md
  • 驗證範圍:references/validation.md
  • 末端執行器:references/end-effectors.md
  • 停用碰撞:references/disabled-collisions.md
  • 執行階段注意事項與目前限制:references/implementation-notes.md

如需本機 MoveIt2 控制,請使用 $cad-viewer;在該技能中,請閱讀 references/moveit2-server.md