
SRDF Generation
FreeStreamline your MoveIt2 SRDF workflows with precision.
Free · Opens the source repo
What SRDF Generation does
The SRDF Generation skill is designed to facilitate the creation, editing, and validation of Semantic Robot Description Format (SRDF) files for use with MoveIt2. This skill is particularly useful for developers and designers working with robotic systems that require accurate planning semantics on top of a valid Unified Robot Description Format (URDF). SRDF files define various planning semantics, such as virtual joints, passive joints, planning groups, and disabled collision pairs, which are crucial for effective robot motion planning.
The skill operates by leveraging existing URDF files and ensuring that the SRDF adheres to the necessary planning semantics. It emphasizes the importance of deriving planning groups and other parameters from the URDF topology and user data, rather than relying on visual appearance. This approach helps to mitigate common issues related to incorrect planning configurations, such as improper tool links or unsafe collision matrices. Users can run the SRDF generator, validate the output against the linked URDF, and ensure that all parameters are correctly defined according to the robot's specifications.
Additionally, the SRDF skill integrates with the CAD Viewer for visual rendering and interactive planning review. This integration allows users to hand off the generated SRDF files to the CAD Viewer for further inspection and validation, ensuring that the robot's planning semantics are not only theoretically correct but also practically applicable in real-world scenarios. The workflow is structured to guide users through each step, from starting with a valid URDF to defining planning tasks and generating the final SRDF output.
This skill is ideal for roboticists and developers who need to ensure that their robot's planning semantics are accurately defined and validated. By using this skill, users can streamline their workflow, reduce errors in SRDF file generation, and enhance the overall performance of their robotic systems.
When to use it
Use this skill when you need to create or modify SRDF files for MoveIt2, especially when working with existing URDF files.
When not to use it
This skill is not suitable for generating URDF files or for cases where SRDF validation is not required.
What you can build with it
Creating a New SRDF
Use this skill to generate a new SRDF file from an existing URDF, ensuring all planning semantics are correctly defined.
Validating SRDF Files
After modifying an SRDF file, run the validation process to check for errors against the associated URDF.
Integrating with CAD Viewer
Hand off generated SRDF files to CAD Viewer for visual inspection and interactive planning review.
How to install SRDF Generation
View source1. Install with the skills CLI
npx skills add earthtojake/text-to-cad/srdf --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by earthtojakeSRDF
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 MoveIt semantic robot descriptions on top of an existing valid URDF. SRDF defines planning semantics; it does not define physical robot structure.
SRDF correctness is a planning semantics problem. The common failure is not invalid XML; it is a plausible SRDF that gives MoveIt the wrong planning group, wrong tool link, wrong default state, unsafe disabled-collision matrix, or wrong joint units. Because language models are weak at spatial and kinematic reasoning, derive planning groups, end effectors, group states, and disabled collisions from the URDF topology, MoveIt Setup Assistant output, sampled collision analysis, or explicit user data. Do not infer them from visual appearance alone.
Format boundary
- URDF owns physical robot structure: links, joints, geometry, inertials, limits, mimic joints, transmissions, and robot-state publishing.
- SRDF owns MoveIt semantics: virtual joints, passive joints, planning groups, group states, end effectors, and disabled collision pairs.
- SDF owns simulator/world semantics: physics, sensors, lights, plugins, worlds, and simulation-specific metadata.
Do not place geometry, inertials, joint origins, link poses, mesh references, physical joint limits, transmissions, or ros2_control interfaces in SRDF.
CAD Viewer Handoff
After completing SRDF work that creates or modifies a .srdf, 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); include optional MoveIt2 controls in the handoff only when the user needs interactive IK or path-planning review. If $cad-viewer is unavailable or startup fails, report that instead of silently omitting the handoff.
Required workflow
- Start from a valid URDF. Generate or fix the URDF first. The SRDF generator validates against the source-relative
.urdfpath supplied bygen_srdf(). - Identify the planning task. Record whether the goal is arm IK, gripper control, mobile base planning, dual-arm planning, tool use, or local smoke testing.
- Create or update the planning ledger. Use
references/planning-ledger.mdbefore writing XML. - Define virtual and passive joints deliberately. Use them when needed by the robot model, even though the current lightweight runtime does not fully inventory them yet.
- Define planning groups from URDF topology. Prefer chain groups for serial manipulators when base/tip form a real path. Use joint/link/subgroup definitions only when they are deliberate.
- Define end effectors after group membership is known. Avoid overlap between an end-effector group and its parent group. Record the actual target/TCP link.
- Define group states in URDF-native units. Revolute and continuous values are radians; prismatic values are meters. Do not store degrees in SRDF.
- Generate disabled collisions from evidence. Use adjacency, MoveIt Setup Assistant sampling, or explicit user-provided collision matrices. Do not invent broad disable lists.
- Regenerate only explicit SRDF targets. Generation validates the generated SRDF against the linked URDF before writing.
- Run MoveIt smoke tests when available. Use MoveIt Setup Assistant or a project MoveIt launch directly.
- Report assumptions and skipped checks. Include incomplete validation, missing MoveIt environment, manually reasoned collision disables, and inferred target links.
Commands
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.
From this skill directory, the SRDF launcher shape is:
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
Relative source targets and CLI output overrides are resolved 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.
Hard rules
- SRDF must reference an existing valid URDF.
- The SRDF robot name must match the URDF robot name.
- Group states use URDF-native units: radians for revolute/continuous, meters for prismatic.
- Disabled collision pairs require truthful reasons and provenance.
- End-effector groups should not share links with their parent planning group.
$cad-viewerowns optional localmoveit2_serverguidance for interactive planning review.- Visual rendering review is useful but cannot prove planning correctness.
References
- Generation command:
references/gen-srdf.md - Generator contract:
references/generator-contract.md - SRDF workflow:
references/srdf-workflow.md - Planning ledger:
references/planning-ledger.md - Validation scope:
references/validation.md - End effectors:
references/end-effectors.md - Disabled collisions:
references/disabled-collisions.md - Runtime notes and current limitations:
references/implementation-notes.md
For local MoveIt2 controls, use $cad-viewer; in that skill, read references/moveit2-server.md.
Frequently asked questions about SRDF Generation
Similar skills
WinMD API Search
Easily find and explore Windows desktop APIs.
WebMCPify
Transform any web app into an agent-ready platform.
Phoenix Tracing
Instrument LLM applications with OpenInference tracing.
Foundry Hosted Agent CopilotKit
Guidance for developing agentic web apps on Azure.
Power Automate Foundation
Connect AI agents to Power Automate seamlessly.
Power Automate Flow Builder
Efficiently build and deploy Power Automate flows programmatically.
