Reverts URDF importer to 2.4.24 to continue support for merge-joints
Description
Latest URDF importer in Isaac Sim 5.1 removed the support for merge-joints, which caused a breaking change for some users. Although this will maintain as the behavior going forward, we are reverting back to an older version of the URDF importer for the short term that still provides the merge-joints support.
In the future, we will look into providing more tooling for supporting similar behaviors in addition to the importer itself.
Fixes #3943
Type of change
- Bug fix (non-breaking change which fixes an issue)
- Breaking change (existing functionality will not work without user modification)
Checklist
- [x] I have read and understood the contribution guidelines
- [x] I have run the
pre-commitchecks with./isaaclab.sh --format - [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] I have updated the changelog and the corresponding version in the extension's
config/extension.tomlfile - [ ] I have added my name to the
CONTRIBUTORS.mdor my name already exists there
Greptile Overview
Greptile Summary
This PR reverts the URDF importer extension to version 2.4.24 to restore merge-joints functionality that was removed in Isaac Sim 5.1. The changes systematically update all references to use the versioned extension name.
Key Changes:
- Pins
isaacsim.asset.importer.urdfto version 2.4.24 inapps/isaaclab.python.kitwithexact = true - Updates
UrdfConverterclass to load the versioned extensionisaacsim.asset.importer.urdf-2.4.24 - Updates all test files to reference the versioned extension consistently
- Bumps isaaclab extension version to 0.49.0
- Documents the change in the changelog
Technical Correctness:
The implementation is clean and consistent across all files. The use of exact = true in the kit file ensures the specific version is loaded, and all code paths properly reference the versioned extension name.
Confidence Score: 5/5
- This PR is safe to merge with minimal risk - it's a well-scoped revert to restore broken functionality
- The changes are straightforward, consistent across all files, and directly address the reported issue. The approach of pinning to a specific version is appropriate for a short-term fix while the team develops long-term tooling. All references are updated consistently, tests are maintained, and the change is properly documented.
- No files require special attention
Important Files Changed
File Analysis
| Filename | Score | Overview |
|---|---|---|
| apps/isaaclab.python.kit | 5/5 | Pins isaacsim.asset.importer.urdf extension to version 2.4.24 to restore merge-joints functionality |
| source/isaaclab/config/extension.toml | 5/5 | Bumps isaaclab extension version from 0.48.0 to 0.49.0 for this fix |
| source/isaaclab/docs/CHANGELOG.rst | 5/5 | Documents the URDF importer version revert in changelog with proper semantic versioning |
| source/isaaclab/isaaclab/sim/converters/urdf_converter.py | 5/5 | Updates extension loading to use versioned extension name isaacsim.asset.importer.urdf-2.4.24 |
| source/isaaclab/test/sim/test_spawn_from_files.py | 5/5 | Updates test to reference versioned URDF importer extension for consistency |
| source/isaaclab/test/sim/test_urdf_converter.py | 5/5 | Updates test to reference versioned URDF importer extension for consistency |
Sequence Diagram
sequenceDiagram
participant User
participant UrdfConverter
participant ExtensionManager
participant UrdfImporter_2_4_24 as URDF Importer v2.4.24
participant IsaacSim
User->>UrdfConverter: Convert URDF with merge_fixed_joints=true
UrdfConverter->>ExtensionManager: Check if extension enabled
ExtensionManager-->>UrdfConverter: Extension status
UrdfConverter->>ExtensionManager: enable_extension("isaacsim.asset.importer.urdf-2.4.24")
ExtensionManager->>UrdfImporter_2_4_24: Load extension v2.4.24
UrdfImporter_2_4_24-->>ExtensionManager: Extension loaded
UrdfConverter->>UrdfImporter_2_4_24: acquire_urdf_interface()
UrdfImporter_2_4_24-->>UrdfConverter: URDF interface
UrdfConverter->>UrdfConverter: _get_urdf_import_config()
Note over UrdfConverter: Set merge_fixed_joints=true
UrdfConverter->>IsaacSim: URDFParseFile command
IsaacSim-->>UrdfConverter: Parsed robot model
UrdfConverter->>IsaacSim: URDFImportRobot command
Note over IsaacSim: Merges fixed joints using v2.4.24 logic
IsaacSim-->>UrdfConverter: USD file with merged joints
UrdfConverter-->>User: Conversion complete
That change results in wrongly oriented visuals in the exported USD
@Passutte can you share more on the issues you are seeing? is that in particular with the 2.4.24 version of the importer and fixed on the latest?
@Passutte can you share more on the issues you are seeing? is that in particular with the 2.4.24 version of the importer and fixed on the latest?
E.g., when using the ANYmal urdf from https://github.com/ANYbotics/anymal_d_simple_description - with the default importer ANYmal looks fine. However, the merge joints functionality does not work. Now, with this fix the merge joints functionality works, but the visuals are all wrong. The collision bodies look fine. It could be the combination between old importer and new version of isaacsim. I have never seen this before...
Before:
Now: