Electrical – Calculating absolute roll/pitch/yaw angle of falling objects


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.

Best 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.