This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).

In pedestrian navigation systems, the position of a pedestrian is computed using an inertial navigation algorithm. In the algorithm, the zero velocity updating plays an important role, where zero velocity intervals are detected and the velocity error is reset. To use the zero velocity updating, it is necessary to detect zero velocity intervals reliably. A new zero detection algorithm is proposed in the paper, where only one gyroscope value is used. A Markov model is constructed using segmentation of gyroscope outputs instead of using gyroscope outputs directly, which makes the zero velocity detection more reliable.

A pedestrian or personal navigation system provides position information about a person indoors or outdoors. For example, if a firefighter carrying a personal navigation system is injured in the line of duty, we can know her/his position from the information transmitted by a pedestrian navigation system. Pedestrian navigation systems using inertial sensors are proposed in [

There are many different pedestrian navigation systems using inertial sensors. They use similar inertial navigation algorithms to compute the position [

Slightly different zero detection algorithms are used in [

To use the zero velocity algorithms in [

In this paper, we propose a new zero velocity detection algorithm using a hidden Markov model [

In inertial sensor-based pedestrian navigation systems, inertial sensors are installed on a shoe, as can be seen in

In this section, we introduce a hidden Markov model for the zero velocity detection. The walking states are modeled as a finite state machine (see _{i}_{i}_{k}_{i}

The segmentation of _{i}_{i}_{i}

If _{i}_{j}_{j}_{i}_{i}_{i}

A segmentation example of is given in _{1}=_{2}=_{3}=3. Since six consecutive _{i}_{i}_{3} = 3), they form the first segment. We will use _{k} (_{k} =_{i}_{i}_{1}=3. Similarly, the second segment is _{2}=1. Also note that some _{i}_{8} and _{9} do not belong to any segments and these values are ignored.

In _{k}_{k}_{1} = 2, _{1} = 7, _{2} =10 and _{2} =15.

We will identify each segment using the finite state hidden Markov model. We assume that there is a Markov process _{k}_{k}_{k}_{k}_{k}_{k}

From experimental results, we determined the state transition probability as in _{k}

From

The determination of

However, we found that some states are missing during walking and running. A person walked or ran 30 steps and we examined _{k}_{k}_{k}

From

- State 1 is sometimes missing (in particular, when a person is running)

- State 2 and 3 are not missing

- State 4 is sometimes missing (in particular, when a person is running).

Thus we modified _{1} to allow the following state transitions: 1→2→3→1 (state 4 is missing), 1→2→3→4→2 (state 1 is missing), and 1→2→3→2 (state 1 and 4 are missing):

If we choose large _{1} (for example _{1}= 0.9 and _{2}= 0.1), it tends to estimate the transition 1→2→3→4 (normal cycle) as 1→2→3→2 (state 1 and 4 are missing). On the other hand, if we choose small _{1} (for example, _{1} = 0.1 and _{2} = 0.9), it tends to estimate the transition 1→2→3→2 (state 1 and 4 are missing) as 1→2→3→4 (normal cycle). If difference between _{1} and _{2} is not large, the estimation results are similar.

Finally, we added small values for most transitions to allow unusual transitions. For example, when a person is standing and idly moving foot, unusual transitions (such as 2→1) could happen.

We have explained guidelines of how

If the output _{k}_{k}_{K}_{k}_{k}_{k}_{k}_{k}

In this paper, we use the following

Once _{k}_{k}_{k|k+l}^{4×1} be a probability vector whose _{k}_{1,}⋯,_{k+l}_{k}_{k}_{k}_{k}_{k}

After _{k}_{i}_{3} with anti-chattering algorithm and

The |_{i}_{3} condition is used as a safeguard to prevent false identification of the zero velocity interval.

Case 1 corresponds to the normal walking cycles, where the state transition is 3→4→1→2 (see _{1} and _{1} are used to discard time intervals near edges of the interval whose state is 1:

Since a foot is moving before and after state 1, the foot velocity cannot be zero in the edge regions. Thus we cut 10% (corresponding to 0.1) off the interval at both edges. If we choose larger values (for example, 0.2), the chance that a non-zero velocity interval is mistakenly identified as a zero velocity interval is reduced. However, we could obtain narrower zero velocity intervals, which is not desirable.

Case 2 and 3 correspond to walking or running cycles, where state 1 and/or state 4 are missing. Case 2 is when state 1 is missing. This could happen if the zero velocity interval is too short to form a segment. For example, state 1 is missing in _{k}_{k}

We manually inspected the data and found the average duration ratio of each state is given as follows:

The ratio was computed from a weighted average of walking (weighting 0.1) and running (weighting 0.9) data. More weighting was given to running since missing states (like in case 2 and 3) are more likely to happen in running.

In case 2, the state 1 is missing. We assume the interval of missing state 1 is (_{k}_{–1}+_{k},s_{k}_{k}_{–1} and _{k}_{2} and _{2} as follows (see

In other words, the interval [_{k}_{–1}, _{k}_{k}_{−1},_{k}_{−1}+_{2}] and [_{k}_{−1} +_{2},_{k}

Case 3 is when state 4 and 1 are missing. In this case, interval [_{k}_{–1}, _{k}_{3} and _{3} as follows:

When the interval [_{k}_{–1}+_{j}_{k}_{–1}−_{j}_{i}_{k}_{–1}+_{j}_{k}_{–1}−_{j}_{i}|_{3}_{i}_{3}, _{k−1} + β_{j},_{k−1}−γ_{j}]}. If the set

In this section, the proposed method is verified using experiment data, which are obtained from an inertial sensor unit (Xsens Mti) attached on a shoe. The sampling rate is 100 Hz. In

The parameters _{j}_{j}_{2} value, it becomes sensitive to noises so that states 2/3/4 could be falsely identified. On the other hand, if we use larger _{2} value, states 2/3/4 could be lost. The parameter _{j}_{j}_{2} has a similar effect of using smaller _{2} in the sense that state 2/3/4 could be falsely identified.

As a reference, zero velocity interval is determined by manually analyzing gyroscope data. When data are analyzed manually from the plot, the sensor noises and irregularities can be easily spotted and thus we can consider the detected interval as a true zero velocity interval.

The result is given in

In

To compare performance of each method quantitatively, a person walked or ran 30 steps at different speed. Since there is one zero velocity interval in each step, 30 zero velocity intervals should be detected. The number of detected zero velocity intervals by different methods is given in

We also investigated whether there is false zero velocity detection (an interval is identified as a zero velocity interval while a foot is not in the zero velocity interval). The result is given in

In this paper, we have proposed a new zero velocity detection algorithm, which can be used in inertial sensor based pedestrian navigation systems.

Existing zero detection methods usually work well for normal walking cycles, but the detection is not reliable for running cycles, in particular when the running speed is high. Using a hidden Markov model, the proposed algorithm can analyze both walking and running cycles and the zero velocity interval is thus more reliably detected.

The actual state transition probabilities differ depending on speed of a person. In this paper, we used one averaged transition probability. It is a future work to derive a zero velocity detection algorithm that uses multiple state transition probability matrices.

This work was supported by National Research Foundation of Korea Grant funded by the Korean Government (No. 2010-0016230).

Inertial sensors for the pedestrian navigation system.

The y-axis gyroscope output in walking.

Hidden Markov model based on segmentation of _{i}

The region classification.

Example of a segmentation.

State transition example of normal walking cycles.

The state transition diagram.

Case 2: state 1 is missing.

Average duration ratio of each state by manual inspection and its use in Case 2 and 3.

Zero velocity interval selection.

Sensor outputs when a person is walking(23∼27 s) and slowly running(27∼32 s).

Zero velocity detection comparison when a person is walking and slowly running (Z. V. I. means zero velocity interval).

Sensor outputs when a person is running slowly(25∼30s) and running fast(30∼34 s).

Zero velocity detection comparison when a person is running slowly and running fast(Z. V. I. means zero velocity interval).

Missing states during walking and running (30 steps test for each trial).

| |||||||
---|---|---|---|---|---|---|---|

0 | 0 | 0 | 20 | 28 | 14 | 34.4 | |

0 | 0 | 0 | 0 | 0 | 0 | 0.0 | |

0 | 0 | 0 | 0 | 0 | 0 | 0.0 | |

0 | 0 | 0 | 13 | 14 | 3 | 16.7 |

Number of detected zero velocity intervals by different methods (actual number of zero velocity interval is 30).

| |||||||
---|---|---|---|---|---|---|---|

1st | 1.3 | 28 | 30 | 30 | 30 | 30 | |

2nd | 1.4 | 22 | 29 | 30 | 30 | 30 | |

3rd | 1.4 | 28 | 30 | 30 | 30 | 30 | |

| |||||||

1st | 2.4 | 0 | 2 | 30 | 10 | 30 | |

2nd | 2.8 | 0 | 1 | 30 | 1 | 30 | |

3rd | 2.5 | 0 | 0 | 30 | 16 | 30 |

Number of falsely detected zero velocity intervals by different methods.

| |||||||
---|---|---|---|---|---|---|---|

1st | 1.3 | 0 | 0 | 5 | 0 | 0 | |

2nd | 1.4 | 0 | 0 | 1 | 0 | 0 | |

3rd | 1.4 | 0 | 0 | 1 | 0 | 0 | |

| |||||||

1st | 2.4 | 0 | 0 | 0 | 0 | 0 | |

2nd | 2.8 | 0 | 0 | 0 | 0 | 0 | |

3rd | 2.5 | 0 | 0 | 3 | 0 | 0 |