urdf-mjcf-to-usd-conversion

Convert URDF and MJCF robot descriptions to USD assets for Isaac Sim and Isaac Lab.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Bringing a robot described in URDF or MJCF into Isaac Sim or Isaac Lab requires correct importer configuration, physics conversion, drive setup, and robot schema application; misconfiguration causes wrong masses, broken joints, self-collision slowdowns, or VRAM exhaustion in RL training.

Core Features & Use Cases

  • URDF/MJCF import: Uses the modern isaacsim.asset.importer.urdf (URDFImporter + URDFImporterConfig) and isaacsim.asset.importer.mjcf APIs, with CLI entry points and the post-import isaacsim.asset.transformer pipeline.
  • Isaac Lab config.yaml workflow: Covers convert_urdf.py / convert_mjcf.py with drive presets for RL training versus position-controlled teleop, make_instanceable for parallel environments, and fix_base guidance per robot type.
  • XACRO handling and round-trip export: Imports from a running ROS 2 robot_description node via isaacsim.ros2.urdf or pre-expands with the xacro CLI, and exports USD back to URDF with isaacsim.asset.exporter.urdf.
  • Use Case: A robotics engineer imports a Franka-style manipulator URDF with merge_fixed_joints, convex decomposition colliders, and robot_type="Manipulator", then validates the applied IsaacRobotAPI schema before using the asset in Isaac Lab RL training.

Quick Start

Convert my robot.urdf file into a USD asset for Isaac Sim with fixed base, merged fixed joints, and manipulator robot type.

Frequently Asked Questions about urdf-mjcf-to-usd-conversion

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

FAQPage Schema
How do I convert a URDF file to USD for Isaac Sim?

Use URDFImporter with URDFImporterConfig from isaacsim.asset.importer.urdf, setting urdf_path, usd_path, and options like merge_fixed_joints and collision_type. Alternatively run the urdf_import.py CLI script with flags such as --urdf, --usd-path, and --robot-type.

How do I convert MJCF to USD in Isaac Sim?

Use MJCFImporter with MJCFImporterConfig from isaacsim.asset.importer.mjcf, specifying mjcf_path, usd_path, and actuator overrides like override_gain_type and override_bias_prm. The legacy MJCFCreateAsset command is deprecated in favor of this API.

Does the Isaac Sim URDF importer support XACRO files?

No, the URDFImporter core does not parse XACRO. Either import directly from a running ROS 2 node publishing robot_description via isaacsim.ros2.urdf, or pre-expand offline with the xacro CLI before importing.

Why does my Isaac Lab RL training run out of VRAM after URDF conversion?

The likely cause is make_instanceable set to false in the conversion config, so every parallel environment duplicates meshes in VRAM. Set make_instanceable: true in config.yaml so thousands of environments share one mesh.

Can I export a USD robot asset back to URDF?

Yes, isaacsim.asset.exporter.urdf provides UsdToUrdfConverter, which takes a USD stage, root prim path, and mesh output settings to produce a URDF package. A urdf_export.py CLI script is also available.

What drive settings should I use for RL versus teleoperation?

For RL training where the agent controls torques, use default_drive_type none with zero stiffness and damping. For position-controlled teleoperation, use position drive with stiffness around 800 and damping around 40.