IsaacLab
IsaacLab copied to clipboard
Changes the quat_box_minus implementation and adds quat_box_plus and rigid_body_twist_transform
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_minusyielding 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-commitchecks 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.tomlfile - [x] I have added my name to the
CONTRIBUTORS.mdor my name already exists there
credit to @alopez-bdai