APERSONAL dead reckoning or pedestrian dead reckoning

IEEE TRANSACTIONS ON HUMAN-MACHINE SYSTEMS, VOL. 44, NO. 2, APRIL 2014 211 Using Smart-Phones and Floor Plans for Indoor Location Tracking Kun-Chan ...
Author: Leslie Allison
8 downloads 0 Views 1018KB Size
IEEE TRANSACTIONS ON HUMAN-MACHINE SYSTEMS, VOL. 44, NO. 2, APRIL 2014

211

Using Smart-Phones and Floor Plans for Indoor Location Tracking Kun-Chan Lan and Wen-Yuah Shih

Abstract—We implement pedestrian dead reckoning (PDR) for indoor localization. With a waist-mounted PDR based system on a smart-phone, we estimate the user’s step length that utilizes the height change of the waist based on the Pythagorean Theorem. We propose a zero velocity update (ZUPT) method to address sensor drift error: Simple harmonic motion and a low-pass filtering mechanism combined with the analysis of gait characteristics. This method does not require training to develop the step length model. Exploiting the geometric similarity between the user trajectory and the floor map, our map matching algorithm includes three different filters to calibrate the direction errors from the gyro using building floor plans. A sliding-window-based algorithm detects corners. The system achieved 98% accuracy in estimating user walking distance with a waist-mounted phone and 97% accuracy when the phone is in the user’s pocket. ZUPT improves sensor drift error (the accuracy drops from 98% to 84% without ZUPT) using 8 Hz as the cut-off frequency to filter out sensor noise. Corner length impacted the corner detection algorithm. In our experiments, the overall location error is about 0.48 meter.

Fig. 1.

Floor plan.

Index Terms—Floor plan, map matching, pedestrian dead reckoning (PDR), simple harmonic motion (SHM), waist-mounted, zero velocity update (ZUPT).

I. INTRODUCTION PERSONAL dead reckoning or pedestrian dead reckoning (PDR) system is a self-contained technique for indoor localization. PDRs may include wearable inertial sensors, thus eliminating the need for beacon nodes or RF maps/propagation models based on surveys of the environment. These inertial sensors (such as an accelerometer, gyroscope, or digital compass) are used to measure step length and heading direction. Depending on where the sensors are placed, previous studies generally classified PDR systems into two types: foot- and waist-mounted. The foot-mounted method [3]–[10] uses a double integral on horizontal acceleration to estimate distance and a gyroscope or compass to measure the heading direction. The waist-mounted [13]–[16] method tries to detect each step event to calculate the total number of steps, and then multiplies this by a constant step length which is based on the pedestrian’s characteristics (weight, height, and age) to estimate the total moving

A

Manuscript received March 10, 2013; revised August 12, 2013, October 5, 2013, and December 18, 2013; accepted December 20, 2013. Date of publication January 16, 2014; date of current version March 12, 2014. This paper was recommended by Associate Editor A. Karniel. K.-C. Lan is with the Department of CSIE, National Cheng Kung University, Tainan, Taiwan (e-mail: [email protected]). W.-Y. Shih is with the Department of CS, National Chiao Tung University, Hsinchu, Taiwan (e-mail: [email protected]). Color versions of one or more of the figures in this paper are available online at http://ieeexplore.ieee.org. Digital Object Identifier 10.1109/THMS.2013.2296875

distance. Some waist-mounted methods use linear regression to find the relationship between the acceleration, walking speed, and step length [20]. The limitation of such approaches is the requirement of a training phase to estimate the step length for each individual. While waist-mounted systems are implementable on a hand-held device, their step length estimation accuracy is typically worse than foot-mounted systems which perform poorly with regard to orientation accuracy [17]. Two types of errors can be observed due to PDR sensor hardware: systematic (such as sensor bias, sensitivity, and drift [11]) and random (such as environmental changes [8], [9]). Here, we focus on the sensor drift error and noise. We propose a new zero velocity update (ZUPT) method and a map matching algorithm to calibrate the sensor drift errors from the accelerometer and gyro, and use a low-pass filtering mechanism to reduce the noise in our system. Here, we consider a scenario in which the user has a smartphone and can access the floor plans of the building (see Fig. 1). The system utilizes the sensors on the smart-phone to compute the user’s moving distance and direction and, in combination with the map and the last-recorded GPS position, estimates the user’s current position (see Fig. 2). We make the following assumptions. 1) The floor plan can be characterized using a link-node model [12] in which pathways are the links and the intersections of pathways are the nodes. The user carries a smart-phone in his or her pocket. 2) The initial heading direction is known (the user can point the phone in the direction headed before putting the phone in his or her pocket).

2168-2291 © 2014 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications standards/publications/rights/index.html for more information.

212

IEEE TRANSACTIONS ON HUMAN-MACHINE SYSTEMS, VOL. 44, NO. 2, APRIL 2014

Fig. 3. Fig. 2.

Walking diagram.

System architecture.

3) During walking, the position of the phone is relatively stable in relation to the leg movements. Several researchers have investigated using smart-phones for indoor localization. Kaikai et al.’s prototype system Guoguo [39] uses acoustic ranging techniques to achieve centimeterlevel accuracy. However, their methods require specialized anchor nodes. Wang et al. [35] proposed a landmark-based approach to address dead-reckoning error. However, the landmark signature could be different across different phones and their system requires prior knowledge of existing landmarks in the building. Yang et al. [40] utilized RSSI and floor plan data for location estimation. However, they did not address the issues that arise when the building has a symmetric structure. In our paper, we complement our trajectory-map similarity analysis with RSSI fingerprints to resolve this problem. Finally, our architecture is similar to that used in Li et al [32], but they required the use of a detailed map for the trajectory tracking. In addition, their approach needs a training phase to create a step length model. Here, we describe our PDR method that estimates the moving distance when a smart-phone is carried in the user’s waist level pocket. No training phase is required for initialization. Exploiting geometric similarity between the user trajectory and the floor map, we also present our map-matching algorithm to address sensor errors. The rest of this paper is structured as follows: the step-length estimation and map-matching algorithms are presented in Sections II and III, respectively. The results of our experiment appear in Section IV. Finally, we conclude in Section V. II. WAIST-MOUNTED PDR METHOD FOR ESTIMATING STEP LENGTH Weinberg [16] observed that the upper body moves vertically when walking, and suggested that one can estimate the step length as follows: StepLength = 2 × heightchange/α

(1)

where α is the swinging angle of the leg from the horizontal plane, and the heightchange can be estimated based on the vertical acceleration. However, he did not discuss how to measure α, and we found that, in practice, it is difficult to measure such a small angle during walking. Based on the Pythagorean Theorem, we thus propose a different way to estimate step length using the change in height. During walking, a person’s body

moves up and down. If we assume the length of the leg is L, the waist-line will move up-and-down between L and (L-h) from the ground, where h is the change in the height of the waist. Consider the triangle in Fig. 3, formed by the person’s two feet and his or her step length D. Given that L is known, using the Pythagorean Theorem, we can estimate D if we know the height of this triangle, i.e., (L-h). To obtain (L-h), we need to first calculate h which is the change in height of the waist during walking. Therefore, if we mount an accelerometer on the user’s waist, the readings can be used to estimate the height change h, which can then be used to calculate the step length D based on the Pythagorean Theorem (the length of the leg (i.e., L) and half of the step length (i.e., D/2) forms a right triangle in which leg length is the hypotenuse). In this paper, we extend the aforementioned waist-mounted method for a hand-held device, such as a smart-phone. When implementing a PDR system on a hand-held device, two cases can be considered. The first is when the user holds the device (e.g., talking on the phone), and the other is when the device is put in a pocket or a bag. [21] has shown the feasibility of using a waist-mounted method for the first case. Therefore, here we focus on how to extend the results of a waist-mounted method for the second case. To implement a waist-mounted method on a hand-held device, one must consider: the orientation and placement of the device. The orientation of the device may change from time to time when it is put in a pocket or bag during walking. Therefore, we need to determine the orientation of the device with respect to the walking direction to estimate the height change. We employ the technique proposed in [35] to reorient three axes of the accelerometer. In addition, we adopt a method similar to that used in [21] (which used a gyroscope to record changes in orientation) to estimate the height change, as shown in (2). Here, θ is the orientation of the device in relation to the direction of gravity and is between 0 and 90 degrees, and N is the acceleration which is caused by external force ⎧ ⎨ N = (SensorReading − Gravity × cos θ) ÷ cos θ   (2) ⎩ HeightChange = N dt. Next, in a waist-mounted method, the vertical movement displacement of the device is the key parameter to estimate the step length. When the device is positioned above the waist-line, its vertical displacement during walking will be the same as when it is mounted on the waist. When the device is placed below the waist-line (e.g., in a pant’s pocket), we can estimate the vertical displacement of the waist as follows. Assuming the leg length

LAN AND SHIH: USING SMART-PHONES AND FLOOR PLANS FOR INDOOR LOCATION TRACKING

213

Fig. 6. Accuracy of estimating step length using different cut-off frequencies for the low-pass filter.

A. Noise Filtering Fig. 4. Use of Pythagorean Theorem for computing the step length when the device is mounted on the lower body.

Fig. 5.

Flow chart of our PDR system.

(L) and the pocket position from the ground (L ) are already known, we can find two similar triangles ΔABC and ΔPQR (see Fig. 4). Based on the Pythagorean Theorem, we can obtain QR by first measuring L and h (i.e., the vertical displacement of the pocket during walking).  Then,using triangle similarity, we find that BC = D/2 = L × QR /L . h can be measured in a similar way to h. Our system architecture is shown in Fig. 5. We first filter the noise using a low-pass filter. The filtered signal is fed into the step recognition module to identify each new step. We adopt the concept of simple harmonic motion (SHM) [18] to reset the vertical velocity at the beginning of each new step, which prevents sensor drift errors from being accumulated over to the next one. Finally, the step length is estimated based on the filtered sensor data and the foot length.

During walking, some unexpected and unpredictable body vibrations might cause some higher-frequency noise in the sensor readings. One can use a low-pass filter and preset a cut-off frequency to filter the noise, and some prior step recognition systems use 3 Hz as their cut-off frequency to detect a step event [2]. However, we found that while a 3-Hz threshold can detect a new step event, it is too low for our purposes and will remove data which is not noise. [19] analyzed the acceleration of the waist during walking, and found the maximum acceleration is 8 Hz. To examine whether 8 Hz can produce the best results, we perform a set of experiments using different frequencies for the low-pass filter, that range from 3 to 12 Hz, and compare their accuracies in estimating step length. The use of 8 Hz as the cut-off frequency produces the most accurate results (see Fig. 6). Therefore, we set our cut-off frequency at 8 Hz to filter the noise, and this threshold worked well under ten repeated experiments using three different subjects with various leg lengths from 68 to 95 cm. In addition, given that the phone can bounce around in the pocket and create many false peaks in the acceleration waveform [37], we further apply two filters to reduce these acceleration jitters. The first is the minimum and maximum changes in acceleration magnitudes during one step (after analyzing our data, we set the thresholds to 03. and 1.8 g, respectively). For the second filter, we adopt the dynamic time warping technique to detect false peaks based on the assumption that the waveforms of each step are similar [38]. B. Step Recognition Module In order to recognize a step, we first analyze the components of one step that can cause vertical changes to the body. There are three major events which may affect the height of the waist [see Fig. 7(a)]. The first one is a heel-touching-ground event, which happens when the heel just hits the ground and the waist is in its lowest position during the entire step. The event that comes after this is the stance, which occurs when the foot is flat on the ground. Finally, the heel-off-ground event occurs right after the stance. Generally, as shown in Fig. 7(b), the vertical acceleration of a heel-touching-ground event is the local minimum within a step. Given that human walking frequency is never over 3 Hz [42], the duration between two consecutive heel-touchingground events must be over 0.33 s. Based on this, we use a

214

Fig. 7.

IEEE TRANSACTIONS ON HUMAN-MACHINE SYSTEMS, VOL. 44, NO. 2, APRIL 2014

(a) Walking diagram (Modified from [41]). (b) Vertical acceleration of walking.

sliding window algorithm to detect every heel-touching-ground event, and define one step as from a heel-touching-ground event to the next heel-touching-ground event. Once a new step is identified, the sensor data between two consecutive heeltouching-ground events will be used to estimate the step length. C. Step Length Estimator 1) Our Step Model: To measure the walking distance from point A to point B, we sum the step length of all steps. We model a complete step as from one heel-touching-ground-event to the next. The first step is defined as from the stance event at point A to the next heel-touching-ground event, as shown in Fig. 7(a). The last step is defined as from the last heel-touching-ground event to the stance event at point B. Both the first step and the last step are considered as half a step. When the first or last step is detected, our system will divide the calculated step length by 2. 2) Avoid Accumulation of Sensor Drift Errors: Once each step can be identified, we can then do the double integral to calculate the change in height of the waist and then use this information to estimate the length of each stride based on the Pythagorean Theorem. However, as discussed previously, if the system only naively does the double integral on the accelerometer data, the sensor drift errors could accumulate from one step to the next. To avoid this, we previously proposed a ZUPT method [1] to calibrate the sensor data: if we mount a sensor on the waist of a pedestrian, then while he or she is walking, the trajectory of the sensor can be approximated by SHM [18]. In addition, given that the velocity of the highest and lowest points of the sensor will be zero, we can utilize these characteristics to detect when the user starts a new step. Finally, once the points with zero velocity in the vertical direction [where the vertical acceleration reaches its local minimum and local maximum, i.e., points A and B in Fig. 7(b)] are identified, we can then reset the

Fig. 8.

Effect of ZUPT on the estimated velocity.

vertical velocity to zero before doing the double integral to calculate the change in height of the user’s waist, and this can then be used to estimate the step distance based on the Pythagorean Theorem. As shown in Fig. 7(a), when the stance and heel-touchingground events occur, the waist has the largest displacement from its equilibrium position. Therefore, we reset the vertical velocity to zero at these points (so-called ‘ZUPT’). We performed an experiment to observe the effects of the ZUPT. We recorded the walking velocity computed by the sensor every 40 ms for the cases of enabling ZUPT and disabling ZUPT respectively. Each case was run for 20 s. The implementation of ZUPT can address the accumulation of sensor drift errors (see Fig. 8). The first and last steps are considered as special cases. There is only one point where the velocity needs to be reset, because the initial velocity of the first step is already zero and the last step does not need to reset this when the body is in its stance state. 3) Moving at High Speed or at the Same Spot: As shown in Fig. 7(b), when one walks at a normal speed, the stance event generally occurs as the first peak after the heel-touching-event. However, during the high speed movement (which is defined

LAN AND SHIH: USING SMART-PHONES AND FLOOR PLANS FOR INDOOR LOCATION TRACKING

215

III. GYROSCOPE ERROR CALIBRATION WITH MAP MATCHING

Fig. 9.

Fig. 10.

Effect of counter-force when walking at a high speed.

Acceleration at different high speeds.

as when the step frequency is greater than1.6 Hz), we observe that the counter-force from the ground could introduce an extra pulse between the heel-touching-ground and stance events, as shown in Fig. 9 (points A and B ) and Fig. 10. Without taking this into consideration, our system could reset the velocity at the wrong point. Studies in kinesiology [30], [31] showed that the duration from the heel-touching-ground event to the stance event normally accounts for at least 16.7% of the time in a step. Based on this observation, we can identify the right point where the stance event occurs and reset the velocity when calculating the step length. When one is moving in place, the acceleration data should not be considered in the calculation of step length. In addition, when one is walking in place, the height of the waist does not usually change significantly. Therefore, we use a threshold-based filter to detect this phenomenon by looking at whether the acceleration data in all three directions (vertical, horizontal, and lateral) are lower than a certain threshold ε, as shown below, and then reset the vertical acceleration accordingly (in our implementation, ε is set to 1 m/s2 ), as shown in verticalAcc = 0 if |lateralAcc|

Suggest Documents