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 |
|---|---|
|
Instantiate |
|
Write a URDF file and import by file path. The new workflow does not accept URDF strings directly. |
|
Removed in 6.0 with no deprecated shim; calls to
|
|
Use |
|
Use |
Implicit output next to source URDF |
Pass |
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 |
|---|---|
|
Source. Preserve the source asset’s base authoring. |
|
Fixed. Add a fixed joint from the world to the root rigid body and place articulation authoring on the correct ancestor. |
|
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_basewith 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 authorNewtonMimicAPIand do not author the PhysX mimic API. Checknewton:mimicJoint,newton:mimicCoef0, andnewton:mimicCoef1on 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
MergeMeshRulefor 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
URDFImporteror the current MJCF importer APIs directly.A minimal one-link URDF import writes a USD file with
URDFImporterConfigandURDFImporter(config).import_urdf()before a customer robot is migrated.Each robot class explicitly sets
fix_baserather than inheriting old boolean assumptions.Mimic-joint validators and exporters accept
NewtonMimicAPIandnewton:*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.