Für meine Masterarbeit habe ich die Möglichkeiten und Grenzen einer Indoor-Standorterkennung in industriellen Umgebungen untersucht. Dafür entwickelte ich eine Software, in der ein neuronales Netzwerk den Standort des Benutzers auf Grundlage von Bluetooth-Signalstärken bestimmt.

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

Von August 2015 bis Mai 2016 war ich beim Fraunhofer-Institut für Lasertechnik (ILT) als wissenschaftliche Hilfskraft angestellt und absolvierte meine Masterarbeit. Meine Aufgabe war es, eine Indoor-Standorterkennung zur Verwendung in industriellen Werkshallen zu entwickeln. Die wichtigste Anforderung dabei war, dass das System auf einem handelsüblichen Tablet funktionieren sollte. Zusätzliche Hardware durfte in der Umgebung, aber nicht am Tablet angebracht werden.

Der gegebene Anwendungsfall war die Bedienung von Laser-Sensoren zur Dickenmessung, wie sie vom Fraunhofer ILT entwickelt werden. Die Idee war, dass ein Mitarbeiter oder Service-Techniker in einer Werkshalle sich mit einem Tablet durch die Halle bewegen könnte, welches ihm den Weg zu verschiedenen Geräten weist und automatisch Informationen und Steueroptionen zu Geräten in seiner Nähe anzeigt. Um möglichst praxisnahe Anforderungen aufzustellen und sicherzustellen, dass das Vorhaben tatsächlich einen Nutzen für Benutzer haben könnte, führte ich Gespräche mit einem Hersteller von Lasersensoren und dem Betreiber eines Walzwerkes für Metallbleche, in dessen Produktionsprozess entsprechende Sensoren verwendet wurden.

Walzwerk für Metallbleche
Unter den getesteten Umgebungen war dieses Walzwerk, in dem Metallbleche hergestellt werden.

Als Hauptergebnis meiner Arbeit entwickelte ich ein Verfahren zur Standorterkennung, das Bluetooth-Signale mit einem neuronalen Netzwerk verarbeitet. Das System wurde unter anderem im zuvor genannten Walzwerk getestet. In dieser Umgebung gab es große bewegte Metallobjekte und andere Strukturen, die die Ausbreitungsmuster ständig verfälschen. Mein System war in der Lage, auch in dieser problematischen Umgebung brauchbare Standorte zu bestimmen.

GUI des Demonstrators
Die Benutzeroberfläche der Standortbasierten Steuerungssoftware.

Um das System möglichst praxisnah testen zu können, entwickelte ich außerdem eine Bedienoberfläche für die Laser-Sensoren des Fraunhofer ILT. Das Frontend der Software ist eine moderne web-basierte GUI. Es verwendet die Position meiner Standorterkennung und zeigt dem Benutzer automatisch die Steuerungs-Optionen eines Sensors an, wenn der Benutzer sich ihm nähert. Ohne die Standorterkennung kann die Bedienoberfläche zur einfachen Steuerung der Geräte verwendet werden. Dank der web-basierten GUI funktioniert das auf jedem Gerät mit einem Browser und einer WLAN-Verbindung zur Steuereinheit des Sensors.

Technische Übersicht

Tablets verfügen in der Regel über GPS-Empfänger, mit denen Positionen bestimmt werden können. Leider funktioniert dies innerhalb von Gebäuden nicht zuverlässig, da die Satellitensignale des Systems zu schwach sind. Dies gilt auch für Werkshallen, die häufig aus Metall bestehen und die GPS-Signale besonders stark abschirmen.

Gigaset Bluetooth Beacons
Als Signalquelle wurden Bluetooth-Beacons der Marke Gigaset verwendet, die vergleichsweise kostengünstig und klein (4 x 4 x 0.5 cm) sind. Der rote Kreis zeigt die Antenne.

Im Vorfeld der Arbeit habe ich verschiedene vorhandene Technologien zur Standorterkennung ausgewertet. Für meine Implementierung habe ich mich für die Auswertung von Bluetooth-Signalstärken entschieden. Dieses Verfahren ist kostengünstig und vergleichsweise robust.

Bei der Auswertung von Signalstärken handelt es sich um eines der am häufigsten verwendeten Verfahren zur Indoor-Standorterkennung. Im Handel findet sich Hardware wie iBeacon-Sender, die speziell für diesen Zweck vorgesehen sind. Die grundlegende Idee ist es, die Signalstärke von Sendern zu messen, die zuvor in der Umgebung an festen Punkten platziert wurden. In einem naiven Ansatz könnte man diese Signalstärken verwenden, um die Distanzen zu den Sendern abzuschätzen und anhand der bekannten Senderpositionen den Standort des Benutzers zu bestimmen.

Triangulation durch geschätzte Distanzen zu den Sendern
Triangulation durch geschätzte Distanzen zu den Sendern

Leider stößt man mit diesem Ansatz in der Praxis auf verschiedene Probleme:

  • Die Messwerte sind stark verrauscht, so dass die geschätzten Abstände große Fehler enthalten.
  • Die Signalstärken breiten sich in der Umgebung typischerweise sehr ungleichmäßig aus, so dass ein eindeutiger Zusammenhang zwischen Signalstärke und Distanz zum Sender häufig nicht gegeben ist.
  • Durch verschiedene physikalische Effekte wie Reflexion, Refraktion und Interferenz sind die tatsächlichen Ausbreitungsmuster nur sehr schwer vorherzusehen.
  • Die gemessene Signalstärke hängt stark vom Winkel zwischen den Sendern und dem Tablet ab. Dreht der Benutzer das Tablet, kann sich der Messwert um Größenordnungen ändern.
Received signal strength nach Winkel
Gemessene Signalstärken (in dBm) nach Winkel zwischen Sender und Tablet.

Vorhandene Ansätze

Um das Problem der unvorhersehbaren Ausbreitungsmuster zu umgehen, stützen sich die meisten in der Praxis verwendeten Ansätze auf zuvor aufgenommene Referenz-Messwerte. Diese Messungen ergeben eine Datenbank aus bekannten Standorten und dort gemessenen Signalstärken.

Ein einfaches, aber verbreitetes Verfahren nennt sich Fingerprinting. Hier werden die aktuell gemessenen Signalstärken mit denen in der Datenbank verglichen und der Standort jener Referenzmessung ausgewählt, deren Signalstärken den aktuellen am ähnlichsten sind.

Andere Verfahren stellen ein stochastisches Modell auf, um die Wahrscheinlichkeit eines bestimmten Messwertes an jeder möglichen Position angeben zu können. Der Standort wird dann bestimmt, indem alle möglichen Positionen geprüft werden (oder nur einige, falls der Suchraum kontinuierlich ist) und die Bayes-Regel angewendet wird, um die wahrscheinlichste Position zu finden. In Verbindung mit Partikelfiltern können diese Verfahren sehr schnell einen Standort bestimmen und dabei auch vergangene Messwerte berücksichtigen.

Gemessene Signalstärken nach Position
Referenz-Messwerte für zwei Beacons (schwarze Quadrate) auf einem Messestand. Gefüllte Kreise zeigen den Messwert an dieser Position. Leere Kreise zeigen Positionen, an denen das Signal des Senders nicht empfangen wurde.

Mein Ansatz

In meiner Masterarbeit habe ich versucht, das Problem der Indoor-Standorterkennung mit Machine-Learning-Methoden zu lösen. Dazu habe ich die Referenz-Datenbank als Trainingsdaten betrachtet und ein Verfahren entwickelt, das so „lernt“, neue Messwerte der korrekten Position zuzuordnen.

Ich konnte überraschend gute Ergebnisse mit einem einfachen fast-forward neuronalen Netzwerk erzielen. Auf der Eingabeschicht wurden die Signalstärken der Sender angelegt (auf [-1,1] normalisiert). Die Position konnte als x- und y-Koordinate von zwei Ausgabeknoten abgelesen werden.

Schema des neuronalen Netzwerks zur Standortbestimmung
Die Position wird durch ein einfaches neuronales Netzwerk bestimmt. Hier handelt es sich nur um ein Schema, das tatsächliche Netzwerk hat mehr Schichten und Knoten.

Der begrenzende Faktor bei der Genauigkeit war die Anzahl der Referenz-Messwerte. Um über mehr Trainingsdaten zu verfügen, vervielfacht das System jeden Messwert, wobei Position und Signalstärken jedes mal leicht verrauscht werden. So wird die Trainings-Datenbank auf 2000 Messwerte „aufgebläht“. Das vorhandene Rauschen in den tatsächlichen Messwerten ist so groß, dass das Hinzufügen eines kleinen weiteren Rauschens die Genauigkeit nicht nennenswert verschlechtert. Um die Robustheit des Systems gegen den Ausfall einzelner Sender zu erhöhen, werden bei der Vervielfältigung zufällig Sender künstlich deaktiviert.

Ergebnisse

Fehler-Histogramm
Fehler-Histogramm der bestimmten Positionen in einer Werkshalle. Verglichen werden die Fehler meines Verfahrens und eines stochastischen Verfahrens.

Meine Aufgabe war es, ein System für industrielle Umgebungen zu entwickeln. Um den Einfluss der Umgebung auf die Standorterkennung besser zu verstehen, wurde das System in verschiedenen Umgebungen getestet:

  • Auf einem freien Feld ohne Hindernisse
  • In einem Bürogebäude
  • Auf einem Messestand
  • In einer Werkshalle

Um mein Verfahren bewerten zu können, habe ich zusätzlich zwei existierende Verfahren implementiert. In allen untersuchten Umgebungen konnte mein Verfahren die höchsten Genauigkeiten erzielen. In der untersuchten Werkshalle konnte das System die Standorte mit einem mittleren Fehler von 7.5 Metern bestimmen.

Verfahren Mittlerer Fehler Maximaler Fehler
Random 27,3 m 55,1 m
Fingerprinting 9,5 m 24,4 m
Stochastisch 12,4 m 51,4 m
Neuronales Netzwerk 7,5 m 14,2 m
Mittlere und maximale Fehler für die implementierten Verfahren auf einer untersuchten Fläche von 60 m x 25 m in einer Werkshalle. „Random“ bezeichnet ein Verfahren, das auf dieser Fläche zufällig Positionen bestimmt, ohne die Signalstärken zu betrachten.

Der maximale Fehler ist in meinem Verfahren besonders gering. Dies ist überraschend, da neuronale Netzwerke und Methoden aus dem Machine-Learning-Bereich eher mit Problemen in Grenzfällen assoziiert werden.

In der begrenzten Bearbeitungszeit einer Masterarbeit konnte ich natürlich kein System entwickeln, dass für den Praxiseinsatz geeignet wäre. Ich konnte aber zeigen, dass sich die vorhandenen Ansätze durch neuronale Netzwerke und Machine-Learning im Allgemeinen verbessern lassen könnten. Ein weiteres Ergebnis der Arbeit ist, dass mit den verfolgten Ansätzen Positionen bestimmt werden können, die ausreichend genau sind, um sich in einer Werkshalle zurechtzufinden.

Mehr Projekte