I have pitch, roll and heading values from an IMU. I also have 3 axes of acceleration data. I would like to correct the acceleration data for the orientation of the sensor to produce true vertical and horizontal acceleration data.
8 views (last 30 days)
Show older comments
For example I mount the sensor at 60 deg pitch and 20 deg roll. The vertical acceleration would be VertAccel = accelX*cos(60). However I believe I would need to correct for the tilt in roll also? Therefore would it be right that VertAccel1 = AccelX*cos(60) for the first rotation then VertAccel2 = VertAccel1*cos(20). Is that correct? I would then run a loop to correct at all time points thus removing the gravitational component of the signal by subtracting the vertical accel by 9.81 or 1g. If trying to find the horizontal acceleration having corrected for tilt, I believe it only necessary to correct for the tilt in roll. Therefore horizontal accel across the sensor would be MLAccel = AccelY*cos(20). Is another rotation correction required here? Many thanks
0 Comments
Answers (1)
mekg_10
on 6 Mar 2025
Edited: mekg_10
on 6 Mar 2025
An IMU always measures acceleration in the body-axis frame of reference. I am assuming you are trying to get your acceleration in the inertial frame of reference (in this case say ground/earth or any other stationary points which is of interest for you). In this case you'd need something called as a transformation vector to convert your acceleration in body-axis to inertial. This vector will depend on how you've defined your inertial frame of reference (you have the freedom to choose this). If you can show me a picture of your inertial reference frame and body frame, I'd be able to help you out with the equations
Moreover, you can read up on frames of reference in any UG level flight dynamics textbooks
0 Comments
See Also
Categories
Find more on Aerospace Engineering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!