Skip to content

Preserve inertial semantics when decoding USD - #3400

Open
LouRohanNV wants to merge 3 commits into
google-deepmind:mainfrom
LouRohanNV:roundtrip-pr/usd-decoder-inertial-geoms
Open

Preserve inertial semantics when decoding USD#3400
LouRohanNV wants to merge 3 commits into
google-deepmind:mainfrom
LouRohanNV:roundtrip-pr/usd-decoder-inertial-geoms

Conversation

@LouRohanNV

Copy link
Copy Markdown
Contributor

Summary

This PR preserves MuJoCo inertial semantics during USD decode:

  • If UsdPhysicsMassAPI authors both mass and diagonal inertia on a body, mark the decoded body inertial as explicit.
  • Decode UsdPhysicsMassAPI mass/density on visual UsdGeomGprim geoms as well as colliders.
  • Treat visual-only MjcImageableAPI geoms with no authored mass or density as density=0, so they do not inherit MuJoCo default density and alter inferred body inertias.

Fixes #3399

Why

MuJoCo roundtrip validation showed that visual-only meshes could accidentally gain mass during USD import, and explicit inertials could be lost during compilation. Both affect sampled dynamics.

USD / non-USD impact

The change is contained to plugin/usd_decoder, which is only built when MUJOCO_WITH_USD=ON.

Validation

Roundtrip evidence:

  • Franka hand/finger mass and inertia match after preserving explicit inertials.
  • UMI gripper no longer gains mass from visual-only mesh geoms after defaulting massless MjcImageableAPI geoms to density=0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

USD decoder can change inferred mass/inertia for explicit body inertials and visual-only geoms

2 participants