Computer Laboratory

Simultaneous Localisation and Mapping on a Smartphone

Signal fingerprinting is the current technique built into smartphones to provide indoor positioning capabilities, but depends on surveys and databases of signal strength measurements to permit a device to "look up" where it is. These databases need regular updating to account for environmental changes, or changes to WiFI infrastructure (powering up and down, relocating access points, etc). An alternative approach involves the use of machine learning techniques and Simultaneous Localisation and Mapping (SLAM) to allow a device to develop these databases for itself with use and learn about a building's fingerprint maps during use. At the core of this system is an inertial navigation system, using the smartphone's accelerometers, gyroscope, magnetometer and barometer to provide an initial "push" around the building. The performance of any such system degrades with time and needs corrections to maintain a high accuracy. Traditionally these corrections are provided by GPS. Here the corrections are provided by the system learning about the building's layout, radio fingerprints and magnetic anomalies over time, and usng its own observations of the environment to reduce its errors over time. The system needs no prior knowledge of the building or any fingerprint databases to function, it surveys the environments automatically during use, generating fingerprint databases that could be passed on to other users or added to a global fingerprint database if desired.

App screenshots

The above image sequence shows three screenshots from the indoor positioning app. The white line shows the positioning track according to inertial measurments alone. The blue line is the track using the SLAM algorithm, which senses the patterns of magnetic and radio measurements in the building as the user moves. The blue circles represent a subset of the possible current user locations. As the user revisits locations (middle and left images) the system can recognise this (since the magnetic and radio measurements agree with historical ones) and correct its current and previous location estimates. The right hand image demonstrates the consistency of the SLAM positioning solution compared to inertial measurements alone.

The movie above shows a user being tracked by the SLAM smartphone app around the University of Cambridge Computer Laboratory. The red dotted line shows the track provided by inertial measurements alone. The performance degrades steadily over time. The solid green line is the full SLAM solution, which is capable of observing and correcting its own errors with use. If you cannot view the movie on your platform you can download the mp4 here

The movie below shows a user moving over three different floors (see the 3D view in the top right pane). If you cannot view the movie on your platform you can download the mp4 here

This research was extended by looking at ways of reducing the computational load while maintaining the autosurveying and autocorrecting aspects of SLAM. I developed a SLAM-like approximation with almost two orders of magnitude lower computational overhead. The research is discussed in part two, here

Contact Information

Ramsey Faragher
Senior Research Associate
University of Cambridge
Computer Laboratory
15 JJ Thomson Avenue
Cambridge CB3 0FD
United Kingdom

Phone: +44 1223 763767
Email: rmf25 [at]