Infrastructure-less Indoor Navigation

While navigation systems for outdoor environments are readily available, navigation within buildings still poses a challenge. The main reason for this lies in the difficulty to obtain accurate position information in an easy to set-up way with minimal infrastructure and to create indoor maps.

Our approach to this problem is twofold: (1) We use simple step detection and step heading estimation. (2) We match detected steps onto the expected route from the source to the destination using sequence alignment algorithms. Instead of a more general localization problem, we solve the localization problem on a specified route. This allows us to compensate for inaccuracies and give the user accurate turn-by-turn directions.

To allow easy incremental deployment of our system, we integrate our system with OpenStreetMap, which already has rudimentary indoor support. GPS, Pseudolites, UWB, WiFi access points, and RFID is avoided, making the system useful for protected environments like historical buildings and archaeological sites as well as hospitals, where additional RF gear might interfere with medical equipment.


Generating Maps

OpenStreetMap allows wiki-style editing, thereby enabling everyone to contribute easily. Map data from OpenStreetMap can be accessed as an XML structure consisting of nodes, ways, areas, and relations, which can be annotated with arbitrary key value pairs.

Indoor nodes can be annotated using a combination of the following keywords:

  • indoor=yes marks an object as being indoors.
  • level=* designates the associated level or floor of an object.
  • wheelchair=yes indicates accessibility by wheelchairs.
  • highway=steps denotes steps with the additional keyword step_count=* providing its length.
  • highway=elevator labels elevators, connecting different floors.
  • highway=door specifies a node to be a door. building=entrance as a special case denotes the entrance door to a building.
  • name=* is used to give an object a common name.

The popularity of OpenStreetMap allows us to make use of a variety of tools, e.g. JOSM, to create and extend maps incrementally. The OpenStreetMap community has already mapped the vicinity of our building in great detail, easing our task to integrate our indoor maps, which we derived from floor plans with outdoor footpaths and streets. Editing paths lying on top of each other, i.e., in different floors, is still cumbersome. We alleviated this by creating one distinct map file per floor, and annotating nodes to be merged with a node in another layer with the keyword merge_id=*. This can easily be mitigated by extending JOSM with a better indoor support plugin.

FootPath in Action

A video of FootPath in Action can be found here.

Code and Downloads

We released the version presented at IPIN as GPLv3 code on github:

If you need a different kind of license or want to talk to us about the exciting new things we incorporated in the mean time, just contact us.

You can also find our application on the Android market.


Jó Ágila Bitsch Link
Paul Smith
Klaus Wehrle


Kamerabasierte Geschwindigkeits- und Richtungsänderungsbestimmung bei langsamen Geschwindigkeiten mittels Smartphones (FlowPath)
Patent pending
February 2012
Proceedings of the 2011 International Conference on Indoor Positioning and Indoor Navigation (IPIN), Guimaraes, Portugal, page 1--8.
Publisher: IEEE,
September 2011
ISBN: 978-1-4577-1803-8
Proceedings of the 2011 International Conference on Indoor Positioning and Indoor Navigation (IPIN), Guimaraes, Portugal, page 1--4.
Publisher: IEEE,
September 2011
ISBN: 978-972-8692-63-6
Export as:
- Impressum | Datenschutz -