Skip to content

Convert Newton angular attributes to MuJoCo units - #3518

Open
sylvesterkaczmarek wants to merge 1 commit into
google-deepmind:mainfrom
sylvesterkaczmarek:fix/usd-newton-angular-units
Open

sylvesterkaczmarek wants to merge 1 commit into
google-deepmind:mainfrom
sylvesterkaczmarek:fix/usd-newton-angular-units

Conversation

@sylvesterkaczmarek

Copy link
Copy Markdown
Contributor

Summary

Fix the two angular-unit conversion defects reported in #3472 for the Newton USD schema read path.

Newton authors newton:damping for angular degrees as effort-seconds per degree, while MuJoCo stores angular joint damping per radian. Newton also authors newton:mimicCoef0 in degrees for revolute joints, while MuJoCo's mjEQ_JOINT constant is in radians.

This change:

  • multiplies Newton damping by 180/pi for angular MuJoCo joints
  • converts newton:mimicCoef0 from degrees to radians for USD revolute joints
  • leaves slide-joint and dimensionless values unchanged
  • leaves the deprecated mjc: paths unchanged

Addresses parts 1 and 2 of #3472. The separate newton:mimicEnabled defect is already being handled by #3477.

Validation

  • Based directly on current upstream main (80d1b0d81148e4f85b0260bc0d5f0ca92ca52113).
  • Final branch contains one commit (99b71edb13b25905aa5938dfe6774b31147e35fb) and changes only plugin/usd_decoder/usd_decoder.cc.
  • git diff --check passes.
  • The OpenUSD decoder test environment was not built locally, so no runtime test pass is claimed.

@yuvaltassa

Copy link
Copy Markdown
Collaborator

This LGTM, @havess WDYT?

@havess havess left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@yuvaltassa

Copy link
Copy Markdown
Collaborator

can you try to sync to head? not sure why copybara is failing

@sylvesterkaczmarek

Copy link
Copy Markdown
Contributor Author

Synced the branch onto current main by reapplying the single PR patch on top of the rewritten upstream history. The stable patch-id is unchanged, so the PR still contains only the Newton angular-unit conversion in plugin/usd_decoder/usd_decoder.cc. git diff --check is clean.

@sylvesterkaczmarek
sylvesterkaczmarek force-pushed the fix/usd-newton-angular-units branch from 99b71ed to b49f9f7 Compare September 7, 2026 17:32
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.

3 participants