URDF, MJCF, and Robot Asset Pipeline Changes#

Isaac Sim 6.0 updates the URDF and MJCF importer behavior, URDF exporter implementation, robot asset processing tools, and ROS 2 robot-description import path. Treat robot asset migration as an import/export validation problem, not only as a Python import replacement.

URDF Importer API#

New code should use URDFImporter and URDFImporterConfig directly. Deprecated Kit commands and interface helpers remain only as transition aids.

Deprecated pattern

Migration

URDFCreateImportConfig

Instantiate URDFImporterConfig directly.

URDFParseText

Write a URDF file and import by file path. The new workflow does not accept URDF strings directly.

URDFParseAndImportFile

Removed in 6.0 with no deprecated shim; calls to omni.kit.commands.execute("URDFParseAndImportFile", ...) fail immediately. Set urdf_path (and optionally usd_path) on URDFImporterConfig and call URDFImporter(config).import_urdf().

URDFParseFile and URDFImportRobot

Use URDFImporter(config).import_urdf().

acquire_urdf_interface and ImportConfig

Use URDFImporter and URDFImporterConfig.

Implicit output next to source URDF

Pass usd_path explicitly when the source tree is read-only or when CI should keep generated assets out of source directories.

Example:

# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

from isaacsim.asset.importer.urdf import URDFImporter, URDFImporterConfig

config = URDFImporterConfig(
    urdf_path="/path/to/robot.urdf",
    usd_path="/path/to/output",
    fix_base=None,  # None = Source, True = Fixed, False = Mobile.
    merge_fixed_joints=False,
    merge_mesh=False,
)

usd_path = URDFImporter(config).import_urdf()
print(f"Imported robot to {usd_path}")

Base Type#

URDFImporterConfig.fix_base and MJCFImporterConfig.fix_base are tri-state values in 6.0:

Value

Behavior

None

Source. Preserve the source asset’s base authoring.

True

Fixed. Add a fixed joint from the world to the root rigid body and place articulation authoring on the correct ancestor.

False

Mobile. Remove an existing world-to-root fixed joint so the robot is floating-base.

Do not carry forward old boolean defaults blindly. Re-import one representative fixed-base robot and one mobile robot, then inspect the articulation root, world-to-root fixed joint, initial pose, and controller assumptions.

ROS 2 Robot-Description Import#

Isaac Sim 6.0 deprecates the URDFImportFromROS2Node Kit command. Use RobotDefinitionReader to fetch the ROS 2 robot_description parameter and URDFImporter to convert the resulting URDF.

# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

import tempfile
from pathlib import Path

from isaacsim.asset.importer.urdf import URDFImporter, URDFImporterConfig
from isaacsim.ros2.urdf import RobotDefinitionReader


def import_from_ros2_node(node_name: str, output_dir: str) -> None:
    reader = RobotDefinitionReader()

    def on_description_received(urdf_text: str, package_found: bool) -> None:
        del package_found
        with tempfile.NamedTemporaryFile("w", suffix=".urdf", delete=False) as urdf_file:
            urdf_file.write(urdf_text)
            urdf_path = urdf_file.name

        config = URDFImporterConfig(
            urdf_path=urdf_path,
            usd_path=output_dir,
            fix_base=None,
        )
        usd_path = URDFImporter(config).import_urdf()
        print(f"Imported ROS 2 robot_description to {usd_path}")
        Path(urdf_path).unlink(missing_ok=True)

    reader.description_received_fn = on_description_received
    reader.start_get_robot_description(node_name)

Validate package:// URL resolution in the sourced ROS workspace. If package resolution fails, fix the workspace environment before debugging the importer.

MJCF and Mimic Joints#

Review MJCF imports that depend on mimic joints, fixed-base behavior, or multi-DOF joint conversion:

  • Validate MJCFImporterConfig.fix_base with the same Source, Fixed, and Mobile expectations as URDF.

  • Update mimic-joint validators/exporters. Isaac Sim 5.1 URDF imports authored PhysxMimicJointAPI; Isaac Sim 6.0 imports author NewtonMimicAPI and do not author the PhysX mimic API. Check newton:mimicJoint, newton:mimicCoef0, and newton:mimicCoef1 on imported mimic joints.

  • Re-run controller tests for multi-DOF joints and tendon or equality constraints; there is no reliable static check for these behaviors.

Exporter and Asset Processing#

Isaac Sim 6.0 updates the URDF exporter and robot asset pipeline. For project pipelines that export, re-import, or optimize robot assets:

  • Export a representative robot, re-import it, and compare link names, joint names, drives, limits, inertias, materials, and mesh references.

  • Use Asset Transformer profiles for repeatable restructuring and mesh processing. Keep input stages read-only and write transformed results to a separate output tree.

  • Use Scene Optimizer or Asset Transformer MergeMeshRule for post-import mesh merges. For import-time merging, use the URDF or MJCF importer option.

  • Re-run motion-generation config generation if link names, collision meshes, or tool frames change.

Validation Checklist#

Verify the following after migration:

  • Import scripts call URDFImporter or the current MJCF importer APIs directly.

  • A minimal one-link URDF import writes a USD file with URDFImporterConfig and URDFImporter(config).import_urdf() before a customer robot is migrated.

  • Each robot class explicitly sets fix_base rather than inheriting old boolean assumptions.

  • Mimic-joint validators and exporters accept NewtonMimicAPI and newton:* attributes, not only the PhysX mimic schema.

  • Generated USD assets load without missing references when the source URDF or ROS package workspace is read-only.

  • Imported robots have the expected articulation root, world joint behavior, collision meshes, drives, and units.

  • Export/re-import round trips preserve the fields used by downstream control, motion generation, or validation jobs.

  • Asset Transformer and Scene Optimizer operations write to expected layers and preserve physics authoring.