Fingerprinting: Indoor-Positionsbestimmung mit Bluetooth Low Energy 2/2
Im vorherigen Blogbeitrag stellte ich meine Erkenntnisse zur Positionsbestimmung mittels Multilateration dar. Die durchschnittliche Abweichung betrug fast vier Meter. In diesem Blogbeitrag zeige ich meine Erkenntnisse zu einem anderen Verfahren der Positionsbestimmung: Fingerprinting.
Prinzip Fingerprinting
Im Gegensatz zur Multilateration ist das Fingerprinting ein statistisches Verfahren. Zur Einrichtung muss der Bereich der Positionsbestimmung zunächst einmal eingemessen werden. Das heißt, es werden an möglichst vielen Positionen Fingerprints erfasst und abgespeichert. Ein Fingerprint enthält alle an dem jeweiligen Ort gemessenen Empfangsstärken der Beacons (RSSI).
Während der Positionsbestimmung werden dann regelmäßig Messungen erstellt und mit denen der Fingerprints verglichen. Dazu wird je Fingerprint die Abweichung zur Messung berechnet. Die jeweilige Abweichung wird aus der Summe der absoluten Differenzen (siehe Grafik) zwischen den RSSI-Werten der Messung und denen der Fingerprints ermittelt.
Oftmals werden solche Abweichungen auch mit der Quadratsumme berechnet.
In der folgenden Grafik ist ein Beispiel zu sehen. In der Spalte D sind die Summen der absoluten Differenzen der jeweiligen Fingerprints zur Messung dargestellt. Der Fingerprint mit der geringsten Abweichung D ist somit an Position (-1, -10.5).
Erfassen der Fingerprints
Da zum Erfassen der Fingerprints selbstverständlich ein BLE-fähiges Endgerät notwendig ist, implementierte ich einen Prototypen in Android. Die folgende Grafik zeigt das Formular zur Eingabe der Koordinaten. Zudem beinhaltet das Formular das Feld “Ausrichtung”. Da auch der menschliche Körper die BLE-Signale deutlich abschwächt, werden die Signale unterschiedlich empfangen, je nach Ausrichtung des Nutzers. Daher sollten Fingerprints in mehreren Richtungen an der gleichen Position erfasst werden. Somit wird in das Feld Ausrichtung die Blickrichtung beim Einmessen eingetragen. Dabei steht 0 für Ausrichtung Norden, 180 für Süden usw. Im aktuellen Setup wurden Fingerprints meist in zwei, teilweise in allen vier Himmelsrichtungen erfasst. Durch die Grad-genaue Eingabe sind jedoch genauere Richtungsangaben möglich. Vorerst wurde beim Erfassen der Fingerprints eine gute User-Experience außer Acht gelassen. Es wurde ein einfaches Formular implementiert, das für die Evaluation ausreichend ist (siehe Grafik).
Die nachfolgende Grafik zeigt die im Testszenario erfassten Fingerprints (blau). Im Flur und im Pausenbereich befinden sich Fingerprints meistens im Abstand von einem Meter. In den Meetingräumen wurden jeweils lediglich zwei Fingerprints erfasst. Diese sollten für die Positionsbestimmung ausreichen, um festzustellen, ob sich der Nutzer im Raum befindet oder nicht. An den meisten Positionen existieren mehrere Fingerprints in unterschiedlicher Ausrichtung. Die Gesamtzahl der Fingerprints beträgt knapp über 100.
Erkenntnisse
Beim Fingerprinting konnte eine durchschnittliche Genauigkeit von 0,76 Metern erreicht werden.
Zu beachten ist hierbei, dass die Genauigkeit der Positionsbestimmung von der Dichte der Fingerprints abhängt. Auch die Positionen der Messungen spielen eine Rolle. Befindet sich eine Messung auf der selben Position, wie ein Fingerprint, beträgt die minimale Abweichung 0 Meter. Ist dies nicht der Fall, beträgt die minimale Genauigkeit den Abstand zum nächsten Fingerprint.
Die erzielten Ergebnisse zeigen deutlich, dass beim Fingerprinting die unterschiedlichen Charakteristiken der verschiedenen Beacons und Räume mitberücksichtigt werden und somit nicht zu erheblichen Abweichungen führen. Somit ist dieses Verfahren der Positionsbestimmung deutlich robuster beim Einsatz unterschiedlicher Hardware und bei unterschiedlichen Charakteristiken der Umgebung. Allerdings ist das Verfahren unflexibel hinsichtlich der Konfiguration. Werden die Positionen der Beacons geändert oder ändert sich die Umgebung erheblich, müssen die Fingerprints neu erfasst werden.
Vergleich der Ansätze
Abschließend hat sich gezeigt, dass mit Fingerprinting deutlich bessere Ergebnisse erzielt wurden als mit der Multilateration. Diese Ergebnisse beziehen sich auf eine Umgebung mit vielen Wänden und Objekten, welche die Signalausbreitung beeinflussen. Außerdem wurden unterschiedliche Typen von Beacons eingesetzt. Hier liegen die Stärken des Fingerprinting, da all diese Charakteristiken beim Einmessen der Fingerprints mitbeachtet werden. Dennoch ist das Verfahren mit einem gewissen Aufwand verbunden und es erschwert nachträgliche Änderungen an den Beacons und an der Umgebung. Während sich Fingerprinting für Bürogebäude eignet, kann auch die Multilateration in gewissen Szenarien die richtige Wahl sein. Wenn eine grobe Positionsbestimmung ausreicht kann dies der Fall sein, beispielsweise bei einem Flughafenterminal. Dort wäre auch der geringere Aufwand der Einrichtung von Vorteil.
Prototyp
Im Rahmen der Bachelorarbeit wurde abschließend ein Prototyp einer Navigationsanwendung implementiert. Über eine einfache UI zeigt diese nach Auswahl eines Ziels die Richtung und Distanz zum Ziel. Zudem wird angezeigt, wenn sich der Nutzer in der Nähe eines Point of Interest befindet. Die Positionsbestimmung wurde entsprechend der Evaluation mit Fingerprinting realisiert.