计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
urdf【效率与协作】URDF 机器人描述创作和验证。在创建、编辑、检查、验证或调试“.urdf”文件、机器人链接、关节、限制、惯性、视觉/碰撞几何、网格参考、框架约定或机器人描述工件时使用。将 SRDF 技能用于 MoveIt2 语义组和 IK/路径规划语义;使用 cad-viewer 技能进行本地 MoveIt2 服务器控件;使用 CAD 技能进行 STEP/STL/3MF/DXF/GLB 输出。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Provenance: maintained in earthtojake/text-to-cad. Use the installed local skill files as the runtime source of truth; the repository link is only for provenance and release review.
Use this skill for URDF robot-description outputs. Treat URDF work as constrained kinematic modeling, not just XML writing. The main correctness risks are frame placement, joint-axis semantics, unit consistency, mesh scale, and inertial data.
.urdf file is the source of truth. Author and edit URDF XML directly; do not build a Python generation pipeline for it. There is no gen_urdf() contract..urdf file. See references/design-ledger.md.references/frame-semantics.md.references/inertials.md.inertial, visual, and collision separately when the target consumer needs them. Frame-only links may intentionally omit mass and geometry..urdf with scripts/validate before reporting completion. See references/validation.md..urdf remains canonical.After completing URDF work that creates or modifies a .urdf, you must ALWAYS hand the explicit file path to $cad-viewer when that skill is installed. $cad-viewer must start CAD Viewer if it is not already running and return link(s) to the relevant created or updated file(s); if $cad-viewer is unavailable or startup fails, report that instead of silently omitting the handoff.
.urdf file and its consumers: RViz, robot_state_publisher, Gazebo/Ignition, MoveIt, a real robot driver, or another simulator..urdf itself.references/meshes.md.references/authoring-contract.md for structure, ordering, and naming.references/inertials.md.scripts/validate; fix findings and re-validate until clean.references/validation.md: external tools when available (check_urdf), then a viewer review sweeping every joint.Run with the Python environment for the project or workspace. Treat python in examples as an interpreter placeholder; if bare python is unavailable, substitute python3, a project virtualenv interpreter, or the configured interpreter path. The validator uses only the Python standard library.
From this skill directory, the validator shape is:
python scripts/validate path/to/robot.urdf
python scripts/validate path/to/a.urdf path/to/b.urdf
python scripts/validate path/to/robot.urdf --strict
python scripts/validate path/to/robot.urdf --format json
python scripts/validate path/to/robot.urdf --package robot_description=/path/to/pkg
The validator collects all findings in one pass (severity, code, XML path) across XML structure, tree topology, joint semantics (limits, mimic, dynamics), geometry, mesh references, materials, inertial physics, and misspelled elements, and prints a per-file summary. --strict treats warnings as failures; --format json emits a machine-readable findings document; --package NAME=PATH resolves package:// mesh URIs. It exits nonzero if any target fails. Relative targets resolve from the current working directory; when running from outside this skill directory, prefix the launcher path so target files still resolve from the intended workspace.
Validation is a guardrail, not spatial proof: a URDF can pass every structural check while placing a joint in the wrong spot. The ledger and viewer sweep exist for that reason.
scripts/snapshot renders the robot to a PNG still or an orbit GIF, using the same shared
CLI and headless browser runtime every rendering skill uses — so a snapshot matches what
the CAD Viewer shows.
python scripts/snapshot --input path/to/robot.urdf --output review.png
python scripts/snapshot --input path/to/robot.urdf --output turntable.gif --mode orbit
It accepts .urdf only. Pose the robot with the job field "jointValues" (joint name to
degrees, defaulting to the rest pose) rather than --params, which is STEP-only; robots
are authored in metres and are framed on the robot scene scale automatically.
Theme settings live under one --theme, mirroring the viewer's Theme tab. The default
theme is snapshot — Workbench Light with the ground grid, origin axis and shadows
removed, because in a still image those read as geometry. There is no --display: display
settings (mode, clip, exploded, edges) are CAD topology settings, and a robot carries none.
Link meshes are resolved relative to the description, so they must be present: an
unhydrated Git LFS pointer fails as "No link mesh loaded for robot". Run
git lfs checkout <mesh dir> first.
Use python scripts/snapshot --help for the complete current command interface.
references/authoring-contract.mdreferences/design-ledger.mdreferences/frame-semantics.mdreferences/meshes.mdreferences/inertials.mdreferences/urdf-workflow.mdreferences/validation.md