Chapter 3: Inertial Navigation Systems and Sensor Fusion
3.5 Improving Distance Estimates
3.5.1 Stride Detection
The gait cycle of a healthy person is typically divided primarily into stance and swing phases [34], as depicted in the stride example of Figure 3.4 (adapted from [35]).
Figure 3.4: Gait cycle.
In the stance phase, the foot is in contact with the floor. Starting in the mid-stance (MS), the transition to the swing phase involves the foot pushing the body forward while lifting the heel (heel-off - HO) from the floor, until toe-off (TO) occurs. The swing phase starts when the foot is no longer in contact with the floor and swings forward (mid-swing - MSW) until the heel-strike (HS), which marks the end of the swing-phase and the beginning of the stance phase. The opposite foot repeats this sequence of events but out of phase, since when one foot is in HS, the other is in HO.
SD algorithms are mainly characterized in [33] as stance detection or step cycle detection. Stance detection algorithms are typically threshold-based and involve identifying
periods of inactivity in the IMU measurements [36], which correspond to the periods where the foot is planted in the floor. In [37] a general framework is derived to characterize stance detection algorithms, for which the most commonly used methods are the acceleration moving variance, the acceleration magnitude and the angular rate energy. Stance detection is usually accomplished by placing the sensor on the foot.
An example of SD using the acceleration moving variance is implemented in [38], where the IMU is attached to the foot. The magnitude of the acceleration is computed for every sample, while the acceleration variance is computed for a window of 15 samples at 100 Hz. The thresholds are chosen empirically and are applied to the acceleration variance.
Variances above 2 m/s2 identify the swing phase and variances below 1 m/s2 identify the
stance phase. A step is detected when the swing phase ends and the stance phase starts. The reported percentage of error is 0.1 % of the real number of steps.
The gyroscope based algorithm from [39] using a foot-mounted IMU is also implemented and tested in [38]. The magnitude of the gyroscope measurements is computed for every sample and the resulting signal is filtered in order to avoid small fluctuations. An empirical threshold value of 1 rad/s was used, reporting a percentage of error of 0.2 % of the real number of steps. An algorithm using the magnetometer is also implemented in [38], which high-pass filters the magnetometer signal before applying the same procedure for the gyroscope signal. The threshold value for the magnetometer algorithm is not provided. The percentage of errors reported is 0.94 %.
The work in [40] uses the pitch angle of a sensor placed in the trousers’ pocket. The pitch angle is obtained from an orientation estimation method using UKF, applied to accelerometer, gyroscope and magnetometer measurements. A simple fixed threshold is used for peak detection of the pitch angle, which according to the authors does not vary with the user’s velocity. In a challenging test including stairs, an acceleration magnitude algorithm detected 87 % of the steps, while the authors’ proposed method detected all steps.
Stride cycle detection involves searching the sensor data for patterns that identify one or a subset of the events depicted in Figure 3.4, typically resorting to peak detection and zero crossing. Spectral analysis, template matching and autocorrelation can also be applied, with added computational complexity [41]. Event detection is implemented in [34] using accelerometer signals, by searching the measurements for a specific order of the events during a normal step, with the sequence being: opposite foot strike, TO, initial swing, terminal swing
and foot strike. Although author reports errors in the order of 10 % of the distance travelled, no report is given about the accuracy of the SD algorithm.
Authors in [42] look for parameters in the gyroscope measurements that conform to a trend signal that is typical for the gyroscope output when placed in the foot. These parameters are then seen as events that are fed to a finite state machine. After applying filtering, a SD accuracy of 100 % is reported, in the form of detected ZVU intervals.
The accelerometer can be placed in the waist in order to detect hip movements while walking [43]. Slope changes in the averaged vertical acceleration axis indicate a step. To improve the step-counting accuracy, the slope changes or peaks should be detected at appropriate times, during a time window of approximately ±15 %, since the step frequency has a tendency to maintain within these limits during steady state walking. Authors in [17] also use a hip mounted accelerometer and apply the threshold to the acceleration energy instead of the acceleration variance. In [44] authors place an accelerometer in the ankle to detect the swing phase and the heel touch down of the step. Multiple thresholds are applied to detect each event, with a SD accuracy of 99 %.
Under steady walking, both stance and step cycle detection present good SD accuracy values, near 100 %. Issues arise when the user is not steadily walking, during very slow motion (e.g., slowly walking in a waiting line), while turning, sidestepping or walking intermittently, or when SD is used in irregular floors, stairs and access ramps. The signal patterns change under these conditions, giving rise to missed steps. Also, SD applied to mobility-impaired persons can report errors as high as 29 % [33]. When a person steps onto elevators, escalators or moving walkways, step data is either absent or highly biased from external motions.