Research Article
A Multi-Floor Indoor Pedestrian Localization Method Using Landmarks Detection for Different Holding Styles
| | Input: maps for all floors: Map(zFL) | | | Input: landmark database and the floor lookup table | | | Input: sensor readings up to current time t: d1:t | | | Output: current floor level and initial position | | | Output: the detected landmarks | | | Output: the current position of the pedestrian | | (1) | CurrentMode = estimateMode (d1:t) | | (2) | if (CurrentMode == stopping) then | | (3) | Estimate the floor and then initial position | | (4) | Update the floor lookup table | | (5) | end if | | (6) | else if (CurrentMode == walking) then | | (7) | Recognize the holding style | | (8) | if (detect new step) then | | (9) | if (plain walking) then | | (10) | Update the position by the PDR | | (11) | Test for detecting the landmarks (WiFi, turning) | | (12) | if (detect a landmark) then | | (13) | Update the current position to landmark position | | (14) | end if | | (15) | end if | | (16) | else if (walking on stairs) then | | (17) | Test for detecting the stairs landmarks | | (18) | if (detect a landmark) then | | (19) | Change the floor level of the current position | | (20) | Change the floor map | | (21) | end if | | (22) | end if | | (23) | end if | | (24) | end if |
|