IsaacLab icon indicating copy to clipboard operation
IsaacLab copied to clipboard

Changes the quat_box_minus implementation and adds quat_box_plus and rigid_body_twist_transform

Open jtigue-bdai opened this issue 8 months ago • 0 comments

Description

  • Changes the quat_box_minus implementation see changes for reference links
  • Adds quat_box_plus and rigid_body_twist_transform methods

Reason for Change

While using quat_box_minus to get angular velocities through finite differences we encountered that the angular velocity contained some unreasonably large values at given points along the trajectory. After some investigation we observed:

  • The problem comes from quat_box_minus yielding unreasonably large axis-angle differences at some points (”outliers”) of the trajectory.
  • Those “outliers” appear when the real part of the difference quaternion (quat_diff = quat_mul(q1, quat_conjugate(q2))) becomes negative ($w < 0$).
  • This happens even when the inputs are standardized with $w≥0$.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

Checklist

  • [x] I have run the pre-commit checks with ./isaaclab.sh --format
  • [x] I have made corresponding changes to the documentation
  • [x] My changes generate no new warnings
  • [x] I have added tests that prove my fix is effective or that my feature works
  • [x] I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • [x] I have added my name to the CONTRIBUTORS.md or my name already exists there

credit to @alopez-bdai

jtigue-bdai avatar Apr 01 '25 18:04 jtigue-bdai