Keywords

1 Introduction

Zero-velocity-update (ZUPT) is widely used in the inertial measurement unit (IMU) based pedestrian dead reckoning systems. The inertial sensors error is hard to eliminate, but the error growth of the IMU can be bounded during zero velocity period which reduces the accumulated error effectively. It means that a reliable ZUPT algorithm with few false detection of ZVPs is important for the error remove.

To carry out the zero-velocity detection, some threshold values (for sensor values) must be assigned. Accelerometer and gyroscope are used wildly in zero-velocity (ZV) detection. In paper [5], the ZV detection is only based on accelerometer output which is good for normal walking scenarios, but not for both walking and running. In order to improve the robustness of ZV detection, Paper [7] uses the threshold method that combines the module value of acceleration and its variance for accurate detection. In paper [10], the ZVPs are determined based on accelerometer and gyroscope which obtain much better result than using one of them separately. Paper [6] proposed an adaptive threshold method instead of fixed threshold to ZV detection for detecting ZVPs of different walking speed. A more reliable ZV detector based on Bayesian network inference instead of threshold methods is proposed in [8]. Those methods proposed above have improved the robustness of ZUPT to some extent, but due to the unpredictability of noise interference, the accuracy of ZVPs still cant be guaranteed in all cases. And most methods aim at the ZUPT of foot-mount IMU, which can get more reliable data in the sampling phase and are good for ZV detection. However, this method is very inconvenient in real life. With the development and popularization of smartphones, smartphone based location system has a good prospect. But there will be more noise interference during the sampling process, which makes ZV detection more difficult and more prone to incorrect detection. The method of ZUPT is similar between smartphone and foot mounted IMU. [2, 3] have adopted a threshold method for acceleration to do ZV detection. But they also did not make an analysis of the accuracy of ZVPs. A traditional method of ZUPT was used in our previous work [9]. In this paper, a novel recursive zero-velocity detection (RZVD) approach is proposed for making ZVPs detection more reliable. It tries to improve the robust of ZVPs detection by using a method of adaptive threshold [6] instead of fixed threshold. The vertical velocity after ZUPT is used to judge whether every ZVP detected is correct or not and correct those incorrect ZVPs accordingly.

Fig. 1.
figure 1

System framework

2 Methods

As shown in Fig. 1, there are four steps in our proposed ZUPT system. The data of pedestrian’s vertical acceleration are obtained by using 3-axis acceleration and gravity sensor from smartphone [9]. In step 1, an adaptive threshold is determined by calculating the data [6]. In step 2, the threshold is combined with data for ZV detection. In step 3, Kalman filter is employed in ZUPT to reduce the vertical velocity offset caused by accelerometer drift errors [1]. In step 4, the vertical velocity after ZUPT is used as a feedback to judge whether every ZVP detected in step 2 is right or not, and make appropriate correction to incorrect ZVPs. We repeat step 3–4 until no incorrect ZVP is detected.

2.1 Threshold Determination and Zero-Velocity Detection

According to [4], when the heel-touching-ground event happened, the pedestrian’s center of gravity was at its lowest position and the vertical acceleration reached a maximum with downward direction. When the sole of one foot parallel to the ground, the pedestrian’s center of gravity was at its highest position and the vertical acceleration reached a maximum with upward direction. The vertical velocity during those two moments is zero. Given that the ZV correction mechanism would be carried out in later step, we can use a method with high efficiency instead of high robustness in ZV detection. So we choose the adaptive threshold method [6] to detect ZVPs in every gait cycle. The algorithm is as follows.

Firstly, we use the formula (1) to identify local maximum that is greater than zero and the local minimum that is less than zero respectively.

$$\begin{aligned} \left\{ {\begin{array}{*{20}{c}} {{P_{\max }} = \left\{ {{a_i}|{a_i}> {a_{i + 1}} \cap {a_i}> {a_{i - 1}} \cap {a_i} > 0} \right\} } \\ {{P_{\min }} = \left\{ {{a_i}|{a_i}< {a_{i + 1}} \cap {a_i}< {a_{i - 1}} \cap {a_i} < 0} \right\} } \end{array}} \right. \end{aligned}$$
(1)

where \(a_i\) is \(i^{th}\) vertical acceleration. Then, T1 and T2 are defined in formula (2):

$$\begin{aligned} \left\{ {\begin{array}{*{20}{c}} {{T_1} = \mu \left( {{P_{max}}} \right) + {k_1}\sigma \left( {{P_{max}}} \right) } \\ {{T_2} = \mu \left( {{P_{min}}} \right) + {k_1}\sigma \left( {{P_{min}}} \right) } \end{array}} \right. \end{aligned}$$
(2)

where \(\mu \), \(\theta \) are mean and standard deviation, and \(k_1\) is user-defined constant. Threshold T1 and T2 are used to detect ZVPs. We consider the peaks which are greater than T1(ZVP1) and valleys which are less than T2 (ZVP2) as ZVPs.

2.2 Zero-Velocity Correct

Since the sampling process would suffer from kinds of noise interference, ZVPs detected by the above method may not be real zero-velocity point. As we know, during the actual walking process, the changes in vertical velocity of body is nearly sinusoidal. And each step contains two ZVPs with different types (ZVP1 and ZVP2). According to them, we take the vertical velocity after ZUPT as feedback to judge whether every ZVP is correct or not and correct incorrect ZVPs.

In the vertical velocity after ZUPT, when we detected two consecutive ZVPs with the same type. We use formula (3) (P1 and P2 are ZVP2) or (4) (P1 and P2 are ZVP1) to judge whether this situation is ZVP missed or extra ZVP detected.

$$\begin{aligned} if\max \left( {a\left( {{p_1}:{p_2}} \right) } \right) > {k_2}{\text {*}}{T_1} \end{aligned}$$
(3)
$$\begin{aligned} if\min \left( {a\left( {{p_1}:{p_2}} \right) } \right) < {k_2}{\text {*}}{T_2} \end{aligned}$$
(4)

where \(P_1\) and \(P_2\) are two consecutive ZVPs, and \(k_2\) is a user-defined constant. When the result of formula (3) or (4) is true, we consider it as ZVP-missed happened between two consecutive ZVPs with the same type. It was caused by a too small stride. We set the point with max acceleration from \(P_1\) to \(P_2\) as a ZVP.

When the result of formula (3) or (4) is false, we consider the later one of those two ZVPs is an extra ZVP. When the heel-touching-ground event happened, it requires a certain buffer, a gait cycle might contain two or more peaks during acceleration phase which are greater than T1. The extra ZVP made the result of ZUPT abnormal. So we remove the extra ZVP directly.

Because the changes in vertical velocity of body is nearly sinusoidal during walking process, the vertical velocity of ZVP detected by T1 (ZVP1) should be greater than its previous one and less than its next one. In contrast, the vertical velocity of ZVP detected by T2 (ZVP2) should be less than its previous one and greater than its next one. If the ZVP we detected is inconsistent with the above conditions, we consider it as an incorrect ZVP. Depending on different circumstances, we moving incorrect ZVP to its previous one or next one each time until the ZVPs are all correct.

Fig. 2.
figure 2

The result of zero-velocity detection (Color figure online)

3 Result

We analysed data collected using the accelerometer and Gyroscope embedded in the Google Nexus 5 phone with 25 Hz clock rate. The phone was placed at the waist position. The pedestrian in the experiment is a 24 years old healthy male. He walked on a predetermined route (total length: 37.0 m).The constants mentioned above were defined as k1 = 1/3 and k2 = 0.8 in our experiments. We used ZUPT without correction and ZUPT with correction in our indoor location system respectively. The results of experiments are presented in the following content.

Figure 2 shows the result of ZV detection with adaptive threshold method. Red points are ZVP\(_1\) and green points are ZVP\(_2\).

Fig. 3.
figure 3

(a) ZVP-missed (b) Supplement missing ZVP (Color figure online)

Fig. 4.
figure 4

(a) Extra ZVP in vertical acceleration. (b) The result of ZUPT with extra ZVPs. (c) The result of removing extra ZVPs (Color figure online)

Fig. 5.
figure 5

(a) The result of ZUPT with incorrect ZVPs. (b) The result of ZUPT after correction (Color figure online)

We propose three solutions for different error conditions (ZVP-missed, extra ZVP, ZVP of wrong location) respectively. The effects of those correction methods in our experiments are shown in Figs. 3, 4, and 5.

Fig. 6.
figure 6

(a) The result of ZUPT without correction (b) The result of ZUPT with correction

Table 1. The distance calculated and error rate with different methods.

As shown in Fig. 6, the vertical velocity after original ZUPT contains many incorrect ZVPs, which makes the result of ZUPT is abnormal. Obviously, the velocity of ZUPT with correction is closer to the real changes of pedestrian.

To verify the performance of our proposed method in pedestrian dead reckoning systems. We carried out 4 groups of comparative experiments and the results are shown in Table 1. We can see that, the distance’s precision of our method has greatly improved compared to original ZUPT method.

4 Conclusion

This paper presented an novel RZVD approach for smartphone based pedestrian dead reckoning systems. We use adaptive threshold to detect ZVPs quickly and implement the ZUPT by them. Then we use the result after ZUPT to judge whether every ZVP detected by adaptive threshold [4] is correct or not and correct those incorrect ZVPs. The test of result showed that the method can correct the incorrect ZVPs effectively and ensure the relative high accuracy of ZUPT. It can be effectively used in smartphone based pedestrian dead reckoning systems. Future work will be focused on the improvement of the robustness of this method to make it working in different environment with different walking speed.