The task for my master thesis was to investigate the potentials of indoor positioning systems in industrial environments. I developed a system that determines the position with a neural network that evaluates Bluetooth signals.

Development time 2016
Development duration 6 Months
Technologies C#, iBeacon
License Closed source
Team size Single developer

From August 2015 to May 2016, I worked at the Fraunhofer Institute for Laser technology as a research assistant and did my master thesis. My task was to investigate the feasibility and limits of an indoor positioning system for industrial environments. The main requirement was that the system should work on an off-the-shelf tablet. Additional hardware could be placed in the environment, but not on the tablet.

The given use case was the control and maintenance of laser sensors. The idea was that a worker or maintenance technician in a factory could walk around with a tablet, which would navigate the user to the sensors and automatically display information like measurement statistics for the devices around him. To determine the real-world requirements and make sure that the research goals of the project would actually benefit the end-users, I had talks with a company that produces laser sensors like the one the Fraunhofer ILT was developing and with a company that used these sensors in their production line.

Metal sheet producing factory
Among other environments, I evaluated my system in a metal sheet producing factory hall.

As the main result of the thesis, I developed a new positioning algorithm that process Bluetooth signals with a neural network. The most problematic environment for the system was a metal processing factory where we evaluated its accuracy. In such an environment, big metal objects and large moving structures distort the propagated signals. Fortunately, the algorithm yielded stable results even in this environment.

GUI of the demonstrator
The GUI of the location-aware control software for laser sensors.

In Addition to the positioning system, I developed a functional web-based control GUI for the institute's laser sensor. It uses the position from my positioning software to display the user position on a map and automatically opens the control interface for the sensors that the user approaches. Without the positioning, the GUI can also be used as a control software on any device with a web browser and a Wi-Fi connection to the sensor's control unit.

Technical overview

Tablets often are equipped with GPS sensors that can determine the position of the user. However, inside of buildings, especially factory halls that usually consist of metal, the received GPS signal is too weak to reliably determine a position.

Gigaset Bluetooth Beacons
For the signal source, we used Bluetooth beacons by Gigaset, which are relatively cheap and small (4 x 4 x 0.5cm). The red circle shows the onboard antenna.

For my thesis, I evaluated different existing positioning technologies. For my implementation, I chose the method of Bluetooth signal evaluation because of its low cost and relative robustness.

Bluetooth signal evaluation might be the most common method of indoor positioning. Off-the-shelf hardware like iBeacon devices exists for this specific purpose. The basic idea is to measure the received signal strength (RSS) of several Bluetooth devices in the environment. In a very basic approach, we could use the signal strengths to estimate the distance to the source. The distances and known positions of the sources could then be used to estimate the position of the signal receiver.

Triangulation by distance to the sender
Triangulation by distance estimation

However, there are several issues with this that make this approach more or less unusable in practice:

  • The measurements have a lot of noise, making a direct estimation of the distance difficult
  • The signals usually propagate very unevenly in the environment, making it impossible to safely determine the distance to the sender just by looking at the signal strength.
  • It is very hard to predict the exact propagation patterns of the signals.
  • The received signal strength heavily depends on the angles between both the sending and receiving antennas.
Received signal strength by angle
Received signal strength (measured in dBm) by the angle between sender and receiver.

Existing methods

To circumvent the problem of the unpredictable signal propagation, most practical approaches take calibration measurements to determine the actual signal strengths. These measurements form a database of signal strengths at known positions.

One simple method using such a database is known as fingerprinting. For this method, we compare the measured signal strengths wit the ones in our database and choose the position where the measurements were closest to the current ones.

Other methods try to establish a stochastic model that gives the probability of a certain measurement for each possible position. The position can then be determined by checking all possible positions (or some of them if the search space is continuous) and applying the Bayes decision rule to find the position with the highest probability. In combination with particle filters, these algorithms can estimate the position very fast and also take the history of measurements into account.

Received signal strengths by position
Calibration measurements for two beacons (black squares) on a trade fair booth. Filled circles show the measured signal strength, empty circles show positions where no signal was received.

My approach

In my thesis, I tried to approach the problem of indoor positioning from a machine learning point of view. I thought of the calibration database as training data and tried to find a machine learning technique that would be able to learn how to determine the correct position from given measurements.

I achieved surprisingly good results with a simple fast-forward neural network. The input layer of the network is fed with the signal strengths (mapped to a [-1,1] range) and two output units give the x and y coordinates of the position.

Schema of the neural network for positioning
The position is determined by a simple neural network. This is just a sketch, the actual network has more layers and nodes.

The limiting factor for the accuracy was the number of calibration measurements. To have a larger training set, I duplicated each measurement and added noise both in the signals and the position. This way, the system could train on 2000 samples. The noise in the measurements is so large that the small added noise has no big effect on the end result. To increase robustness against defective Bluetooth devices, a part of the signals was randomly muted in the training data.


Error histogram
Error histogram of the estimated positions in a factory hall for my neural network approach and the stochastic method for comparison.

My task was to develop a positioning system for industrial environments. However, to understand the influence of the environment on the accuracy, the implemented methods were also evaluated in several other environments:

  • On an outdoor field without any obstacles
  • In an office building
  • On a trade fair booth
  • In a factory hall

In all environments, the neural network produced the most accurate results. In the factory hall, my system could determine the position with an average error of 7.5 meters.

Method Average error Maximum error
Random 27.3 m 55.1 m
Fingerprinting 9.5 m 24.4 m
Stochastic 12.4 m 51.4 m
Neural network 7.5 m 14.2 m
Error values for the implemented methods in a 60m x 25m area inside a factory hall. 'Random' is a method that picks a random position regardless of the measured signals.

Especially the maximum errors are significantly lower with my approach. One interpretation of this fact could be that the neural network has a higher robustness in problematic situations or is better at predicting signal propagation. This is surprising, as neural networks and machine learning are often associated with problematic border-cases.

In the limited time frame of a master thesis, it was of course not possible to develop a stable system for production use or get definitive answers to the research questions. However, I was able to show that neural networks and machine learning in general might be able to improve the accuracy of current indoor positioning systems. Another finding is that even under problematic conditions, the accuracy of such a system is good enough to navigate in a factory hall.

See more of my projects