Repository navigation
Hold MuJoCo kinematic roots with welds instead of armature #4893
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
adenzler-nvidia
wants to merge
33
commits into
newton-physics:main
Choose a base branch
from
adenzler-nvidia:adenzler/mujoco-kinematic-weld
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+1,086
−557
Draft
Changes from all commits
Commits
Show all changes
33 commits
Select commit
Hold shift + click to select a range
11bd200
Hold MuJoCo kinematic roots with mocap welds
adenzler-nvidia 2990e4f
Let MuJoCo kinematic roots start dynamic
adenzler-nvidia 7188124
Add MuJoCo kinematic_switchable_roots option
adenzler-nvidia 50aef79
Fold MuJoCo kinematic targets into the state push
adenzler-nvidia a435d0b
Compensate gravity on MuJoCo kinematic roots
adenzler-nvidia 021457b
Harden MuJoCo kinematic welds against edge cases
adenzler-nvidia 0890091
Reject massless MuJoCo kinematic roots
adenzler-nvidia 4e79c0a
Drive massless kinematic roots as MuJoCo mocap bodies
adenzler-nvidia 5036c5e
Merge remote-tracking branch 'upstream/main' into adenzler/mujoco-kin…
adenzler-nvidia ae4c132
Drop the kinematic armature from dampratio resolution
adenzler-nvidia 11cda9c
Document opting MuJoCo roots into kinematic switching
adenzler-nvidia 5bdf634
Remove an accidentally committed example plot
adenzler-nvidia 2c4edd8
Drop gravity compensation on MuJoCo kinematic roots
adenzler-nvidia 91d7b4a
Drop the kinematic_switchable_roots solver option
adenzler-nvidia 4a9f9c3
Reuse Newton FK for MuJoCo kinematic targets
adenzler-nvidia e97000d
Only switch roots that start kinematic in MuJoCo
adenzler-nvidia 6beccd3
Wake MuJoCo worlds when mocap roots move
adenzler-nvidia 85d0eba
Keep the update_data_interval contract for MuJoCo mocaps
adenzler-nvidia 4b0b668
Use an undamped MuJoCo kinematic weld
adenzler-nvidia 883bf9d
Correct MuJoCo kinematic weld stiffness and rationale
adenzler-nvidia 71161b0
Link the MuJoCo kinematic switching example
adenzler-nvidia 1bf655c
Merge remote-tracking branch 'upstream/main' into adenzler/mujoco-kin…
adenzler-nvidia b2f67ba
Copy body flags before mutating them in a weld test
adenzler-nvidia 8107f02
Let any MuJoCo root turn kinematic, deprecated
adenzler-nvidia 6364efa
Lock MuJoCo kinematic roots with stiffness-free welds
adenzler-nvidia fce46d9
Merge remote-tracking branch 'upstream/main' into adenzler/mujoco-kin…
adenzler-nvidia d7030ac
Compute MuJoCo constants with kinematic roots locked
adenzler-nvidia b2cef45
Tidy MuJoCo kinematic root docstring and meaninertia guard
adenzler-nvidia 53521b0
Drop kinematic roots from the zero-mass export fragment
adenzler-nvidia 23a8a95
Clarify what dynamic descendants see of mocap roots
adenzler-nvidia ba33ba5
Keep MuJoCo kinematic welds out of saved MJCF
adenzler-nvidia e52a0a5
Fix MuJoCo state sync for worlds without MuJoCo coordinates
adenzler-nvidia 4440362
Warn only when a MuJoCo root switches to kinematic
adenzler-nvidia File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| Fix `SolverMuJoCo` with `use_mujoco_cpu=True` ignoring fixed-root pose updates from `joint_X_p` and `joint_X_c`, which left MuJoCo colliding against the original pose. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| Raise MuJoCo's compile error in `SolverMuJoCo` for a body with joint DOFs that has no mass or inertia and no rigidly attached body with mass, matching native MuJoCo. This includes kinematic roots and massless links in jointed chains that previously ran only because MuJoCo inferred mass from their shapes; give such bodies a small mass and inertia, or attach them to a massive body with a fixed joint. | ||
| Raise MuJoCo's compile error in `SolverMuJoCo` for a body with joint DOFs that has no mass or inertia and no rigidly attached body with mass, matching native MuJoCo. This includes massless links in jointed chains that previously ran only because MuJoCo inferred mass from their shapes; give such bodies a small mass and inertia, or attach them to a massive body with a fixed joint. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| Change `SolverMuJoCo` to hold kinematic roots with a weld instead of a large internal armature, so they keep their authored `joint_armature` and no longer loosen solver convergence. Every movable root gets an inactive weld so `body_flags` can still switch it at runtime; pass `kinematic_switchable_roots=False` to prepare only roots that are kinematic when the solver is created. Making a non-root body kinematic now raises `ValueError`. Kinematic roots without mass or inertia, which MuJoCo cannot simulate as movable bodies, are driven as mocap bodies like fixed roots and cannot be switched to dynamic. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| Deprecate making a root kinematic in `SolverMuJoCo` that was dynamic in every world when the solver was created. Mark the root kinematic before creating the solver and switch it to dynamic afterwards; `SolverMuJoCo(kinematic_switchable_roots=False)` opts into the future behavior, which no longer prepares other roots. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| Fix `SolverMuJoCo` with sleeping enabled leaving bodies asleep after the fixed root beneath them moved through `joint_X_p` or `joint_X_c`. |
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.