1. Introduction
The global navigation satellite system (GNSS) is a basic pedestrian positioning method. However, in urban canyons and indoor environments, GNSS positioning systems cannot be used due to signal attenuation and interference. The indoor pedestrian positioning system is a good complement to the GNSS positioning system. Many scholars proposed different methods for indoor pedestrian positioning systems, which mainly can be classified into two categories: infrastructure-based and infrastructure-less systems. Infrastructure-based positioning systems mainly use radio-frequency identification (RFID) [
1], ultra-wide band (UWB) [
2], Wi-Fi [
3], orthogonal frequency division multiplexing (OFDM) signal [
4,
5], etc. These methods usually require pre-installation of the infrastructures in a given environment, which is costly and has limited application range. However, there are many kinds of applications which are hard to pre-install in certain infrastructures, e.g., in dangerous or collapsed buildings, emergency situations, etc. The infrastructure-less systems mainly use inertial measurement units (IMUs), barometers, pressure sensors, etc. These methods do not need to be pre-installed in any infrastructure, and can be widely used in an unknown environment. Among all the methods, the foot-mounted IMU has a wide range of applications, due to its independence from pre-installed infrastructures [
6], and can be used to independently implement pedestrian positioning.
Since the IMU cannot obtain the geographic heading independently, initial heading calibration is necessary for the foot-mounted IMU system. As the IMU always suffers from drift, the position, velocity, and heading errors of the foot-mounted IMU grow with time. The zero-velocity updates (ZUPT) is a commonly used method to constrain the divergence of the inertial recursive positioning result. It assumes that, during walking, the foot touches the ground and remains stationary for a short time (stance phase) [
7]. However, when pedestrians undergo various movements, most ZUPT methods usually cannot effectively detect the stationary period. Meanwhile, the heading error during pedestrian movement is unobservable for the ZUPT method [
8]; thus, the ZUPT-assisted extended Kalman filter (EKF) algorithm is less restrictive for the heading, which means the heading will still diverge with time.
In pedestrian navigation systems, the initial heading is vital for the inertial based PDR system. If the initial heading cannot be effectively calibrated, the whole pedestrian positioning trajectory will be offset from the true trajectory. At present, most methods only use the information of the starting point (including geographic direction, geomagnetic heading, etc.) to achieve initial alignment of the PDR system. However, the direction of the pedestrian’s foot usually does not exactly coincide with the geographic heading of the starting point. Moreover, the geomagnetic heading is always subjected to interference, especially when only using the starting point’s geomagnetic heading. For example, Nilsson et al. [
9] proposed an IMU initial alignment algorithm based on accelerometers and magnetometers. Nevertheless, local magnetic distortions may still corrupt the estimated heading, and the alignment accuracy can be further decreased by magnetic interference. Xing et al. [
10] proposed the rotation modulation technique at the initial stage, which is an option for initial alignment of the IMU; however, a rotating platform is needed, and the initial alignment time is too lengthy.
The detection of the stance phase is a key step of the ZUPT method, and many detection methods were developed [
11,
12,
13,
14]. Commonly used detection methods include the acceleration magnitude method [
15], the angular velocity magnitude method [
16,
17,
18,
19], the moving variance method [
20], or a combination of the above methods [
21,
22,
23]. In addition, there are some other methods, such as, in Reference [
14], where the zero-speed interval was determined based on a likelihood ratio test (LRT) detector. The detector provides good performance at low gait speeds (approximately 0.83 m/s). In Reference [
11], a segmentation based on the gyro output was used to construct a hidden Markov model-based algorithm. The algorithm exhibited good reliability under walking and running conditions. However, the state transition model was complex and difficult to implement. In Reference [
12], a standing phase detector consisting of a foot detector and two zero-speed detectors was proposed. The detector could successfully detect zero-speed during walking, climbing stairs, and running. However, when pedestrians alternated between walking and running, the detectors were easily confused. Most of these methods above have a common characteristic, whereby the stationary phase detection is based on setting a threshold, by comparing the detector with the threshold to determine whether the current moment is in the stationary phase or in the dynamic pedestrian gait. These methods have a significant advantage when the pedestrian exhibits a single motion, which means the magnitude of the stationary phase detector is basically kept within a stable range. However, in the case of movement including walking, running, going upstairs and downstairs, etc., the zero-speed detection threshold fluctuates greatly with the movement condition, and there cannot be a universally applicable threshold that can effectively detect the stationary phase under various pedestrian movements.
As pointed out in Reference [
8], another main drawback of the existing foot-mounted PDR system is the systematic heading drift. The ZUPT-aided EKF algorithm is less restrictive for the heading. The estimated trajectories drift away from the actual path as time progresses. Hence, many scholars conducted in-depth studies. Zero-angular rate update (ZARU) is a technique that can help to estimate the bias of the gyroscope in every still phase [
21]. However, during the stance phases, there are systematic motions and residual angular rates that exist while walking [
8]. The ZARU normally does not really happen, except when the user/pedestrian has a stable stance position for a long period of time. False ZARU can harm the heading estimation of the system severely [
24]. Jiménez et al. [
21] proposed a technique called heuristic drift reduction (HDR) to reduce the heading error, based on the fact that most walls and corridors inside buildings are made up of straight lines, using only four or eight dominant directions as the reference directions. The HDR algorithm is suitable for pedestrians walking along the dominant directions; however, sometimes, pedestrians do not always walk along the dominant directions. Hong et al. [
25] adopted a geomagnetic correction algorithm to correct the heading angle by taking the difference of courses computed by the magnetometer and attitude matrix as a measurement. Afzal [
26] estimated the heading error by capturing changes in the magnetic field measured by magnetometers in the pedestrian’s stationary state. Since the magnetometer suffers more perturbations in indoor environments, the reliability of its computed heading angle cannot be guaranteed. Skog [
27] proposed that, during the dynamic pedestrian gait, another important observation to be made is that the drifts obtained are symmetrical. These errors are large-scale manifestations of modeling errors in the system. One possible way these errors can be mitigated is to use a foot-mounted inertial navigation system (INS) on both feet, since there is limit on the separation between the two feet equipped with a ZUPT-aided INS. Thus, the symmetrical modeling heading errors can be canceled out.
Based on the analysis of the current foot-mounted PDR system, in order to improve its robustness, in this paper, we make three contributions.
Firstly, in order to constrain the initial heading error, a new method to calibrate the PDR system’s initial absolute heading is proposed, which is based on geometric methods. The purpose of the initial calibration is to rotate the test trajectory with the actual one. Since the plane trajectory is two-dimensional, a more straightforward method is to directly align a part of the trajectory with its actual trajectory at the initial stage; then, the entire trajectory can be calibrated. The principle of the foot-mounted IMU system is that the increment (including position increment, velocity increment, and attitude increment) is obtained by the IMU measurement. Then, the navigation information can be calculated by the sum of the initial value and the increment. It is assumed that the pedestrian’s initial state is standing at one point; thus, the initial velocity value is zero. The initial position can be obtained by GNSS or set to zero. The difficulty for a foot-mounted IMU system is the determining the initial heading. In this paper, at the initial stage, the heading of the initial point is set to 0; after that, the pedestrian walks along a known line. Then, the test trajectory of this line is obtained by the foot-mounted IMU system, directly rotating the test track to coincide with the known line, i.e., the calibration of the entire trajectory is completed. To calibrate the PDR system, we used the difference between the estimated heading and true heading of the known line.
Secondly, a novel stationary phase detection method is proposed to improve the effect of the stationary phase detection in the dynamic pedestrian gait. The current zero-speed detection method is mainly based on the principle of threshold comparison. The main drawback is that the zero-speed detection threshold fluctuates greatly with the movement condition, and there is no universally applicable threshold that can effectively detect the stationary phase under various pedestrian movements. In an experiment, we found that the zero-speed points in each gait cycle always occur around the minimum value of the zero-speed interval detector. Base on that rule, we use the periodic gait-cycle window to divide the pedestrian movement into discrete gait cycles; then, we take the minimum value in each gait cycle as the zero-speed state point. Compared to the existing methods, the proposed method does not need to set the zero-speed detection threshold, and performs well for zero-speed interval detection under various pedestrian movements.
Thirdly, despite having an initial heading calibration phase, the heading drift is a poorly observable variable for the ZUPT-aided PDR method; thus, the systematic heading still drifts over time. In order to reduce the heading drift during pedestrian movement, we exploit a new motion constraint method based on the range constraint principle. During the pedestrian movement, the distance between the foot position estimates of the current moment and the previous stance instance is within the maximum stride length. Once the distance is greater than the maximum stride length, the constraint method is used to confine the current estimated foot position to the sphere of the maximum stride length relative to the previous stance foot position.
The layout of this paper is as follows: in
Section 2, we describe the new method to calibrate the PDR system’s initial absolute heading.
Section 3 explains the novel stationary phase detection method. In
Section 4, we present the use of the proposed range constraint method to suppress the heading drifts during the pedestrian movement. In
Section 5, the three proposed methods in this paper are analyzed in detail, and compared with the existing methods, where the effectiveness of the proposed methods is shown. At last, in
Section 6, we conclude this paper’s work and offer some future research suggestions.
2. Using a Calibration Line to Calibrate the PDR System’s Initial Heading
The proposed method to calibrate the PDR system’s initial absolute heading is based on the geometric method which mainly involves using a calibration line rather than the heading of the starting point. As shown in
Figure 1, the coordinates of the start and end points of the calibration line are already known (obtained by DGNSS (differential global navigation satellite system), whose positioning accuracy is within a centimeter). Therefore, the true heading of the calibration line can be obtained, which can be denoted as
. In order to calibrate the initial heading of the inertial-based PDR system, the pedestrian needs to walk along the calibration line (the length of the calibration line is generally 5–10 m) at the beginning; then, the test coordinates of the start and end points of the calibration line can be obtained using the PDR system. Using the test coordinate difference of the start and end points of the line, the estimated heading of the line can be obtained, which can be denoted as
. Hence, the initial heading bias of the PDR system relative to the true heading (the heading of the calibration line) is
. With the heading bias, the initial absolute heading of the PDR system can be calibrated correctly.
The method to calibrate the PDR system’s initial absolute heading is shown in Algorithm 1.
Algorithm 1: The Algorithm to Calibrate the PDR System’s Initial Absolute Heading |
Initiate: at time : the initial heading of the inertial-based foot-mounted PDR system : the initial position of the inertial-based foot-mounted PDR system Input: and : the start and end points of the calibration line obtained by DGNSS : the absolute heading of the calibration line computed from the coordinate difference of and |
Output:: the initial heading bias of the inertial-based foot-mounted PDR system |
Step 1: Get the test coordinates of the start and end points of the calibration line When the pedestrian (aided by the inertial-based PDR system) walks along the calibration line, all the coordinates of the line can be obtained, including the start point and end point . Step 2: Get the test heading of the calibration line () Using the test coordinates of the start and end points, the test heading of the calibration line can be obtained. The computing equation is shown in Equation (1). Step 3: Get the initial heading bias of the foot-mounted PDR system () Using and of the calibration line, the initial heading bias of the PDR system can be computed: . |
Another method to calibrate the initial heading of PDR system is using the average test heading of the calibration line. The method described above only uses the test coordinates of start and end points of the calibration line. However, when the pedestrian moves along the calibration line, all the test coordinates of the line (each time the foot touches the ground) can be obtained by the ZUPT-aided PDR system. Thus, the heading between each pair of adjacent points can be computed using Equation (1). Then, averaging all the headings of the adjacent points, the test heading of the line can also be obtained, as shown in
Figure 2.
In
Figure 2, the true heading of the calibration line can be computed from the coordinate difference of the start and end points (red points in
Figure 2, which are obtained by DGNSS). Point 1, Point 2, …, Point N are all the test points obtained by the PDR system when the pedestrian moves along the calibration line. The heading between each pair of adjacent points can be obtained using Equation (1) as follows:
where
and
are the coordinate differences of the adjacent points. The range of the heading is within
. Then, the average heading of the adjacent points can be obtained as follows:
where
N is the number of the points, and
is the heading of adjacent points. Hence, the test heading of the calibration line is
. In theory,
may average some deviation headings (see
Figure 2, the headings of Point 1 to Point 2 and Point 2 to Point 3 deviate from the actual walking direction). Thus, the heading
is less realistic in representing the heading of the calibration line.
By comparing the test heading of the calibration line with the true heading, the initial heading bias of the PDR system can be computed as follows:
Using the heading bias , the initial absolute heading of the PDR system can be calibrated correctly. The proposed two methods above are compared with two existing methods: (1) directly using the absolute geographical heading of the start point to initialize the heading of the PDR system, and (2) using the geomagnetic field to initialize the PDR system. The effectiveness of the proposed method is shown in the experimental evaluation section of the paper.
3. The Novel Stationary Phase Detection Method
The use of IMU sensors to obtain high precision of human motion positioning is challenging because it is largely affected by the drift of the IMU sensors. Fortunately, the human foot gait includes two stages: standing and swinging [
28]. This can be used to estimate the impact of IMU drift. In the standing stage, human feet stand at the ground; therefore, their actual speed is close to zero. If the IMU’s foot speed at this stage is different from zero, it must be due to an error caused by the IMU drift. Then, we can apply the ZUPT algorithm to reduce the drift of the IMU and improve the accuracy of the positioning. Therefore, the accuracy of the standing phase detection is crucial for achieving higher human foot positioning accuracy.
3.1. Gait Characteristics Analysis
The pedestrian navigation shoe based on a self-contained sensor is shown in
Figure 3, where all of the sensors are integrated in a structure to constitute an IMU, which includes a three-axis accelerometer and three-axis gyroscope. The IMU is fixed on the foot surface. When the pedestrian starts walking, the IMU constantly measures the acceleration and the angular rate of foot motion.
The pedestrian gait cycle shown in
Figure 4 is obtained using the navigation shoe to collect the inertial parameters of a pedestrian’s foot motion during movement.
Figure 4a stands for the
z-axis accelerometer output, which denotes the most varied acceleration, and
Figure 4b represents the
y-axis gyroscope output, which is the dominant rotation axis during movement.
Figure 4a,b have two pedestrian gait cycles of the same period. The first gait cycle is divided into four stages, which are P1, stance, P2, and swing. P1 stage stands for the process from the heel striking the ground to the front sole striking the ground. Stance stage is the front sole contacting the ground completely, during which the sensors’ outputs are approximately constant. The
y-axis gyroscope output is not exactly zero, as there are systematic motions and residual angular rates existing [
8]. The accelerometer output is approximately the gravitational acceleration. Due to the way the IMU is mounted (see
Figure 3), the
z-axis of the IMU does not exactly coincide with the gravity axis; thus, the component of the
z-axis is not exactly equal to gravitational acceleration. This period is also called the zero-velocity interval, which is the most important stage, by detecting the periodic zero-velocity interval during pedestrian movement, the ZUPT algorithm can effectively reduce the drift of the IMU and improve the accuracy of the navigation shoe’s positioning. After the stance stage, the lift foot stage (P2) starts from the heel of the foot lifting off the ground to the moment of the toe. After that, the foot lifts off the ground, the leg begins to swing, and the body moves forward, which is the swing stage. After the swing phase, the heel of the foot strikes the ground again, which marks the beginning of another gait cycle.
3.2. Analysis of the Existing Stationary Phase Detection Method
The majority of zero-velocity detection methods employ comparisons between thresholds and the magnitude of acceleration, moving variance of acceleration, magnitude of angular rate, or their combinations. The primary limitation of these methods is that the variations in acceleration and angular rate differ greatly under various movement modes, such as walking, running, stair-climbing, etc. Thus, it is difficult to find a threshold function or threshold value that is widely applicable. We demonstrate this in
Figure 5 and
Figure 6.
The general likelihood ratio test (GLRT) method [
14], which is the most commonly used method to detect the zero-velocity interval, is employed in
Figure 5 and
Figure 6. It uses the output of both the accelerometers and gyroscopes during the pedestrian movement. Therefore, its zero-velocity interval detection result is better than other algorithms based on threshold comparison. By using this method, the constructed zero-velocity interval detector
T can be denoted as follows:
where
and
denote the specific force vector and angular rate vector, respectively.
and
denote the variance of the measurement noise of the accelerometers and gyroscopes, respectively. Furthermore,
, where
denotes the transpose operator. Moreover,
denotes the sample mean, i.e.,
The principle of the GLRT method is that, by comparing the magnitudes of detector T in Equation (4) with a threshold, it can determine whether the current moment is in the zero-velocity interval.
In
Figure 5 and
Figure 6, the red line represents the stationary state and moving state, where large values indicate the zero-velocity points and small values indicate the moving state.
Figure 5 shows the zero-velocity interval detection result of movement containing both normal walking and ascending stairs. As we can see, although the threshold of the GLRT detector performs well during normal walking, when the pedestrian ascends stairs, the threshold fails to detect the zero-velocity interval during this period (near Sample 7500 and Sample 8500 in
Figure 5).
Figure 6 shows the zero-velocity interval detection result of movement containing both normal walking and running. Similarly, the threshold of GLRT detector performs well during normal walking, while it fails during the running period (between Sample 4000 and Sample 5000 in
Figure 6).
In addition, in the literature [
29,
30], some adaptive threshold zero-velocity interval detection algorithms were proposed. The basic detection principle is the same as the GLRT method, which mainly involves constructing the zero-speed interval detector and comparing the detector with the threshold value to determine whether the current moment is in the zero-velocity interval. However, these algorithms can adaptively change the detection threshold using the established approximation relationship between the motion characteristics and the threshold. However, the effect of this method is not obvious for the random motion generated during actual movement. At the same time, the adaptive model algorithm is not universally applicable to different people.
3.3. Novel Stationary Phase Detection Method Based on Foot Motion Periodicity
In
Section 3.1 we pointed out that pedestrian footsteps are periodically moving; by detecting the periodic zero-velocity interval during pedestrian movement, the ZUPT algorithm can effectively reduce the drift of the IMU and improve the accuracy of the navigation shoe’s positioning. However, as shown in
Section 3.2 the primary limitation of the existing stationary phase detection method is that the variations in acceleration and angular rate differ greatly under different motion modes, such as walking, running, stair-climbing, etc. Thus, it is difficult to find a threshold function or threshold value that is widely applicable. In this section, a novel stationary phase detection method is proposed, which is not based on the threshold comparison principle but based on foot motion periodicity.
At first, the zero-velocity interval detector
T should be constructed. As Equation (4) is a universally useful method, which uses the output of both accelerometers and gyroscopes during foot motion, it is still used to construct the zero-velocity interval detector in our method. By analyzing the zero-speed detection results of
Figure 5 and
Figure 6, it was found that the zero-speed state points in each gait cycle always occurred around the minimum value of the detector
T. As shown in
Figure 7, the red asterisks denote the detection results of the GLRT method, and the blue circles denote the minimum detector point in each gait cycle. The red asterisks are always close to the blue circles, which is a universally applicable rule to all kinds of movement, including walking, running, stair-climbing, etc. Therefore, if the zero-speed state points are to be detected accurately in each gait cycle under various motion states, the key is to find the minimum value of the detector
T in the period, before simultaneously selecting some neighboring points as the zero-speed points.
Similar to the principle of the global positioning system (GPS)/INS combined navigation system, for the ZUPT-aided PDR system, we only need to periodically correct the inertial recursive result; then, the divergence of the inertial recursive position results can be constrained. There is no need to detect all the zero-speed state points in each gait cycle, and it is only necessary to ensure that the detected zero-speed state points are all correct in each gait cycle. The proposed method can ensure just that.
Actually, in the experimental evaluation section of the paper, we prove that, in each gait cycle, as long as one accurate zero-speed point (the minimum value point of detector T) is detected correctly, the ZUPT-aided PDR algorithm can effectively suppress the positioning errors of the inertial recursive results. Also, the proposed method is compared with the GLRT method to verify its effectiveness.
Secondly, in order to correctly find the minimum value of detector
T in each cycle, the pedestrian movement should be divided effectively according to the gait-cycle duration. However, during the actual pedestrian motion, there are various motion states, such as walking, fast walking, running, slow running, fast running, stair-climbing, going downstairs, etc. Thus, the time length of the gait cycle is different under different motions. Therefore, a suitable gait-cycle duration should be chosen to adapt to various pedestrian motions. As analyzed in the literature [
31], for an adult walking at normal speed, the cycle time is within 1 to 1.2 s. In our experiments, we found that, regardless of the type of motion (including walking, running, stair-climbing, going downstairs, etc.), generally, at least one gait cycle can be completed within 0.7–1.2 s. If the gait cycle duration is longer than 1.2 s during normal movement, it must because the pedestrian has a pause or is in a standstill state during the current gait cycle. Therefore, in that case, a static detection algorithm is added to the proposed method to detect the pause or standstill state during the gait cycle. If the standstill or pause state is detected, the previous navigation state (position, velocity, and attitude) is used as the current navigation state to constrain the divergence of the inertial recursive results.
According to the proposed method, in
Figure 8, the pedestrian movement is effectively divided into independent gait cycles. In the figure, the magenta triangle is the time instant that indicates an equal time interval (gait cycle). The green square is the minimum value of detector
T in each equal time interval, that is, the zero-speed state point.
At last, in each gait cycle, by comparing the value of all the detectors, the minimum value point can be effectively found, which is the zero-speed point of the current gait cycle.
In addition, the proposed zero-speed point detection method may fail in two cases. Firstly, for fast walking, running, or other short gait-cycle movement, there may be 2–3 gait cycles in the 0.7–1.2-s cycle duration. Thus, the detected zero-speed point is the common minimum
T point of the current 2–3 gait cycles; in other words, there are 1–2 gait cycles that missed detection. As shown in
Figure 9, in D1 and D2, there are two stance stages in the current cycle duration, but only one zero-speed point (the common minimum
T point) of the two stance stages was detected. Secondly, as shown in
Figure 10, the current cycle duration D3 starts from the previous stance stage and ends at the current stance stage. The detector
T in the previous stance stage is smaller than that in the current stage; thus, the zero-speed point is still detected in the previous stance stage, rather than in the current stage.
Although missed detection occurs in the above two cases, the proposed method can ensure that at least one correct zero-speed point is effectively detected within the set 0.7–1.2-s cycle duration, and there is no false detection. That is to say, the algorithm effectively corrects the inertial recursive position result every 0.7–1.2 s.
In order to verify the effectiveness of the proposed method, the data in
Figure 5 and
Figure 6 were reprocessed using the proposed method, and the results are shown in
Figure 11 and
Figure 12. Compared with the case of missed detection near Sample 7500 and Sample 8500 after switching from normal walking to ascending stairs in
Figure 5, it can be seen from
Figure 11 that the missed detection situation is effectively improved. At the same time, compared to the case of missed detection between Sample 4000 and Sample 5000 after switching from normal walking to running in
Figure 6, in
Figure 12, although there is still one gait cycle missed for the minimum
T point, the overall zero-speed point detection is improved.
The proposed method to detect the zero-speed points under various movements is described in Algorithm 2.
Algorithm 2: The novel stationary phase detection algorithm |
Initiate: at time Threshold0: Only using the static detection algorithm t: The periodic time window to divide the pedestrian movement into independent gait cycles |
Input:T: The stationary phase detector constructed using Equation (4), which uses the output of both accelerometers and gyroscopes during foot motion |
Output:zupt: The detection result of zero-speed points during dynamic gait cycles |
Step 1: Static detection Use the static detection algorithm to determine whether the pedestrian is in a static state. If the pedestrian in a static state, directly use the previous navigation state (position, velocity, and attitude) as the current navigation state to constrain the divergence of the inertial recursive results. If in a dynamic phase, execute Step 2. Step 2: Zero-speed point detection using foot motion periodicity Divide the detector variable T using the periodic window t, and, within the period window, the minimum value of the detector T is the zero-speed point. Step 3: Repeat Step 1 and Step 2 to continue detecting zero-speed points of the current time window t until the pedestrian ends the movement. |
The existing zero-speed detection method is mainly based on the principle of threshold comparison. The drawback is that the detection effect is poor for various pedestrian motions. In this section, assuming the pedestrian movement is cyclical, a new zero-speed detection method is proposed. The method uses the pedestrian motion periodicity to divide the pedestrian motion according to a reasonable cycle length time, and takes the minimum value of the detector in the period as the zero-speed state point. The method does not need to set the zero-speed detection threshold, and performs well for zero-speed detection under various pedestrian movements.