# Calculating absolute roll/pitch/yaw angle of falling objects [duplicate]

This question already has an answer here:

I am wanting to build a device with gyro, accellero, gauss (compass) sensors and barometric sensor.

This device will record all data from the sensors over a period of about 15 minutes where a person is in freefall (jumped from an airplane).

Fall velocity is easy, using the barometer, but I am not sure about the angle.

I want to know the absolute angle along all axises of the person. Due to the acceleration after the jump, decceleration after opening of parachute and (de/a)cceleration due to change in position in freefall and therefore air resistance all the accelerometer forces will constantly change among all axises.

How would I be able to calculate the absolute angle/rotation of the person in 3 dimensions (roll/pitch/yaw).

Right before the jump, the person is in an airplane and full of adrenaline. Because of this combined with tight space and high noise from the engines, I want to prevent having to use calibration on forehand where possible.

## marked as duplicate by Daniel Grillo, PeterJ, uint128_t, Dave Tweed♦May 11 '16 at 21:09

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

• You won't actually be in free fall (in the sense of zero gravity) for anywhere near that long - pretty quickly you will hit the terminal velocity for any given aerodynamic position, and stop accelerating, which means that your accelerometer will have a "down" again, at least until you intentionally or unintentionally change configuration. The only way you get sustained freefall is if you contrive to miss the earth, ie, are in orbit. – Chris Stratton May 12 '16 at 0:24
• Hey Chris, thanks for adding that! Sounds legit, but skydivers, especially ones that try to focus on spead records, do change their vertical velocity a lot by changing their position, as wel as their horizontal velocity. So acceleration is quite random in all directions and changes where their pitch angle is different. Also take into account skydivers using wing suits, that have huge horizontal acceleration changes. – RoyB May 12 '16 at 10:18

## 1 Answer

First, a few assumptions: I'm going to assume you have 3-axis accelerometer and 3-axis gyroscopic sensor (angular velocity sensor) and that all six of those channels are logged at sufficient resolution for the duration of the jump. Further, I'm assuming that it is sufficient to reconstruct the motion after the jump and that we don't necessarily need to calculate anything during the jump.

First, the freefall portion of the jump should be easy to detect with the accelerometer because it would be the portion during which all three accelerometer axes report zero (or very nearly zero). Orienting the values relative to earth can be done by a combination of inferring "up" from the point at which the person is at rest and on the ground after the jump (because it's opposite the direction of the acceleration due to gravity) and inferring horizontal orientation (e.g. "North") from the compass.

Second, the angular velocity (gyroscopic) sensor only senses just that -- angular velocity. So to infer a relative position you would need to multiply by time. To be concrete, if the angular velocity were 360 degrees per second (3600 rpm), after 0.25 seconds the position will have been changed by 360 * 0.25 = 90 degrees. To back that into an absolute position (relative to some arbitrary starting position), you might need to infer that the person is standing upright just before freefall begins and when angular velocity in all three axes are zero.

• I didn't realise that the compass shows the magnetic north in 3 axises. Thats very usefull here. Thanks for your detailed answer! – RoyB May 12 '16 at 10:22