2.0 KiB
2.0 KiB
SRDF implementation notes
These notes describe the current runtime shape so the documentation does not overstate what the code enforces.
Implemented in the current code
scripts/srdfgenerates explicit targets only.gen_srdf()must return an envelope withxmlandurdf.- Generated SRDF is validated against the linked URDF before writing.
- The CLI injects or updates local
tcad:urdfmetadata. - Group states use
joint_values_by_name/jointValuesByNamein URDF-native units. - Deprecated
joint_values_by_name_rad/jointValuesByNameRadaliases remain for compatibility. - Group-state values are checked for group membership, finite values, fixed/mimic status, and URDF limits when available.
- End-effector overlap and adjacency checks are implemented.
- Disabled-collision reasons are required and classified into broad provenance buckets.
- Optional CAD Viewer MoveIt2 controls use
protocolVersion: 1. - Pose targets support
quat_xyzwandrpy. - Position-only IK is explicit in request settings and defaults based on whether orientation is provided.
- Legacy degree fields are converted by joint type so prismatic values remain linear.
- Error responses sanitize absolute paths unless debug errors are enabled.
Not yet fully implemented in code
The following remain process requirements and future code-improvement targets:
- full URDF structural validation shared with the URDF skill;
- virtual joint parsing and validation;
- passive joint parsing and exclusion from active planning variables;
- hard failure for disconnected chain base/tip definitions in every case;
- subgroup cycle detection as a first-class validation error;
- typed SRDF generation helpers;
- structured assumption/warning envelope fields;
- sampled self-collision matrix generation;
- full MoveIt configuration package generation;
- safer generator execution in a subprocess.
Until those are implemented, rely on the planning ledger, MoveIt Setup Assistant, $cad-viewer handoff for visual/MoveIt smoke tests when available, and explicit reporting of skipped checks.