К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

srdf — скилл для Claude Code: что делает и как установить

Скилл помогает создавать и проверять SRDF для MoveIt2 поверх URDF. Пригодится для планирования движений, групп и семантики робота.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add earthtojake/text-to-cad --skill srdf -a claude-code
Открыть на GitHub

Что делает srdf

Скилл работает с файлами .srdf, которые задают семантику планирования MoveIt2 поверх существующего URDF. Он помогает определить виртуальные и пассивные суставы, группы планирования, end effector, именованные состояния и отключённые пары столкновений. Имена берутся из таблицы ссылок и суставов URDF, а SRDF хранится рядом с соответствующим файлом.

Рабочий процесс включает планирование структуры, ведение planning ledger, прямое редактирование XML и проверку командой cadgen srdf validate path/to/robot.srdf. Валидатор сверяет имена, цепочки, состояния и пары с URDF. Для просмотра можно запустить CAD Viewer, а для smoke-тестов использовать MoveIt Setup Assistant или запуск проекта.

Группы и отключённые столкновения нельзя выводить по внешнему виду модели. Это повод проверить топологию URDF и исходные данные, особенно когда задаются единицы состояний: радианы для revolute и continuous, метры для prismatic. Для команд нужен uvx с cadgen==0.7.26; снимки требуют браузер.

Какие задачи решает

  • создать SRDF для существующего URDF
  • проверить группы планирования и цепочки MoveIt2
  • задать виртуальные суставы и end effectors
  • найти ошибки в состояниях и отключённых столкновениях

Примеры запросов агенту

  • Создай или обнови `robot.srdf` рядом с подходящим `robot.urdf`, извлеки таблицу ссылок и суставов, затем проверь файл.
  • Проверь `path/to/robot.srdf` командой `cadgen srdf validate path/to/robot.srdf` и исправь найденные ошибки.
  • Сформируй planning ledger для arm IK, определи группы и group states в единицах URDF, затем подготовь SRDF к ревью.

Как установить srdf

1Через Skills CLI (Vercel)

npx skills add earthtojake/text-to-cad --skill srdf -a claude-code

2Вручную: положить файлы

~/.claude/skills/srdf/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/srdf/

Из того же набора9

Весь набор →
sdf earthtojake Скилл создаёт и проверяет SDFormat-файлы для моделей и миров, а затем помогает подготовить их к передаче в симулятор. Claude Code CX Codex Cursor +1 10 500установок urdf earthtojake Скилл помогает создавать, проверять и отлаживать описания роботов в формате URDF. Пригодится для работы со звеньями, сочленениями и геометрией. Claude Code CX Codex Cursor +1 10 400установок gcode earthtojake Нарезает модели STL, 3MF и OBJ в G-code через OrcaSlicer. Подходит, когда нужно подготовить файл для печати без подключения к принтеру. Claude Code CX Codex Cursor +1 9 500установок bambu-labs earthtojake Открывает файл в Bambu Connect или Bambu Studio, чтобы вы выбрали принтер и запустили печать. Пригодится, когда модель уже нарезана и лежит на диске. Claude Code CX Codex Cursor +1 9 200установок dxf earthtojake Скилл собирает и проверяет 2D DXF-чертежи из Python-скриптов на build123d: контуры, прокладки, панели, развёртки под лазер. Claude Code CX Codex Cursor +1 9 100установок dfam-check earthtojake Скилл проверяет 3D-сетки на пригодность к 3D-печати по правилам DfAM перед нарезкой в слайсере или отправкой на станок. Claude Code CX Codex Cursor +1 4 100установок engineering-drawing earthtojake Генерирует чертёж детали в PDF по 3D-модели: создаёт ортогональные виды, проставляет размеры, скрытые линии и рамку ISO. Помогает передать готовую деталь на производство. Claude Code CX Codex Cursor +1 2 100установок dfm earthtojake Проверяет детали на технологичность для гибки листового металла, обработки на ЧПУ и литья пластмасс под давлением. Помогает найти ошибки до отправки на производство. Claude Code CX Codex Cursor +1 2 000установок

Похожие

find-your-level rohitg00 Скилл проводит тест по AI/ML из 10 вопросов и говорит, с какой фазы начинать курс AI Engineering from Scratch. Claude Code CX Codex Cursor +1 4 500установок start-learning rohitg00 Он проводит вводный опрос и placement quiz для курса AI Engineering from Scratch, а затем создаёт LEARNING.md с планом обучения. Claude Code CX Codex Cursor +1 4 500установок speech официальный openai Генерация озвучки и голосовых подсказок через OpenAI Audio API. Пригодится для озвучивания демо, реплик IVR или чтения текста вслух. Claude Code CX Codex Cursor +1 3 500установок gemini-agents-api официальный google Управляет ресурсами Agent в Gemini Enterprise Agent Platform через API. Нужен для создания и настройки агентов до запуска диалогов. Claude Code Gemini CLI CX Codex 9 466установок google-cloud-waf-sustainability официальный google Оценивает Google Cloud-нагрузки по устойчивости: помогает снижать углеродный след и расход энергии. Нужен при проектировании и настройке облачной архитектуры. Claude Code Gemini CLI CX Codex 9 346установок learn rohitg00 Ведёт по курсу AI Engineering from Scratch: достаёт следующий урок, объясняет его по разделам в терминале, задаёт вопросы в конце и записывает прогресс. Claude Code CX Codex Cursor +1 4 200установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. Claude Code Claude.ai 414 180установок writing-for-agents Matt Pocock Помогает писать скиллы и документы с инструкциями для агентов. Пригодится при правках AGENTS.md, CLAUDE.md и связанных справочных файлов. Claude Code 466 719установок

Вопросы о srdf

Как установить srdf в Claude Code?

Выполните npx skills add earthtojake/text-to-cad --skill srdf -a claude-code, затем повторите npx skills add earthtojake/text-to-cad --skill srdf -a claude-code. Скилл будет доступен в ~/.claude/skills/srdf/SKILL.md.

Что делает скилл srdf?

Он помогает авторить, редактировать и валидировать SRDF для MoveIt2: планировать группы, виртуальные и пассивные суставы, end effectors, group states и отключённые столкновения.

Какие единицы используются в group states SRDF?

Для revolute и continuous используются радианы, для prismatic — метры. Значения должны укладываться в ограничения URDF и не задаваться для fixed или mimic joints.

Исходный текст

SKILL.md · MIT
---
name: srdf
description: MoveIt2 SRDF authoring, validation, and planning-semantics workflow. Use when creating, editing, inspecting, or validating `.srdf` files, MoveIt planning groups, virtual joints, passive joints, end effectors, group states, disabled collisions, URDF-paired planning semantics, or SRDF handoff for live review. Use the URDF skill for robot structure and the SDF skill for simulator descriptions. Open and visually review existing SRDF files in CAD Viewer.
license: MIT
---

# SRDF

Provenance: maintained in [earthtojake/text-to-cad](https://github.com/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. The `.srdf` file is the source of truth: author and edit the XML directly. There is no `gen_srdf()` contract.

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 theme alone — and do not type any link or joint name from memory: extract the URDF's link/joint table first and copy names from it.

## Setup

Run cadgen through [uv](https://docs.astral.sh/uv/), so this skill's commands share
one installation, and its warm build daemon, with the CAD app's server:

- `cadgen` below means `uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.26 cadgen`
- `python` below means `uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.26 python`

The first run downloads that installation and the first snapshot its headless
browser; later runs reuse both.

## 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.

## Show the model

Show the user each file you create or change, and any they ask to see. Snapshots and
validation don't replace this.

- If your tools include `cad_show` (your host may prefix it), use it with the file's
  absolute path, and follow its description for when to call it again. `cad_view` reads
  what the user selected; `cad_screenshot` shows you what they see. Neither is a review
  of your own work.
- Otherwise run the CAD Viewer, from any folder:

  ```bash
  cadgen viewer --host 127.0.0.1 --json --detach
  ```

  `--detach` returns once the viewer answers requests and leaves it running in the
  background: always pass it, since a foreground viewer never exits (and piping its
  output through `tail` can hide the URL for good). It starts this machine's one viewer,
  or reuses it. Read `url` from its one JSON line (never guess the port), and for each
  file return `url?file=<its URL-encoded absolute path>`. If it fails to launch, say so.

Keep the SRDF beside its uniquely matching URDF (same robot name). Review
planning groups, named states and joints; visual review does not prove planning
correctness.

## Required workflow

1. **Start from a valid URDF.** Author or fix the URDF first with `$urdf` and validate it. The SRDF pairs with that URDF by colocation and robot name, and every name in the SRDF must exist in it.
2. **Extract the URDF table.** Before writing any SRDF XML, list the URDF's robot name, links, joints (with type, parent, child, limits, mimic flags). Copy names from this table only; never type them from memory. See `references/srdf-workflow.md`.
3. **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.
4. **Create or update the planning ledger.** Use `references/planning-ledger.md` before writing XML; keep a compact copy as a comment block in the `.srdf`.
5. **Pair with the URDF by colocation.** Save the `.srdf` in the same folder as its `.urdf`, with the same `<robot name>` — that is the only linking mechanism. The validator and the viewer both resolve the pairing by scanning the folder for the URDF whose robot name matches; exactly one URDF per robot name per folder. No metadata element links the files. See `references/authoring-contract.md`.
6. **Define virtual and passive joints deliberately.** Use them when needed by the robot model.
7. **Define planning groups from URDF topology.** Prefer chain groups for serial manipulators when base/tip form a real parent-to-child path in the URDF tree (the validator verifies this). Use joint/link/subgroup definitions only when they are deliberate.
8. **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.
9. **Define group states in URDF-native units.** Revolute and continuous values are radians; prismatic values are meters. Do not store degrees in SRDF. Values must lie within URDF limits and must not set fixed or mimic joints.
10. **Generate disabled collisions from evidence.** Use adjacency derived from the URDF joint table, MoveIt Setup Assistant sampling, or explicit user-provided collision matrices. Do not invent broad disable lists. See `references/disabled-collisions.md`.
11. **Validate every created or modified `.srdf`** with `cadgen srdf validate`; it cross-validates all names, chains, states, and pairs against the paired URDF. Fix findings and re-validate until clean.
12. **Run MoveIt smoke tests when available.** Use MoveIt Setup Assistant or a project MoveIt launch directly.
13. **Report assumptions and skipped checks.** Include incomplete validation, missing MoveIt environment, manually reasoned collision disables, and inferred target links.

## Commands

Run `cadgen` as Setup defines it. `cadgen doctor <skill-dir>` reports the installation in use and checks that it is the one this skill pins — docs drift silently on another. Validation itself needs nothing beyond the Python standard library; only snapshots need the browser. Use `cadgen <verb> --help` for the complete current interface.

The validator shape is:

```bash
cadgen srdf validate path/to/robot.srdf
cadgen srdf validate path/to/robot.srdf --strict
cadgen srdf validate path/to/robot.srdf --json
```

The validator parses the SRDF, resolves the paired URDF (the same-folder `.urdf` whose robot name matches; none, several, or an invalid one is an error), and cross-validates: group/joint/link/subgroup name existence, chain path resolvability, subgroup cycles, virtual/passive joints, end-effector topology, group-state membership/limits/completeness, disabled-collision pairs (including Adjacent-reason truthfulness), and misspelled elements. Each phase collects all its findings in one pass (severity, code, XML path), but a structural error stops the cross-file phase — re-run after every fix. One run validates ONE file: `--strict` treats warnings as failures and `--json` prints one line of `{"ok", "path", "issues": [{"severity", "code", "message", "element", "hint"}], "summary"}`, where `element` is the XML path. It exits nonzero if the target fails. Relative targets resolve from the current working directory.

## Hard rules

- The SRDF lives in the same folder as its URDF and shares its `<robot name>`; that colocation-plus-name match is the only pairing mechanism, and exactly one URDF per robot name may exist in the folder.
- Every link, joint, group, and subgroup name must come from the URDF table or a group defined in the same file.
- 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.
- Visual rendering review is useful but cannot prove planning correctness.

## Snapshot Tool

`cadgen snapshot` renders the robot to a PNG still, using the same shared
CLI and headless browser runtime every rendering skill uses — so a snapshot matches what
the CAD Viewer shows.

```bash
cadgen snapshot path/to/robot.srdf review.png
```

Hand it the `.srdf`; it routes by suffix and renders the paired URDF's geometry — the same-folder `.urdf` whose `<robot name>` matches, exactly as `cadgen srdf validate` pairs them. No match, or more than one, is refused before anything renders, naming the robot name it looked for and the `.urdf` files it found. Pose the robot with `--joint-values` — `{joint: degrees}` JSON,
joints you do not name staying where the CAD Viewer opens the robot: each at its default, then
this SRDF's `home` group state if it declares one (the `"jointValues"` job field is the same
thing in a packet). The snapshot draws the robot with the viewer's own scene, so it shows what
the viewer shows, and a link mesh that cannot be loaded fails it rather than leaving the link
out. Robots are authored in metres and are framed on the robot scene scale automatically.

A normal snapshot uses Solid mode and Light appearance. The display mode is `solid`
(the default) or `parts` (each link its own colour), each at its own defaults;
`--grid` draws the measuring grid under the robot, and `--preview` draws Preview's
shared photographic scene instead, in perspective. Inline display JSON and JSON files
are the Viewer's display object: `mode`, `grid`, `appearance` (`light`, the default,
or `dark`), `camera` (projection and focal length) and `clip`.
Top-level `--camera` and `--joint-values` remain active in every display mode.
`display.clip` cuts the robot as the viewer's Clip does
(`{"clip":{"axis":"x","at":0.05}}`, `at` in metres); `exploded`, and `shaded`, `xray`,
`hidden-line` and `wireframe`, describe a STEP model's CAD edges and parts, and are
refused by name here. A Quick Edit job from the viewer replays as it is: its `jointValues`, its
`selection.hide` (the parts hidden in the Links panel, by their ids), its clip and
annotation (`cadgen snapshot --job <file>`). Quick Edit supplies inline JSON or a
`.snapshot.json` path; save inline JSON to a temporary file before using `--job`.
Inspect supplied annotations before editing. Without annotations, the captured
view is optional context; render it when useful to the request.

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.

An SRDF's geometry comes from its paired URDF, so it has no snapshot door of its
own; the polymorphic `cadgen snapshot` routes one by suffix. The grammar is
`cadgen snapshot TARGET [OUT] [flags]`, the same one every format door uses. Use
`cadgen snapshot --help` for the complete current interface.

## References

- Authoring contract (structure, URDF pairing, golden skeleton): `references/authoring-contract.md`
- SRDF workflow (URDF table extraction, edit loop): `references/srdf-workflow.md`
- Planning ledger: `references/planning-ledger.md`
- Validation and verification recipe: `references/validation.md`
- End effectors: `references/end-effectors.md`
- Disabled collisions: `references/disabled-collisions.md`

© earthtojake · MIT · earthtojake/text-to-cad

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой