Freefall Detection
Freefall Detection systems are based on accelerometer functionalities, in particular on an acceleration detection of 0g on all the three axes (x, y, z) during the period of the fall of the object, with an accelerometer mounted on it.
The behavior of the three axes during the freefall event is shown in figure below. The acceleration on the three axes is close to 0g and after the fall event the object bounces on the ground and at the end the object stops moving.
The accelerometer will detect the freefall event when the values on the three axes (x, y, z) will be under the value of FF_THRESHOLD [mg] for the time interval FF_DURATION [msec].
Once the Freefall event has been detected, the accelerometer will detect a sort of movement (debounce on the ground) for the FF_DEBOUNCE [sec] duration.
Once the debounce is over, the accelerometer observes the movements of the fallen object for FF_DELAY [sec] time, to make sure that the fallen object is laying on the ground, not moving.
Figure below plots the behaviour of the freefall event, showing all the parameters of the freefall algorithm.
The parameters to be set, for the correct Freefall Detection are:
- Freefall Threshold: is the threshold for the Freefall event to be detected (the value to be set has to be lower that 1g=1000mg). This value determines the amplitude of the Freefall Zone. When the values detected on all the three axes (x, y, z) are below the Freefall Threshold, the algorithm is in the Freefall Zone. This is an absolute value, used for positive and negative accelerations.
- Freefall Duration: is the minimum stay time in the Freefall Zone. This value determines the time interval during which the value of the acceleration on the three axes (x, y, z) has to remain in the Freefall Zone so that the event can be classified as the Freefall event. This parameter is useful to discard all the false Freefall events, triggered by, for example, a rapid movement to which corresponds a very short duration.
- Freefall Debounce: is the maximum duration of the debounce event. This value determines the time interval during which the oscillation of the x, y, z axes of the accelerometer will be wide after the fall of the object, due to the debounce of the object on the ground.
- Freefall Delay: is the minimum duration of the stationary period. This value determines the time period during which the values of the three axes of the accelerometer (x, y, z) will be observed to make sure that the object is still on the ground, without moving.
- Movement Threshold: this value is used to determine whether the object is moving or not. In the Freefall algorithm, his value is used to determine the movement of the object during the Freefall Delay period.
From the physical point of view, an object in Freefall is moving only under the gravitational force and the only acceleration is the gravitational one (g). No other force acts on the object, including the air resistance.
The velocity of an object in freefall is given by the following expression:
where:
- v_0 is the initial velocity [m/sec]
- t is the freefall time [sec]
- g is the freefall acceleration [m/sec2]
If we want to calculate the distance traveled by the object in freefall, we have to consider the expression movement of an object. If the initial movement and the initial velocity are both zero, we have:
$$ s = 0.5 + g t^2 $$
If the initial velocity is not zero, then:
$$ s = v_0 t + 0.5 + g t^2 $$
The distance traveled by the object in freefall is proportional to the time it falls squared.
An object in freefall, that falls from 1m with an initial velocity equal to zero will take 450 msec to fall on the ground.
$$ t = \sqrt{\frac{2s}{g}} $$