You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bachelor-thesis/Thesis/README.md

79 KiB

Einleitung

Der Einsatz von Smartphones wird durch die Vielzahl verbauter Sensoren immer umfangreicher. Durch den Zugriff von Software auf die Sensoren werden nützliche Features umgesetzt. So dient das Smartphone heute durch den Einsatz des Lagesensors als Wasserwaage oder wird mithilfe des Beschleunigungssensor zu einem Schrittzähler. Ein besonderes Interesse erhält hierbei die Lokalisierung der Geräte. Sie ermöglicht Anwendungen zur Navigation oder das Steuern von ortsgebundenen Aktionen. Die meisten dieser Anwendungen kommen mit einer geringen Auflösung von wenigen Metern zurecht, da eine größere Entfernung zwischen den Orten besteht. Bei der Distanzmessung wird die Strecke, die ein Gerät in Bewegung zurücklegt, erfasst. Findet diese Bewegung in einem engen Rahmen, wie beispielsweise einem Tisch statt, so ist die Auflösung nicht mehr ausreichend.

Viele der Sensoren im Smartphone können alleine oder in Kombination zur Lokalisierung eingesetzt werden. Hierbei unterscheiden sich die Lösungen in der Genauigkeit sowie ihrem Einsatzgebiet. So ist Beispielsweise das \ac{gps} weniger gut geeignet für die Lokalisierung in Innenräumen [@Bajaj_2002a]. Auch der finanzielle und zeitliche Aufwand der Lösungsansätze unterscheidet sich. In dieser Arbeit soll daher untersucht werden, wie die Messung auf kleinen Skalen, im Zentimeterbereich, mit einfachen Mitteln umgesetzt werden kann.

Problemstellung und Motivation

Die Open-Source-Andwendung phyphox®\footnote{https://phyphox.org} ermöglicht es mithilfe der im Smartphone verbauten Sensoren Experimente durchzuführen. Die Applikation wird dabei unter anderem in der Lehre eingesetzt um physikalische oder chemische Zusammenhänge für die Schüler erlebbar zu machen. Sie ersetzt dabei teils kostenintensive Lehrmaterialien, die nicht an jeder Schule verfügbar sind. Dadurch hilft phyphox® bei der Verbesserung und Verbreitung von physikalischer und chemischer Bildung [@MI191_2021, ab: 1 h 30 min].

Aktuell fehlt es der Anwendung an einer Möglichkeit, das Smartphone im Raum zu lokalisieren. Durch die Lokalisierung kann eine Distanzmessung durchgeführt oder der zurückgelegte Weg aufgezeichnet werden. Die Implementierung einer Lokalisierungslösung würde den Umfang an möglichen Experimente somit stark erweitern. Beispiele für solche Experimente sind:

  • Darstellung des Abstandsgesetz: Das Abstandsgesetz beschreibt den Abfall der Energie von allem was sich Kugelförmig ausbreitet, als Beispiel sei hier der Schall oder das Licht genannt. Die Oberfläche einer Kugel wächst mit zunehmenden Abstand, dem Radius r, zum Quadrat. Die Energie nimmt somit im Quadrat zum Abstand der Quelle ab [@Harten_2012_BOOK, S. 123]. Dieses Gesetz lässt sich mit dem Smartphone in einem Experiment veranschaulichen. Hierbei kann man den Schalldruck mit dem Mikrophone oder die Lichtintensität mit dem Helligkeitssensor messen und zusammen mit der Entfernungsänderung aufzeichnen.
  • Foucault Pendel:

Damit diese Erweiterung möglichst viele Nutzer der Anwendung zugänglich ist, beschränkt sich die Auswahl der Sensoren auf solche, die in möglichst vielen Smartphones verbaut sind. Einer dieser Sensoren ist Bluetooth, welcher in allen gängigen Smartphones zu finden ist. Aus diesem Grund soll dieser näher betrachtet werden. In der Forschung erhält Bluetooth gerade in der Innenraumnavigation ein hohes Interesse. Aus der Literaturrecherche geht hervor, dass die Abweichung von Bluetooth zur Lokalisierung meist mehrere Meter groß ist [@Cho_2015a; @Paterna_2017]. Diese hohe Abweichung ist für die meisten Experimente nicht geeignet. Die Arbeit soll untersuchen, ob die Abweichung durch den Einsatz verschiedener Techniken auf wenige Zentimeter reduziert werden kann, um sie für Experimente nutzbar zu machen.

Zielsetzung

Das Ziel dieser Arbeit liegt in der Entwicklung eines Lösungsansatzes, der die Umsetzung einer Lokalisierung zur Durchführung von Experimenten mittels Smartphone ermöglicht. Die Lösung soll dabei kostengünstig und möglichst einfach umsetzbar sein, damit sie für Schulen einsetzbar ist.

Zum Einsatz kommt ein sich selbst korrigierendes System aus Bluetooth-Beacons und Smartphone, wodurch eine Abweichung von unter \SI{10}{\percent} bei der Entfernungsmessung möglich sein soll [@Cho_2015a]. Untersucht wird, ob dieses System auch die Abweichung bei der Positionsbestimmung reduzieren kann. Der zusätzliche Einsatz verschiedener Filtermethoden und eine Kalibrierung sollen auf ihren Einfluss auf die Messergebnisse untersucht werden. Der Versuchsaufbau soll so gestaltet sein, dass er in Schulen und anderen Umgebungen leicht nachgestellt werden kann.

Der eigene Beitrag liegt darin, ein neuartiges Konzept zu erarbeiten, welches eine Distanzmessung auf der Skala eines Tischexperiments ermöglicht. Hierzu wird das System von selbst korrigierenden Beacons aus der Arbeit [@Cho_2015a] auf die zweite Dimension ausgeweitet. Entwickelt wird ein Versuchsaufbau mit selbst korrigierenden Beacons, welcher leicht nachvollziehbar ist und die Fehleranfälligkeit verringert. Durch eine, auf den Versuchsaufbau und das System angepasste Kalibrierung sowie den Einsatz verschiedener Filter soll die Genauigkeit weiter erhöht werden.

Die angepasste Kalibrierung, die Filter und die Auswirkung der selbst korrigierenden Beacons werden anhand einer experimentellen Basis evaluiert. Dabei werden die verschiedenen Bewertungskriterien der Fehlerbewertung herangezogen und die einzelnen Maßnahmen zueinander betrachtet. Um möglichst allgemeine Aussagen treffen zu können, findet die Evaluation in verschiedenen Umgebungen statt. Nicht teil der Arbeit ist die Betrachtung verschiedener Hardware.

Aufbau der Arbeit

Kapitel \ref{einleitung} gibt eine Motivation und beschreibt das Themenfeld dieser Arbeit. Darüber hinaus wird die Problemstellung beschrieben, der Lösungsansatz dargelegt und eigene Beitrag herausgearbeitet. Im Kapitel \ref{grundlagen} werden die fheoretischen Grundlagen und der Stand der Forschung beschrieben. Des Weiteren findet eine Eingrenzung des Themenfelds auf bestimmte Methoden zur Lösung des Problems statt.

In Kapitel \ref{implementierung} erfolgt die Auswahl und Entwicklung der Komponenten. Es unterteilt sich in die verwendete Hardware, die zur Umsetzung nötig ist und erläutert deren Einsatzbereich. Dabei wird auf die Umsetzung der Programmierung eingegangen. Im letzten Abschnitt wird auf einzelne Aspekte der Auswertung eingegangen.

Erste Messungen zur Beurteilung des Systems finden sich in Kapitel \ref{versuchsvorbereitung}. Die Messungen bieten dabei einen Einblick in das verwendete System. Hierzu werden zunächst Messungen im Freien durchgeführt, um mögliche Störeinflüsse zu reduzieren. Betrachtet werden verschiedene Positionierungen zwischen den eingesetzten Geräten. Abschließend wird eine Kalibrierung des Systems durchgeführt.

Die Messungen aus Kapitel \ref{versuchsvorbereitung} dienen als Grundlage für das Kapitel \ref{versuchsaufbau}. In diesem wird beschrieben, wie die Anordnung der Geräte im Versuch aussieht. Ferner werden die Messpunkte des Versuchs definiert.

In Kapitel \ref{ergebnisse} wird das System anhand von Experimenten bewertet. Sowohl die eingesetzten Methode, als auch die verschiedenen Filter werden gegenübergestellt. Zunächst wird betrachtet, welchen Einfluss die Kalibrierung auf die Ergebnisse der Messungen hat.

Eine Zusammenfassung der Arbeit findet sich in Kapitel \ref{zusammenfassung}. Hier werden die Ergebnisse nochmal in der Gesamtheit diskutiert und in Bezug auf den Stand der Technik erörtert. Abschließend wird ein Ausblick auf mögliche Verbesserungen und Erweiterungen des Lokalisierungssystems vorgenommen.

Grundlagen

Die Lokalisierung und Distanzmessung ist ein wichtiges Forschungsfeld. Die Anwendungsfälle reichen von der Aufzeichnung der Trainingsstrecke über die Navigation bis hin zur Verfolgung von Objekten. Bei vielen Anwendungsbereichen ist eine Genauigkeit von wenigen Metern ausreichend. Dies ändert sich, wenn man Experimente auf kleineren Maßstäben wie zum Beispiel einem Tisch, durchführen möchte. Hierbei können wenige Zentimeter Abweichung über das Gelingen des Experiments entscheiden.

Im Smartphone befinden sich viele verschiedene Sensoren. Einige davon lassen sich zur Lokalisierung des Geräts einsetzen. Die Open-Source-Anwendung phyphox® bietet die Möglichkeit mit dem Smartphone zu Experimentieren. Hierzu verwendet die Anwendung die im Smartphone verbauten Sensoren. Dabei werden die Rohdaten der Sensoren ausgelesen und aufgezeichnet. Durch die Kombination verschiedener Sensoren oder Parametern wie die Zeit, lassen sich verschiedenste Experimente realisieren. Ein Experiment ermöglicht es beispielsweise die Länge eines Pendels zu bestimmen. Hierzu wird das Smartphone an das Pendel gehängt und unter Einsatz des Beschleunigungssensors die Richtungsänderung erkannt und somit die Pendelfrequenz ermittelt. Aus der Pendelfrequenz lässt sich dann die Länge des Pendels errechnen.

Ein weiteres Beispiel ist die Messung der Geschwindigkeit eines Fahrstuhls mithilfe des Luftdrucksensors. Hierbei wird die Höhenänderung ins Verhältnis zur Zeit gesetzt um die Geschwindigkeit zu ermitteln. Mit Kenntnis der Höhe eines Stockwerks lässt sich die gemessene Höhenänderung auch in die Anzahl an zurückgelegten Stockwerken umrechnen. Jedoch fehlt der Anwendung bisher eine Möglichkeit zur Lokalisierung des Smartphones.

In diesem Kapitel werden die technischen Grundlagen erörtert. Zunächst werden die Techniken zur Lokalisierung besprochen und eine abschließende Bewertung durchgeführt. In weiteren Kapiteln werden die Grundlagen hinsichtlich der Bewertung vertieft.

Distanzmessung

Die Distanzmessung beschreibt im Rahmen dieser Arbeit die Messung der Länge einer zurückgelegten Strecke. Dabei bezeichnet die Strecke den Weg zwischen Start- und Zielpunkt. Die digitale Erfassung einer Strecke basiert auf der Erfassung einzelner Wegpunkte [@Lerch_2006_BOOK, vgl. S. 7-8]. Da zwischen den Wegpunkten keine Informationen vorliegen, wird dieser Zwischenraum als Gerade angenommen. Wie Abbildung \ref{fig:wegpunktcount} verdeutlicht, wird die Streckenabbildung durch die Anzahl an aufgezeichneten Wegpunkten verbessert. Im linken Teil der Abbildung sind nur drei Messpunkte erfasst worden, der ermittelte Weg ergibt nahezu eine Gerade und entspricht nicht dem realen Weg. Im rechten Teil sind 8, gleichmäßig verteilte Messpunkte, der aufgezeichnete Weg entspricht fast dem realen Weg.

Auswirkung der Erfassungshäufigkeit von Wegpunkten. \label{fig:wegpunktcount}

Lokalisierung

Zur Bestimmung der einzelnen Wegpunkte ist eine Lokalisierung des Messobjektes erforderlich. Hierbei wird die Position des Objekts im Raum bestimmt. Der Raum kann dabei eindimensional oder mehrdimensional sein [@Strang_2008_BOOK]. Die folgenden Kapitel erörtern verschiedene Verfahren zur Lokalisierung, bei denen die Position des oder der Sender bekannt ist und die Position des Empfängers ermittelt werden soll.

Cell-ID

Zu den einfachsten Methoden der Lokalisierung gehört das \ac{cellid}-Verfahren. Dabei haben alle Sender einen eindeutig zugeordneten \ac{id}. Diese \ac{id} wird vom Sender mit ausgestrahlt. Der Empfangsbereich, in dem ein Sender empfangen werden kann, nennt sich Zelle (engl. Cell). Ein Empfänger, der das Signal empfängt, kann dieses durch die \ac{id} eindeutig einem Sender und dessen Zelle zuordnen [@Strang_2008_BOOK]. Dabei ist die Genauigkeit des Verfahrens im wesentlichen von der Reichweite, also der Größe der jeweiligen Zelle, des Senders abhängig.

Die Lokalisierung kann verbessert werden, wenn sich mehrere Sendezellen überlappen. Abbildung \ref{fig:cellid} rechts zeigt, das in diesem Fall die Position des Empfängers auf die Schnittmenge der Sendezellen begrenzt wird, die vom Empfänger empfangen werden. Der rötlich eingefärbte Bereich kennzeichnet das Areal in dem sich der Empfänger befinden kann. Die rote Begrenzung ist die Sendereichweite des Senders.

Positionsbestimmung durch überschneidende Zellen. \label{fig:cellid}

Fingerprinting

Das Fingerprinting ist ein Ansatz, der sich die Mehrwegausbreitung (mehr dazu in Abschnitt \ref{messung-fehler}) von Funksignalen zu Nutze macht. Hierbei wird für jeden Empfangsort ein charakteristisches Muster (Fingerabdruck, engl. Fingerprint) aufgezeichnet [@Strang_2008_BOOK]. Dabei gliedert sich dieses Verfahren in zwei Phasen:

  1. Die Offline-Phase: Hierbei werden passende ortsabhängige Parameter bestimmt, durch die eine eindeutige Identifikation eines Ortes möglich ist. Diese Parameter werden für jeden Ort gemessen und in einer Datenbank mit der Ortsinformation verknüpft gespeichert. Die ortsabhängigen Parameter hängen stark von der Umgebung ab. Bei einer Umgebungsänderung müssen diese Parameter aktualisiert werden.
  2. Die Online-Phase: Dabei misst der Empfänger den Fingerprint, also den Parameter zur Identifikation, und gleicht diesen mit der Datenbank ab. Dazu werden Mustererkennungsalgorithmen benötigt, welche aus der Datenbank den wahrscheinlichsten Fingerprint ermitteln und damit den wahrscheinlichsten Ort herausgeben.

Triangulation

Die Triangulation basiert auf der Ermittlung des Einfallswinkels der eingehenden Signale. Dieses Verfahren wird auch \ac{aoa} genannt. Die Messung des Einfallswinkels ist mit gerichteten Antennenarrays oder Laufzeitmessungen zwischen mehreren Antennen möglich. Für den einfachen Fall einer Messung kann keine Entfernungsinformation gewonnen werden. Erst die Messungen des Einfallswinkels mehrerer Sender führt zu einem linearen Gleichungssystem, dessen Lösung die Position des Empfängers bestimmt [@Strang_2008_BOOK].

2D Positionierung über \acl{aoa}. \label{fig:aoa}

Trilateration

Bei der Lateration handelt es um ein Methode zur Positionsbestimmung bei der die Entfernung zwischen Sender und Empfänger ermittelt wird. Durch die Entfernung zwischen Sender und Empfänger entsteht im zweidimensionalen Bereich ein Kreis um den Sender. Der Empfänger befindet sich dann auf einem Punkt dieser Kreisbahn [@Strang_2008_BOOK]. Um eine eindeutige Position zu ermitteln sind mindestens drei Sender notwendig, weswegen diese Methode auch Trilateration genannt wird. Abbildung \ref{fig:lateration} zeigt das Verfahren: Die Position des Empfängers wurde zur besseren Darstellung nur eingekreist, er befindet sich auf dem Schnittpunkt der drei Kreise innerhalb des gestrichelten schwarzen Kreises. Der Abstand zwischen Sender und Empfänger r entspricht dem Radius des Kreises um den Sender. Der Empfänger befindet sich auf einem unbestimmten Punkt der Kreislinie. Wird nun ein weiterer Sender hinzugefügt, so definieren die jeweiligen Schnittpunkte der Kreise die mögliche Position des Empfängers. Bei drei Sendern gibt es im optimalen Fall nur einen Schnittpunkt bei dem alle drei Kreislinien aufeinander treffen.

2D-Positionierung mit der Trilateration \label{fig:lateration}

Formel \ref{eq:lgsTrilateration} zeigt das allgemeine lineare Gleichungssystem zur Berechnung der Position p_x und p_y bei der Trilateration [@Noertjahyana_2017]. Dabei beschreibt x_i und y_i die Position der Sender i=1,2,3 und r_i den gemessenen Abstand zwischen Sender i und Empfänger.

\begin{equation}\label{eq:lgsTrilateration} \begin{aligned} r_1^2= (p_x-x_1)^2 + (p_y-y_1)^2 \ r_2^2= (p_x-x_2)^2 + (p_y-y_2)^2 \ r_3^2= (p_x-x_3)^2 + (p_y-y_3)^2 \end{aligned} \end{equation}

Im weiteren werden die Verfahren zur Ermittlung der Entfernung zwischen Sender und Empfänger vorgestellt.

Laufzeitmessung {-}

Die Laufzeitmessung, besser bekannt unter dem englischen Begriff \ac{toa}, beruht auf der Messung der absoluten Signallaufzeit t = t_i - t_0 von einem Sender zum Empfänger. Dabei beschreibt t_i die Sendezeit und t_0 den Empfangszeitpunkt des Signals. Zur Berechnung der Distanz r wird die Lichtgeschwindigkeit c mit der Laufzeit des Signals multipliziert: r = c \cdot t. Für diese Messung ist eine sehr genaue und zwischen Sender und Empfänger synchronisierte Zeiterfassung notwendig [@Strang_2008_BOOK].

Laufzeitdifferenzmessung {-}

Bei der Laufzeitdifferenzmessung, auch bekannt als \ac{tdoa}, wird die Differenz der Signallaufzeit zweier Sender am Empfänger gemessen. Der Vorteil gegenüber dem \ac{toa}-Verfahren liegt darin, dass keine Zeitsynchronizität zwischen dem Sender und Empfänger hergestellt werden muss. Die Laufzeitdifferenzen zwischen den Signalen zweier Sender entspricht damit der Differenz der Distanz vom Empfänger zu den beiden Sendern [@Strang_2008_BOOK].

Signalstärkemessung {-}

Die Messung der Signalstärke, auch bekannt als \ac{rss} ist ein gängiges Verfahren bei der Lokalisierung mithilfe von Funksystemen [@Chen_2019; @Davidson_2017a; @Ye_2019]. Hierbei wird die Empfangsleistung und damit die Dämpfung des Signals am Empfänger gemessen. Die Signaldämpfung hängt dabei unter anderem von der Distanz zwischen Sender und Empfänger ab. Zur Berechnung der Entfernung ist die Kenntnis über den mathematischen Zusammenhang zwischen Entfernung und Signaldämpfung notwendig. Diese Ausbreitungsmodelle sind für viele Szenarien bekannt [@Strang_2008_BOOK].

Bewertung

Im Folgenden sollen die eingangs erwähnten Verfahren zur Lokalisierung hinsichtlich der Fragestellung betrachtet werden. Dabei liegt ein besonderes Augenmerk auf der möglichen Ortsauflösung und dem Aufwand, mit dem das Verfahren umgesetzt werden kann. Tabelle \ref{tab:location} bietet eine Übersicht der Bewertung der einzelnen Verfahren.

Das \ac{cellid}-Verfahren hat eine sehr geringe Ortsauflösung. Auch mit einer hohen Anzahl an Sendern bleibt die ermittelte Position nur ein diffuses Areal anstelle einer punktgenauen Lokalisierung. Der Aufwand der Umsetzung hingegen ist als eher gering einzuschätzen.

Beim Fingerprinting-Verfahren ist die Ortsauflösung unter anderem vom betriebenen Aufwand bei der Einrichtung abhängig. Auch die gewählten Parameter zum Erstellen des Fingerabdrucks und die Beständigkeit der Umgebung haben großen Einfluss auf die Ortsauflösung. Daher muss die Einrichtung bei Veränderungen an der Umgebung erneut durchgeführt werden, was den Aufwand für diese Methode stark erhöht.

Das \acl{aoa}-Verfahren lässt sich nur umsetzen, wenn das Gerät die benötigte Hardware zur Ermittlung des Eintrittswinkel mitbringt. Die Ortsauflösung ist dann jedoch nur von den Messfehlern, beschrieben in Abschnitt \ref{messung-fehler}, abhängig und kann somit zunächst als sehr hoch eingestuft werden. Der Aufwand ist jedoch, passende Hardware vorausgesetzt, relativ gering.

Für die Trilateration stehen mehrere Verfahren zur Auswahl. Diese unterscheiden sich hauptsächlich im Aufwand. Die Ortsauflösung ist, wie schon beim \ac{aoa}-Verfahren, abhängig von den Messfehlern der eingesetzten Verfahren. Dabei wird beim \ac{rss}-Verfahren eine etwas geringere Ortsauflösung angenommen, da die Entfernung aufgrund der Signalstärke nicht nur durch Umwelteinflüsse, sondern auch durch das verwendete Modell beeinflusst wird. Der Aufwand für \ac{toa} und \ac{tdoa} wird mit sehr hoch angenommen, da eine genaue Zeitmessung spezielle Hardware voraussetzt. Diese Hardware ist in Smartphones nicht zu finden.

Verfahren mögliche Ortsauflösung Aufwand
\ac{cellid} sehr gering gering
Fingerprinting stark schwankend sehr hoch
\acl{aoa} sehr hoch gering
\acl{toa} sehr hoch sehr hoch
\acl{tdoa} sehr hoch sehr hoch
\acl{rss} hoch gering

: Übersicht und Bewertung der Verfahren zur Lokalisierung. \label{tab:location}

Smartphonesensoren

Aktuelle Smartphones besitzen eine Vielzahl von Sensoren, um mit ihrer Umwelt zu interagieren. Viele der Sensoren lassen sich alleine oder in Kombination zur Entfernungsmessung oder Distanzmessung einsetzen [@Subbu_2013; @Chen_2019; @Li_2012; @SosaSesma_2016].

Die Entfernung zu einem Referenzpunkt wie einer Wand, lässt sich zum Beispiel durch den Einsatz eines Sonars messen. Für die Umsetzung kommen das Mikrofon und der Lautsprecher des Smartphones in Frage [@Graham_2015]. In dieser Arbeit geht es jedoch um einen flexibleren Einsatzbereich, bei dem eine Lokalisierung zwingend erforderlich ist.

Zu den bekanntesten Sensoren zur Lokalisierung gehört das \ac{gps}. Hierbei wird mit Hilfe von Satelliten die Position des Smartphones ermittelt. Dies ermöglicht die Ortung außerhalb von Gebäuden mit einer Genauigkeit von wenigen Metern [@Bajaj_2002a]. Da die Messungen jedoch nicht auf den Außenbereich beschränkt sein sollen, wird \ac{gps} nicht näher betrachtet.

Die Innenraum-Lokalisierung und Navigation ist ein Forschungsfeld mit großem Interesse. Viele Arbeiten basieren auf dem vom \ac{ieee} festgelegten Standard IEEE 802.11, besser bekannt als \ac{wifi} [@Chen_2019]. Für den Einsatz von \ac{wifi} zur Lokalisierung muss zunächst eine Karte (siehe Kapitel \ref{fingerprinting}) mit der Funkstärkenverteilung erstellt werden [@Davidson_2017a]. Dies bedeutet einen hohen zeitlichen Aufwand bei der Einrichtung und eine geringe Flexibilität im Einsatz.

Ein weiterer Sensor, der zur Lokalisierung in Innenräumen häufig betrachtet wird, ist Bluetooth. Dieser ist weit verbreitet und kostengünstiger als \ac{wifi} [@Ye_2019]. Des Weiteren wurde mit \ac{ble} ein Standard entwickelt, der sehr stromsparend ist. Im weiteren Verlauf der Arbeit soll Bluetooth näher betrachtet werden.

Bluetooth

Bei Bluetooth handelt es sich um einen Industriestandard, der in den 1990er-Jahren durch die \ac{sig} entwickelt und eingeführt wurde. Die Technologie dient seither zur Datenübertragung zwischen verschiedenen Endgeräten mittels Funktechnik. Die Reichweite hängt maßgeblich von der Umgebung und der Sendeleistung ab und kann zwischen \SI{1}{\meter} und \SI{200}{\meter} betragen. Bluetooth arbeitet im lizenzfreiem \ac{ism} von \SIrange{2,402}{2,480}{\giga\Hz}, wodurch es weltweit zulassungsfrei betrieben werden darf. Im Jahr 2020 wurde Bluetooth in 4 Milliarden verkauften Produkten verbaut [@BluetoothSIG_2021]. Darunter befinden sich Smartphones, Computer, medizinische Geräte sowie Unterhaltungsmedien und vieles mehr. Dies und die Tatsache das die \ac{sig} im Jahr 2021 36.645 Mitglieder aufweist [@BluetoothSIG_2021], lässt schlussfolgern, das Bluetooth ein etablierter Standard für den Austausch von Daten ist.

Bluetooth Low Energy

Mit der Einführung von Bluetooth 4.0 im Juli 2010 wurde \acl{ble} in die Bluetooth Technologie integriert. Dabei ist \ac{ble} zu früheren Bluetooth-Versionen nicht abwärtskompatibel, bietet jedoch einige nützliche Besonderheiten: Ein reduzierter Stromverbrauch und die kurze Aufbauzeit einer Übertragung sind die wesentlichen Vorteile. Geräte wie Smartphones und Tablets unterstützen sowohl das klassische Bluetooth als auch den \acl{ble} Standard. Unterstützt ein Geräte nur den \ac{ble}-Standard, so wird es als Bluetooth Smart-Geräte bezeichnet.

Nach einer Sichtung des Marktes bei verschiedenen Onlinehändlern hat sich herausgestellt, dass die meisten Geräte den 2014 eingeführten Bluetooth-Standard 4.2 oder neuer unterstützen. Im Bluetooth-Standard 5.2 wurden einige Verbesserungen zur Lokalisierung mittels Bluetooth eingeführt: Unter anderem die Ermittlung des \acl{aoa}, was zu einer höheren Genauigkeit bei Entfernungsmessungen führen soll. Geräte mit diesem Standard, der im Dezember 2019 eingeführt wurde, sind zum Zeitpunkt der Arbeit jedoch schwer erhältlich. Da die neuen Standards 5.0, 5.1 und 5.2 abwärtskompatibel sind, wird im weiteren Verlauf Bluetooth 4.2 näher betrachtet.

Durch die stromsparenden Eigenschaften von \ac{ble} wird es häufig auch in kleinen Geräten eingesetzt, welche Daten ohne aktive Verbindung via Bluetooth ausstrahlen. Dieses Ausstrahlen von Daten wird Advertising genannt. Ein Gerät, dass nur Advertising-Pakete aussendet, ein sogenannter Advertiser, wird auch als Beacon bezeichnet. Geräte die nach Advertising-Paketen lauschen und keine Verbindung aufbauen wollen, nennen sich Scanner [@BluetoothSIG_2014, Vol. 1 Part A S. 16].

\ac{ble} teilt sich in 40 physikalische Kanäle von je \SI{2}{\mega\Hz} im \SI{2.4}{\giga\Hz} \ac{ism} auf. Davon sind 37 Kanäle für die Datenübertragung vorgesehen sowie 3 Kanäle für das Advertising reserviert [@BluetoothSIG_2014, Vol. 1 Part A S. 16]. In Abbildung \ref{fig:blechannels} sind die \ac{ble}-Kanäle den drei am häufigsten verwendeten \ac{wifi}-Kanälen 1, 6 und 11 [@Kajita_2016] aus dem gleichen Frequenzband gegenübergestellt. Es ist zu erkennen, dass die Advertising-Kanäle (rot gekennzeichnet) außerhalb dieser \ac{wifi}-Kanäle liegen und somit wenige Störeinflüsse durch \ac{wifi} erwartet werden können.

\ac{ble} Kanäle im \SI{2.4}{\giga\Hz} \ac{ism} und die \ac{wifi} Kanäle 1, 6 sowie 11 als Referenz (nach [@ATL_2021]). \label{fig:blechannels}

Ein Advertising-Paket enthält 31 Bytes, die vom Nutzer frei definiert werden können. Dabei wird es jeweils auf allen drei Advertising-Kanälen versendet. Das Senden benötigt dabei weniger als \SI{10}{\milli\second}. Das Sendeintervall kann zwischen \SI{20}{\milli\second} und \SI{10.24}{\second} eingestellt werden. Tabelle \ref{tab:adpackettype} zeigt die Advertising-Pakettypen; bei Typen die keine Verbindung zulassen ist das minimal mögliche Sendeintervall auf \SI{100}{\milli\second} beschränkt [@BluetoothSIG_2014, Vol. 2 Part E S. 968 und Vol. 3 Part C S. 389].

Advertising \ac{pdu} Maximale adv Datenlänge Scan Request Erlaubt Verbindung Erlaubt
ADV_IND 31 bytes ja ja
ADV_DIRECT_IND 6 bytes nein ja
ADV_SCAN_IND 31 bytes ja nein
ADV_NONCONN_IND 31 bytes nein nein

: Übersicht über die verschiedenen Pakettypen von Advertising-Paketen. \label{tab:adpackettype}

Entfernungsmessung mit der Signalstärke

Die Bluetooth-Spezifikation sieht die Übertragung der Signalstärke, dem sogenannten \ac{rssi}, vor. Dabei handelt es sich um einen absoluten Wert in \ac{dbm} mit einer festgeschriebenen maximalen Abweichung von \num{\pm 6} \ac{db} [@BluetoothSIG_2014, Vol. 2 Part E S. 806]. Wie in Abschnitt \ref{trilateration} Signalstärkemessung beschrieben, ist durch den \ac{rssi}-Wert eine Entfernungsmessung realisierbar.

Zum Einsatz kommt das long-distance path loss-Modell [@Seybold_2005_BOOK]. Dabei handelt es sich um ein Modell zur Vorhersage von Signalverlusten bei der Verbreitung von Funkwellen. In der Android beacon library [@beacon_library_2021] findet sich Formel \ref{eq:beacondistance} zur Berechnung der Distanz d. txPower entspricht dabei der Empfangsstärke auf \SI{1}{\meter} Entfernung und P_{R_{x}} die Empfangene Signalstärke des Beacon. Die txPower wird häufig vom Hersteller angegeben und ist somit ein bekannter, fester Wert. Die Konstanten A, B und C sind statistisch ermittelte Werte die für jede Hardwarekombination unterschiedlich sind. In der Android beacon library werden als Standardwerte die, auf das Smartphone Nexus 4 kalibrierten Faktoren eingesetzt: A = 0,89976, B = 7,7095 und C = 0,111.

\begin{equation}\label{eq:beacondistance} \begin{aligned} d = A \cdot \left( \cfrac{P_{R_{x}}}{txPower} \right)^{B} + C \end{aligned} \end{equation}

Da die Signalstärke Schwankungen unterliegt, mehr dazu in Abschnitt \ref{messung-fehler}, führt die Messung der Entfernung mit einem festen Wert für txPower zu größeren Abweichungen. Dies kann nach [@Cho_2015a] durch den Einsatz eines Kalibrierungs-Beacon im Abstand von \SI{1}{\meter} zum zu messenden Beacon optimiert werden. Dabei misst der Kalibrierungs-Beacon die aktuelle Signalstärke und übermittelt diese an den Scanner. Bei der Berechnung der Entfernung wird nun in Formel \ref{eq:beacondistance-scPower} die txPower durch den aktuell gemessenen \ac{rssi}-Wert auf \SI{1}{\meter}, beschrieben als scPower, ersetzt.

\begin{equation}\label{eq:beacondistance-scPower} \begin{aligned} d = A \cdot \left( \cfrac{P_{R_{x}}}{scPower} \right)^{B} + C \end{aligned} \end{equation}

Messung, Fehler-Quellen und -Korrekturen

In der Regel ist jede Messung fehlerbehaftet, auch wenn sie präzise durchgeführt wird. Zum Beispiel kann es schon beim Ablesen von Messdaten zu Fehlern kommen, aber auch das Einbringen eines Messgeräts kann die zu messenden Werte in einem System verändern. Aus diesem Grund ist die Beurteilung und Klassifikation von Messfehlern ein wichtiger Teil bei der Betrachtung einer Messkette [@Lerch_2006_BOOK, S. 89]. In den folgenden Abschnitten werden die notwendigen Begriffe zur Beurteilung von Fehlern eingeführt und weiter die Fehlerkorrekturmöglichkeiten betrachtet.

Referenzwert

In der Literatur wird häufig vom wahren Wert einer Messung im Zusammenhang mit der Fehlerbewertung gesprochen. Dieser wahre Wert ist ein Wert ohne Fehler und damit stets unbekannt, da jede Messung fehlerbehaftet ist [@jcgm_2012, Nr. 2.11]. Aus diesem Grund kommt anstelle des wahren Werts der Referenzwert zum Einsatz. Dieser Referenzwert wird mit Hilfe bekannter, möglichst genauer Messmethoden ermittelt. Für die Entfernung sind dies beispielsweise Maßbänder oder digitale Entfernungsmessgeräte. Dabei kommt es sowohl beim Ablesen als auch beim Anhalten des Maßbandes zu Ungenauigkeiten was die Ermittlung des wahren Werts unmöglich macht. In den folgenden Kapiteln und insbesondere in den Formeln wird aus diesem Grund nicht der wahre Wert sondern der Referenzwert verwendet. Dieser Referenzwert stimmt dabei ungefähr mit dem wahren Wert überein [@jcgm_2012, Nr. 5.18].

Arten von Messfehlern

Messfehler werden in systemische und zufällige Fehler unterschieden:

Systemische Fehler sind vorhersagbar und somit auch korrigierbar. Sie unterteilen sich in statische Messfehler und dynamische Messfehler. Statische Messfehler haben einen konstanten Betrag und ein bestimmtes Vorzeichen, dynamische Messfehler hingegen resultieren in einer zeitliche Veränderung des Messwertes einer Messreihe. Da systemische Fehler prinzipiell korrigierbar sind, sollten sie nach Möglichkeit im ersten Schritt der Messwertverarbeitung berichtigt werden [@Lerch_2006_BOOK, S. 90].

Zufällige Messfehler lassen sich hingegen nicht unmittelbar erfassen. Die Abweichungen vom wahren Wert kann nur in Form von Wahrscheinlichkeitsaussagen beschrieben werden. Um diesen Fehlertyp zu beurteilen, müssen möglichst viele Messungen durchgeführt werden. Dabei ergibt sich eine Normalverteilung nach Gauß. Das Normalverteilungsgesetz für zufällige Fehler ist dabei wie folgt charakterisiert: positive und negative Abweichungen treten gleich häufig auf, die Wahrscheinlichkeit des Auftretens einer Abweichung nimmt mit zunehmender Größe der Abweichung ab [@Lerch_2006_BOOK, S. 91].

Nachfolgend sollen Beispiele für die beiden Fehlerarten genannt und beschrieben werden. Tabelle \ref{tab:error} gibt eine Übersicht über die verschiedenen Fehler.

Beispiele systemische Fehler {-}

  • Hindernisse: Wände, Möbel, Pflanzen, Menschen und andere Objekte beeinflussen die Ausbreitung von Funkwellen. Der Einfluss äußert sich in Abschwächung oder Reflektion des Signals. Bei Reflektionen kann es zum mehrfachen Empfang ein und des selben Signals kommen. Dabei hat das Reflektierte Signal meist einen weiteren Weg hinter sich und ist daher schwächer. Die zusätzliche Abschwächung des Signals durch Objekte zwischen Sender und Empfänger, führt zu einem schwächeren Signal am Empfänger und beeinflusst so die Entfernungsmessung mithilfe der Signalstärke.
  • Reflektionen: Alle Objekte, speziell Metallische, können Funkwellen Reflektieren. Diese Reflektionen führen zur Mehrfachmessung eines Signals.
  • Smartphone-Gehäuse: Wie die Hindernisse wirkt sich auch das Smartphone-Gehäuse sowie die verbauten Sensoren im Smartphone auf die Signalstärke aus. Auch eine Smartphone-Hülle die vom Nutzer angebracht wird, beeinflusst die Signalstärke. Da die meisten Hüllen aus Plastik bestehen, ist dieser Effekt jedoch als gering an zu sehen.
  • Antennenanordnung: Sowohl die Orientierung als auch die Position der Antenne beeinflusst die Qualität des empfangen Signals. Liegt die Antenne beispielsweise auf der linken Seite des Smartphones, so werden Signale die von rechts kommen stärker gedämpft, vergleiche hierzu die Abbildung der Empfangscharakteristik in [@Raytac_2021, S. 30 Antenna].
  • RSSI Sensor: Die Signalmessung wird durch den Bluetooth Chip durchgeführt. Er nutzt einen 8-bit analog zu digital Wandler um einen Wert zwischen 0 und 255 zu erhalten. Das stärkste Signal wird durch den Wert 255 abgebildet. Bei der Umrechnung dieses Wertes in \ac{dbm} muss für gute Ergebnisse ein angepasster Code verwendet werden. Ob und wie gut diese Anpassung geschieht, hängt allein bei den Herstellern.
  • Versuchsaufbau: Auch der Aufbau des Versuchs kann zu Fehlern im System führen. Dieser systemische Fehler kann meist nur durch die Wiederholung der Versuche korrigiert werden.

Beispiele zufälliger Fehler {-}

  • Funkrauschen: \ac{ble} verwendet den selben Frequenzbereich wie \ac{wifi} und viele weitere Funktechnologien für den Konsumerbereich. Auch andere Signale von unterschiedlichen Frequenzbereichen strahlen teilweise in diesen Frequenzbereich ein. Dabei kann diese starke Auslastung dazu führen das Pakete nicht Empfangen werden oder die Empfangsstärke beeinflusst wird [@Heilmann_2020_BOOK].
  • Bluetooth Channel Rotation: \ac{ble} nutzt drei verschiedene Kanäle, mit unterschiedlichen Frequenzen, für das Advertising. Die Antennen sind jedoch auf eine bestimmte Frequenz optimiert. Daher kommt es zu Abweichungen beim RSSI je nach verwendeten Advertising Kanal [@Paterna_2017]. Dies ist prinzipiell ein systemischer Fehler der Korrigierbar wäre. Unter Android gibt es derzeit jedoch keine Möglichkeit den Kanal aus zu lesen, weswegen der Fehler damit zufällig auftritt.
Fehler Fehler Art Ursache
Hindernisse systemisch physikalisch
Reflektionen systemisch physikalisch
Smartphone-Gehäuse systemisch physikalisch
Antennenanordnung systemisch physikalisch, konstruktiv
RSSI Sensor systemisch Implementierung
Versuchsaufbau systemisch Mensch
Funkrauschen zufällig physikalisch
Bluetooth Channel Rotation systemisch/zufällig Implementierung

: Übersicht der Fehler, Fehlerarten und Ursache \label{tab:error}

Genauigkeit einer Messung

Die Genauigkeit einer Messung wird durch die Richtigkeit und die Präzision beschrieben. Dabei hat ein Messwert eine hohe Genauigkeit, wenn sowohl eine hohe Richtigkeit, als auch eine hohe Präzision vorliegt.

Die Richtigkeit lässt eine Aussage über die Nähe von Einzelmesswerte zum tatsächlichen Messwert zu. Bei einer guten Richtigkeit stimmen die gemessenen Werte im Mittel mit dem tatsächlichen Messwert nahezu überein. In Formel \ref{eq:richtigkeit} wird die Richtigkeit mathematisch beschrieben. Sie wird dabei durch den Betrag der Differenz aus dem Mittelwert \overline{x} der gemessenen Werte und dem Referenzwert R beschrieben.

\begin{equation}\label{eq:richtigkeit} \text{Richtigkeit}=|\overline{x}-R| \end{equation}

Die Präzision beschreibt die Streuung der Messwerte um den Mittelwert. Je näher die Messwerte beieinander liegen, desto höher die Präzision. Die Streuung wird dabei durch zufällige Fehler ausgelöst und kann durch die relative Standardabweichung ausgedrückt werden.

Zusammenhang zwischen Richtigkeit und Präzision. \label{fig:genauigkeit}

Die Abhängigkeit von Präzision und Richtigkeit wird in Abbildung \ref{fig:genauigkeit} verdeutlicht. Dabei liegt der tatsächliche Wert jeweils im Zentrum der Kreise. Nur das Szenario rechts oben in der Abbildung hat eine hohe Genauigkeit, da es sowohl eine hohe Präzision, als auch eine hohe Richtigkeit aufweist. Alle anderen Szenarien haben eine geringe Genauigkeit, können jedoch eine hohe Präzision oder eine hohe Richtigkeit oder keins von beidem (unten links) aufweisen.

Fehlerbewertung

Eine weitere Kenngröße, die eine Aussage über die Qualität der Messung liefert, ist der Messfehler [@Lerch_2006_BOOK, S. 89]. Er unterteilt sich in einen absoluten und relativen Fehler. Der absolute Fehler F in Formel \ref{eq:abs-fehler} definiert sich durch die Differenz zwischen dem Meßwert M und dem Referenzwert R und gibt Auskunft über die absolute Abweichung zwischen den beiden Werten.

\begin{equation}\label{eq:abs-fehler} F=M-R \end{equation}

Der relative Fehler f in Formel \ref{eq:rel-fehler} wird in Prozent angegeben und ermittelt sich aus dem absoluten Fehler F bezogen auf den Referenzwert R.

\begin{equation}\label{eq:rel-fehler} f=\cfrac{F}{R} \cdot \SI{100}{\percent} \end{equation}

Bei der Lokalisierung ist unter anderem die Beurteilung der Abweichung des gemessenen Punkts zum Referenzpunkt wichtig. Mit Formel \ref{eq:abstand} lässt sich der Abstand d zwischen der gemessenen Position (M_x,M_y) und der Referenzposition (R_x,R_y) ermitteln. d ist somit die absolute Abweichung der Lokalisierung F_{loc}. Aus den Formeln \ref{eq:abs-fehler} und \ref{eq:rel-fehler} sowie der Kenntnis über die absolute Abweichung in Formel \ref{eq:abstand} ergibt sich die relative Abweichung f_{loc} in Formel \ref{eq:loc-fehler}.

\begin{equation}\label{eq:abstand} d=F_{loc}=\sqrt{(M_x-R_x)^2 + (M_y-R_y)^2} \end{equation}

\begin{equation}\label{eq:loc-fehler} f_{loc}=\sqrt{\cfrac{(M_x-R_x)^2 + (M_y-R_y)^2}{R_x^2+R_y^2}} \cdot \SI{100}{\percent} \end{equation}

Kalibrierung

Eine Methode zur Reduzierung von systemischen Fehlern, beschrieben in Abschnitt \ref{arten-von-messfehlern} Systemische Fehler, ist die Kalibrierung. Hierbei werden mehrere Messreihen mit möglichst vielen Messungen angefertigt. Es wird darauf geachtet, dass die äußeren Einflüsse, die auf die Messung einwirken können, weitestgehend eliminiert werden und die Messumgebung stets gleich bleibt. Durch eine hohe Anzahl von Messungen kann der statistische Fehler zusätzlich minimiert werden [@jcgm_2012, Nr. 2.19]. Sollte der Mittelwert der Messung nun nicht mit dem Referenzwert übereinstimmen, so ist diese Abweichung auf ein systemischen Fehler zurückzuführen. Um die Linearität des Fehlers zu beurteilen, müssen mehrere Messreihen mit unterschiedlichen Eingangsvoraussetzungen betrachtet werden. Die Eingangsvoraussetzungen sind vom betrachteten System abhängig, im Fall der Entfernungsmessungen werden Messreihen mit unterschiedlichen Abständen angefertigt. Aus den gewonnenen Daten können so Korrekturfaktoren ermittelt werden, welche den systemischen Fehler reduzieren [@jcgm_2012, Nr. 2.39, Nr. 3.11].

Filter

Die unverarbeiteten Messwerte werden als Rohdaten bezeichnet. Sie sind aufgrund der zuvor beschriebenen Messfehler nicht zur Anzeige geeignet. Zunächst müssen diese Fehler beseitigt werden. Im ersten Schritt werden die systemischen Fehler, beispielsweise durch eine Kalibrierung, minimiert. Im nächsten schritt gilt es die zufälligen Fehler, also Ausreißer und Rauschen, zu detektieren und zu eliminieren. Hierbei kommen verschiedene Filterverfahren zum Einsatz die einzeln oder in Kombination eingesetzt werden können.

Gleitender Mittelwert {-}

Beim gleitenden Mittelwert handelt es sich um ein Methode zur Glättung von Zeitlichen Datenreihen. Er Basiert auf der Annahme, dass sich die zu messende Größe über den Zeitlichen verlauf nicht sprunghaft ändert. Diese Annahme trifft auch auf den \ac{rssi}-Wert zu.

Formel \ref{eq:gleitendME} zeigt die mathematische Umsetzung des gleitenden Mittelwerts m_i. q beschreibt dabei die Anzahl an Werten die unmittelbar vor und nach dem aktuellen Messwert x_i erfasst wurden. Dabei wird zur Ermittlung des arithmetischen Mittelwertes die Wertereihe x_{i-q}, ...., x_{i+q} betrachtet. Die Größe des Fensters q ist ein Parameter der zu beginn festgelegt werden muss. Dabei ist zu beachten: Ein kleiner Wert für q erhöht das Rauschen und ein großer Wert kann dazu führen, dass kleine Änderungen zu stark ausgeglichen und somit nicht erkannt werden können.

\begin{equation}\label{eq:gleitendME} m_i = \frac{1}{2q+1} \sum_{k=i-q}^{i+q} x_k \end{equation}

Bei Zeitlichen Messreihen werden die Messdaten oft nicht in zeitlich konstanten Abständen gemessen. Aus diesem Grund sollte das Fenster q nicht die feste Anzahl von Messwerten sondern ein Zeitintervall q_t beschreiben. Somit ergibt sich aus Formel \ref{eq:gleitendME} der auf Zeit basierende gleitende Mittelwert m_{i_t} in Formel \ref{eq:gleitendTime}. Der Wert A ist die Anzahl an Datenpunkten die im Zeitfenster i_t-q_t bis i_t+q_t in die Messung einbezogen werden. i_t beschreibt den Zeitpunkt der betrachteten Messung.

\begin{equation}\label{eq:gleitendTime} m_{i_t} = \frac{1}{A} \sum_{k=i_t-q_t}^{i_t+q_t} x_k \end{equation}

Gewichteter Mittelwert {-}

In den Sozialwissenschaften finden Wichtungen häufig Anwendung und sind trotz der unterschiedlichen wissenschaftlichen Disziplinen in mathematischer Hinsicht auch im technischen Bereich nutzbar. Demnach können Wichtungsfaktoren grundsätzlich auf zwei unterschiedliche Arten bestimmt werden. Im ersten Fall ist eine Verteilung der Grundgesamtheit bekannt. Im zweiten Fall ist die Grundgesamtheit nicht bekannt, so dass die Verteilung geschätzt werden muss [@Alt_1994a].

Der Wichtungsfaktor wird im zweiten Fall durch das Soll-Wert/Ist-Wert Verhältnis ermittelt. Ein Beispiel ist in Tabelle \ref{tab:wichtungsfaktor} zu finden. Dabei wird angenommen, dass Messwerte im oberen Viertel zu 5% vorkommen können, im unteren Viertel zu 60%.

Messwerte Verteilung \si{\percent} SOLL \si{\percent} Beispiel für eine IST Verteilung \si{\percent} Wichtungsfaktor (SOLL/IST)
0-25 5 15 0,333
25-50 10 25 0,4
50-75 25 25 1
75-100 60 40 1,5

: Beispiel für die Ermittlung des Wichtungsfaktors durch SOLL/IST Vergleich. \label{tab:wichtungsfaktor}

Formel \ref{eq:weighted} beschreibt nun Mathematisch die Anwendung des gewichteten Mittelwerts. Der gewichtete Mittelwert m_w errechnet sich hierbei aus der Summe des Produkts von Wichtungsfaktor w_i und Messwert x_i geteilt durch die Summe der Wichtungsfaktoren.

\begin{equation}\label{eq:weighted} m_{w} = \cfrac{\sum_{i=1}^{n} x_k}{\sum_{i=1}^{n} w_i} \end{equation}

Implementierung

In den folgenden Abschnitten wird die verwendete Hardware sowie die Umsetzung beschrieben. Zum Einsatz kommen die Programmiersprachen JavaScript, Python und Kotlin. Dieser Mix erklärt sich aus der gewählten Hardware und dem Vorgehen.

Beacon

Als Bluetooth-Beacon kommen Puck.js\footnote{https://www.puck-js.com/}, Abbildung \ref{fig:puck}, von der Firma Espruino\footnote{http://www.espruino.com/} zum Einsatz. Diese bieten, auf ihrer offenen Plattform, neben Bluetooth noch weitere Sensoren wie: ein Magnetometer zur Messung von Magnetfeldern, ein Accelerometer zur Messung von Beschleunigungen, ein Gyroscope zur Messung der Winkelgeschwindigkeit, einen Temperatursensor und vieles mehr. Durch diese Sensoren kann der Beacon auch für weitere Anwendungen eingesetzt werden, was jedoch nicht Bestandteil dieser Arbeit sein soll.

Puck.js inklusive Gehäuse. \label{fig:puck}

Durch eine Programmierschnittstelle lässt sich der Beacon mit Hilfe von JavaScript programmieren. Beim Einstieg hilft eine Datenbank mit Beispielprogrammen sowie ein ausführlich dokumentiertes \ac{api} [@Ltd_2017]. Zur Programmierung wird der Beacon mittels Bluetooth mit einer \ac{ide} im Browser verbunden. Abbildung \ref{fig:ide} zeigt die \ac{ide}: links befindet sich die Konsole über die einzelne Befehle direkt auf dem Beacon ausgeführt werden können, rechts ist der Editor zu sehen, in diesem können die Befehle zu Programmen zusammengeführt werden. Der Programmcode kann sowohl temporär zum Testen auf den Beacon geladen werden, als auch nach dem Test im Flash des Beacon gespeichert werden. Bei der temporären Ausführung ist der Code nach einem Batteriewechsel nicht mehr auf dem Beacon. Diese Art der Entwicklung macht das Experimentieren mit den Bluetooth-Beacon sehr einfach.

Screenshot der Espruino \ac{ide} im Chrome-Browser. \label{fig:ide}

Modi

Während der Versuche mit den Beacon wird ein hohes Advertising-Intervall benötigt um möglichst viele Advertising-Pakete in kurzer Zeit zu versenden. Dadurch lässt sich die Messgenauigkeit bei kurzer Messdauer erhöhen, führt jedoch zu einer kürzere Batterielebensdauer des Beacon. Um die Batterie nicht zu stark zu belasten, wurden zwei Modi entwickelt. Durch den integrierten Button, kann zwischen dem Versuchsmodus und dem Programmiermodus gewechselt werden. Zur Visualisierung in welchem Modus sich der Beacon befindet wird die eingebaute grüne und rote LED verwendet. Beim Wechsel vom Programmiermodus in den Versuchsmodus leuchtet die grüne LED auf und blinkt dann alle \SI{10}{\second}. Wird der Beacon erneut gedrückt, zeigt die rote LED das Beenden des Versuchsmodus an und der Beacon wechselt in den Programmiermodus zurück.

Identifizierung

Jeder Beacon verfügt über eine einzigartige Hardware-Adresse, \ac{mac}-Adresse genannt. Zur einfachen Identifizierung werden die letzten zwei Byte der \ac{mac}-Adresse in Kleinbuchstaben als Kurzname der Beacon verwendet. Für das Advertising wird vor den Kurznamen ein BLE für \acl{ble} gesetzt. Tabelle \ref{tab:devices} listet die \ac{mac}-Adresse sowie den dazugehörigen Advertising-Namen und Kurznamen der Beacon auf. Im Versuchsmodus wird der Advertising-Name nicht mit ausgesendet, mehr dazu im Kapitel \ref{advertising}.

\ac{mac}-Adresse Advertising Name Kurzname
C6:13:E8:3F:69:0F BLE 690f 690f
CD:10:9A:4C:9D:31 BLE 9d31 9d31
D6:7C:70:1C:5B:5B BLE 5b5b 5b5b

: Übersicht der \ac{mac}-Adressen und zugehörigen Namen der verwendeten Beacon. \label{tab:devices}

Weiterhin wird für das Advertising ein universeller Identifikator benötigt. Diese erlaubt es die Advertising-Pakete eindeutig zuzuordnen. Espruino bietet hierzu eine reservierte 16 Bit \ac{uuid} 0x0590 für die Entwicklung von Anwendung mit ihrer Hardware. Diese \ac{uuid} wird zur Filterung der Advertising-Pakete im Scanner verwendet.

Advertising

Für das Advertising stehen 31 Byte für benutzerdefinierte Daten zur Verfügung. Davon werden 5 Byte im Versuchsmodus benötigt. Das Advertising-Paket im Versuchsmodus setzt sich aus der 16 Bit langen \ac{uuid} 0x0590 und 3 Byte zur Übertragung der scPower zusammen. Die scPower wird in einer festen Reihenfolge abgespeichert und übertragen. Für einen produktiven Einsatz sollten diese Werte eindeutig gekennzeichnet werden. Hierfür sind weitere 26 Byte in dem Advertising-Paket frei.

Für den Versuchsmodus wird der Beacon in den Advertising-\ac{pdu} ADV_NONCONN_IND, beschrieben in Kapitel \ref{bluetooth-low-energy}, gesetzt. Hierbei lässt der Beacon keine Verbindung zu und reagiert nicht auf Anfragen, sondern sendet nur Advertising-Pakete aus. Das maximales Advertising-Intervall ist in diesem Modus zwar auf \SI{100}{\milli\second} beschränkt, dies ist jedoch für den gewählten Versuchsaufbau ausreichend. Zur Erfassung der Position bewegter Objekte sollte eine aktive Verbindung genutzt werden, da hier das Advertising-Intervall auf \SI{20}{\milli\second} verkürzt werden kann. Der Advertising-Name des Beacons wird im Versuchsmodus nicht ausgesendet.

Im Programmiermodus befindet sich der Beacon im Advertising-\ac{pdu} ADV_IND. Dieser ist notwendig damit eine Verbindung mit dem Beacon zur erneuten Programmierung hergestellt werden kann. Auch der Advertising-Name des Beacons wird in diesem Modus mit ausgesendet um das Gerät leichter zu Identifizieren.

Verarbeitung der scPower

Zur Umsetzung eines selbst korrigierenden Systems müssen die Bluetooth-Beacon sowohl als Scanner wie auch als Advertiser fungieren. Im Versuchsmodus scannen die Beacon hierzu, parallel zum Aussenden der Advertising-Pakete, nach solche Paketen von den anderen beiden Beacon. Abbildung \ref{fig:selfcorrecting} zeigt schematisch den Ablauf des selbst korrigierenden Systems anhand der Beacon 5b5b und 690f. Der Beacon 5b5b sendet sein Advertising-Paket aus, welches von dem Beacon 690 empfangen und verarbeitet wird. Der Beacon 690f speichert den \ac{rssi}-Wert des Empfangenen Pakets von Beacon 5b5b als scPower in seinem Advertising-Paket und senden dieses aus. Bei jedem erneuten empfang eines Advertising-Pakets von Beacon 5b5b wird die scPower aktualisiert.

Ablauf des Advertisings am Beispiel von zwei Beacon. \label{fig:selfcorrecting}{ width=60% }

Smartphone

Als Smartphone für die Messungen kommt ein OnePlus 7t mit Android-Betriebssystem in der Version 11 zum Einsatz. Für die Anwendungsentwicklung wird die \ac{ide} Android Studio verwendet. Als Programmiersprache wurde Kotlin gewählt und die Smartphone-Anwendung als Bluetooth-Scanner umgesetzt.

Über die Benutzeroberfläche, zu sehen in Abbildung \ref{fig:appfrontend}, müssen 4 Eingabefelder vor dem Versuchsstart durch den Anwender ausgefüllt werden. Der Testname dient dazu, die Testdaten bei der Auswertung zu identifizieren, er dient auch als Dateiname für die gespeicherten Daten. In den weiteren drei Feldern wird die, für den durchgeführten Versuch, real gemessene Entfernung zwischen Smartphone und dem jeweiligen Beacon notiert. Sollten ein oder mehrere Beacon im durchgeführten Versuch keine Relevanz haben, so muss hier eine 0 eingetragen werden. Über den Start/Stop-Button am unteren Bildschirmrand der Anwendung wird die Aufzeichnung gestartet. Nach dem Start können die empfangenen Daten im oberen Bildschirmbereich zur Funktionsüberprüfung eingesehen werden. Diese Daten aktualisieren sich automatisch mit jedem empfangenen Advertising-Paket.

Screenshot der Smartphone-Testanwendung: Bluetooth Advertise Logger. \label{fig:appfrontend}{ height=400px }

Beim Empfang eines Advertising-Pakets wird geprüft, ob das Paket von einem der Beacon versendet wurde. Hierzu wird zunächst nach der \ac{uuid} gefiltert und anschließend nach den \ac{mac}-Adressen der drei Beacon. Ist das Paket von einem der Beacon, so werden die Daten des Advertising-Pakets in einer Textdatei, mit dem Testnamen als Dateinamen, auf dem Smartphone abgelegt. Die Daten werden im \ac{csv}-Format gespeichert, dabei sind die einzelnen Spalten mit Hilfe eines Kommas voneinander getrennt. In Tabelle \ref{tab:datastore} werden die Spalten aufgelistet und ihr Inhalt kurz erläutert.

Spalte Beschreibung
Time Empfangszeitpunkt als Unix-Zeitstempel
Test Benutzerdefinierter Name des durchgeführten Tests
Device \ac{mac}-Adresse des Beacon
RSSI Vom Smartphone ermittelter \ac{rssi}-Wert
5b5b_dist gemessene Referenzentfernung zum Beacons 5b5b
5b5b_rssi Ermittelte scPower des Beacons 5b5b
690f_dist gemessene Referenzentfernung zum Beacons 690f
690f_rssi Ermittelte scPower des Beacons 690f
9d31_dist gemessene Referenzentfernung zum Beacons 9d31
9d31_rssi Ermittelte scPower des Beacons 9d31

: Spaltenübersicht der gespeicherten \ac{csv}-Datei bei aktiver Messung. \label{tab:datastore}

Auswertung

Die Auswertung der Messreihen wird auf dem Computer durchgeführt. Dies bietet im Gegensatz zur direkten Auswertung auf dem Smartphone den Vorteil, auch im Nachhinein Änderungen vornehmen zu können. Als Programmiersprache kommt Python zum Einsatz, welche eine Vielzahl an Bibliotheken zur Arbeit mit großen Datenmenge und zur wissenschaftlichen Auswertung bereithält. Im Anhang dieser Arbeit befindet sich eine Liste der verwendeten Bibliotheken und deren Versionen.

Daten Einlesen

In einem ersten Schritt werden die Daten eingelesen und bereinigt. Zur Bereinigung werden die ersten \SI{5}{\second} und die letzten \SI{10}{\second} der Messreihe entfernt, um den Einfluss durch die Bedienung des Smartphones aus den Messreihen zu beseitigen. Bei der Übermittlung der Daten werden nicht vorhandene Messdaten mit einer 0 initialisiert. Dies würde bei Berechnungen zu Fehlern führen, weswegen alle 0 Werte aus den eingelesenen Daten gelöscht werden.

Um mit den Daten einfacher arbeiten zu können und eine bessere Übersicht zu erhalten, werden die Spalten aus Tabelle \ref{tab:datastore} umgeformt. Hierzu wird der Referenzpunkt aus den Referenzentfernungen zu den Beacons ermittelt und in der neuen Spalte realPosition gespeichert. Die Referenz-Entfernung sowie die scPower zu dem jeweiligen Beacon wird ausgelesen und in den Spalte deviceDistance und scPower abgelegt.

Im letzten Schritt werden überflüssige Spalten gelöscht. Tabelle \ref{tab:dataclean} zeigt die vorhandenen Spalten nach dem Einlesen.

Spalte Beschreibung
Time Empfangszeitpunkt als Unix-Zeitstempel
Test Benutzerdefinierter Name des durchgeführten Tests
Device \ac{mac}-Adresse des Beacon
RSSI Vom Smartphone ermittelter \ac{rssi}-Wert
scPower Ermittelter \ac{rssi}-Referenzwert der benachbarten Beacon auf \SI{1}{\meter}
deviceDistance Physisch ermittelte Entfernung zwischen dem Beacon und Smartphone
realPosition x,y Koordinaten des Smartphones, ermittelt durch die deviceDistance

: Spaltenübersicht der Messreihen nach dem Einlesen der Daten. \label{tab:dataclean}

Ermittlung der Messwerte

Die zeitlichen Abstände sowie die Reihenfolge der Advertising-Pakete sind zufällig (vgl. Abb. \ref{fig:messreihe}). Die Beacon senden zwar in einem konstanten Intervall von \SI{100}{\milli\second}, jedoch kann es bei der Übertragung zu Kollisionen kommen. Auch Aussetzer in der Übertragung oder andere Störeinflüsse führen zum Ausbleiben eines Advertising-Pakets. Um bei Berechnungen aus den Messdaten stets alle eingesetzten Beacon zu berücksichtigen, wird ein Fenster aus \SI{400}{\milli\second} betrachtet. Der zu betrachtende Messwert wird dabei aus einem Fenster von \SI{\pm 200}{\milli\second} gemittelt. Die Wahl der Fenstergröße wurde durch folgende Überlegungen getroffen: Das Fenster sollte nicht zu groß sein, um Schwankungen in den Messdaten möglichst wenig zu beeinflussen (vgl. Abschnitt \ref{filter}); Das Fenster sollte nicht zu klein sein, so dass möglichst immer alle 3 Beacon in dem betrachteten Messausschnitt enthalten sind.

Ausschnitt aus einer Messreihe. \label{fig:messreihe}

Umsetzung der Trilateration

Zur Umsetzung der Trilateration wird das Lineare Gleichungssystem aus Formel \ref{eq:lgsTrilateration} zu p_x und p_y aufgelöst. Die daraus resultierenden Formeln \ref{eq:trilaterationAlgorithmus} errechnen aus den ermittelten Abstände r_1, r_2 und r_3 zu den jeweiligen Beacons die Positionen p_x und p_y.

\begin{equation}\label{eq:trilaterationAlgorithmus} \begin{aligned} p_x &= \frac{r_1^2 - r_2^2 + x_2^2}{ 2 \cdot x_2 } \ p_y &= \frac{r_1^2 - r_3^2 + (x_3^2 + y_3^2) - (2 \cdot x_3 \cdot p_x)}{2 \cdot y_3} \end{aligned} \end{equation}

Da die Entfernungsermittlung fehlerbehaftet ist, können verschiedene Szenarien auftreten auf die der angewandte Algorithmus überprüft werden muss. Abbildung \ref{fig:locationAlgorithmTest} zeigt die einzelnen Szenarien die im folgenden kurz beschrieben werden. Die blauen Punkte markieren die Position der Beacon, die durch die übergebenen Radien r_1, r_2 und r_3 sind jeweils durch die roten Kreise symbolisiert. Der ermittelte Punkt p_x, p_y wird als roter Punkt dargestellt:

Auswirkungen verschiedener Eingabevariablen auf die Lokalisierung durch den verwendeten Lokalsierungsalgorithmus. \label{fig:locationAlgorithmTest}

  1. Die Kreise haben einen eindeutigen Schnittpunkt (oben links und unten rechts)
  2. Die Kreise haben gar keinen Schnittpunkt (oben mitte)
  3. Die Kreise schneiden sich alle, jedoch nicht an einem gemeinsamen Punkt (oben rechts, unten links)
  4. Die Kreise schneiden sich teilweise (unten mitte)

In Abbildung \ref{fig:locationAlgorithmWorking} ist die Vorgehensweise des Algorithmus veranschaulicht. Um jeden Beacon wird ein Kreis mit der ermittelten Entfernung als Radius gezogen. Wenn sich zwei Kreise schneiden, so wird eine Gerade (schwarz dargestellt) durch diesen Schnittpunkt gelegt. Gibt es keinen solchen Schnittpunkt, werden die beiden beteiligten Beacon durch eine Linie verbunden (hellblau dargestellt). Ausgehend vom dritten Beacon, wird eine Gerade im \SI{90}{\degree} Winkel durch diese Verbindungslinie gezogen. Die ermittelte Position ist der Punkt, an dem sich alle drei Geraden schneiden.

Ermittlung der Position bei sich nicht überschneidenden Kreise \label{fig:locationAlgorithmWorking}

Filter Implementierung

Bei der Filterung der Messdaten wird, wie in Abschnitt \ref{ermittlung-der-messwerte} ein gleitendes Fenster eingesetzt. Da durch die Filter eine eine Glättung der Messwerte erfolgen soll, kommt ein größeres Fenster von \SI{800}{\milli\second} zum Einsatz. Das Fenster setzt sich aus \SI{600}{\milli\second} vor dem betrachteten Messwert und \SI{200}{\milli\second} nach dem betrachteten Wert zusammen. Das asymmetrische Fenster wurde gewählt um eine möglichst Verzögerungsfreie Berechnung der Daten zu simulieren.

Zum Einsatz kommen ein gleitender Mittelwert und ein gewichteter Mittelwert (beschrieben in Abschnitt \ref{filter}). Der gleitende Mittelwert wird aus dem, im vorrangegangenen Absatz beschriebenen gleitenden Fenster gebildet. Dabei wird der Datensatz in einzelne Datensätze je Beacon aufgeteilt und berechnet. Im folgenden sollen die Überlegungen und die Umsetzung des gewichteten Mittelwerts näher beschrieben werden.

Beim \ac{rssi}-Wert handelt es sich um einen Dämpfungsfaktor. Die Einflüsse bzw. Faktoren wurden in Abschnitt \ref{arten-von-messfehlern} beschrieben. Die Dämpfung eines Signals erhöht sich mit jedem weiteren Einflussfaktor an. Es ist zu erwarten, dass bei konstanten Messbedingungen Abweichungen durch Streuung auftreten. Daher ist Anzunehmen, dass geringere Dämpfungswerte den realen Zustand besser beschreiben als hohe Dämpfungswerte. Der Einsatz des gewichteten Mittelwertfilters soll dafür sorgen, dass niedrigen Dämpfungsfaktoren ein höheres Vertrauen zuteil wird in dem diese Stärke gewichtet in die Berechnung des Mittelwertes einfließen.

Durch das Sendeintervall von \SI{100}{\milli\second} besteht der betrachtete Datensatz im besten Fall aus 8 Messwerten. Diese weisen oft nur eine geringe Schwankung auf, weswegen ein SOLL/IST vergleich zur Bestimmung des Wichtungsfaktors nicht möglich ist. Aus diesem Grund wird eine feste Wichtung vorgenommen. Dabei wird wie folgt gewichtet:

  • Sind alle Werte gleich groß, so wird dieser Wert zurück gegeben
  • Sind zwei verschiedene Werte im Datensatz, so wird der höhere mit einfach und der niedrige 4-Fach gewichtet.
  • Sind drei oder mehr verschiedene Werte im Datensatz, so werden die höchsten Wert einfach, die mittleren Wert 2-Fach und die niedrigsten Wert 4-Fach gewichtet.

Zur Einteilung der Messwerte wird die Prozentuale Lage im betrachteten Datensatz herangezogen. Ein hoher Messwert befindet sich in den unteren \SI{40}{\percent}, ein Mittlerer Messwert befindet sich zwischen \SI{40}{\percent} und \SI{70}{\percent} und ein niedriger Messwert wird durch die verbleibenden oberen \SI{30}{\percent} beschrieben.

Versuchsvorbereitung

Um ein besseres Verständnis über das System und seine Eigenschaften zu erhalten, werden verschiedene Referenzmessungen durchgeführt. Betrachtet werden hierbei die Auswirkungen der Orientierung von Smartphone und Beacon sowie eventuelle Abweichungen der verwendeten Hardware. Mit dieser Erkenntnis kann im weiteren Verlauf eine Kalibrierung des Systems vorgenommen und der Versuchsaufbau, beschrieben in Kapitel \ref{fig:versuchsaufbau}, optimiert werden.

Zur Ermittlung des Abstands zwischen den einzelnen Objekten wird jeweils die Mitte des Objekts verwendet. Dies hat den Vorteil, dass die Orientierung der Geräte keinen Einfluss auf den tatsächlichen Abstand hat.

Referenzmessung

Die Referenzmessungen bieten einen Einblick in das System. Sie sollen systemische Einflüsse aufzeigen und so die Entwicklung eines optimierten Versuchsaufbaus ermöglichen. Die ersten Messungen werden im Freien durchgeführt, um etwaige Störeinflüsse durch Reflektionen und \ac{wifi}-Signalen zu verringern. Ein Karton dient als ebene Fläche auf einer Wiese. Auf dem Karton werden nicht nur die Messobjekte platziert, sondern auch Markierungen aufgebracht, um die Positionierung und Ausrichtung zu erleichtern. Abbildung \ref{fig:messung-outdoor} zeigt den Versuchsaufbau.

Versuchsaufbau der Referenzmessung im Außenbereich \label{fig:messung-outdoor}{ width=80% }

Soweit nicht anders beschrieben beträgt der Abstand für die Referenzmessungen \SI{1}{\meter}. Die Messdauer einer Referenzmessung wurde auf eine Minute begrenzt. Die Auswertung findet wie in Abschnitt \ref{auswertung} beschrieben statt.

Beacon-Smartphone

Zunächst wird untersucht, ob die verwendete Hardware fehlerfrei funktioniert und ob es starke Schwankungen zwischen den einzelnen Beacon gibt. Hierzu wird jeder Beacon einzeln zum Smartphone gemessen. Die Messergebnisse in Abbildung \ref{fig:ref-beaconSmartphone} Messung "Outdoor 1" zeigen, dass die Geräte eine ähnliche Sendeleistung aufweisen. Die gemessenen Werte liegen dabei zwischen \SIrange{-71}{-74}{\dB} und sind damit innerhalb der \ac{ble}-Spezifikation von \pm \SI{6}{\dB}. Die Messergebnisse einer weiteren Messung zu einem anderen Zeitpunkt, zu sehen in Abbildung \ref{fig:ref-beaconSmartphone} Messung "Outdoor 2", zeigen eine höhere Schwankung und eine allgemeine Verschlechterung der gemessenen \ac{rssi}-Werte. Dabei haben sich die Umgebungsbedingungen von der ersten zur zweiten Messung wie folgt verändert: Der Boden war nasser und die Temperatur wesentlich niedriger. Welches der Faktoren wie auf das System einwirkt wurde aus Zeitgründen nicht näher untersucht.

Referenzmessung Beacon zu Smartphone auf \SI{1}{\meter} Entfernung. \label{fig:ref-beaconSmartphone}

Eine weitere Messung, durchgeführt im Innenraum, soll die Einflüsse durch Reflektionen und \ac{wifi}-Signalen verifizieren. In Abbildung \ref{fig:ref-beaconSmartphone} Messung "Indoor" ist zu sehen, dass der absolute Messwert im Innenraum noch etwas besser wird zu den Außenmessungen. Er liegt nun im Bereich von \SIrange{-61}{-71}{\dB}. Bei diesen Messungen sind jedoch einige Außreißer zu sehen, ob diese durch Reflektionen oder anderen Einflüssen entstehen, wurde nicht weiter untersucht.

Winkeleinfluss

Bei der Messung des Winkeleinfluss soll untersucht werden, wie sich die Lage der einzelnen Geräte zueinander auf die Messungen auswirken. Hierbei werden in verschiedenen Messungen sowohl das Smartphone, als auch der Beacon rotiert und der \ac{rssi}-Wert mit einem zweiten Gerät auf \SI{1}{\meter} Entfernung gemessen. Die Rotation findet hierbei im Uhrzeigersinn statt. Hieraus ergibt sich eine Verteilung der Rotationswinkel zum Empfänger gegen den Uhrzeigersinn, dies wird in Abbildung \ref{fig:puck-rotation} veranschaulicht.

Verteilung der Rotationswinkel am Beispiel des Beacon. \label{fig:puck-rotation}{ width=60% }

Smartphone Rotation

Bei den ersten Messungen wird das Smartphone in \SI{45}{\degree} Schritten rotiert. Gerade beim Smartphone ist diese Messung sehr interessant, da die Lage der Bluetooth-Antenne nicht öffentlich dokumentiert ist. Das Smartphone wird hierbei um den Mittelpunkt rotiert. Der Höhrer, also das obere Ende des Smartphones, kennzeichnet \SI{0}{\degree}. In Abbildung \ref{fig:ref-smartphoneRotation} ist zu erkennen, dass der gemessene \ac{rssi}-Wert bei \SI{90}{\degree} die meiste Schwächung erfährt. Der mittlere \ac{rssi}-Wert erstreckt sich von \SI{-77}{\dB} bei \SI{235}{\degree} und \SI{315}{\degree} bis \SI{-91}{\dB} bei \SI{90}{\degree}.

Referenzmessung bei Smartphone Rotation im Uhrzeigersinn. \label{fig:ref-smartphoneRotation}

Der abgebildete Schwächungsverlauf über \SI{45}{\degree}, \SI{90}{\degree} und \SI{135}{\degree} lässt die Annahme zu, das sich die Antenne über die rechte Smartphoneseite erstreckt. Beim Einsatz der Formel \ref{eq:beacondistance} mit den Konstanten für das Nexus 4 und einer txPower von \SI{-81}{\dB}, ermittelt aus dem mittleren \ac{rssi}-Wert der Messreihe, äußert sich die \ac{rssi}-Differenz zwischen \SI{235}{\degree} und \SI{90}{\degree} in einer Entfernungsdifferenz von rund \SI{1,6}{\meter}.

Beacon Rotation

Für die nächste Messung wird der Beacon in \SI{90}{\degree} Schritten im Uhrzeigersinn um den Mittelpunkt rotiert. Wie in Abbildung \ref{fig:puck-rotation} zu erkennen, wird \SI{0}{\degree} durch den Chip auf dem Beacon gekennzeichnet. Bei den Messungen ist die Schwankung des mittleren \ac{rssi}-Werts, von \SI{-64}{\dB} bei \SI{180}{\degree} bis \SI{-68}{\dB} bei \SI{270}{\degree}, als gering einzustufen. Wie Abbildung \ref{fig:ref-beaconrotation} Messung "Beacon zu Smartphone" zeigt, ist die Streuung der Messwerte bei \SI{90}{\degree} und \SI{180}{\degree} am größten.

Referenzmessung bei der Rotation des Beacon im Uhrzeigersinn. \label{fig:ref-beaconrotation}

Als letzte Messungen wird die Rotation eines Beacons in Referenz zu einem zweiten Beacon untersucht. Hierbei lässt sich sowohl eine Aussage über die Dämpfung bei der Abstrahlung des Signals als auch die Dämpfung beim Empfang eines Signals treffen. Der statische Beacon ist bei der Messung mit \SI{0}{\degree}, wie in Abbildung \ref{fig:puck-rotation} gezeigt, zum rotierenden Beacon ausgerichtet. Der \ac{rssi}-Wert der am statischen Beacon gemessen wird zeigt die Dämpfung des ausgehenden Signals beim rotierenden Beacon und ist in Abbildung \ref{fig:ref-beaconrotation} in Messung "statischer Beacon eingehend" zu sehen. Die Messung "rotierender Beacon eingehend" zeigt im gegenzug das am rotierenden Beacon eingehende Signal welches vom statischen Beacon ausgesendet wird.

Durchführung der Kalibrierung

Die Konstanten A, B, und C aus Formel \ref{eq:beacondistance} werden druch Kalibrierungsmessungen nach der Anleitung der Android Beacon Library [@RadiusNetworks_2021] ermittelt. Die Kalibrierung bezieht sich in dieser Anleitung auf ein anderes System und wird mit Hilfe eines iPhones als Referenzgerät durchgeführt. Außerdem werden in der Anleitung Messreihen von \SI{0.25}{\meter} bis \SI{40}{\meter} angefertigt. Da der maximale Abstand in dieser Arbeit bei \SI{1.5}{\meter} liegt, soll die Kalibrierung auf den Bereich von \SI{0.25}{\meter} bis \SI{2}{\meter} in Schritten zu je \SI{0.25}{\meter} durchgeführt werden. Die scPower wird im späteren Versuch durch die benachbarten Beacon erfasst, daher kommt für die Referenzmessung anstelle des iPhones ein zweiter Beacon zum Einsatz.

Wie aus den Messungen in Abschnitt \ref{beacon-smartphone} hervor geht, weichen die \ac{rssi}-Werte bei feuchter Witterung im Außenbereich stark von denen im Innenbereich ab. Zum Zeitpunkt der Messungen war eine Trockenperiode nicht absehbar, aus diesem Grund wird die Kalibrierung im Innenraum durchgeführt. Um den Einfluss von Störfaktoren wie Reflektionen zu vermindern, wird die Messung möglichst weit entfernt von Wänden und anderen Objekten durchgeführt. Zusätzlich werden alle beweglichen Funkquellen aus der näheren Umgebung des Messbereichs geräumt. Um den Einfluss zufälliger Fehler durch die nicht optimalen Umgebungsbedingungen weiter zu reduzieren, wird die Messsdauer von den in der Anleitung verwendeten \SI{20}{\second} auf \SI{1}{\minute} angehoben.

Mit der aus Formel \ref{eq:beacondistance} entstammenden Formel \ref{eq:regress} wird nun eine Regression auf die Messdaten der Kalibrierung durchgeführt. Dabei werden Parameter für die Konstanten A und B ermittelt, durch die die Berechnungen der Messdaten möglichst gut mit der Distanz d übereinstimmen.

\begin{equation}\label{eq:regress} \begin{aligned} d = A \cdot \left( \cfrac{P_{R_{x}}}{txPower} \right)^{B} \end{aligned} \end{equation}

Die Konstante C beschreibt den Korrekturfaktor für \SI{1}{\meter} Entfernung. Hierzu werden die Konstanten A = 1,7358 und B = 7,5924 aus der Regression in die Formel \ref{eq:korrektur} eingesetzt und die Messwerte für die Referenzentfernung d = \SI{1}{\meter} eingesetzt. Daraus ergibt sich die Konstante C zu -0,1688.

\begin{equation}\label{eq:korrektur} \begin{aligned} C = d - A \cdot \left( \cfrac{P_{R_{x}}}{txPower} \right)^{B} \end{aligned} \end{equation}

In Abbildung \ref{fig:calibration} ist der durchschnittliche Fehler auf die einzelnen Entfernungen aufgetragen. Verglichen wird der Fehler unter Verwendung der Kalibrierungsfaktoren zur Verwendung der Standardwerte der Android Beacon Library. Die txPower, welche sich aus der Kalibrierung ergibt und für die weiteren Messungen eingesetzt wird beträgt \SI{-67}{\dB}. Es ist zu erkennen, dass die Fehlerquote nach Kalibrierung, ab \SI{0.75}{\meter} niedriger ist als mit den Standardwerten.

Gegenüberstellung der Kalibrierungsfaktoren zu den Standardwerten in der Android Beacon Library. \label{fig:calibration}

Versuchsaufbau

Dieses Kapitel beschreibt den Versuchsaufbau. Er orientiert sich an den zuvor behandelten Anforderungen, ein besonderes Augenmerk richtet sich dabei auf das Kapitel \ref{versuchsvorbereitung}. Ein weiterer Fokus liegt auf einem Aufbau der leicht nachzubildenden ist und dabei ein hohes maß an Genauigkeit ermöglicht.

Anordnung der Beacon

Die Bluetooth-Beacon werden in einem gleichseitigen Dreieck mit einer Seitenlänge von \SI{1}{\meter} auf einer ebenen Fläche angeordnet (Abbildung \ref{fig:versuchsaufbau}). Hierdurch empfängt jeder Beacon von seinen Nachbarn den RSSI Wert auf \SI{1}{\meter} Entfernung und kann diesen zur Kalibrierung an das Smartphone übermitteln. Wie dem Abschnitt \ref{winkeleinfluss} zu entnehmen ist, hat die Ausrichtung der Beacon keinen großen Einfluss. Dieser Versuchsaufbau ermöglicht es zudem, das System um weitere Beacon zu erweitern. Auch ließe sich hierdurch eine Dreieckspyramide mit 6 gleichlangen Kanten aufbauen, wodurch die Messung auf die 3. Dimension erweitert werden kann.

Messpunkte

Der Versuchsaufbau wird, wie in Abbildung \ref{fig:zones} dargestellt, in drei Zonen eingeteilt. Die ersten beiden Zonen ergeben sich aus der Geometrie des Versuchsaufbaus. Zone 1 hat einen Radius von \SI{0.289}{\meter} und wird durch das gleichseitige Dreieck begrenzt. In dieser Zone ist kein Beacon weiter als \SI{0.866}{\meter} vom Smartphone entfernt. Zone 2 misst einen Radius von \SI{0.577}{\meter} und schließt das Dreieck ein. Die maximale Distanz zu einem Beacon beträgt \SI{1.154}{\meter}. Bei Zone 3 liegt der am weitesten entfernte Punkt \SI{1.5}{\meter} von einem Beacon entfernt. Dieser wurde gewählt, da der Messfehler bis \SI{1.5}{\meter} laut dem Artikel [@Cho_2015a] unter \SI{10}{\percent} liegt. Es ergibt sich dabei ein Radius von \SI{0,75}{\meter} um das Zentrum.

Aufteilung des Versuchsaufbaus in Zonen und Messpunkte. \label{fig:zones}{ width=60% }

In Tabelle \ref{tab:messpunkte} sind die einzelnen Messpunkte und Abstände zu den Beacon aufgezeigt. Messpunkt A befindet sich im Zentrum der Kreisrunden Zonen. Messpunkt C und D jeweils am Rand von Zone 2 und Zone 3. Um möglichst viele Messpunkte zu erhalten ist der Messpunkt C nicht mittig zwischen zwei Beacon. Eine Besondere Rolle spiel Messpunkt B. Dieser befindet sich auf einer Kante des Dreiecks und liegt somit genau zwischen zwei Beacon. Er wurde gewählt, um den Einfluss des Smartphones auf die Funkstrecke der Beacon untersuchen zu können.

\begin{longtable}{llll} \caption{Messpunkte und deren Abstände zu den Beacon \label{tab:messpunkte}}\tabularnewline \toprule & \multicolumn{3}{l}{Entfernung in cm} \ Messpunkt & 5b5b & 690f & 9d31 \ \midrule \endfirsthead % \endhead % A & 57,7 & 57,7 & 57,7 \ B & 86,7 & 50 & 50 \ C & 74,3 & 39 & 113,2 \ D & 77,5 & 150 & 85 \ \end{longtable}

Um eine Konstante Messung zu gewährleisten werden die Beacon mittig auf den Referenzpunkt in gleicher Orientierung positioniert. Das Smartphone wird so platziert, das der Messpunkt in der Mitte des Geräts liegt. Die Entfernung zwischen Smartphone und Beacon wird von der Mitte der Geräte gemessen. Um die Winkelabhängige Dämpfung die in Abschnitt \ref{winkeleinfluss} beschrieben ist zu beurteilen, werden zwei Messreihen pro Messpunkt durchgeführt. Dabei wird das Smartphone zwischen den beiden Messreihen einmal um \SI{180}{\degree} rotiert. Wie aus Abbildung \ref{fig:zones} hervor geht wird die Spitze des Dreiecks durch den Beacon 690f gekennzeichnet.

Ergebnisse

Zunächst soll der Einfluss der Kalibrierung auf die Entfernungsberechnung betrachtet werden. Die Ermittlung der Entfernung findet mit Formel \ref{eq:beacondistance} statt. Gegenübergestellt werden die Konstanten aus der Android Beacon Library für das Nexus 4 sowie die Konstanten aus der Kalibrierung in Abschnitt \ref{durchfuxfchrung-der-kalibrierung}. Dabei wird der relative Fehler über die gemessenen Entfernungen betrachtet. Abbildung \ref{fig:erg-kalibrierung} zeigt das Verhältnis vom durchschnittlichen relative Fehler gegenüber den verschiedenen Referenzentfernungen. Die Verbindungslinien zwischen den Messpunkten dienen der besseren Visualisierung und stellen keine Interpolation der Zwischenwerte da. Die rot eingefärbten Linien zeigen den Einsatz der txPower, die blau eingefärbte die der scPower. Dabei kennzeichnet die durchgezogene Linie die Verwendung der Nexus 4 Konstanten und die gestrichelte die der Kalibrierungs-Konstanten.

Einfluss der Kalibrierung auf die Bestimmung der Entfernung. Die Messpunkte sind nur zur besseren visuellen Darstellung mit Linien verbunden. \label{fig:erg-kalibrierung}

Zu erkennen ist, dass der relative Fehler durch den Einsatz der kalibrierten Konstanten zunimmt. Im Mittel steigt der Fehler über die gemessenen Entfernungen unter Einsatz der txPower von \SI{94,32}{\percent} für die Nexus 4 Konstanten auf \SI{170}{\percent} bei den kalibrierten Konstanten. Unter Verwendung der scPower liegt der mittlere Fehler bei \SI{58,4}{\percent} für die Nexus 4 Konstanten und \SI{98,77}{\percent} bei den kalibrierten Konstanten. Der maximale Fehler aller 4 Auswertungen ist bei \SI{0.577}{\meter} am größten.

Die angewandte Methode zur Kalibrierung hat somit einen negativen Einfluss auf die Entfernungsberechnung. Ein Grund hierfür kann die Beschränkung des Messbereichs zur Kalibrierung auf \SI{2}{\meter} sein. Durch die Anpassung des Kalibrierungsbereichs wird das System allgemein instabiler da schwankungen sich stärker Auswirken. Dies lässt sich anhand der Referenzmessung aus Abschnitt \ref{winkeleinfluss} Smartphone Rotation zeigen. Hierbei ändert sich der gemessene \ac{rssi}-Wert bei gleicher Entfernung zum Beacon je nach Einfallswinkel. Tabelle \ref{tab:einfallswinkeleinfluss} stellt den relativen Fehler bei der Ermittlung der Distanz bei den gemessenen Einfallswinkeln dar. Es ist zu Erkennen das der Fehler mit den kalibrierten Konstanten stark von den der Nexus 4 Konstanten abweicht. Dabei nimmt die Differenz der Abweichung mit steigendem \ac{rssi}-Wert zu.

\begin{longtable}{lllll} \caption{Vergleich zwischen den Nexus 4 Konstanten und den Konstanten aus der Kalibrierung anhand der Referenzmessung des Einfallswinkels aus Abschnitt \ref{winkeleinfluss} Smartphone Rotation.} \label{tab:einfallswinkeleinfluss}\ \toprule & & \multicolumn{2}{l}{Relativer Fehler in \si{\percent}} & \ Rotationswinkel & RSSI in \si{\dB} & \begin{tabular}[c]{@{}l@{}}Nexus 4 \ Konstanten\end{tabular} & \begin{tabular}[c]{@{}l@{}}Kalibrierungs \ Konstanten\end{tabular} & \begin{tabular}[c]{@{}l@{}}Absolute \ Differenz\end{tabular} \ \midrule \endfirsthead % \endhead % \cline{1-5} \endfoot % \endlastfoot % \SI{0}{\degree} & -78,82 & 225.86 & 415,53 & 189,67 \ \SI{45}{\degree} & -84,55 & 451,95 & 790,46 & 338,51 \ \SI{90}{\degree} & -91,11 & 873,00 & 1482,77 & 609,77 \ \SI{135}{\degree} & -82,06 & 340,78 & 606,49 & 265,71 \ \SI{180}{\degree} & -79,67 & 253,26 & 461,15 & 207,89 \ \SI{235}{\degree} & -77,30 & 182,09 & 342,53 & 160,44 \ \SI{270}{\degree} & -79,21 & 238,11 & 435,94 & 197,83 \ \SI{315}{\degree} & -77,17 & 178,49 & 336,52 & 158,03 \ \cline{1-5} \end{longtable}

Als nächstes wird die Auswirkung der scPower anstelle der txPower bei der Entfernungsberechnung untersucht. In Abbildung \ref{fig:erg-kalibrierung} zeigt sich, dass die scPower einen positiven Einfluss auf die Entfernungsermittlung hat. Dabei liegt der durchschnittliche Fehler beim Einsatz der scPower über die verschiedenen Referenzentfernungen um \SI{35,92}{\percent} niedriger als bei der Verwendung der txPower. Abbildung \ref{fig:distScTx} veranschaulicht das Verhältnis zwischen den errechneten Entfernungen mittels scPower und txPower. Es ist zu erkennen, dass die Entfernungswerte der scPower dichter beieinander liegen, eine geringere Streuung aufweisen und eine geringere Abweichung zur Referenz Entfernung aufweisen.

Gegenüberstellung der Entfernungsermittlung auf verschiedenen Distanzen von scPower und txPower. \label{fig:distScTx}

  1. Filter
  2. Lokalisierung
  • Connections wären sinnvoll

  • Kalibrierung

  • Höhere Rate bei der Übertragung für mehr messdaten

  • Correlation RSS und scPower!

  • Fehlerhafte Zeitlicher Verlauf beim Empfang der Daten

  • Zunächst die Lokalisierung betrachten und dann zu den Gründen wieso diese nicht gut sind!

  • alle Messungen als Smartphone in 0 und 180 Grad im Versuchsaufbau (0 Grad Höhrer nach oben)

  • Ermittlung eines gleitenden Mittelwertes vom RSSI

  • Ermittlung eines gewichteten gleitenden Mittelwertes vom RSSI

  • Bestimmung der Entfernung durch den gemessenen und errechneten RSSI

    • mit Standard wert der Android Beacon Library
    • mit Kalibrierten werten
  • Bestimmung des relativen Fehlers der ermittelten Entfernungen

  • Positionsbestimmung aus allen Entfernungsberechnungen

  • Fehlerbestimmung der Positionsbestimmung

    • Relativer Fehler ermittelter Punkt zum realen Punkt
    • Relativer Fehler zwischen ermittelten Radii und Radii des errechneten Punkts (hier würde 0 raus kommen wenn die kreise einen gemeinsamen Schnittpunkt haben)
  • Einsatz Gaußfilter auf die Messdaten

Zusammenfassung

Fazit

Ausblick