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.

5 views (last 30 days)
Jonathan Williams
Jonathan Williams on 6 Oct 2017
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

Answers (0)


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by