srdf

srdf

热门

MoveIt2 SRDF生成、验证和规划语义工作流。用于创建、编辑、重新生成、检查或验证`.srdf`文件、`gen_srdf()`源、MoveIt规划组、虚拟关节、被动关节、末端执行器、组状态、禁用碰撞、URDF关联的规划语义,或用于实时审查的SRDF交接。使用URDF技能处理机器人结构,使用SDF技能处理仿真器描述,使用cad-viewer技能进行渲染、实时审查链接和可选的MoveIt2控制。

8286Star
946Fork
更新于 2026/7/11
SKILL.md
readonly只读
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;而是一个看似合理但给MoveIt提供了错误规划组、错误工具链接、错误默认状态、不安全禁用碰撞矩阵或错误关节单位的SRDF。由于语言模型在空间和运动学推理方面较弱,请从URDF拓扑、MoveIt Setup Assistant输出、采样碰撞分析或明确的用户数据中推导规划组、末端执行器、组状态和禁用碰撞。不要仅凭视觉外观推断。

格式边界

  • URDF 拥有物理机器人结构:连杆、关节、几何、惯性、极限、模仿关节、传动装置和机器人状态发布。
  • SRDF 拥有MoveIt语义:虚拟关节、被动关节、规划组、组状态、末端执行器和禁用碰撞对。
  • SDF 拥有仿真器/世界语义:物理、传感器、灯光、插件、世界和仿真特定元数据。

不要在SRDF中放置几何、惯性、关节原点、连杆位姿、网格引用、物理关节极限、传动装置或ros2_control接口。

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