Skip to content

Fix flexcomp instability when parent body has non-identity quaternion#3379

Open
devansh0703 wants to merge 1 commit into
google-deepmind:mainfrom
devansh0703:fix/issue-3364-flexcomp-parent-rotation
Open

Fix flexcomp instability when parent body has non-identity quaternion#3379
devansh0703 wants to merge 1 commit into
google-deepmind:mainfrom
devansh0703:fix/issue-3364-flexcomp-parent-rotation

Conversation

@devansh0703

Copy link
Copy Markdown
Contributor

Fast path in mj_flexPassiveInterp, mj_flexPassiveBendInterp, and mj_flexPassiveStretch assumed body slide joints are world-aligned. When parent body has a non-identity quaternion, joint axes are rotated, causing wrong force mapping and instability (NaN/Inf in QACC).

Fix: project world-frame forces onto body's local frame via mju_mulMatTVec3(R_body^T, force) before adding to qfrc_spring/damper.

Fixes #3364

Fast path for elastic/damper forces assumed body slide joints are
world-aligned. When parent body has non-identity quaternion, joint
axes are rotated, causing wrong force mapping and NaN in QACC.

Fix: project world-frame forces onto body's local frame via
mju_mulMatTVec3(R^T, force) before adding to qfrc_spring/damper.
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.

flex unstable,Severe numerical instability (NaN/Inf in QACC) of MuJoCo flexcomp when parent body has non-identity quaternion orientation

1 participant