Keywords

1 Introduction

As reliable outdoor localization can be addressed with GNSS/GPS-based techniques, the indoor or combined indoor/outdoor scenarios still seem to be far more challenging as the GNSS signals are usually too weak to penetrate the buildings and a number of different approaches compete to become the key technology in the nearest future [see (Retscher 2006) for a summary of indoor localization techniques]. Although originally robotics applications or similar scenarios [e.g., (van der Merwe and Wan 2004)] attracted most of the efforts, recent advances in affordable wearable computing, availability of infrastructure [WiFi, RFID and emerging Ultra Wideband (Gigl et al. 2007)] and significantly improved performance of MEMS sensors resulted in a growing interest of applying similar concepts also for pedestrian indoor localization scenarios (Sabatini 2009; Ahn and Yu 2007).

Currently none of the available technologies alone can completely satisfy the accuracy, flexibility, scalability and cost requirements for pedestrian indoor localization within an uncontrolled environment and combinations of several complementary technologies are often employed for increased robustness (Ahn and Yu 2007; Foxlin 2005). The sensing modalities are usually combined using Recursive Bayesian Estimation (RBE) framework, which permits to treat the sensor imperfections, dynamical model uncertainties and heuristic information regarding the environment in a consistent way (Thrun et al. 2005), enabling a performance, which is in general not achievable with a single sensing modality.

Robust indoor human tracking is believed to be a crucial requirement for the concept of so-called Smart Environment as well as Pervasive Computing (Fox et al. 2003) and biomedical applications (Sabatini 2009) and is considered to be a rather challenging problem (Ahn and Yu 2007). Potential applications include ambulatory monitoring for people with disabilities or chronic health conditions, orientation and mobility aid for blind and visually impaired people, various assistance systems (Sabatini 2009) etc. Moreover, a reliable indoor localization can be helpful for emergency first responders such as firefighters. Interestingly, within the latter scenarios one can not completely rely on localization methods based on external infrastructure such as Wireless and Ultrasound-based schemes as the availability of the power can not be in general ensured for most of the emergency situations. Moreover, some of the approaches can require complex and expensive infrastructure which can not be placed in all except of very special locations.

One of the most typical approaches to deal with the drawbacks of the external-referencing systems is to adopt integrated pedestrian dead-reckoning (PDR), where the inertial sensors (e.g., accelerometer and gyroscopes constituting the Inertial Measurement Unit–IMU) provide an internal independent reference, immune to interference and signal shadowing and are continuously available. In practice, however, solely inertial system can be hardly employed for any reasonably long time due to fast accumulating integration errors. Here the position error usually increases much faster compared to orientation ones due to the double integration of the accelerometer imperfections (e.g., offsets). Additional sensors such as barometric altimeter or magnetic compass are sometimes integrated to bound the heading error and vertical position while external referencing (in the form of absolute position or ranging measurements etc.) are used to limit the position errors. Moreover, the external sensing is also necessary for the initialization phase of the inertial-based approach as the inertial approach is able to provide only relative position with respect to the origin.

In this chapter we discuss a foot-mounted system for pedestrian indoor localization and tracking, where low-cost commercial inertial and magnetic sensors are used, and where the fusion is formulated using Unscented Kalman Filter. The system is able to provide a reliable position and orientation estimation over a reasonable period of time. We demonstrate the performance of the system for several indoor/outdoor scenarios and evaluate its performance with respect to different algorithm parameters and model structures. We also demonstrate how some of the accuracy issues can be addressed by augmenting the system with additional sensors such as a barometer and a RFID tag reader. The RFID technology has already attracted a significant attention due to its economic advantages (Subramanian et al. 2008) and was chosen due to being rather low-cost and the ability to handle potential power constraints (e.g., blackouts).

The rest of the chapter is structured as follows: Sect. 2 presents the related approaches of other authors and previous work of the authors for pedestrian indoor localization. Section 3 discusses the mathematical details of the developed localization algorithm along with the fusion filter and the associated process and measurement models. The custom developed hardware setup is briefly described in Sect. 4 with the experimental results of several representative scenarios provided in Sect. 5. Finally, the Sect. 6 sums up the findings and evaluates the potential of the technique for future positioning applications.

2 Related Work

While within robotics applications one could achieve a reasonably good performance by using an accelerometer, odometer and angular rate sensor and constraining the motion with the known kinematic information, such a direct approach would often fail when applied to pedestrian localization. One of the most straightforward approaches is to detect the step (e.g., using the accelerometer) and to calculate the displacement assuming a known step length or to estimate it using some biomechanical model. Unfortunately, such an approach provides only a very approximate position and is mainly suitable for activity monitoring or for coarse localization. Moreover, it could often fail if an unusual scenario is encountered such as a crowded environment or uphill/downhill walking patterns and often have to be tuned for a particular user.

External referencing is believed to be a more reliable option when addressing pedestrian localization. The issue is often resolved by attaching a small-size wireless tag [UWB (Gigl et al. 2007)]; CSS-based IEEE 802.15.4a (Nam and Park 2009); ZigBee, WLAN (Ali and Nobles 2007; Retscher 2006), Bluetooth) to the human body and measuring distances to fixed and known anchor points. Other approaches include systems based on computer vision and camera systems, RFID tags (Subramanian et al. 2008), ultrasound based localization (Kim and Choi 2008), passive infrared sensors (PIR), light detectors (Golding and Lesh 1999) and even temperature sensing (Golding and Lesh 1999). Clearly, one could attempt to employ a personal dead reckoning (PDR) system combined with one of the referencing techniques mentioned above (Retscher 2006).

In our previous works (Klingbeil et al. 2010a, b) we have developed a wearable system for seamless pedestrian indoor/outdoor localization. The system was intended to be placed on the chest of the person while information from the inertial sensors was used for heuristic step detection and step length estimation. The MEMS gyroscope in combination with magnetometer was employed for heading correction while the GPS and/or RF CSS modules (Nanotron NanolocTM) were used for absolute position referencing. The fusion algorithm was formulated as a particle filter (PF) triggered with the step counting. The algorithm was also able to take into account the map constraints (in the form of occupancy grid) to restrict the motion not to cross the walls. Although being fairly complex, the system suffered from several fundamental flaws such as heuristics in step detection and length estimation, which could easily fail for a user with different gait and walking habits, poor performance of heading information due to magnetic field disturbances and noisy CSS ranging information. All the aforementioned issues resulted in difficulties of using such a system for any practical applications.

In this work we described a different strategy for pedestrian indoor localization using a foot-mounted IMU/sensor block. The approach explicitly employs assumptions regarding the human foot dynamics to constraint the estimation error only increasing linearly with the distance, usually navigating open loop only for time periods shorter than 1 s (i.e., the typical step duration during normal gait conditions) (Foxlin 2005). The presented method, commonly referred as ‘Zero Velocity Update’, dramatically decreases the position error by resetting the estimated velocity to zero when the stance phase of the step is detected (Bebek et al. 2010; Sabatini 2009). Note that the residual position error is still not completely eliminated and remains in general unbounded (House et al. 2011). The overall fusion concept becomes feasible due to correlation information introduced by the dynamical model which allows to correct retrospectively the sensor imperfections.

The technique, nowadays rather widely adopted throughout the research community, was made famous by Foxlin, although using a rather expensive and well-calibrated IMU [see (Foxlin 2005) for a friendly introduction]. The framework was extended in numerous recent works of multiple authors. For example, the work of (Bird and Arden 2011) extended the framework with GPS position measurements and validation mechanism for magnetic disturbances with cascaded estimation architecture proposed in (Krach and Robertson 2008). In a series of works (Jimenez et al. 2009, 2010) the methods were further exploited with more advanced motion models, restricting the motion to follow mainly the straight trajectories. The work (Sabatini 2009) proposed an EKF-based approach with quaternion orientation parametrization with magnetometer bias estimation and adaptive measurement models. The work (Bebek et al. 2010) suggested to combine a shoe-mounted IMU with a high-resolution, thin, flexible error-correcting biomechanical ground reaction sensor to provide more detailed contact information compared to a detection based solely on inertial sensors only.

A combination of a foot mounted IMU with passive RFID tags was proposed in House et al. (2011). Interestingly, the authors placed the correction step outside the filter and employed a pure geometric approach based on affine transforms for trajectory segment correction between current and previous RFID detection points.

3 Algorithm Description

3.1 Recursive Bayesian Estimation and the Unscented Kalman Filter

The pedestrian localization scenario is formulated as the state estimation problem of the following system:

$$ {\mathbf{x}}_{k} = f({\mathbf{x}}_{k - 1} ,{\mathbf{u}}_{k - 1} ,{\mathbf{w}}_{k} ),\quad {\mathbf{z}}_{k} = h({\mathbf{x}}_{k} , {\user2\epsilon}_{k} ) $$
(1.1)

where \( {\mathbf{x}}_{k} \in {\mathbb{R}}^{n} \) is the state at time \( t_{k} \) with the associated measurement \( {\mathbf{z}}_{k} \in {\mathbb{R}}^{m}, \) \( f(\cdot) \) and \( h(\cdot) \) are the nonlinear system process and measurement functions respectively, \( {\mathbf{w}}_{k} \) and \({\epsilon}\) correspond to the process and measurement noises and \( {\mathbf{u}}_{k} \) stands for control input.

Within the framework of recursive bayesian estimation (RBE) (Fox et al. 2003; Thrun et al. 2005) the estimation of the state \( {\mathbf{x}}_{k} \) of a system at the time \( t_{k} \) based on all measurements \( {\mathbf{Z}}_{k} = {\mathbf{z}}_{0} , \ldots ,{\mathbf{z}}_{k} \) up to that time is represented as a probability density function (pdf) \( p({\mathbf{x}}_{k} |{\mathbf{Z}}_{k} ), \) which can be calculated recursively using two steps:

Prediction The a priori probability \( p(\widetilde{{\mathbf{x}}}_{k} ) \) is calculated from the last a posteriori probability \( p({\mathbf{x}}_{k - 1} |{\mathbf{Z}}_{k - 1} ) \) using the process model \( p({\mathbf{x}}_{k} |{\mathbf{x}}_{k - 1} ) \):

$$ p(\widetilde{{\mathbf{x}}}_{k} ) = p({\mathbf{x}}_{k} |{\mathbf{Z}}_{k - 1} ) = \int {p({\mathbf{x}}_{k} |{\mathbf{x}}_{k - 1} )p({\mathbf{x}}_{k - 1} |{\mathbf{Z}}_{k - 1} )d{\mathbf{x}}_{k - 1} } $$
(1.2)

Correction The a posteriori probability \( p{\mathbf{(x}}_{k} |{\mathbf{Z}}_{k} ) \) is calculated from the a priori probability using the measurement model \( p({\mathbf{z}}_{k} |{\mathbf{x}}_{k} ) \) and the current measurement \( {\mathbf{z}}_{k} \):

$$ p{\mathbf{(x}}_{k} |{\mathbf{Z}}_{k} ) = \frac{{p({\mathbf{z}}_{k} |{\mathbf{x}}_{k} )p({\mathbf{x}}_{k} |{\mathbf{Z}}_{k - 1} )}}{{p({\mathbf{z}}_{k} |{\mathbf{Z}}_{k - 1} )}}. $$
(1.3)

Various implementations of RBE algorithms differ in the way the probabilities are represented and transformed in the process and measurement models (e.g., Kalman Filters, the non-linear variants Extended Kalman Filter (EKF) (Thrun et al. 2005) and Unscented Kalman Filter (UKF) (Julier et al. 2000; van der Merwe 2004) and Sequential Monte Carlo Filters).

Although the original implementation (Foxlin 2005) of the ZUPT-based filtering with foot mounted inertial sensors was based on an EKF, we decided to implement our approach as an UKF, where the probability distribution is approximated using a set of deterministically placed points in the state space, chosen to conserve the Gaussian properties of the distribution under nonlinear transformations. This unscented transformation (UT) is in general more computational demanding than a linearization used in an EKF, but apart from the better statistical properties the formulation of the models is straightforward, since no Jacobians have to be calculated. There also exist methods for the optimization of the UKF regarding stability and computational needs, such as Square Root versions or the usage of Spherical Simplex Sigma Points. The authors have applied these methods before for orientation estimation (Romanovas et al. 2009). Please refer to this chapter and the references therein for a detailed description of the UKF equations as we omit them here due to space constraints.

The main challenge in the implementation of RBE algorithms is the formulation of the process and measurement models as well as the associated uncertainties. Below we describe the process model, which is a straightforward implementation of the classical INS strapdown integration, and a variety of measurement models incorporating various sensors and constraints. The basic strategy of the method is to integrate the inertial sensors with the rate of their availability using the process model and then perform measurement updates whenever an additional information, such as a Zero Velocity Update or a RFID tag detection is available.

3.2 Process Model: INS Strapdown Integration

A detailed structure of the process model can be found in Fig. 1. The process model is essentially based on simplified mechanization equations of an Inertial Navigation System (INS). The state of the system is as follows:

$$ {\mathbf{x}}_{k} = \left[ {{\mathbf{q}}_{k} ,{\mathbf{v}}_{k} ,{\mathbf{p}}_{k} ,{\mathbf{b}}_{\omega ,k} ,{\mathbf{b}}_{a,k} } \right]^{T} , $$
(1.4)

where \( {\mathbf{q}}_{k} \) stands for a quaternion representation of the orientation, and \( {\mathbf{v}}_{k} \) and \( {\mathbf{p}}_{k} \) are correspondingly the velocity and position in the navigation frame, while \( {\mathbf{b}}_{a,k} \) and \( {\mathbf{b}}_{\omega ,k} \) are the bias values associated with the accelerometers and the angular rate sensors. The process model for the quaternion is a discrete integration obtained from the quaternion derivative as follows:

$$ {\mathbf{q}}_{k} = \frac{1}{2}\int\limits_{0}^{\Updelta t} {\varvec{\Upomega}} \left( {{\varvec{\omega}}_{k} } \right){\mathbf{q}}_{k - 1} dt,\quad {\text{with}}\quad \Updelta t = t_{k} - t_{k - 1} . $$
(1.5)
Fig. 1
figure 1

Detailed process model for the prediction step of the UKF

We consider the angular rate as a control input to the process model and allows to preserve highly dynamical motion of the human limbs without constructing any explicit model. The angular rate in the expression above is calculated from:

$$ {\varvec{\omega}}_{k} = {\varvec{\tilde{\mathbf{\omega }}}_\text{k}} - {\mathbf{b}}_{\omega ,k - 1} + {\mathbf{w}}_{\omega ,k} ,\;\;\;{\kern 1pt} {\text{where}}\;\;\;{\kern 1pt} {\mathbf{w}}_{\omega ,k} \sim \mathcal{N}\left( {0,{\mathbf{Q}}_{\omega ,k} } \right) $$
(1.6)

is the gyroscope noise and \( {\tilde{\mathbf{\omega }}}_{k} \) corresponds to the actual angular rate measurement. The quaternion representation of the orientation has several advantages such as quasi-linear mathematics and the absence of the gimbal lock problem. The acceleration is also treated as a control input:

$$ {\mathbf{a}}_{k} = {\tilde{\mathbf{a}}}_{k} - {\mathbf{b}}_{a,k - 1} + {\mathbf{w}}_{a,k} ,\;\;\;{\kern 1pt} {\text{with}}\;\;\;{\kern 1pt} {\mathbf{w}}_{a,k} \sim \mathcal{N}\left( {0,{\mathbf{Q}}_{a,k} } \right). $$
(1.7)

The process model for the the gyroscope and accelerometer biases become:

$$ {\mathbf{b}}_{\omega ,k} = {\mathbf{b}}_{\omega ,k - 1} + {\mathbf{w}}_{{b_{\omega } ,k}} ,\;\;\;{\kern 1pt} {\text{with}}\;\;\;{\kern 1pt} {\mathbf{w}}_{{b_{\omega } ,k}} \sim \mathcal{N}\left( {0,{\mathbf{Q}}_{{b_{\omega } ,k}} } \right) $$
(1.8)
$$ {\mathbf{b}}_{a,k} = {\mathbf{b}}_{a,k - 1} + {\mathbf{w}}_{{b_{a} ,k}} ,\;\;\;{\kern 1pt} {\text{with}}\;\;\;{\kern 1pt} {\mathbf{w}}_{{b_{a,k} }} \sim \mathcal{N}\left( {0,{\mathbf{Q}}_{{b_{a} ,k}} } \right) $$
(1.9)

The measured acceleration can be transformed to the navigation frame using:

$$ {\mathbf{a}}_{k,nav} = {\mathbf{q}}_{k} {\mathbf{a}}_{k} {\mathbf{q}}_{k}^{ - 1} - {\mathbf{g}},\;\;\;{\kern 1pt} {\text{with}}\;\;\;{\kern 1pt} {\mathbf{g}} = \left[ {\begin{array}{*{20}c} 0 & 0 & G \\ \end{array} } \right]^{T} m/s^{2} {\text{ and }}G \approx 9,81\frac{m}{{s^{2} }} $$
(1.10)

Then the velocity and the position can be obtained by integration:

$$ {\mathbf{v}}_{k} = {\mathbf{v}}_{k - 1} + \int\limits_{0}^{\Updelta t} {{\mathbf{a}}_{k,nav} } dt,\quad {\mathbf{p}}_{k} = {\mathbf{p}}_{k - 1} + \int\limits_{0}^{\Updelta t} {{\mathbf{v}}_{k} } dt, $$
(1.11)

where both \( {\mathbf{p}}_{k} \) and \( {\mathbf{v}}_{k} \) are in the navigation frame. The process as shown in Fig. 1 does not consider the system initialization. The system model must be initialized with the initial values of orientation quaternion \( {\mathbf{q}}_{k}, \) position \( {\mathbf{p}}_{k} \) and velocity \( {\mathbf{v}}_{k} \) as well as corresponding values for the sensor biases.

3.3 Measurement Models

We distinguish two different measurement model groups: one is called ‘Zero Velocity Updates’ and contains all updates which utilize only the inertial sensors and the fact, that the human foot undergoes a still phase on a regular basis. The second part uses additional sensors such as a magnetometer, a barometer and a RFID reader. In principle other localization methods, such as GNSS, signal strength or distance measurements can be added to the algorithm as measurement models, but this is beyond the scope of this chapter.

3.4 Zero Velocity Updates

Under normal condition human walking follows some pattern as shown in Fig. 2. During the stance phase we can assume the foot is not moving and therefore the velocity of the foot has to be zero. Similarly, the assumption can be extended by noticing that the angular rate should be also close to zero for the no motion conditions. Finally, under similar assumptions the measured acceleration vector should only contain the terms due to gravity and the accelerometer bias. If the IMU is attached to the foot of the person, we are able to detect the ‘no motion’ condition of the foot and apply the following measurement models:

Fig. 2
figure 2

A sketch of stance phases in human bipedal motion (Bebek et al. 2010)

Zero Velocity Update (ZUPT): this is a ‘virtual’ measurement where we assume the velocity \( {\mathbf{v}}_{k} \) to be zero if the associated conditions are fulfilled:

$$ \left[ {0\;\;\;{\kern 1pt} 0\;\;\;{\kern 1pt} 0} \right]^{T} = {\mathbf{v}}_{k} \,+ \epsilon_{\mathbf{ZUPT},k} $$
(1.12)

Clearly, the triggering mechanism is not a complete guarantee that the true object velocity is zero and some measurement noise \({\epsilon}_{\mathbf{ZUPT},k} \sim \mathcal{N}\left( {0,{\mathbf{R}}_{ZUPT} } \right) \) has to be adopted.

Zero Angular Rate Update (ZARU): similarly to ZUPT, the measurement assumes that under some ‘no motion’ condition the measured angular rate is due to the sensor bias only:

$$ {\tilde{\mathbf{\omega }}}_{k} = {\mathbf{b}}_{\omega ,k} \,+ {\epsilon}_{\mathbf{ZARU},k}. $$
(1.13)

Again, due to imperfection of triggering mechanism and sensor noises we have to assume some non-negligible measurement noise \( \varvec{\in}_{\mathbf{ZARU},k} \sim \mathcal{N}\left( {0,{\mathbf{R}}_{ZARU} } \right) \) associated with this type of the measurement.

Gravity (G) Measurement: Similarly to conventional orientation filter we can employ the acceleration measurements to compensate pitch and roll under the condition that no significant linear acceleration is present and the accelerometer observations \( {\tilde{\mathbf{a}}}_{k} \) are solely due to measured gravity \( {\mathbf{g}} \) and the accelerometer bias:

$$ {\tilde{\mathbf{a}}}_{k} = {\mathbf{q}}_{k}^{ - 1} {\mathbf{gq}}_{k} + {\mathbf{b}}_{a,k - 1} \,+ {\epsilon}_{\mathbf{G},k} , $$
(1.14)

where \({\epsilon}_{\mathbf{G},k} \sim \mathcal{N}\left( {0,{\mathbf{R}}_{G} } \right) \) is the accelerometer additive noise. Unfortunately, the zero-velocity phase detection is not completely reliable using inertial sensors with some more detailed discussion on algorithm to be found in Bebek et al. (2010). We do not use a single detection mechanism for triggering all the measurements, but rather apply three different detectors, each of them being optimized for the particular condition. Fig. 3 shows the sensor measurements during the stance phase and the three different conditions, which have been detected.

Fig. 3
figure 3

Stance still detection example

The detection of the walking motion’s stance phase, and thus the right time to apply the Zero Velocity Updates, is implemented according to Foxlin (2005). After one of the gyroscope or accelerometer signals have entered the predefined limits (the magnitude of the gyroscope signal should be below 0.1 rad/s, and that of the acceleration in the range from 9.6 to 10.0 m/s2), a delay of 30 ms is imposed before the ZUPT or ZARU conditions are triggered. The signals must stay within the ranges for the associated condition to be triggered. If the delay requirement is satisfied, new thresholds are computed using the current threshold and the actual sensor output. This allows the sensor signal to satisfy the trigger condition even if it is corrupted with the noise. The new threshold conditions are computed at each iteration and are switched off when the signal values grow too fast (i.e., when the foot enters the swing phase). Note that the ZUPT and ZARU conditions are triggered separately, while when both conditions are satisfied, the effective measurement model incorporates ZUPT, ZARU and G measurements. The block diagram for the generic filtering algorithm is shown in Fig. 4.

Fig. 4
figure 4

Block diagram of the filter for position estimation using ZUPT

The prediction step uses the process model is discussed above. After the prediction is performed, the detector checks one of the conditions for the correction step to be fulfilled, and if so (yes output of the stance still detector block), the predicted state estimate \( {\hat{\mathbf{x}}}_{k}^{ - } \) and associated covariance \( {\mathbf{P}}_{k}^{ - } \) are corrected using the measurements described above. If the detector fails to confirm a still motion condition, no correction is performed and the predicted values are considered as corrected ones for the next iteration of the filter cycle.

3.5 Additional Sensors

The generic filter structure using solely inertial sensors can be easily augmented with other sensors. The new measurements are incorporated into the measurement update of the algorithm as described below.

Magnetic Field Measurement For scenarios where magnetic field measurements are employed, one can construct the measurement model as follows:

$$ {\tilde{\mathbf{m}}}_{k} = {\mathbf{q}}_{k}^{ - 1} {\mathbf{m}}_{E} {\mathbf{q}}_{k} \,+ {\epsilon}_{\mathbf{M},k} , $$
(1.15)

where the actual measurements \( {\tilde{\mathbf{m}}}_{k} \) are obtained by rotating the reference (Earth) magnetic field vector \( {\mathbf{m}}_{E}. \) Note that no magnetometer biases are modeled for this simple scenario but the values of \( {\epsilon}_{\mathbf{M},k} \sim \mathcal{N}\left( {0,{\mathbf{R}}_{M} } \right) \) are usually set much higher compared to the true sensor noises in order to accommodate the disturbances when passing close to equipment, building structural elements etc. Here the magnetic field measurement are performed continuously and are not conditioned on any foot motion phase.

Barometric Pressure (Height) Measurement We adopt the following measurement model for height measurements using the barometric pressure \( P_{k} \):

$$ \tilde{p}_{z,k} = \frac{{T_{0} }}{L}\left( {\left( {\frac{{P_{k} }}{{P_{0} }}} \right)^{{ - \frac{LR}{G}}} - 1} \right) \,+ {\epsilon}_{\mathbf{h},k} , $$
(1.16)

which is a simplified expression for altitude in terms of atmospheric pressure measurement \( P_{k}. \) Here \( L \) is the lapse rate defined as the rate of temperature increase in the atmosphere with increasing altitude and is taken \( L = - 6.5 \times 10^{ - 3} \)  K/m, \( T_{0} \) and \( P_{0} \) are correspondingly the temperature and the pressure at zero altitude, \( R \) is the gas constant for air and \( G \) is the acceleration due to gravity. For our scenarios with small vertical displacements we assume a simplified additive Gaussian noise model \( {\epsilon}_{h,k} \sim \mathcal{N}\left( {0,{\mathbf{R}}_{h} } \right) \) for the vertical position.

RFID Position Measurements The sensor unit contains a RFID reader, while several RFID tags are distributed over the floor at known positions. When a RFID tag is detected by the reader this can be seen as a position measurement with an accuracy roughly corresponding to the RFID transmission range. Then a trivial position model can be assumed:

$$ {\tilde{\mathbf{p}}}_{k} = {\mathbf{p}}_{k} \,+ {\epsilon}_{\mathbf{p},k}. $$
(1.17)

Here the position measurement noise \( {\epsilon}_{\mathbf{p},k} \sim \mathcal{N}\left( {0,{\mathbf{R}}_{p} } \right) \) mainly reflects the tag detection distance as well as our ability to detect the tag when passing close to it. Due to simplicity of the hardware we do not employ any signal strength related model.

4 Hardware Setup

While developing the custom hardware we again follow the modular system approach (Klingbeil et al. 2010a, b), where the core of the developed system consists of two main boards: a sensor unit and power unit with a Li-Polymer battery attached. The sensor unit consists of a microprocessor, responsible for the sensor readout, data pre-processing and communication, a three axis accelerometer, a three axis gyroscope and a compass module. It also contains a pressure sensor, working as a barometer. The inertial sensors a sampled at 100 Hz, while the magnetometer and the barometer are sampled at 75 and 2 Hz respectivly. The system was mounted on the shoe as shown in Fig. 5 (left).

Fig. 5
figure 5

Custom IMU mounted on a foot (left) with body coordinate frame and IMU augmented with RFID reader antenna and tag beneath the foot (right)

The setup for the RFID augmentation shown in Fig. 5 (right). We used 13.56 MHz as the RFID chip carrier frequency for faster communication with the RFID tags. Whenever a tag is within the reading range of the reader, its ID is recognized in the processor. The polling rate is set to 50 ms, which seems to be a reasonable rate with respect to the foot dynamics and the typical duration of the foot stance phase (>200 ms). In the RFID experiments a number of passive tags have been placed on the floor with known positions associated with the unique ID of each tag. The effective reading range of the reader was approximately 12 cm. This position information was used within the fusion algorithm whenever a tag was detected within the reading range and its ID was recorded by the system.

The hardware is based on low cost off-the-shelf components and the algorithm will perform better when used with higher quality and better calibrated sensors. Here we wanted to demonstrate explicitly the feasibility of the approach with components which can be easily integrated into a shoe bearing in mind its low cost profile. Note, that although one could make the RFID ranging larger in order to increase the hit rate, this would also increase the effective noise value as the measurement accuracy is reduced.

All sensor data are transmitted to PC via a Bluetooth interface. Although the UKF containing the ZUPT part of the algorithm can be made running on the microprocessor itself, the reference localization schemes require external information (e.g., position information for RFID tags, etc.) and apparently has to be implemented on a Smartphone or PDA level in an application scenario where the usage of a PC has to be avoided.

The system described in the chapter does not provide an initial position. This is assumed to be known or has to be deduced through other sensing mechanisms. The initial heading is set manually to a correct value as it can not be estimated from pure inertial data. Note that the filter needs some time to stabilize and the initial phase of this fairly complex filter is quite noisy compared to latter stages when the filter converged to true sensor biases and proper covariance values.

5 Results

The filter is initialized with the correct pitch and roll angles (quaternion equivalent) and the gyroscope bias estimates obtained from the first several seconds of the user standing still. The initial covariances are set to small values for faster algorithm convergence and in practice reflect our confidence in the initial estimates. The control noise for the accelerometer was set to \( \sigma_{a} \)  = 0.02 m/s2 and for the gyroscope to \( \sigma_{\omega } \)  = 3 mrad/s. The G measurement model noise was set to \( \sigma_{G} \)  = 0.05 m/s2 due to an additional uncertainty within the detection mechanism. The process noise for the gyroscope bias was set to \( \sigma_{{b_{\omega } }} \)  = 3⋅10−6 rad/s for Fs = 100 Hz and the accelerometer bias drift was modeled with \( \sigma_{{b_{a} }} \)  = 1⋅10−5 m/s2. The measurement models were implemented assuming \( \sigma_{ZUPT} \)  = 0.02 m/s, \( \sigma_{ZARU} \)  = 0.02 rad/s. Both ZUPT and ZARU are ‘virtual’ measurements with the noises essentially representing the quality of the associated ZUPT and ZARU detectors.

Usually, the performance of similar algorithms is reported with respect to more expensive highly calibrated IMUs such as the XSens MTi or equivalent (Bebek et al. 2010; Sabatini 2009). Figure 6 presents the result of our algorithm based on inertial sensors only for both the XSens MTi and the one of the in-house developed units. Although the XSens MTi also provides a complete 3D orientation, we only use the calibrated sensor readings for our algorithm. Although the well calibrated XSens MTi unit (price app. 1,500 $) outperforms our custom system without temperature calibration, the difference is not dramatic and even a low-cost system apparently is able to provide meaningful trajectory over reasonably long period of time. Clearly, the direct INS mechanization (blue line in Fig. 6 (left)) fails to deliver a reliable position due to fast accumulating errors. The subsequent experiments are all done with our custom sensor unit in order to check the feasibility of the approach for low-cost systems. Obviously, better results can be obtained for more expensive calibrated sensor systems.

Fig. 6
figure 6

Pure inertial localization using the XSens MTi and the custom unit. XY position plot (left). Black square marks the start of walking while the pink dashed line corresponds to true walking trajectory. Estimated vertical displacement: custom IMU (right top) and XSens MTi (right bottom). Blue and green square mark correspondingly the start and the end of the trajectory. The walking duration was ~5 min

Both systems have not returned back to the starting position with the error being slightly smaller for the XSens MTi unit. The vertical position mismatch was even smaller for the custom IMU unit. This however, is merely a coincidence as, some errors have canceled each other during the experiment. The custom IMU has a more rugged vertical position estimation and several jumps which can be attributed to failures in stance detection. Interestingly, even this vertical accuracy of our custom IMU is more than enough to distinguish separate stairs (actually a couple of stairs as long as the unit is mounted on a single shoe and a single swing usually covers two stairs) as shown in Fig. 7.

Fig. 7
figure 7

Vertical displacement scenario with stairs using the custom IMU

The incorporation of the accelerometer bias \( {\mathbf{b}}_{a,k} \) into the filter state can be justified by the results shown in Fig. 8 (left), where two otherwise identical filters with and without bias are compared. The presence of \( {\mathbf{b}}_{a,k} \) slightly improves the position estimate although in practice this depends on the quality of the sensors used and comes at a price of three extra states to be estimated within the filter. The associated bias estimates for both filters are shown in Fig. 9. The elimination of the \( {\mathbf{b}}_{a,k} \) had practically no effect on the \( {\mathbf{b}}_{\omega ,k} \) estimation as the latter is directly observable via the ZUPT measurement model during the still phase. The initial high dynamics of the estimates in Fig. 9 is due to a fairly high initial covariance.

Fig. 8
figure 8

Pure inertial localization for filter with and without \( {\mathbf{b}}_{a,k} \) (left) and influence of measurement noise values on the performance of the tracking algorithm (right)

Fig. 9
figure 9

Estimated biases: gyroscope bias (top) and accelerometer bias (middle) for full state formulation and only gyroscope bias for filter formulation without \( {\mathbf{b}}_{a,k} \)

Although for the ‘real’ sensors the noise models are usually mapped to the true characteristics of the sensors, the situation is somehow more complicated for the ‘virtual’ ZUPT and G measurement models where the entire SSD mechanism should be considered as a sensor per se. A rough understanding of the influence of these parameters on the localization performance can be obtained from Fig. 8 (right) which confirms that some trial-and-error efforts are necessary for filter tuning.

In the cases above the true heading is not known to the system. The problem, at least in theory, can be addressed by measuring the Earth’s magnetic field. In practice, however, these measurements are unreliable due to magnetic field disturbances as they appear especially in indoor environments. The issue is often handled by assuming very large measurement noise or employing some heuristic disturbance detectors (Sabatini 2009). Unfortunately, these methods can not handled arbitrary disturbances and are suggested to be carefully tested before deployment. However, for outdoor scenarios with minor disturbances (Fig. 10) only the heading can be corrected with associated improvement in estimated positions. One could also attempt to estimate the magnetic field disturbances along with the actual filter state, but this would increase the complexity of the filter and could result in some observability issues.

Fig. 10
figure 10

Comparison of the algorithm performance with and without magnetic field information. XY position estimate results (left). Estimated vertical displacement for both filters (right): blue and green squares mark correspondingly start and the end of the trajectory. The walking duration was ~4 min

From the results above is not completely clear whether a fairly complex ZUPT+G+ZARU SSD mechanism is actually necessary. The result of using a combination of SSD techniques is shown in Fig. 11. Here we leave the ZUPT measurement for all the cases in order to avoid a too fast error accumulation due to double integration of the acceleration errors. The addition of the G measurement strongly improves the performance as the pitch and roll information becomes observable. The minor influence of the ZARU measurment can be attributed to a stable gyroscope bias \( {\mathbf{b}}_{\omega ,k} \) during the experiment.

Fig. 11
figure 11

Comparison of pure inertial method for different combinations of zero-velocity detectors. XY position estimate results (left). Estimated vertical displacement for different detection mechanisms (right): blue and green squares mark correspondingly start and the end of the trajectory

The vertical position drift can be eliminated by augmenting the system with a barometric pressure sensor. In our setup we limit the pressure measurements to be valid only during the ZUPT+ZARU+G condition to avoid higher pressure deviations due to air circulation caused by fast foot movements. The localization results for a three floor setup and stair/elevator segments is shown in Fig. 12. The pure inertial system performs rather well for upstairs but of course fails to detect the elevator part. The barometer measurements (assumed \( \sigma_{h} \)  = 0.2 m) clearly permit to correct the height estimation, but the sensor output are rather noisy and the sensor is sensitive to the changing environment such as a door opening. Faster height corrections can be achieved with smaller \( \sigma_{h} \) values which, however, result in a noisier height estimation (marked as ‘B’ in Fig. 12). On the other hand, a high uncertainty assigned to barometer measurements can have an effect similar to that denoted as ‘A’ in the plot, where the height correction was not in time before the person left the elevator and returned to the starting point. We also have observed almost no barometer influence on the XY displacement estimation. Note that barometer measurements can be potentially used outside the fusion filter as well, e.g., for the floor detection in a multi-storey building.

Fig. 12
figure 12

Multi-storey localization scenario: perspective view for the results of pure inertial algorithm (top left) and system augmented with barometric pressure sensor (top right). The vertical scale is artificially increased for improved visual separation between the floors. The associated top view (bottom left) and height estimation results for different values of pressure noise (bottom right). The total walking duration was ~3 min

Even if the vertical position drift can be partially corrected using the barometric pressure sensor as shown above, the XY position errors are still not bounded. Below we present some preliminary results where the position reference information is obtained via the detection of passive RFID tags (Figs. 13 and 14). As the position of the tag within the environment is known thanks to its unique ID, a direct position correction can be applied. Due to RFID hardware constraints the user has to step on or reasonably close to the tag placed on the floor. The detection of the tag in the vicinity of the foot triggers the position correction mechanism with \( \sigma_{RFID} \)  = 10 cm. The performance of the approach strongly depends on the number of tags encountered during the walking and clearly one intends to put the tags on some commonly traversed locations. Interestingly, even few RFID tags encountered during our experiments allow a significant improvement of the estimated trajectory. Naturally, some better performance is expected for more advanced RFID systems with RSSI measurements similar to those discussed in Subramanian et al. (2008). A combination of IMU and RFID is a perfect example of complementary sensing modalities where short term tracking with IMU is supported by an accurate location information from RFID tags.

Fig. 13
figure 13

Example of inertial system performance augmented with RFID reader for multi-floor scenario. Red squares mark the position of RFIDs while the black square denote the start of the walking. The vertical scale is artificially increased for improved visual separation between the floors

Fig. 14
figure 14

Comparison of pure inertial localization (left) and approach augmented with RFID measurements (right) in single floor scenario. Red squares mark the position of RFID tags while the blue square denote the start of the walking trajectory

Although the presented ZUPT mechanism, even when implemented using inertial sensors only, seems to show a significant improvement in the position estimate when compared to pedometer-based methods, it also does not guarantee the position error to be bounded when applied alone. The algorithm as formulated above, is deceptively simple. Unfortunately, the presented integration mechanism is in general susceptible to several error sources including the integration itself, sensor offsets, noises and other calibration errors.

Augmentation of the inertial system with additional sensors comes with its own disadvantages. Apart of increasing costs, size, weight and power requirements of the overall system, these sensors can make the system sensitive to unmodelled external disturbances. For example, the assumptions regarding Earth’s magnetic field are often violated for indoor scenarios or in proximity of larger metallic structures and some heuristics are often necessary to validate the measurements. The introduction of heuristics into the RBE mechanism makes the performance of the overall system less predictable while the performance starts to be data and scenario dependent. The same holds for barometric pressure sensing, where local pressure disturbances due to motion affect the sensor signal. Numerous other modifications possible including more sophisticated process models. Unfortunately, the adoption of more complex models does not necessarily lead to a better practical performance as some parameters can become unobservable or their effective estimation can depend on the actual motion.

The presented experiments were performed with the user stepping on asphalt surfaces and office building floor. It stays for the future research to analyze the performance of the algorithm with challenging scenarios such as jogging and running as well as stepping on grass, sand and snow covered surfaces.

6 Conclusions and Future Work

Within the work we have demonstrated the feasibility of a foot-mounted low-cost IMU system for personal navigation applications using low cost MEMS sensors. The inertial sensor system employed a combination of Zero Velocity Updates as the basis for PDR and the performance was compared against a realization based on a more expensive and calibrated IMU. We have shown that the performance of the system can be significantly improved by using a more complex filter with simultaneous state and parameter estimation as well as augmenting the system with additional sensors for magnetic field, pressure measurement and detection of passive RFID tags placed on the floor. The chapter also describes some of the practical difficulties when dealing with realistic indoor scenarios and actual sensors as well as presented some algorithm design issues. Employment of cheap sensors puts higher requirements on the algorithm itself including the general algorithm structure, complexity of the SSD and a careful revision of all the relevant assumptions.

In future, the method is planned to be implemented on an Android-based system to employ the available WiFi infrastructure and GPS information from the platform for position correction when applicable. The computational feasibility of the approach will be handled by reformulating the existing algorithm as more tractable EKF-based fusion problem, whereas the Kalman smoothing approach is planned for offline refinement of the estimated trajectory. A better algorithm performance is also expected with the IMU placed closer to the heel. Obviously, some improvement is also expected when known explicit motion constraints (i.e., the map information) is incorporated into the filter.