Agent Skills › isaac-sim/IsaacSim › usd-articulation

usd-articulation

GitHub

用于在USD中组装和验证多臂机器人关节层级,通过应用Isaac Robot Schema和物理API确保机械正确性。

.claude/skills/usd-articulation/SKILL.md isaac-sim/IsaacSim

触发场景

组装多臂机器人关节层级 修复或验证USD中的机器人关节结构

安装

npx skills add isaac-sim/IsaacSim --skill usd-articulation -g -y
更多选项

非标准路径

npx skills add https://github.com/isaac-sim/IsaacSim/tree/develop/.claude/skills/usd-articulation -g -y

不安装直接使用

npx skills use isaac-sim/IsaacSim@usd-articulation

指定 Agent (Claude Code)

npx skills add isaac-sim/IsaacSim --skill usd-articulation -a claude-code -g -y

安装 repo 全部 skill

npx skills add isaac-sim/IsaacSim --all -g -y

预览 repo 内 skill

npx skills add isaac-sim/IsaacSim --list

SKILL.md

Frontmatter
{
    "name": "usd-articulation",
    "license": "Apache-2.0",
    "metadata": {
        "author": "Renato Gasoto <info@nvidia.com>"
    },
    "description": "Validate and build multi-arm articulations in USD. Use when assembling or fixing robot joint hierarchies."
}

USD Articulation — Multi-Arm Robots

Purpose

Assemble and validate multi-link robot articulations with ArticulationRootAPI, fixed joints, and Isaac robot schema overlays before deployment.

Prerequisites

  • Built Isaac Sim ($ISAAC_SIM_DIR or _build/linux-x86_64/release).
  • NVIDIA GPU with a current driver (nvidia-smi).
  • Shell env contract from isaac-sim-orchestrator: $ISAAC_SIM_DIR, $ISAAC_LAB_DIR, $WORKSPACE_DIR.

Limitations

  • Targets Isaac Sim 6 / Kit 110 unless a section states otherwise.
  • Does not replace official NVIDIA documentation for unsupported edge cases.

Troubleshooting

Error / symptom Cause Solution
Extension or import not found Wrong $ISAAC_SIM_DIR or stale build Point env vars at _build/linux-x86_64/release or rebuild
Black or empty frames Missing lights or non-RTX render mode Add dome/key light; confirm RTX / PathTracing settings
Hang on stage load or first render MDL compile or oversized stage Follow isolation steps in isaac-sim-troubleshooting

Two layers stack on a robot USD:

  1. Physics: UsdPhysics.ArticulationRootAPI, UsdPhysics.Joint, UsdPhysics.RigidBodyAPI, PhysxSchema.PhysxArticulationAPI.
  2. Robot Schema (usd.schema.isaac.robot_schema): semantic overlay used by isaacsim.robot.poser, the importers, manipulators examples, and any tool that walks "this robot's links / joints / named poses".

Rule: visual plausibility is not mechanical correctness. If it doesn't articulate, it doesn't exist.

Available Scripts

Script Purpose Arguments
scripts/apply_robot_schema.py Apply Isaac Robot Schema overlay to an existing USD articulation see script --help
scripts/multi_arm_assembly.py Assemble a multi-arm robot in USD using FixedJoints see script --help
scripts/validate_articulation.py Validate multi-arm robot USD articulation structure CLI args via sys.argv (see script --help)

Running scripts

From agent runtimes that expose skill execution helpers, invoke helpers with run_script():

run_script("scripts/apply_robot_schema.py", args=["--help"])

From a built Isaac Sim tree, run the same file with ./python.sh (Linux) or python.bat (Windows) from _build/*/release, or execute shell helpers directly when they do not require the simulator.

Multi-arm assembly (correct pattern)

assemble_multi_arm_robot(stage, chassis_usd, arm_usd, robot_root, arm_offset, chassis_body_path, arm_base_path) — spawn chassis + arm, create a FixedJoint, remove ArticulationRootAPI from the arm.

See scripts/multi_arm_assembly.py.

What does not work

  • Referencing the same arm USD twice via sublayer composition.
  • Using over "Geometry" to add arms in a parts layer.
  • Assuming visual presence equals physical attachment.

Robot Schema overlay (Kit 110)

Apply the modern Isaac Robot Schema on top of the physics layer. The URDF/MJCF importers do this automatically; for hand-authored or retrofitted USDs apply it manually.

apply_robot_schema(stage, robot_prim, link_prims, joint_prims, site_prims, robot_type) — apply IsaacRobotAPI on root, IsaacLinkAPI on each link, IsaacJointAPI on each joint, IsaacSiteAPI on grasp/mount frames, then call PopulateRobotSchemaFromArticulation to fill ROBOT_LINKS/ROBOT_JOINTS. Valid robot_type tokens: Default, End Effector, Manipulator, Humanoid, Wheeled, Holonomic, Quadruped, Mobile Manipulators, Aerial.

See scripts/apply_robot_schema.py.

Schema Applied to Role
IsaacRobotAPI (Classes.ROBOT_API) robot root robot_type, ordered link/joint relations, named-pose container
IsaacLinkAPI (Classes.LINK_API) each rigid link mass/visual aux for tools that walk the chain
IsaacJointAPI (Classes.JOINT_API) each joint semantic joint metadata
IsaacSiteAPI (Classes.SITE_API) grasp / mount / reference frames named frames for IK targets, mounts, sensors
IsaacNamedPose (Classes.NAMED_POSE) pose container prims stored joint configurations (see manipulation-ik)
Classes.SURFACE_GRIPPER end-effector site author surface gripper via CreateSurfaceGripper
Classes.ATTACHMENT_POINT_API site or link attachment points used by accessory tooling

Validation checklist

Before trusting any multi-arm robot:

  1. Exactly 1 UsdPhysics.ArticulationRootAPI on the chassis, nowhere else.
  2. At least one chassis/root-branch FixedJoint anchors each top-level attached subsystem before flatten-before-deploy.
  3. Every joint body is reachable from the single articulation root through one connected joint hierarchy.
  4. IsaacRobotAPI present on the root; robot_type set to a valid token.
  5. ROBOT_LINKS / ROBOT_JOINTS relations populated (call PopulateRobotSchemaFromArticulation if not).
  6. Each grasp frame carries IsaacSiteAPI (not deprecated IsaacReferencePointAPI).
  7. Render from four angles (front, side, 3/4, top).
  8. Send to a vision LLM with a binary question ("Arms attached? PASS/FAIL").

Validation snippet (self-contained)

Run via $ISAAC_SIM_DIR/python.sh. Enforces exactly one ArticulationRootAPI, verifies the entire joint graph is connected to that root, checks for at least one root-branch FixedJoint attachment before flatten-before-deploy, and reports the Robot Schema state.

validate_articulation(usd_path) — assert exactly 1 ArticulationRootAPI, verify hierarchy connectivity, and print root-attached children plus Robot Schema state.

See scripts/validate_articulation.py.

Extend with whatever subsystem path patterns your asset uses. Binary goal: exactly one root, one connected articulated hierarchy, at least one root-branch FixedJoint anchor before flattening, and the Robot Schema overlay present.

Common failures

Symptom Cause Fix
Arms render but float No FixedJoint to chassis add FixedJoint
Multiple articulation roots Arm USD has its own root RemoveAPI(UsdPhysics.ArticulationRootAPI) from arms
Training works but arms independent Separate articulation trees single root + FixedJoints
RobotPoser.solve_ik() errors out missing IsaacRobotAPI / link relations ApplyRobotAPI + PopulateRobotSchemaFromArticulation
Importer applied IsaacReferencePointAPI older asset re-import with current Isaac Sim, or migrate to IsaacSiteAPI (deprecation warning)
robot_type attribute value rejected typo or stale token pick from get_allowed_tokens(Attributes.ROBOT_TYPE)

版本历史

  • 2469084 当前 2026-09-22 15:46

同 Skill 集合

.claude/skills/action-and-event-data-generation/SKILL.md
.claude/skills/actor-sdg-generate-lighting-variations/SKILL.md
.claude/skills/actor-sdg-sweep-config/SKILL.md
.claude/skills/behavior-tree-generation/SKILL.md
.claude/skills/calibrate-metropolis-camera/SKILL.md
.claude/skills/data-collection-sim/SKILL.md
.claude/skills/generate-incident-config/SKILL.md
.claude/skills/isaac-camera/SKILL.md
.claude/skills/isaac-sim-assets/SKILL.md
.claude/skills/isaac-sim-headless-deployment/SKILL.md
.claude/skills/isaac-sim-installation/SKILL.md
.claude/skills/isaac-sim-migration/SKILL.md
.claude/skills/isaac-sim-orchestrator/SKILL.md
.claude/skills/isaac-sim-remote/SKILL.md
.claude/skills/isaac-sim-rendering/SKILL.md
.claude/skills/isaac-sim-robot-navigation/SKILL.md
.claude/skills/isaac-sim-ros-workspaces/SKILL.md
.claude/skills/isaac-sim-ros2-bridge/SKILL.md
.claude/skills/isaac-sim-sensor/SKILL.md
.claude/skills/isaac-sim-troubleshooting/SKILL.md
.claude/skills/isaac-sim-validator/SKILL.md
.claude/skills/isaac-sim-workflow/SKILL.md
.claude/skills/manipulation-ik/SKILL.md
.claude/skills/meta-skills/SKILL.md
.claude/skills/mobility-gen/SKILL.md
.claude/skills/motion-generation/SKILL.md
.claude/skills/navigation-primitives/SKILL.md
.claude/skills/object-bin-packing/SKILL.md
.claude/skills/occupancy-map/SKILL.md
.claude/skills/physics-simulation/SKILL.md
.claude/skills/place-camera-aim-at/SKILL.md
.claude/skills/place-camera-max-coverage/SKILL.md
.claude/skills/profile-isaac-sim/SKILL.md
.claude/skills/run-incident-events/SKILL.md
.claude/skills/skill-distillation/SKILL.md
.claude/skills/skills-eval-triage/SKILL.md
.claude/skills/spatial-reasoning/SKILL.md
.claude/skills/urdf-mjcf-to-usd-conversion/SKILL.md
.claude/skills/usd-composition-architecture/SKILL.md
.claude/skills/usd-pipeline/SKILL.md
.claude/skills/validation-diff-gifs/SKILL.md
.claude/skills/vlm-scene-captioning/SKILL.md
skills/action-and-event-data-generation/SKILL.md
skills/actor-sdg-generate-lighting-variations/SKILL.md
skills/actor-sdg-sweep-config/SKILL.md
skills/behavior-tree-generation/SKILL.md
skills/calibrate-metropolis-camera/SKILL.md
skills/data-collection-sim/SKILL.md
skills/generate-incident-config/SKILL.md

元信息

文件数
0
版本
2469084
Hash
082d93c1
收录时间
2026-09-22 15:46

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-25 05:09
浙ICP备14020137号-1