10.07.2015 Views

Indoor Pedestrian Navigation using an INS/EKF framework for Yaw ...

Indoor Pedestrian Navigation using an INS/EKF framework for Yaw ...

Indoor Pedestrian Navigation using an INS/EKF framework for Yaw ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Indoor</strong> <strong>Pedestri<strong>an</strong></strong> <strong>Navigation</strong> <strong>using</strong> <strong>an</strong> <strong>INS</strong>/<strong>EKF</strong><strong>framework</strong> <strong>for</strong> <strong>Yaw</strong> Drift Reduction <strong>an</strong>d aFoot-mounted IMUA.R. Jiménez, F. Seco, J.C. Prieto <strong>an</strong>d J. GuevaraConsejo Superior de Investigaciones Científicas.Ctra. Campo Real km. 0.2; La Poveda, 28500, Arg<strong>an</strong>da del Rey.Madrid (Spain).Telephone: (34) 918711900, Fax: (34) 918717050Email: arjimenez@iai.csic.esWeb: http://www.iai.csic.es/lopsiWPNC 2010: 7th Workshop on Positioning, <strong>Navigation</strong> <strong>an</strong>d Communication, 11-12 March, Dresden, Germ<strong>an</strong>y, 2010.Abstract—The estimation of the position of a person in abuilding is a must <strong>for</strong> creating Intelligent Spaces. State-of-theartLocal Positioning Systems (LPS) require a complex sensornetworkinfrastructure to locate with enough accuracy <strong>an</strong>dcoverage. Alternatively, Inertial Measuring Units (IMU) c<strong>an</strong> beused to estimate the movement of a person; a methodology thatis called <strong>Pedestri<strong>an</strong></strong> Dead-Reckoning (PDR). In this paper, wedescribe <strong>an</strong>d implement a Kalm<strong>an</strong>-based <strong>framework</strong>, called <strong>INS</strong>-<strong>EKF</strong>-ZUPT (IEZ), to estimate the position <strong>an</strong>d attitude of aperson while walking. IEZ makes use of <strong>an</strong> Extended Kalm<strong>an</strong>filter (<strong>EKF</strong>), <strong>an</strong> <strong>INS</strong> mech<strong>an</strong>ization algorithm, a Zero VelocityUpdate (ZUPT) methodology, as well as, a st<strong>an</strong>ce detectionalgorithm. As the IEZ methodology is not able to estimate theheading <strong>an</strong>d its drift (non-observable variables), then severalmethods are used <strong>for</strong> heading drift reduction: ZARU, HDR <strong>an</strong>dCompass. The main contribution of the paper is the integrationof the heading drift reduction algorithms into a Kalm<strong>an</strong>-basedIEZ plat<strong>for</strong>m, which represents <strong>an</strong> extended PDR methodology(IEZ+) valid <strong>for</strong> operation in indoor spaces with local magneticdisturb<strong>an</strong>ces. The IEZ+ PDR methodology was tested in severalsimulated <strong>an</strong>d real indoor scenarios with a low-per<strong>for</strong>m<strong>an</strong>ce IMUmounted on the foot. The positioning errors were about 1% ofthe total travelled dist<strong>an</strong>ce, which are good figures if comparedwith other works <strong>using</strong> IMUs of higher per<strong>for</strong>m<strong>an</strong>ce.I. INTRODUCTIONIn order to fulfil the Intelligent Spaces’ goals, furtherresearch in artificial intelligence <strong>an</strong>d sensor network technology,is required. One import<strong>an</strong>t topic is the accurate <strong>an</strong>dcontinuous location of persons indoors. Local Positioning Systems(LPS) are being investigated, <strong>using</strong> ultrasound, radio orvision technology [1], but in some cases beacon-free solutionsare preferable since they do not depend on a pre-installedinfrastructure.During the last decade several beacon-free methodologieshave been proposed <strong>for</strong> accurate person’s position estimationbased on inertial sensors [2]-[14]. These methodologies, oftencalled <strong>Pedestri<strong>an</strong></strong> Dead-Reckoning (PDR) solutions, integratestep lengths <strong>an</strong>d orientation estimations at each detected step,so as to compute the absolute position <strong>an</strong>d orientation of aperson. Some PDR approaches assume a smooth walk onhorizontal surfaces, <strong>an</strong>d others are valid <strong>for</strong> uneven terrainwith complicated gait patterns. PDR has been proposed <strong>for</strong> alarge r<strong>an</strong>ge of applications, such as defense, emergency rescueworkers, smart offices, <strong>an</strong>d so on. PDR positioning accuracy,normally r<strong>an</strong>ges from 0.3% to 10% of the total travelleddist<strong>an</strong>ce, but this figures strongly depend on the algorithmimplemented <strong>an</strong>d the particular inertial sensor technologyemployed.Inertial Measurement Units (IMU), normally contain severalaccelerometers, gyroscopes, magnetometers <strong>an</strong>d even pressuresensors. The IMU sensors in aerospace applications, basedon gimballed sensors or laser based gyroscopes, are bulkybut provide a very accurate estimation with a low drift [9].The size <strong>an</strong>d per<strong>for</strong>m<strong>an</strong>ce of <strong>an</strong> inertial sensor are linearlydependent parameters, so the smaller the sensor the lowerper<strong>for</strong>m<strong>an</strong>ce is expected. Low- size <strong>an</strong>d weight units suchas those based on Micro-Electro-Mech<strong>an</strong>ical (MEMS) sensorsare becoming very popular, but they have a signific<strong>an</strong>t bias<strong>an</strong>d there<strong>for</strong>e suffer large drifts after integration.In this paper, we describe <strong>an</strong>d implement a Kalm<strong>an</strong>-based<strong>framework</strong> (IEZ), following the Foxlin work [14], to estimatethe position <strong>an</strong>d attitude of a person while walking (sectionII). Several methods <strong>for</strong> heading Drift reduction: ZARU,HDR <strong>an</strong>d Compass, have been implemented <strong>an</strong>d integratedinto the Kalm<strong>an</strong>-based IEZ <strong>framework</strong> (section III). Finally,these extended PDR algorithms (IEZ+) were tested in severalsimulated <strong>an</strong>d real indoor scenarios with <strong>an</strong> IMU mounted onthe foot (section IV).II. THE KALMAN-BASED INERTIAL PDR METHODThe method <strong>for</strong> <strong>Pedestri<strong>an</strong></strong> Dead-Reckoning (PDR) hasbeen implemented in a Kalm<strong>an</strong>-based <strong>framework</strong> <strong>using</strong> theguidelines of Foxlin [14]. The idea is to use <strong>an</strong> ExtendedKalm<strong>an</strong> Filter (<strong>EKF</strong>) to estimate the errors of <strong>an</strong> Inertial<strong>Navigation</strong> System (<strong>INS</strong>), which accumulate due to the IMU


AccelerationAngular ratePositionVelocity<strong>INS</strong> <strong>for</strong> Position <strong>an</strong>d Attitude estimationAttitudeError state vectorAttitudeExtended Kalm<strong>an</strong> Filter (<strong>EKF</strong>) <strong>for</strong> error estimationMeasurementEvent detectionZUPTEstimated velocity3) Remove the gravitational component in accelerationreadings (3).4) Integration of acceleration values to estimate the velocity<strong>an</strong>d, after a second integration, the position (4.a & 4.b).5) Refinement of position, velocity <strong>an</strong>d attitude based onKalm<strong>an</strong> error estimates (5.a, 5.b & 5.c).The first phase <strong>for</strong> bias compensation consists in subtractingto the raw acceleration <strong>an</strong>d gyroscopic sensor data (ωk b <strong>an</strong>da b krespectively), the bias terms estimated by the Kalm<strong>an</strong> filter(positions 4-6 <strong>an</strong>d 13-15 in the error state vector <strong>for</strong> gyro <strong>an</strong>daccelerometers biases, respectively):AccelerationAccelerometersSt<strong>an</strong>ce & Still phase detectionAngular rateGyroscopesFig. 1. The IEZ Kalm<strong>an</strong>-based <strong>framework</strong> used <strong>for</strong> pedestri<strong>an</strong> deadreckoning.It has four main blocks: 1) <strong>an</strong> <strong>INS</strong> mech<strong>an</strong>ization algorithm adaptedto incorporate the error estimations from <strong>an</strong> <strong>EKF</strong>, 2) a Extended Kalm<strong>an</strong> Filter(<strong>EKF</strong>) that estimates the errors states related to the <strong>INS</strong>, 3) a Zero-Velocity-Update (ZUPT) block that feeds the <strong>EKF</strong> with the measured errors in velocity,<strong>an</strong>d 4) a St<strong>an</strong>ce&Still detection algorithm to determine when the person isat rest (Still) or with the foot on the ground while walking (St<strong>an</strong>ce). In this<strong>framework</strong> 3 accelerometers <strong>an</strong>d 3 gyroscopes are used in <strong>an</strong> IMU mountedon the foot of a person.sensor biases. The <strong>EKF</strong> is updated with velocity measurementsby the Zero-Velocity-Update strategy (ZUPT) every time thefoot is on the floor. We call this Kalm<strong>an</strong>-based <strong>framework</strong><strong>INS</strong>-<strong>EKF</strong>-ZUPT, or just IEZ, <strong>for</strong> short. Figure 1 shows themain blocks in the IEZ PDR methodology.A. Inertial <strong>Navigation</strong> (<strong>INS</strong>)The <strong>INS</strong> algorithm uses the accelerometer <strong>an</strong>d gyroscopicreadings, in the sensor body (b) frame of reference, (a b k <strong>an</strong>dωk b , respectively) which are taken at every sample interval ∆tat discrete sampling times k. A classical <strong>INS</strong> mech<strong>an</strong>izationwas implemented, including some modifications to cope withthe in<strong>for</strong>mation provided by the <strong>EKF</strong> throughout the errorstate vector: δx k = [δϕ k ,δωk b,δr k,δv k ,δa b k]. This 15-elementvector contains the estimated biases <strong>for</strong> accelerometers <strong>an</strong>dgyroscopes (δω b <strong>an</strong>d δa b , respectively), as well as, the errorsin attitude (δϕ) <strong>an</strong>d the errors in position <strong>an</strong>d velocity (δr,δv).All these 5 components have 3 elements each, correspondingto a three-dimensional estimation. Details of the designed <strong>INS</strong>block <strong>for</strong> use in the IEZ <strong>framework</strong> are shown in Fig. 2 <strong>an</strong>dexplained in the following.This <strong>INS</strong> mech<strong>an</strong>ization process has five main phases:1) Bias compensation of raw acceleration <strong>an</strong>d gyroscopicvalues based on Kalm<strong>an</strong> bias estimates (1.a & 1.b inFig. 2).2) Integration of gyroscopic values in order to estimate theattitude (2).{ ω ′ bk = ωk b −δx k−1(4 : 6) = ωk b −δωb k−1= a b k −δx k−1(13 : 15) = a b k −δab k−1a ′ bk, (1)where ω ′ bk<strong>an</strong>d a ′ bkdenote the bias-compensated gyroscopic<strong>an</strong>d acceleration sensor readings, respectively.In the second phase, we update the sensor orientation, withrespect to the navigation frame (n, defined to be Noth-West-Up on the ground), based on the bias-compensated gyroscopicreadings. A Padé approximation of the exponential function isused <strong>for</strong> this orientation update [11]:C n b k|k−1= f(C n b k−1|k−1,ω ′ k−1|k−1·2I bk ) = C n 3×3 +δΩ k ·∆tb2I 3×3 −δΩ k ·∆t ,(2)where C n b k|k−1is the rotation matrix that tr<strong>an</strong>s<strong>for</strong>ms fromthe body (b) to the navigation (n) frame, which is updated withthe gyroscopic in<strong>for</strong>mation at time k but not yet corrected bythe <strong>EKF</strong>; C n b k−1|k−1is the last rotation matrix available thatwas already corrected by the <strong>EKF</strong> after the filter update at timek−1; <strong>an</strong>d δΩ k is the skew symmetric matrix <strong>for</strong> <strong>an</strong>gular ratesused to define the small <strong>an</strong>gular increments in orientation:⎡δΩ k = ⎣0 −ω ′ bk(3) ω ′ bk(2)ω ′ bk(3) 0 −ω ′ bk(1)−ω ′ bk(2) ω ′ bk(1) 0⎤⎦. (3)Note that the rotation matrix C n b k−1|k−1is post-multipliedby the term that represents the small ch<strong>an</strong>ge in orientation,since this rotation is with respect to the sensor body referenceframe (b).In the third phase, the acceleration of gravity is removedfrom the sensor readings. Initially, the accelerations, a ′ bk, aretr<strong>an</strong>s<strong>for</strong>med from the sensor body coordinate frame (b) to thenavigation frame (n), <strong>an</strong>d then the value of g (9.8 m/s) issubtracted to the “vertical” component of acceleration:ă k = C n b k|k−1 · a ′ bk −[0,0,g]. (4)In the fourth phase, the gravity-free acceleration value ă k ,is integrated to obtain the velocity in the navigation frame,v k|k−1 , prior to the <strong>EKF</strong> correction at time k:v k|k−1 = v k−1|k−1 + ă k ·∆t. (5)


Fig. 2. Details of the <strong>INS</strong> mech<strong>an</strong>ization algorithm adapted to be used in cooperation with the <strong>EKF</strong> in the IEZ <strong>framework</strong>. It accepts the estimated sensorbiases <strong>for</strong> accelerometers <strong>an</strong>d gyroscopes (δω b <strong>an</strong>d δa b , respectively), as well as, the errors in attitude (δϕ) <strong>an</strong>d the errors in velocity <strong>an</strong>d position (δr,δv).This velocity is integrated to obtain the sensor position inthe navigation frame:r k|k−1 = r k−1|k−1 + v k|k−1 ·∆t. (6)then, the linearized state tr<strong>an</strong>sition model is:δx k+1|k = Φ k δx k|k + w k , (11)where δxFinally, in the fifth phase, we correct the previously computedposition <strong>an</strong>d velocity estimates once the <strong>EKF</strong> has beenk is the process noise withk+1|k is the predicted error state, δx k|k is the lastfiltered error state at time k, wcovari<strong>an</strong>ce matrix Qupdated with the measurements at time k, by making use ofk = E(w k w T k ), <strong>an</strong>d Φ k is the 15 × 15state tr<strong>an</strong>sition matrix:the filtered Kalm<strong>an</strong> error state δx k :{ Φrk|k = r k|k−1 −δx k (7 : 9) = r k|k−1 −δr k =k ⎡.I ∆t·C n ⎤v k|k = v k|k−1 −δx k (10 : 12) = v k|k−1 −δvb k k|k0 0 0(7)0 I 0 0 0The attitude refinement is achieved by updating the rotation⎢0 0 I ∆t·I 0matrix, C n b k|k−1, with the three <strong>an</strong>gle errors estimated by the⎣ −∆t·S(a ′ n⎥∆t·Cn ⎦ .k b k|k<strong>EKF</strong> <strong>for</strong> roll, pitch <strong>an</strong>d yaw (δϕ k ). Assuming that those 0 0 0 0 I<strong>an</strong>gle errors are small, the corrected rotation matrix, C n b k|k,(12)is computed, <strong>using</strong> <strong>an</strong>other Padé approximation, as:The term S(a ′ nk k is the skew symmetric matrix<strong>for</strong> accelerations that allows the <strong>EKF</strong> to act as <strong>an</strong> inclinometer,C n b k|k= g(C n b k|k−1,δϕ k ) = 2I 3×3 +δΘestimating the pitch <strong>an</strong>d roll of the sensor:k· C n b2I 3×3 −δΘ k|k−1(8)⎡ ⎤k 0 −a zk a ykwhere δΘ k is the skew symmetric matrix <strong>for</strong> small <strong>an</strong>glesS(a ′ n⎣ ak zk 0 −a xk⎦. (13)⎡⎤−a yk a xk 00 −δϕ k (3) δϕ k (2)δΘ k = −⎣δϕ k (3) 0 −δϕ k (1) ⎦. (9) a ′ nk is the bias-corrected acceleration that has been tr<strong>an</strong>s<strong>for</strong>med−δϕ k (2) δϕ k (1) 0to the navigation frame of reference:Note that the original rotation matrix has been premultipliedby the incremental rotation term since this small ch<strong>an</strong>ge ina ′ nk = C n b k|k · a ′ bk = (a xk ,a yk ,a zk ). (14)orientation is with respect to the navigation frame (n).B. The Extended Kalm<strong>an</strong> filter (<strong>EKF</strong>)The PDR navigation state tr<strong>an</strong>sition model is a non-linearfunction of the states, but it c<strong>an</strong> be linearized around a stateestimate [14], [11]. If the 15-element error state vector at timek isThe measurement model isz k = Hδx k|k + n k (15)where z k is the error measurements, H is the measurementmatrix, <strong>an</strong>d n k is the measurement noise with covari<strong>an</strong>cematrix R k = E(n k n T k ).The filtered error state δx k|k at time k is obtained after ameasurement at time k is available, with the Kalm<strong>an</strong> update


equation:δx k|k = δx k|k−1 + K k ·[m k − Hδx k|k−1 ], (16)where K k is the Kalm<strong>an</strong> gain, m k is the actual error measurement,<strong>an</strong>d δx k|k−1 is the predicted error state.The Kalm<strong>an</strong> gain is calculated during the correction phasewith the usual <strong>for</strong>mula:K k = P k|k−1 H T (HP k|k−1 H T + R k ) −1 . (17)where P k|k−1 is the estimation error covari<strong>an</strong>ce matrix, thatis computed at time k based on measurements received at timek-1, in this way: P k|k−1 = Φ k−1 P k−1|k−1 Φ T k−1 + Q k−1. Thecovari<strong>an</strong>ce matrix P k|k at time k is then computed <strong>using</strong> theKalm<strong>an</strong> gain in the Joseph <strong>for</strong>m equation: P k|k = (I 15×15 −K k H)P k|k−1 (I 15×15 − K k H) T + K k R k K T k . Similarly, duringthe update phase after corrections with measurements at timek, the predicted covari<strong>an</strong>ce matrix <strong>for</strong> time k+1 is computedas: P k+1|k = Φ k P k|k Φ T k + Q k.It is import<strong>an</strong>t to mention that the non-bias error terms ofthe filtered state vector, δx k|k , are reset to zero after the <strong>INS</strong>uses them to refine the current attitude, velocity <strong>an</strong>d position.This is because those errors are already compensated <strong>an</strong>dincorporated into the <strong>INS</strong> estimations. The only terms thatare maintained over time in the <strong>EKF</strong> filter are the gyro <strong>an</strong>daccelerometer biases, i.e. δω b k <strong>an</strong>d δab k .The actual error measurement m k that feeds the <strong>EKF</strong>, iscalculated <strong>for</strong> ZUPT as: m k = v k|k−1 − [0,0,0], wherethe zero vector me<strong>an</strong>s that at st<strong>an</strong>ce we know that thevelocity of the foot is almost zero. The measurement matrix,H, <strong>for</strong> ZUPT update is a 3 by 15 matrix like this:H = [0 3×3 , 0 3×3 , 0 3×3 , I 3×3 , 0 3×3 ]. It selects the velocityerror components from the error state matrix δx k , i.e. the 10thto 12th terms.C. St<strong>an</strong>ce detectionThe <strong>EKF</strong> gets feedback from measurements, only when theperson’s foot is detected to be stationary on the ground (totallystill, or in a st<strong>an</strong>ce phase during walk). Most algorithms in theliterature <strong>for</strong> st<strong>an</strong>ce detection rely on basic signal processingtechniques with accelerometers [5], [13] or gyroscopes [2].They properly work in m<strong>an</strong>y situations but occasionally failin slow <strong>an</strong>d r<strong>an</strong>dom walk [13]. We implement a multiconditionalgorithm, that complements the implementation of[10] by <strong>using</strong> both sources of in<strong>for</strong>mation (accelerometers <strong>an</strong>dgyroscopes) <strong>an</strong>d <strong>an</strong> order filter so as to make the detectionprocess robust enough (see Fig. 3).The three conditions (C1, C2 <strong>an</strong>d C3) to declare a foot asstationary are:1) The magnitude of the acceleration, |a k | = [a b k (1)2 +a b k (2)2 + a b k (3)2 ] 0.5 must be between two thresholds(th amin = 9 <strong>an</strong>d th amax = 11 m/s 2 ).C1 ={1 thamin < |a k | < th amax0 otherwise. (18)St<strong>an</strong>ce & Still phase detectionC1: Magnitude of acceleration conditionC2: Local vari<strong>an</strong>ce of acceler. conditionC3: Angular rate conditionFig. 3.AccelerationIMUAngular rateAND Medi<strong>an</strong> filter St<strong>an</strong>ce & StilldetectionEvent detectionSetup measurement <strong>for</strong> <strong>EKF</strong>St<strong>an</strong>ce <strong>an</strong>d Still detection block used in the IEZ <strong>framework</strong>.2) The local acceleration vari<strong>an</strong>ce, which highlights thefoot activity, must be above a given threshold (th σa =3 m/s 2 ). The local vari<strong>an</strong>ce is computed this way:σ 2 a b k= 12s+1k+s∑j=k−s(a b k −a b k )2 , (19)where a b kis a local me<strong>an</strong> acceleration value, computedby this expression:a b k = 1 ∑ k+s2s+1 q=k−s a q, <strong>an</strong>dsdefinesthe size of the averaging window (s = 15 samples). Thesecond condition C2 is satisfied when:C2 ={ 1 σa bk> th σa0 otherwise. (20)3) The magnitude of the gyroscope, |ω k | = [ω b k (1)2 +ω b k (2)2 + ω b k (3)2 ] 0.5 , must be below a given threshold(th ωmax = 50 o /s).C3 ={ 1 |ωk | < th ωmax0 otherwise. (21)The three logical conditions must be satisfied simult<strong>an</strong>eously<strong>for</strong> foot stationary detection, so a logical “AND” isapplied, <strong>an</strong>d the result is filtered out <strong>using</strong> a medi<strong>an</strong> filter witha neighboring window of 11 samples in total. The registeredlogical “1”s mark the St<strong>an</strong>ce phase that occurs when the foot isstationary on the floor (while walking, or not). The Still phase,corresponding to a non-walking stationary foot, is detectedfrom st<strong>an</strong>ce samples that are not surrounded by non-st<strong>an</strong>cesamples in a window larger th<strong>an</strong> 2 seconds. Figure 4 showsresults of this multi-condition st<strong>an</strong>ce detection process.III. METHODS TO REDUCE THE DRIFT IN HEADINGThe IEZ Kalm<strong>an</strong>-based PDR method presented in lastsection (Fig. 1), accumulates large errors in orientation dueto the bias in the gyroscopes. IEZ c<strong>an</strong> not estimate it becausethe yaw orientation (ψ k ), <strong>an</strong>d the gyroscopic bias (δω b ) in thevertical axis, are not observable from ZUPT measurementsalone [14]. Next subsections describe the integration in IEZof some approaches to reduce the drift in heading: ZARU[10], HDR [12], <strong>an</strong>d the use of magnetometers as a compass.We focus on methods to reduce the drift without <strong>using</strong><strong>an</strong>y external infrastructure such as GPS <strong>an</strong>d LPS, nor mapmatchingtechniques. See Fig. 5 to view how these methodsare integrated in the IEZ <strong>framework</strong>.


Logical (0−1 with added offsets)54Conditions <strong>for</strong> St<strong>an</strong>ce & Still state detectionCond1Cond2Cond3St<strong>an</strong>ce = C1&C2&C3St<strong>an</strong>cemedi<strong>an</strong>Still(no − walk)Steps detected32101200 1400 1600 1800 2000 2200 2400 2600 2800samplesFig. 4. Some results of the St<strong>an</strong>ce <strong>an</strong>d Still detection process.A. Zero <strong>an</strong>gular rate update (ZARU)ZARU st<strong>an</strong>ds <strong>for</strong> Zero Angular Rate Update [10]. So, theidea is to feed the <strong>EKF</strong> with measurements of the measurederror in the <strong>an</strong>gular rate, while the foot is still.∆ωk b = ωb k −[0,0,0]. (22)If ZARU is integrated in the IEZ <strong>framework</strong>, then itsmeasurement matrix must be:[ ]03×3 IH = 3×3 0 3×3 0 3×3 0 3×3, (23)0 3×3 0 3×3 0 3×3 I 3×3 0 3×3<strong>an</strong>d the error measurement vector is the concatenation ofthe ZARU <strong>an</strong>d ZUPT contributions:B. Heuristic Heading Reduction (HDR)m k = [∆ω b k ,∆v k]. (24)HDR st<strong>an</strong>ds <strong>for</strong> Heuristic Heading Reduction. It was originallyproposed by Borestein et al. [12]. It makes use of the factthat m<strong>an</strong>y corridors or paths are straight. So, the idea of theHDR algorithm is to detect when a person is walking straight,<strong>an</strong>d in that case apply a correction to the gyro biases, in orderto reduce the heading error.In our paper we use the same hypothesis, but we implementit in a total different way as Borestein et al. did [12]. Insteadof filtering the gyro signals with a binary I-controller, we workin the <strong>Yaw</strong> space, detecting a straight walk by <strong>an</strong>alyzing theorientation ch<strong>an</strong>ge, ∆ψ k , among successive steps:∆ψ k = ψ k − ψ k−(k s−k s−1) +ψ k−(ks−k s−2), (25)2where ψ k is the heading of the foot at the current samplek computed as ψ k = arct<strong>an</strong>(C n b k|k(2,1), C n b k|k(1,1)); k s isthe sample of last detected step (red points in Fig. 4), <strong>an</strong>dk s−1 is the sample of the previous to the last detected step.The right part of equation 25 takes the average of two <strong>Yaw</strong>values at positions within the previous st<strong>an</strong>ce phases that arecorrelative with the position of sample k in its own st<strong>an</strong>cephase.If the orientation ch<strong>an</strong>ge among successive steps, ∆ψ k , issmall enough (below a given threshold), then it is assumed astraight-line walk; <strong>an</strong>d the <strong>EKF</strong> is fed with some measurement,m k , to correct the heading error so as to make the trajectorystraight:Fig. 5. The IEZ-extended PDR <strong>framework</strong>. It represents the same methodologyas presented in Fig. 1 but adding the blocks <strong>for</strong> heading drift reduction:ZARU, HDR <strong>an</strong>d Compass.m k ={∆ψk |∆ψ k | ≤ th ∆ψ0 otherwise, (26)If |∆ψ k | is larger th<strong>an</strong> th ∆ψ , then the orientation ch<strong>an</strong>ge isconsidered to be a real variation in the trajectory of a person.In that case, no corrections are fed into the <strong>EKF</strong>. We use <strong>an</strong><strong>an</strong>gular value of 4 degrees as threshold th ∆ψ .The measurement matrix, H, when incorporating the ZUPT<strong>an</strong>d HDR updates is a 4 by 15 matrix as follows:[ ][001] 01×3 0H =1×3 0 1×3 0 1×3. (27)0 3×3 0 3×3 0 3×3 I 3×3 0 3×3


C. Electronic CompassThis drift compensation method is normally used in outdoorenvironments, where magnetic disturb<strong>an</strong>ces are moderate. <strong>Indoor</strong>s,the magnetic disturb<strong>an</strong>ces c<strong>an</strong> be severe <strong>an</strong>d perm<strong>an</strong>ent<strong>for</strong> a given position of the user. Some authors [12] do notrecommend the use of magnetometers indoors, but, convenientlytreated, we believe they are very useful as <strong>an</strong> absolutereference <strong>for</strong> heading.In order to use the magnetometer sensor as a compass, wefirst tr<strong>an</strong>s<strong>for</strong>m the sensor body readings into the navigationframe of reference, <strong>using</strong> the Roll (φ k ) <strong>an</strong>d Pitch (θ k ) <strong>an</strong>gles:⎡B n k = ⎣ cosθ ⎤ ⎡k 0 −sinθ k0 1 0 ⎦· ⎣ 1 0 0 ⎤0 cosφ k −sinφ k⎦·B b k ,−sinθ k 0 cosθ k 0 sinφ k cosφ k(28)where the roll <strong>an</strong>d pitch <strong>an</strong>gles are obtained from the rotationmatrix, as follows: φ k = arct<strong>an</strong>(C n b k|k(3,2), C n b k|k(3,3))<strong>an</strong>d θ k = −arcsin(C n b k|k(3,1)).After this tr<strong>an</strong>s<strong>for</strong>mation, the magnetic field components aregeodetically levelled, so the heading <strong>an</strong>gle (ψcompass k) is:ψcompass k= −arct<strong>an</strong>(B n k(2)/B n k(1))−M d (29)where M d is the earth magnetic declination at a given pointon the earth surface.The compass error measurement m k <strong>for</strong> the <strong>EKF</strong> ism k = ∆ψ k = ψ k −ψcompass k. (30)The measurement matrix, H, <strong>for</strong> ZUPT <strong>an</strong>d Compass estimationis equal to the HDR case (eq. 27).D. The full integration of all methods in IEZOnce defined each individual method <strong>for</strong> drift reduction(ZUPT, ZARU, HDR <strong>an</strong>d Compass), the evaluation of allthese methods merged into the same IEZ <strong>framework</strong> is quitestraight<strong>for</strong>ward. The measurement matrix would be a 8 by 15matrix with these components:⎡⎤0 3×3 0 3×3 0 3×3 I 3×3 0 3×3H = ⎢ 0 3×3 I 3×3 0 3×3 0 3×3 0 3×3⎥⎣ ⌊001⌋ 0 1×3 0 1×3 0 1×3 0 1×3⎦ , (31)⌊001⌋ 0 1×3 0 1×3 0 1×3 0 1×3<strong>an</strong>d the measurement vector would be:m k = [∆v k ,∆ωk,∆ψ b HDR k ,∆ψ Compassk]. (32)IV. TESTSWe have per<strong>for</strong>med several tests in order to evaluatethe per<strong>for</strong>m<strong>an</strong>ce of these PDR methods: IEZ, IEZ+ZARU,IEZ+HDR, IEZ+Compass <strong>an</strong>d IEZ+ZARU+HDR+Compass.Some tests were per<strong>for</strong>med by simulation, but most of thembelong to real indoor scenarios, where the IMU is installed onthe right foot of a person, as Fig. 6 shows.Fig. 6.Xsens IMU attached to the right foot <strong>using</strong> the shoe’s laces.accelerometers gyroscopes magnetometersAxes 3 3 3Full Scale (FS) ±50 m/s 2 ±300 deg/s ±750 mGaussLinearity 0.2% of FS 0.1% of FS 0.2% of FSBias stability 0.02 m/s 2 1 deg/s 0.1 mGaussB<strong>an</strong>dwidth 30 Hz 40 Hz 10 HzMax update rate 512 Hz 512 Hz 512 HzTABLE IPERFORMANCE OF INDIVIDUAL SENSORS IN XSENS IMUA. IMU descriptionWe use a commercially available IMU, model MTi fromXsens Technologies B.V (Enschede, The Netherl<strong>an</strong>ds). Its sizeis 58x58x22 mm (WxLxH), <strong>an</strong>d it weights 50 grams. It isconfigured to send data at 100 Hz.The IMU has three orthogonally-oriented accelerometers,three gyroscopes <strong>an</strong>d three magnetometers. The accelerometers<strong>an</strong>d gyroscopes are MEMS solid state with capacitativereadout, providing linear acceleration <strong>an</strong>d rate of turn,respectively. Magnetometers use a thin-film magnetoresistiveprinciple to measure the earth magnetic field.The per<strong>for</strong>m<strong>an</strong>ce of each individual MEMS sensor withinthe MTi IMU are summarized in table I. They suffer froma signific<strong>an</strong>t bias, <strong>an</strong>d this bias also varies over time, soPDR algorithms have the challenge of avoiding excessive erroraccumulation (drift) during integration.B. <strong>EKF</strong> TuningThe <strong>EKF</strong> in the IEZ <strong>an</strong>d the extended IEZ+ <strong>framework</strong>shad to be fine-tuned in order to obtain a stable operation, byselecting the values of matrixes Q k , R k <strong>an</strong>d P k|k−1 .The process noise covari<strong>an</strong>ce matrix, Q k , is initialized <strong>for</strong>k = 1 as a diagonal 15x15 matrix with these in-diagonalelements: [1·10 −41×3 rad,0 1×3,0 1×3 ,1·10 −41×3 m/s,0 1×3]. Thenon-zero values correspond to the vari<strong>an</strong>ce of gyroscopic <strong>an</strong>daccelerometer sensors that is, in both cases, about 1·10 −4 .The measurement noise covari<strong>an</strong>ce matrix: R k is a squarematrix with rows <strong>an</strong>d columns equal to the number, n, ofmeasurements available (3 <strong>for</strong> ZUPT, 4 <strong>for</strong> IEZ+ZARU, 6 <strong>for</strong>


6050Real traj.IEZIEZ ZARUIEZ HDR0.01State vector [4:6]: Gyro bias40IEZ CompassIEZ Compass+HDR+ZARUStart0−0.01North (m)30−0.02δω b k (1)δω b k (2)20−0.03δω b k (3)10−0.040−0.05−40 −30 −20 −10 0 10 20 30East (m)Fig. 7. Estimated trajectories from IEZ PDR algorithms, when <strong>using</strong> IMUsimulated data.IEZ+HDR, 7 <strong>for</strong> IEZ+ZARU+HDR, <strong>an</strong>d so on). We set thismatrix with in-diagonal elements with values of: 0.01 m/s <strong>for</strong>ZUPT, 0.1 rad/s <strong>for</strong> ZARU, <strong>an</strong>d 0.1 rad HDR <strong>an</strong>d Compass.The state estimation covari<strong>an</strong>ce matrix, P k|k−1 , is initializedas a diagonal 15x15 matrix with these in-diagonal elements:[0 1×3 ,1·10 −21×3 rad/s,0 1×3,0 1×3 ,1·101×3 −2 m/s2 ].The results of the PDR algorithms strongly depends on theselected values <strong>for</strong> these covari<strong>an</strong>ce matrixes, so the tuningmust be done trying to find a consistent response among thestate estimates <strong>an</strong>d the state estimation covari<strong>an</strong>ce matrix.C. Per<strong>for</strong>m<strong>an</strong>ce <strong>using</strong> simulated IMU dataWe simulated the data <strong>an</strong> IMU would output when a personis walking along a pre-defined trajectory <strong>an</strong>d the IMU ismounted on the foot. This simulator was useful to better tunethe <strong>EKF</strong>, <strong>an</strong>d also to add controlled noise <strong>an</strong>d biases to <strong>an</strong>yof the simulated sensors.A square trajectory of 20-meters-long side was simulatedwith a velocity of 1 m/s <strong>an</strong>d a const<strong>an</strong>t stride length of 1 meter.The gyroscopic biases were zero <strong>for</strong> X <strong>an</strong>d Y axis, but wasset to -0.05 rad/s in Z axis. Additionally, white Gaussi<strong>an</strong> noisewith zero me<strong>an</strong> was added to the accelerometer <strong>an</strong>d gyroscopicsamples (σ a = 0.01 m/s 2 <strong>an</strong>d σ ω = 0.01 rad/s). Figure 7shows the positioning results <strong>using</strong> the IEZ <strong>an</strong>d the differentIEZ-extended algorithms. It is clear how a heading drift isaccumulated due to the gyro bias <strong>using</strong> the IEZ method alone.However, we c<strong>an</strong> see how the addition of several headingrelatedmeasurements to IEZ (ZARU+HDR+Compass) givesbetter results that in <strong>an</strong>y other cases.The estimation of the gyroscopic bias in the Z axis, <strong>using</strong><strong>an</strong>y of the IEZ+ extended methods, gets stable after 5 seconds(500 samples), as c<strong>an</strong> be seen in Fig. 8. This initial periodcorresponds to the Still phase, just be<strong>for</strong>e the person startsto walk. Once the person is walking, the gyroscopic biasestimation is no longer ch<strong>an</strong>ged since the state estimationcovari<strong>an</strong>ce matrix converged to low values, which me<strong>an</strong>s thatthe bias estimation was reliably done.0 500 1000 1500 2000 2500 3000 3500 4000samplesFig. 8. Simulation of the evolution of the gyroscopic biases as estimatedby the <strong>EKF</strong> in <strong>an</strong>y of the IEZ+ extended methods. The vertical gyro biasconverges in a few seconds to the true bias value (-0.05 rad/s).North (m)555045403530252015105Real traj.IEZIEZ ZARUIEZ HDRIEZ CompassIEZ Compass+HDR+ZARU0 10 20 30 40 50 Start 60East (m)Fig. 9. Position estimation results <strong>using</strong> IEZ <strong>an</strong>d several IEZ-extended PDRalgorithms. The test is per<strong>for</strong>med in building A of IAI-CSIC campus in aCounter-Clock-Wise (CCW) direction. The path is about 125 meters long,<strong>an</strong>d it contains indoor as well as outdoor parts.D. Per<strong>for</strong>m<strong>an</strong>ce in real indoor environmentsWe tested the PDR algorithms in a real indoor environment.Tests were per<strong>for</strong>med in building “A” of IAI-CSIC campus,both in a Counter-Clock-Wise (CCW) <strong>an</strong>d Clock-Wise (CW)directions. Figures 9 <strong>an</strong>d 10 show the estimated trajectories<strong>for</strong> a path 125 meters long, completed in 100 seconds.It is import<strong>an</strong>t to mention that the Compass contribution isdecisive in order to obtain accurate trajectories with respectthe ideal path. This is valid even with several local magneticperturbations that were detected along the path, as c<strong>an</strong> be seenin Fig. 11.As <strong>an</strong> initial per<strong>for</strong>m<strong>an</strong>ce index, we computed the positioningerrors (difference between the initial <strong>an</strong>d final position)with respect to the total travelled dist<strong>an</strong>ce (TTD). The values


North (m)555045403530252015105Fig. 10.a.u.21.510.50Real traj.IEZIEZ ZARUIEZ HDRIEZ CompassIEZ Compass+HDR+ZARU0 10 20 30 40 50 Start 60East (m)The same test th<strong>an</strong> in figure 9 but in Clock-Wise (CW) direction.Magnetic Fieldm xm ym z|m|V. CONCLUSIONWe have described, implemented <strong>an</strong>d compared some ofthe most relev<strong>an</strong>t Kalm<strong>an</strong>-based PDR algorithms in the stateof the art <strong>for</strong> pedestri<strong>an</strong> dead reckoning. The study consistedin the implementation of several methods <strong>for</strong> heading driftreduction, <strong>an</strong>d the evaluation in a common IEZ PDR plat<strong>for</strong>m.We restricted the study to the use of <strong>an</strong> IMU sensor alone, i.e.without <strong>using</strong> <strong>an</strong>y external infrastructure such as GPS, LPSor building-maps to correct the heading drift. The device wasplaced at the foot of the person because is the best position<strong>for</strong> accurate PDR.The presented results shown that extended IEZ+ PDRalgorithms c<strong>an</strong> provide good solutions <strong>for</strong> estimating hum<strong>an</strong>trajectories, even in indoors environments with local magneticdisturb<strong>an</strong>ces, <strong>an</strong>d even <strong>using</strong> a low-per<strong>for</strong>m<strong>an</strong>ce IMU. The uncorrectedheading drift is proportional to the travelled dist<strong>an</strong>cebut not to the time elapsed. The positioning error, <strong>for</strong> the IEZ+method integrating ZARU+HDR+compass, is typically about1% of the total travelled dist<strong>an</strong>ce.Future work will be focused to obtain a periodic absolutepositioning update during the walk, in order to c<strong>an</strong>cel out<strong>an</strong>y drift. This update could be done with LPS sensors suchas those based on RFID, WiFi, UWB or ultrasound; alsomatching PDR estimations with local maps; or <strong>using</strong> <strong>an</strong>y kindof magnetic signatures that c<strong>an</strong> be associated to a knownposition. Any of these approaches should provide a betterindoor location of persons <strong>for</strong> Intelligent Spaces in scenariossuch as homes, offices, healthcare spaces, emergencies, sportcenters <strong>an</strong>d so on.−0.5−10 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000samplesFig. 11. Magnetometer readings, B b k (<strong>for</strong> k=1 to 10000), during thewalking test in the indoor environment of Fig. 9. Note that the magnetic fieldmagnitude is not const<strong>an</strong>t along the path due to local magnetic disturb<strong>an</strong>ces.presented in table II show the typical r<strong>an</strong>ge of positioningerrors found <strong>for</strong> several indoor tests like those presented infigures 9 <strong>an</strong>d 10.PDR MethodPositioning errors (% of TTD)IEZ > 15IEZ ZARU [4-8]IEZ HDR [2-10]IEZ Compass [0.6-5]IEZ ZARU+HDR+Compass [0.3-1.5]TABLE IITYPICAL PERFORMANCE OF IEZ AND IEZ+ PDR ALGORITHMS FORSEVERAL INDOOR TESTS. ERRORS IN PERCENTAGE OF TOTAL TRAVELLEDDISTANCE (TTD).ACKNOWLEDGMENTThe authors would like to th<strong>an</strong>k the fin<strong>an</strong>cial supportprovided by projects LEMUR (TIN2009-14114-C04-03),RESELAI (TIN2006-14896-C02-02) <strong>an</strong>d LOCA (CSIC-PIERef.200450E430).REFERENCES[1] A.R. Jiménez, F. Seco, C. Prieto, <strong>an</strong>d J. Roa, “Tecnologías sensorialesde localización para entornos inteligentes,” in I Congreso español dein<strong>for</strong>mática - Simposio de Computación Ubicua e Inteligencia Ambiental,UCAmI2005 (Gr<strong>an</strong>ada), 2005, pp.75-86.[2] R. Feliz, E. Zalama <strong>an</strong>d J. Gómez, “<strong>Pedestri<strong>an</strong></strong> tracking <strong>using</strong> inertialsensors,” Journal of Physical Agents, vol. 3 (1), pp. 35-42, 2009.[3] B. Beauregard, “Omnidirectional <strong>Pedestri<strong>an</strong></strong> <strong>Navigation</strong> <strong>for</strong> First Responders,”in 4th Workshop on Positioning, <strong>Navigation</strong> <strong>an</strong>d communication,WPNC’07, H<strong>an</strong>nover, 2007, pp. 33-36.[4] J. Won Kim, H.J. J<strong>an</strong>g, D. Hw<strong>an</strong>g <strong>an</strong>d C. Park, “A step, stride <strong>an</strong>d headingdetermination <strong>for</strong> the pedestri<strong>an</strong> navigation system,” Journal of GlobalPositioning Sustems, vol. 3 (1-2), pp.273-279, 2004.[5] R. G. Stirling, “Development of a pedestri<strong>an</strong> navigation system <strong>using</strong>shoe mounted sensors”, Master of Science, University of Alberta, 2003.[6] R Stirling, J. Collin, K. Fyfe <strong>an</strong>d G. Lachapelle, “An Innovative Shoemounted<strong>Pedestri<strong>an</strong></strong> <strong>Navigation</strong> System”, In GNSS 2003, Graz, Austria,22-25 April, 2003, pp. 1-15.[7] H. Weinberg, “Using the ADXL202 in Pedometer <strong>an</strong>d Personal <strong>Navigation</strong>Applications,”Analog Devices AN-602 application Note, 2002[8] T.J. Br<strong>an</strong>d <strong>an</strong>d R.E. Phillips, “Foot-toFoot R<strong>an</strong>ge Measurement as <strong>an</strong>Aid to Personal <strong>Navigation</strong>,´´ in ION 59th Annual Meeting, 23-25 June,Alburquerque, NM, 2003, pp. 113-121.


[9] L. Ojeda <strong>an</strong>d J. Borestein, “Non-GPS <strong>Navigation</strong> <strong>for</strong> Emergency Responders,”In International joint Topical Meeting on Sharing Solutions <strong>for</strong>Emergencies <strong>an</strong>d Hazardous Environments, February 12-15, Salt LakeCity, Utath, USA, 2006, pp. 1-8.[10] S. Rajagopal, “Personal dead reckoning system with shoe mountedinertial sensors,” In Master of Science Thesis, Stockholm, Sweeden, 2008,pp. 1-45.[11] A. Schumacher, “Integration of a GPS aided Strapdown Inertial navigatiosystem <strong>for</strong> l<strong>an</strong>d vehicles,” In Master of Science Thesis, Stockholm,Sweeden, 2006, pp. 1-57.[12] J. Borestein, L. Ojeda <strong>an</strong>d S. Kw<strong>an</strong>mu<strong>an</strong>g, “Heuristic reduction of gyrodrift in IMU-based personnel tracking system,” In SPIE Defense, Security<strong>an</strong>d Sensing Conference, April 13-17, Orl<strong>an</strong>do, Florida, USA, 2009, pp.1-11.[13] A.R. Jiménez, F. Seco, C. Prieto <strong>an</strong>d J. Guevara, “A Comparison of<strong>Pedestri<strong>an</strong></strong> Dead-Reckoning Algorithms <strong>using</strong> a Low-Cost MEMS IMU,”In 6th IEEE International Symposium on Intelligent Signal Processing,26-28 August, Budapest, Hungary, 2009, pp. 37-42.[14] E. Foxlin, “<strong>Pedestri<strong>an</strong></strong> tracking with shoe-mounted inertial sensors,”IEEE Computer graphics <strong>an</strong>d Applications, vol. 1, pp. 38-46, 2005.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!