usd-articulation

Validate and build multi-arm robot articulations in USD for Isaac Sim.

4.0k|530|Updated May 28, 2025
One-click install
npx skills add https://github.com/isaac-sim/IsaacSim --skill usd-articulation
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: usd-articulation
Source: https://github.com/isaac-sim/IsaacSim/tree/main/skills/usd-articulation
Command: npx skills add https://github.com/isaac-sim/IsaacSim --skill usd-articulation

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Multi-arm robots assembled in USD often look correct in the viewport but fail physically: arms float disconnected from the chassis, multiple ArticulationRootAPIs split the articulation tree, or the Isaac Robot Schema overlay is missing so downstream tools like RobotPoser cannot walk the robot's links and joints. This Skill provides the correct assembly pattern and a validation checklist to catch these failures before deployment.

Core Features & Use Cases

  • Multi-arm assembly pattern: Programmatically attach arm USDs to a chassis with FixedJoints, remove duplicate ArticulationRootAPIs, and keep exactly one articulation root.
  • Robot Schema overlay: Apply IsaacRobotAPI, IsaacLinkAPI, IsaacJointAPI, IsaacSiteAPI, and named poses, or retrofit existing USDs with PopulateRobotSchemaFromArticulation.
  • Validation snippet: A self-contained script run via Isaac Sim's python.sh that asserts exactly one articulation root, lists joints and connected bodies, and reports Robot Schema state.
  • Use Case: You are building a dual-arm mobile manipulator for Isaac Lab training. Use this Skill to assemble the chassis and arms correctly, apply the Robot Schema, and verify no floating arms exist before flattening the USD for deployment.

Quick Start

Ask the assistant to validate your robot USD for articulation root count, FixedJoint connections, and Robot Schema integrity using the usd-articulation checklist.

Frequently Asked Questions about usd-articulation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I attach multiple arms to a robot chassis in USD?

Define each arm as a child prim referencing the arm USD, then create a UsdPhysics.FixedJoint connecting the arm's BaseMount body to the chassis body. Remove ArticulationRootAPI from the arm prims so only the chassis keeps the single articulation root.

How do I apply the Isaac Robot Schema to an existing robot USD?

Apply IsaacRobotAPI to the robot root, IsaacLinkAPI to each rigid link, and IsaacJointAPI to each joint, then call PopulateRobotSchemaFromArticulation to fill the ordered link and joint relations from the existing physics articulation.

Why do my robot arms render but float disconnected in Isaac Sim?

Floating arms happen when no FixedJoint connects the arm's BaseMount to the chassis, so visual presence exists without physical attachment. Add a FixedJoint between the chassis body and each arm's base body to fix it.

Why does RobotPoser solve_ik fail on my robot USD?

solve_ik fails when the USD lacks IsaacRobotAPI or the ordered link and joint relations are empty. Apply the Robot Schema APIs and run PopulateRobotSchemaFromArticulation so tools can walk the robot's kinematic chain.

Can I reference the same arm USD twice via sublayers for a dual-arm robot?

No, referencing the same arm USD twice via sublayer composition or using an over prim in a parts layer does not produce a working articulation. Each arm must be a distinct prim with its own reference and a FixedJoint to the chassis.

What replaces the deprecated IsaacReferencePointAPI in Isaac Sim?

IsaacSiteAPI replaces the deprecated IsaacReferencePointAPI for grasp, mount, and reference frames. Re-import older assets with the current Isaac Sim version or migrate the prims to IsaacSiteAPI to clear deprecation warnings.