[Bump] Require isaacsim-asset-isolated 6.1 so package:// meshes survive fixed-joint merging - #7230
Closed
hujc7 wants to merge 6 commits into
Closed
[Bump] Require isaacsim-asset-isolated 6.1 so package:// meshes survive fixed-joint merging#7230hujc7 wants to merge 6 commits into
hujc7 wants to merge 6 commits into
Conversation
usd-exchange 3.0.0 is the first release carrying the reworked flavor matrix from usd-exchange!257: OpenUSD 26.08 becomes the default flavor and Python 3.13 joins the wheel matrix. The PyPI wheel ships the default flavor, so moving the pin moves ``pxr`` in kit-less installs from OpenUSD 25.05 to 26.08. The pin is the only constraint that had to move. isaacsim-asset-isolated, isaacsim-robot-schema, urdf-usd-converter and mujoco-usd-converter each require ``usd-exchange>=2.2.2`` with no upper bound, so nothing else in the resolve changes. Regenerating uv.lock also picks up the workspace package versions that had drifted from the committed lock (isaaclab, isaaclab-ov, isaaclab-tasks).
Five test sites pinned OpenUSD's work-thread pool to a single thread to avoid a heap-corruption race in the physics parser, and the LEAPP export CLI carried a hidden --limit_cpu_threads flag that existed only to feed them. Three of the five carried a TODO to remove them once usd-core reached 26.5. usd-exchange 3.0.0rc3 moves the kit-less pxr to OpenUSD 26.08, clearing that precondition for the kit-less rendering fixture. Kit still supplies OpenUSD 25.11 to the sites that launch a simulation app, so those are removed on test evidence rather than on the version bound; the pull request lists the suites that were run. The multi-GPU PXR_WORK_THREAD_LIMIT in AppLauncher is a separate, long-standing option for limiting CPU threads per process and is left in place.
Merging fixed joints relocates the URDF into a scratch directory, and the 6.0 importer resolved package:// URIs against that copy, where no meshes exist. Every mesh dropped while conversion still reported success, so the asset kept its full joint and rigid-body hierarchy and carried no geometry at all. The importer-side fix ships in the 6.1 line (omni_isaac_sim!9476): package:// now resolves through the configured ros_package_paths mapping, falling back to a walk up from the source URDF directory when no mapping is given. uv.lock is deliberately not regenerated. 6.1 is not published to pypi.nvidia.com yet, so the pin has nothing to resolve against and `uv lock` fails.
Collaborator
Author
|
fixed in upstream |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Moves the standalone URDF/MJCF importers from
isaacsim-asset-isolated6.0 to 6.1, the first linewhere merging fixed joints keeps
package://meshes resolvable.Merging fixed joints relocates the URDF into a scratch directory (
/tmp/urdf_import_<robot>_*/),and the 6.0 importer resolved
package://<pkg>/...against that copy. No meshes live there, soevery visual and collision mesh resolved to a missing file while conversion still reported success:
the asset carried its full joint and rigid-body hierarchy and no geometry at all.
The fix is importer-side, in omni_isaac_sim!9476
(nvbug 6606673).
package://now resolves through the configuredros_package_pathsmapping, andfalls back to walking up from the source URDF directory when no mapping is given. Nothing on the
Isaac Lab side has to pass a mapping.
Warning
This PR cannot go green yet. See "Blocked on" below — 6.1 is not published, and the 6.1 wheels
built so far are missing modules they import. It is filed now so the pin move is ready the moment
both clear.
Stacked on
Chained on #7192 (
jichuanh/usd-exchange-3-rc3). The series is cross-fork, so GitHub cannotretarget this PR's base to the parent branch; the diff below is the SHA-pinned equivalent.
03abad3f3b6...f259b941ae6Type of change
Changes
pyproject.toml—isaacsim-asset-isolated>=6.0,<6.1→>=6.1,<6.2.test_source_package_metadata.py— the literal pin assertion mirrors it.source/isaaclab/changelog.d/isaacsim-asset-isolated-6-1.minor.rst— new fragment.uv.lockis deliberately not regenerated. The pin has nothing to resolve against yet:No other pin moves. Every
[tool.uv].override-dependenciesentry stays: theisaacsimextraremains
6.0.1.0, so the overrides that exist to beat its transitive pins (mujoco~=3.11.0,newton-usd-schemas>=0.4.1,typing-extensions,websockets,coverage) are still load-bearing.usd-exchange==3.0.0rc3also stays put — every consumer in the 6.1 chain requires onlyusd-exchange>=2.2.2:isaacsim-asset-isolated6.1.0a60>=2.2.2urdf-usd-converter0.3.2>=2.2.2mujoco-usd-converter0.5.0>=2.2.2The importer config surfaces are unchanged —
urdf/impl/config.pyandmjcf/impl/config.pyarebyte-identical between 6.0.1.0 and 6.1.0a60 — so
UrdfConverterCfg/MjcfConverterCfgneed noadaptation.
Validation
Measured kit-less on
anymal_d_simple_description(18 meshes) against an Isaac Lab checkout thatforwards
cfg.ros_package_pathsunchanged, i.e. with no Isaac Lab-side workaround, so theimporter alone is under test.
merge_fixed_jointsros_package_pathsRow 1 is the defect; the other three were already working and stay working.
The nvbug's own QA step, with no mapping supplied:
Newton Viewer reports Bodies 13, Shapes 55 (visual 38 / collision 17), Joints 13 and the robot
renders fully textured — matching the figures the bug cites for the working case. Zero
could not be parsed/No such file or directorymesh warnings remain.The fix was also confirmed directly against the published wheels: loading
urdf_utils.pyout of thea59 and a60 artifacts and running the relocation shows
package://unresolved on a59 and resolvedto an on-disk path on a60, with and without an explicit mapping.
Blocked on
6.1 is not published. Public PyPI and
pypi.nvidia.comcarry only6.0.1.0for bothisaacsim-asset-isolatedandisaacsim-robot-schema. 6.1 GA is scheduled for 08/25.The 6.1 wheels built so far cannot import.
isaacsim-asset-isolated6.1 stopped shippingmodules its own code imports — from a55 onward on
developand rc7 onward onrelease/6.1,including rc9, the current GA candidate. Last good builds are a54 and rc6.
isaacsim/asset/importer/utils/(10 modules)urdf/impl/converter.py:28,mjcf/impl/converter.py:27isaacsim/asset/transformer/{__init__,extension,manager,models,rule_interface,utils}.pytransformer/rules/extension.py:37A clean install therefore fails at
import isaacsim.asset.importer.urdfwithModuleNotFoundError: No module named 'isaacsim.asset.importer.utils'. Both extensions stillexist in the Isaac Sim source tree, and no other published wheel provides them in importable
form, so this is a packaging gap rather than a refactor Isaac Lab can adapt to. The Kit path is
unaffected — Kit serves
isaacsim.assetfrom its extension roots.Separately,
isaacsim-robot-schema6.1.0a60 ships dist-info only (6.3 KB vs 54 KB at 6.0.1.0,no
usd/schema/isaac/), which makes theMake Robot Schematransformer rule fail duringconversion so the converted asset gets no
IsaacRobotAPI.The validation above was obtained by restoring the missing modules from a54 into the
environment; it exercises the real 6.1 URDF importer, but is not a pure clean-wheel install.
Once fixed 6.1 wheels are published, this needs only
uv lockand a re-run of the table.Checklist
pre-commitchecks with./isaaclab.sh --formatsource/<pkg>/changelog.d/for every touched packageCONTRIBUTORS.mdor my name already exists there