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.
12 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
mekg_10
2025-3-6
编辑:mekg_10
2025-3-6
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Aerospace Engineering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!