Skip to content

Fix IMU linear acceleration frame differentiation - #769

Open
sylvesterkaczmarek wants to merge 4 commits into
isaac-sim:mainfrom
sylvesterkaczmarek:fix/imu-world-frame-differentiation
Open

Fix IMU linear acceleration frame differentiation#769
sylvesterkaczmarek wants to merge 4 commits into
isaac-sim:mainfrom
sylvesterkaczmarek:fix/imu-world-frame-differentiation

Conversation

@sylvesterkaczmarek

Copy link
Copy Markdown

Description

Fix IMU linear acceleration for rigid bodies that rotate while translating.

Both the current experimental implementation and the deprecated IMU implementation rotated world-frame linear velocity into the sensor frame before finite differencing it. Because the sensor frame changes while the body rotates, differencing those rotating-frame components produces incorrect apparent acceleration.

The fix keeps linear velocity in the inertial world frame through the finite-difference/filter step, then rotates the resulting acceleration into the current sensor frame. Angular velocity and orientation handling are unchanged.

This PR addresses only the confirmed differentiation-frame bug from #735; the separate COM/lever-arm enhancement mentioned there is out of scope.

Validation

  • adds a regression test with constant world-frame linear velocity and simultaneous angular velocity
  • true inertial linear acceleration in that case is zero
  • current and deprecated implementations are updated consistently
  • new Python regression test passes py_compile
  • patch passes git diff --check

Fixes #735.

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.

IMU linear acceleration is differentiated in the rotating body frame, dropping the omega x v transport term

1 participant