From 72673465b3b5ba2ab9fb904050cc61e6207631c5 Mon Sep 17 00:00:00 2001 From: Sebastian Preisner Date: Sat, 19 Feb 2022 11:20:33 +0100 Subject: [PATCH] fix Henrik Abschlusskorrektur: Dies ist die Vorabversion, ab hier wird im tex file weiter gearbeitet --- Thesis/README.md | 105 +++++++++++++++--------------- Thesis/abstract.md | 1 + Thesis/metadata.yaml | 4 +- static/Ablaufplan-Advertising.pdf | Bin 15065 -> 15128 bytes static/Ablaufplan-Advertising.svg | 8 +-- static/SmartphoneRotation.pdf | Bin 15006 -> 42419 bytes 6 files changed, 59 insertions(+), 59 deletions(-) create mode 100644 Thesis/abstract.md diff --git a/Thesis/README.md b/Thesis/README.md index 97ae6be..a639c4d 100644 --- a/Thesis/README.md +++ b/Thesis/README.md @@ -206,8 +206,6 @@ d = A \cdot \left( \cfrac{P_{R_{x}}}{scPower} \right)^{B} + C \end{aligned} \end{equation} -\pagebreak - ## Messung, Fehlerquellen und -korrekturen {#messung-fehler} Jede Messung ist 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. @@ -328,7 +326,7 @@ In den Sozialwissenschaften finden Wichtungen häufig Anwendung und sind trotz d | 75-100 | 60 | 40 | 1,5 | : Beispiel für die Ermittlung des Wichtungsfaktors durch SOLL/IST Vergleich. \label{tab:wichtungsfaktor} -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 \SI{5}{\percent} vorkommen können, im unteren Viertel zu \SI{60}{\perwent}. +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 \SI{5}{\percent} vorkommen können, im unteren Viertel zu \SI{60}{\percent}. Formel \ref{eq:weighted} beschreibt die allgemeine mathematische Umsetzung des gewichteten Mittelwerts $m_w$. Dabei wird im betrachteten Messwertebereich $q$ jedem Messwert $x_i$ je nach seinem IST ein Wichtungsfaktor $w_i$ zugeteilt. Der gewichtete Mittelwert ergibt sich aus der Summe des Produkts von Wichtungsfaktor und Messwert geteilt durch die Summe der Wichtungsfaktoren. @@ -346,19 +344,19 @@ Als Bluetooth-Beacons kommen Puck.js [@puckjs], Abbildung \ref{fig:puck}, der Fi ![Puck.js inklusive Gehäuse. \label{fig:puck}](../static/puckjs.jpeg) -Durch eine Programmierschnittstelle lässt sich der Beacon mit Hilfe von JavaScript programmieren. Der Einstieg wird durch eine ausführlich dokumentiertes \ac{api} sowie einer Datenbank mit Beispielprogrammen erleichtert [@Ltd_2017]. Zur Programmierung wird der Beacon mittels Bluetooth mit der Integrierten Entwicklungsumgebung (\acs{ide}) im Browser verbunden. Abbildung \ref{fig:ide} zeigt die \acs{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 Beacons 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-Beacons sehr einfach. +Durch eine Programmierschnittstelle lässt sich der Beacon mithilfe von JavaScript programmieren. Der Einstieg wird durch ein ausführlich dokumentiertes \ac{api} sowie einer Datenbank mit Beispielprogrammen erleichtert [@Ltd_2017]. Zur Programmierung wird der Beacon mittels Bluetooth mit der integrierten Entwicklungsumgebung (\acs{ide}) im Browser verbunden. Abbildung \ref{fig:ide} zeigt die \acs{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 Beacons 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-Beacons sehr einfach. ![Screenshot der Espruino \ac{ide} im Chrome-Browser. \label{fig:ide}](../static/espruino_ide.png) ### Modi -Während der Versuche mit den Beacons wird ein hohes Advertising-Intervall benötigt um viele Advertising-Pakete in kurzer Zeit zu versenden. Dies erhöht die Messgenauigkeit bei kurzer Messdauer, führt jedoch zu einer kürzeren Batterielebensdauer. 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 Button erneut gedrückt, zeigt die rote LED das Beenden des Versuchsmodus an und der Beacon wechselt in den Programmiermodus zurück. +Während der Versuche mit den Beacons wird ein hohes Advertising-Intervall benötigt, um viele Advertising-Pakete in kurzer Zeit zu versenden. Dies erhöht die Messgenauigkeit bei kurzer Messdauer, führt jedoch zu einer kürzeren Batterielebensdauer. 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 Button 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 Beacons 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 Beacons auf. Im Versuchsmodus wird der Advertising-Name nicht mit ausgesendet, mehr dazu im Kapitel \ref{advertising}. -| \ac{mac}-Adresse | Advertising Name | Kurzname | +| \ac{mac}-Adresse | Advertising-Name | Kurzname | | ---------------- | --------- | -------- | | C6:13:E8:3F:69:0F | BLE 690f | ``690f`` | | CD:10:9A:4C:9D:31 | BLE 9d31 | ``9d31`` | @@ -373,11 +371,11 @@ Für das Advertising stehen 31 Byte für benutzerdefinierte Daten zur Verfügung 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 maximale 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. +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-Beacons sowohl als Scanner wie auch als Advertiser fungieren. Im Versuchsmodus scannen die Beacons hierzu, parallel zum Aussenden der Advertising-Pakete, nach solche Paketen von den anderen beiden Beacons. Abbildung \ref{fig:selfcorrecting} zeigt schematisch den Ablauf des selbst korrigierenden Systems anhand der Beacons ``A`` und ``B``. Der Beacon ``A`` sendet sein Advertising-Paket aus, welches von dem Beacon ``B`` empfangen und verarbeitet wird. Der Beacon ``B`` speichert den \ac{rssi}-Wert des Empfangenen Pakets von Beacon ``A`` als $scPower$ in seinem Advertising-Paket und senden dieses aus. Bei jedem erneuten Empfang eines Advertising-Pakets von Beacon ``A`` wird die $scPower$ aktualisiert. +Zur Umsetzung eines selbst korrigierenden Systems müssen die Bluetooth-Beacons sowohl als Scanner wie auch als Advertiser fungieren. Im Versuchsmodus scannen die Beacons hierzu, parallel zum Aussenden der Advertising-Pakete, nach solchen Paketen von den anderen beiden Beacons. Abbildung \ref{fig:selfcorrecting} zeigt schematisch den Ablauf des selbst korrigierenden Systems anhand der Beacons ``A`` und ``B``. Der Beacon ``A`` sendet sein Advertising-Paket aus, welches von dem Beacon ``B`` empfangen und verarbeitet wird. Der Beacon ``B`` speichert den \ac{rssi}-Wert des empfangenen Pakets von Beacon ``A`` als $scPower$ in seinem Advertising-Paket und sendet dieses aus. Bei jedem erneuten Empfang eines Advertising-Pakets von Beacon ``A`` wird die $scPower$ aktualisiert. ![Ablauf des Advertisings am Beispiel von zwei Beacons. \label{fig:selfcorrecting}](../static/Ablaufplan-Advertising.pdf){ width=60% } @@ -385,7 +383,7 @@ Zur Umsetzung eines selbst korrigierenden Systems müssen die Bluetooth-Beacons 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 ausgefüllt werden. Der Testname dienst sowohl zur späteren Zuordnung wie auch als Dateiname unter dem die Messdaten gespeichert werden. In den weiteren Feldern wird die, für den durchgeführten Versuch, real gemessene Entfernung zwischen Smartphone und dem jeweiligen Beacon notiert. Sollten ein oder mehrere Beacons 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. +Über die Benutzeroberfläche, zu sehen in Abbildung \ref{fig:appfrontend}, müssen 4 Eingabefelder vor dem Versuchsstart ausgefüllt werden. Der Testname dienst sowohl zur späteren Zuordnung wie auch als Dateiname, unter dem die Messdaten gespeichert werden. In den weiteren Feldern wird die, für den durchgeführten Versuch, real gemessene Entfernung zwischen Smartphone und dem jeweiligen Beacon notiert. Sollten ein oder mehrere Beacons 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}](../static/appfrontend.jpg){ height=400px } @@ -408,7 +406,7 @@ Beim Empfang eines Advertising-Pakets wird geprüft, ob das Paket von einem der ## 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. +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. ### Daten einlesen @@ -437,7 +435,7 @@ Die zeitlichen Abstände sowie die Reihenfolge der Advertising-Pakete sind zufä ### Umsetzung der Trilateration -Zur Umsetzung der Trilateration wird das Gleichungssystem aus Formel \ref{eq:lgsTrilateration} zu $p_x$ und $p_y$ aufgelöst. Zur Vereinfachung wird die Position des ersten Beacons auf $x_1 = 0$ und $y_1 = 0$ und die $y$-Koordinate des zweiten Beacons auf $y_2 = 0$ gesetzt. Es entsteht die Formeln \ref{eq:trilaterationAlgorithmus}, welche aus den ermittelten Abständen $r_1$, $r_2$ und $r_3$ zu den jeweiligen Beacons die Positionen $p_x$ und $p_y$ errechnet. +Zur Umsetzung der Trilateration wird das Gleichungssystem aus Formel \ref{eq:lgsTrilateration} zu $p_x$ und $p_y$ aufgelöst. Zur Vereinfachung wird die Position des ersten Beacons auf $x_1 = 0$ und $y_1 = 0$ und die $y$-Koordinate des zweiten Beacons auf $y_2 = 0$ gesetzt. Es entstehen die Formeln \ref{eq:trilaterationAlgorithmus}, welche aus den ermittelten Abständen $r_1$, $r_2$ und $r_3$ zu den jeweiligen Beacons die Positionen $p_x$ und $p_y$ errechnen. \begin{equation}\label{eq:trilaterationAlgorithmus} \begin{aligned} @@ -450,37 +448,36 @@ Zur Umsetzung der Trilateration wird das Gleichungssystem aus Formel \ref{eq:lgs 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 Positionen der Beacons, welche von einem roten Kreis eingefasst sind. Der Radius der Kreise entspricht den Abständen $r_1$, $r_2$ und $r_3$ zu den Beacons. Der ermittelte Punkt $p_x, p_y$ wird als roter Punkt dargestellt: -1. Die Kreise haben einen eindeutigen Schnittpunkt (oben links und unten rechts) +1. Die Kreise haben einen eindeutigen Schnittpunkt (oben links, 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 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 Beacons 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. +In Abbildung \ref{fig:locationAlgorithmWorking} ist die Vorgehensweise des Algorithmus veranschaulicht. Um jeden Beacon wird ein Kreis mit der ermittelten Entfernung gezogen. Wenn sich zwei Kreise schneiden, wird eine Gerade (schwarz dargestellt) durch diesen Schnittpunkt gelegt. Gibt es keinen solchen Schnittpunkt, werden die beiden beteiligten Beacons 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 Kreisen. \label{fig:locationAlgorithmWorking}](../static/LocationAlgorithmWorking.pdf){ width=95% } ### Filter-Implementierung -Bei der Filterung der Messdaten wird, wie in Abschnitt \ref{ermittlung-der-messwerte} ein gleitendes Fenster eingesetzt. Da durch die Filter 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 Fenster wurde gewählt, um eine geringe Verzögerung zu simulieren, welche bei einer späteren Implementierung wichtig ist um die Ergebnisse während der Messung anzuzeigen. +Bei der Filterung der Messdaten wird wie in Abschnitt \ref{ermittlung-der-messwerte} ein gleitendes Fenster eingesetzt. Da durch die Filter 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 Fenster wurde gewählt, um eine geringe Verzögerung zu simulieren, welche bei einer späteren Implementierung wichtig ist, um die Ergebnisse während der Messung anzuzeigen. 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. 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, indem diese Stärke gewichtet in die Berechnung des Mittelwertes einfließen. +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. 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, indem diese stärker 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. Der \ac{rssi}-Wert ist ein absoluter, diskreter Wert und weist in der betrachteten Messreihe von ca. 8 Messwerten oft nur eine geringe Schwankung auf. Aus diesem Grund wird von der Anwendung einer kontinuierlichen Gewichtung abgesehen und eine fixe Gewichtung vorgenommen. Dabei wird wie folgt gewichtet: - Sind alle Werte gleich groß, so wird dieser Wert zurückgegeben. -- Sind zwei verschiedene Werte im Datensatz, so wird der stärkere Dämpfungsfaktor einfach und der schwächere Dämpfungsfaktor 4-Fach gewichtet. -- Sind drei oder mehr verschiedene Werte im Datensatz, so werden die stärksten Dämpfungsfaktoren einfach, die mittleren 2-Fach und die niedrigsten 4-Fach gewichtet. +- Sind zwei verschiedene Werte im Datensatz, so wird das stärker Dämpfungsfaktor einfach und der schwächere Dämpfungsfaktor 4-Fach gewichtet. +- Sind drei oder mehr verschiedene Werte im Datensatz, so werden die stärksten Dämpfungsfaktoren einfach, die mittleren 2-Fach und die schwächsten 4-Fach gewichtet. -Dieses Vorgehen ergibt sich aus der Betrachtung einer \ac{rssi}-Werte Verteilung wie in Abbildung \ref{fig:rssi-verteilung}. Die Verteilung der Dämpfungswerte entspricht näherungsweise einer logarithmischen Normalverteilung. Aus dem Verhältnis der Häufigkeit der Dämpfungsfaktoren in den einzelnen Intervallen, lassen sich somit die Gewichtungsfaktoren ermitteln. Da es sich bei den Messwerten um eine diskrete Verteilung handelt, werden die Gewichtungsfaktoren gleichermaßen diskret gewählt. Die Verhältnisse können bei drei Intervallen mit 4,2,1 angenommen werden. Zur Einteilung der Messwerte wird die prozentuale Lage des Dämpfungsfaktors in \si{\dB} im betrachteten Datensatz herangezogen. Ein hoher Dämpfungsfaktor befindet sich in den unteren \SI{40}{\percent}, ein mittlerer befindet sich zwischen \SI{40}{\percent} und \SI{70}{\percent} und ein niedriger wird durch die verbleibenden oberen \SI{30}{\percent} beschrieben. +Dieses Vorgehen ergibt sich aus der Betrachtung einer \ac{rssi}-Werte-Verteilung wie in Abbildung \ref{fig:rssi-verteilung}. Die Verteilung der Dämpfungswerte entspricht näherungsweise einer logarithmischen Normalverteilung. Aus dem Verhältnis der Häufigkeit der Dämpfungsfaktoren in den einzelnen Intervallen, lassen sich somit die Gewichtungsfaktoren ermitteln. Da es sich bei den Messwerten um eine diskrete Verteilung handelt, werden die Gewichtungsfaktoren gleichermaßen diskret gewählt. Die Verhältnisse können bei drei Intervallen mit 4,2,1 angenommen werden. Zur Einteilung der Messwerte wird die prozentuale Lage des Dämpfungsfaktors in \si{\dB} im betrachteten Datensatz herangezogen. Ein hoher Dämpfungsfaktor befindet sich in den unteren \SI{40}{\percent}, ein mittlerer befindet sich zwischen \SI{40}{\percent} und \SI{70}{\percent} und ein niedriger wird durch die verbleibenden oberen \SI{30}{\percent} beschrieben. ![Beispiel einer \ac{rssi}-Werte Verteilung einer Messreihe. \label{fig:rssi-verteilung}](../static/rssiwerteverteilung.pdf) # 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 Abweichungen zwischen der verwendeten Hardware auf die Dämpfung des Signals. Mit dieser Erkenntnis können im weiteren Verlauf die Konstanten zur Berechnung der Entfernung auf das verwendete System Kalibriert und der Versuchsaufbau, beschrieben in Kapitel \ref{versuchsaufbau}, optimiert werden. +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 Beacons sowie Abweichungen zwischen der verwendeten Hardware auf die Dämpfung des Signals. Mit dieser Erkenntnis können im weiteren Verlauf die Konstanten zur Berechnung der Entfernung auf das verwendete System kalibriert und der Versuchsaufbau, beschrieben in Kapitel \ref{versuchsaufbau}, optimiert werden. Zur Ermittlung des Abstands zwischen den einzelnen Objekten wird jeweils die Mitte des Objekts verwendet. Dies hat den Vorteil, dass bei einer Änderung der Orientierung der tatsächliche Abstand gleich bleibt. Das Smartphone wird mit dem Display nach oben auf der Messunterlage platziert und die Beacons mit dem Gehäuseboden auf die Unterlage gelegt. @@ -490,24 +487,24 @@ Die Referenzmessungen bieten einen Einblick in das System. Sie sollen systematis ![Versuchsaufbau der Referenzmessung im Außenbereich. \label{fig:messung-outdoor}](../static/outdoor_versuch.jpg){ width=80% } -Soweit nicht anders beschrieben beträgt der Abstand für die Referenzmessungen \SI{1}{\meter}. Während einer Messung werden die an der Messung beteiligten Geräte nicht bewegt. Die Messdauer einer Referenzmessung wurde auf eine Minute begrenzt. Die Auswertung wird wie in Abschnitt \ref{auswertung} beschrieben durchgefüht. +Soweit nicht anders beschrieben beträgt der Abstand für die Referenzmessungen \SI{1}{\meter}. Während einer Messung werden die an der Messung beteiligten Geräte nicht bewegt. Die Messdauer einer Referenzmessung wurde auf eine Minute begrenzt. Die Auswertung wird wie in Abschnitt \ref{auswertung} beschrieben durchgeführt. -### Beacon-Smartphone +### Beacon zu Smartphone -Zunächst wird untersucht, ob die verwendete Hardware fehlerfrei funktioniert und ob es starke Schwankungen in der gemessen Dämpfung zwischen den einzelnen Beacon gibt. Hierzu wird jeder Beacon einzeln, nacheinander zum Smartphone gemessen. Eine Auflistung der Versuche findet sich in Tabelle \ref{tab:versuchsaufbau-1m}. +Zunächst wird untersucht, ob die verwendete Hardware fehlerfrei funktioniert und ob es starke Schwankungen in der gemessen Dämpfung zwischen den einzelnen Beacons gibt. Hierzu wird jeder Beacon einzeln, nacheinander zum Smartphone gemessen. Eine Auflistung der Versuche findet sich in Tabelle \ref{tab:versuchsaufbau-1m}. | Versuchsname | Beacon 1 | Beacon 2 | Beacon 3 | | ------------ | -------- | -------- | -------- | | Dist_5b5b | - | - | 100 | | Dist_690f | - | 100 | - | | Dist_9d31 | 100 | - | - | -: Versuchsübersicht - Beacon zu Smartphone Abstand in \si{\centi\meter}. \label{tab:versuchsaufbau-1m} +: Versuchsübersicht - Beacon zu Smartphone-Abstand in \si{\centi\meter}. \label{tab:versuchsaufbau-1m} 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 auf über \SI{-80}{\dB}. Dabei haben sich die Umgebungsbedingungen von der ersten zur zweiten Messung wie folgt verändert: Der Boden war nasser und die Temperatur wesentlich niedriger. Welcher 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}](../static/BeaconSmartphone.pdf) -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 besser ist als im Außenbereich. 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. +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 besser ist als im Außenbereich. Er liegt nun im Bereich von \SIrange{-61}{-71}{\dB}. Bei diesen Messungen sind jedoch einige Ausreißer zu sehen, ob diese durch Reflektionen oder anderen Einflüssen entstehen, wurde nicht weiter untersucht. ### Winkeleinfluss @@ -521,7 +518,7 @@ Bei der Messung des Winkeleinfluss soll untersucht werden, wie sich die Lage der | SmartphoneRotation90 | 0 | - | 90 | | SmartphoneRotation135 | 0 | - | 135 | | SmartphoneRotation180 | 0 | - | 180 | -| SmartphoneRotation235 | 0 | - | 235 | +| SmartphoneRotation225 | 0 | - | 225 | | SmartphoneRotation270 | 0 | - | 270 | | SmartphoneRotation315 | 0 | - | 315 | | BeaconRotation0 | 0 | - | 0 | @@ -538,11 +535,11 @@ Bei der Messung des Winkeleinfluss soll untersucht werden, wie sich die Lage der #### Smartphone Rotation {-} -Bei den ersten Messungen wird das Smartphone zwischen jeder Messreihe in \SI{45}{\degree} Schritten rotiert und als Referenz die Signalstärke eines Beacon auf \SI{1}{\meter} gemessen. 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 Lautsprecher, 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 größte Dämpfung 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}. +Bei den ersten Messungen wird das Smartphone zwischen jeder Messreihe in \SI{45}{\degree} Schritten rotiert und als Referenz die Signalstärke eines Beacon auf \SI{1}{\meter} gemessen. 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 Lautsprecher, 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 größte Dämpfung erfährt. Der mittlere \ac{rssi}-Wert erstreckt sich von \SI{-77}{\dB} bei \SI{225}{\degree} und \SI{315}{\degree} bis \SI{-91}{\dB} bei \SI{90}{\degree}. ![Referenzmessung bei Smartphone Rotation im Uhrzeigersinn. \label{fig:ref-smartphoneRotation}](../static/SmartphoneRotation.pdf) -Der abgebildete Dämpfungsverlauf ü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}. +Der abgebildete Dämpfungsverlauf ü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{225}{\degree} und \SI{90}{\degree} in einer Entfernungsdifferenz von rund \SI{1,6}{\meter}. #### Beacon Rotation {-} @@ -552,15 +549,15 @@ Für die nächste Messung wird ein Beacon in \SI{90}{\degree} Schritten im Uhrze \newpage -![Referenzmessung bei der Rotation des Beacon im Uhrzeigersinn. \label{fig:ref-beaconrotation}](../static/BeaconRotationAuswertung.pdf) +![Referenzmessung bei der Rotation des Beacons im Uhrzeigersinn. \label{fig:ref-beaconrotation}](../static/BeaconRotationAuswertung.pdf) -Als letzte Messung wird die Rotation eines Beacons in Referenz zu einem zweiten Beacon, der während der Messung nicht bewegt wird und somit statisch ist, 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. +Als letzte Messung wird die Rotation eines Beacons in Referenz zu einem zweiten Beacon, der während der Messung nicht bewegt wird und somit statisch ist, 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. +Die Konstanten $A$, $B$, und $C$ aus Kapitel \ref{entfernungsmessung-mit-der-signalstärke} Formel \ref{eq:beacondistance} werden durch Kalibrierungsmessungen nach der Anleitung der Android Beacon Library [@RadiusNetworks_2021] ermittelt. Die Kalibrierung bezieht sich in dieser Anleitung auf ein anderes System und wird mithilfe 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 Beacons 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. +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 Messdauer 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. @@ -578,13 +575,13 @@ 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. +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}](../static/calibrationValidation.pdf) +![Gegenüberstellung der Kalibrierungsfaktoren zu den Standardwerten (Nexus 4) in der Android Beacon Library. \label{fig:calibration}](../static/calibrationValidation.pdf) # Versuchsaufbau -In diesem Kapitel wird der Versuchsaufbau für die Umsetzung einer Lokalisierungslösung beschrieben. Als Grundlage dienen dabei die zufor ermittelten Daten aus der Referenzmessung sowie die Arbeit von Cho et al. [@Cho_2015a]. Ein besonderer Fokus liegt auf einen einfachen Aufbau, der leicht nachzubilden ist und dabei ein hohes Maß an Genauigkeit ermöglicht. +In diesem Kapitel wird der Versuchsaufbau für die Umsetzung einer Lokalisierungslösung beschrieben. Als Grundlage dienen dabei die zuvor ermittelten Daten aus der Referenzmessung sowie die Arbeit von Cho et al. [@Cho_2015a]. Ein besonderer Fokus liegt auf einen einfachen Aufbau, der leicht nachzubilden ist und dabei ein hohes Maß an Genauigkeit ermöglicht. ## Anordnung der Beacons @@ -598,7 +595,7 @@ Der Versuchsaufbau wird, wie in Abbildung \ref{fig:zones} dargestellt, in drei Z ![Aufteilung des Versuchsaufbaus in Zonen und Messpunkte. \label{fig:zones}](../static/Zonen_und_Messpunkte.pdf){ width=60% } -In Tabelle \ref{tab:messpunkte} sind die einzelnen Messpunkte und Abstände zu den Beacons aufgezeigt. Messpunkt A befindet sich im Mittelpunkt, Messpunkt C und D jeweils am äußeren Rand von Zone 2 und Zone 3. Um möglichst viele verschiedene Entfernungen zu den Beacon untersuchen zu können, ist der Messpunkt C nicht mittig zwischen zwei Beacons. Eine besondere Rolle spielt Messpunkt B. Dieser befindet sich auf einer Kante des Dreiecks und liegt somit genau zwischen zwei Beacons. Er wurde gewählt, um den Einfluss des Smartphones auf die Funkstrecke der Beacons untersuchen zu können. +In Tabelle \ref{tab:messpunkte} sind die einzelnen Messpunkte und Abstände zu den Beacons aufgezeigt. Messpunkt A befindet sich im Mittelpunkt, Messpunkt C und D jeweils am äußeren Rand von Zone 2 und Zone 3. Um möglichst viele verschiedene Entfernungen zu den Beacons untersuchen zu können, ist der Messpunkt C nicht mittig zwischen zwei Beacons. Eine besondere Rolle spielt Messpunkt B. Dieser befindet sich auf einer Kante des Dreiecks und liegt somit genau zwischen zwei Beacons. Er wurde gewählt, um den Einfluss des Smartphones auf die Funkstrecke der Beacons untersuchen zu können. \begin{longtable}{llll} \caption{Messpunkte und deren Referenzentfernung zu den Beacons. @@ -617,7 +614,7 @@ C & 74,3 & 39 & 113,2 \\ D & 77,5 & 150 & 85 \\ \end{longtable} -Um eine konstante Messung zu gewährleisten, werden die Beacons mittig auf den Referenzpunkt in gleicher Orientierung positioniert. Auch das Smartphone wird jeweils mittig auf den eingezeichneten Messpunkten platziert. Tabelle \ref{tab:messpunkte} zeigt die im Versuch gemessenen Abstände vom Smartphone zu den einzelnen Beacons. Durch die Mittige positionierung wird ein gleichbleibender Abstand garantiert, auch wenn das Smartphone rotiert wird. Die Referenzentfernung wird somit jeweils von der Mitte der Beacons zur Mitte des Smartphones ermittelt. Um die winkelabhängige Dämpfung (beschrieben in Abschnitt \ref{winkeleinfluss}) zu kompensieren, werden zwei Messreihen pro Messpunkt durchgeführt. Dabei wird das Smartphone zwischen den beiden Messreihen einmal um \SI{180}{\degree} rotiert. Die Spitze des Dreiecks, gekennzeichnet durch den Beacon ``690f``, kennzeichnet dabei die Orientierung \SI{0}{\degree}. +Um eine konstante Messung zu gewährleisten, werden die Beacons mittig auf den Referenzpunkt in gleicher Orientierung positioniert. Auch das Smartphone wird jeweils mittig auf den eingezeichneten Messpunkten platziert. Tabelle \ref{tab:messpunkte} zeigt die im Versuch gemessenen Abstände vom Smartphone zu den einzelnen Beacons. Durch die mittige Positionierung wird ein gleichbleibender Abstand garantiert, auch wenn das Smartphone rotiert wird. Die Referenzentfernung wird somit jeweils von der Mitte der Beacons zur Mitte des Smartphones ermittelt. Um die winkelabhängige Dämpfung (beschrieben in Abschnitt \ref{winkeleinfluss}) zu kompensieren, werden zwei Messreihen pro Messpunkt durchgeführt. Dabei wird das Smartphone zwischen den beiden Messreihen einmal um \SI{180}{\degree} rotiert. Die Spitze des Dreiecks, gekennzeichnet durch den Beacon ``690f``, kennzeichnet dabei die Orientierung \SI{0}{\degree}. # Ergebnisse @@ -650,12 +647,12 @@ Die angewandte Methode zur Kalibrierung hat somit einen negativen Einfluss auf d \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{225}{\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. Aus Abbildung \ref{fig:erg-kalibrierung} geht hervor, 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,85}{\percent} niedriger als bei der Verwendung der $txPower$. Abbildung \ref{fig:distScTx} veranschaulicht die Verteilung der errechneten Entfernungen mittels $txPower$ und $scPower$. Es ist zu erkennen, dass die ermittelten Entfernungswerte der $scPower$ dichter beieinander liegen und weniger stark streuen. +Als Nächstes wird die Auswirkung der $scPower$ anstelle der $txPower$ bei der Entfernungsberechnung untersucht: Aus Abbildung \ref{fig:erg-kalibrierung} geht hervor, 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,85}{\percent} niedriger als bei der Verwendung der $txPower$. Abbildung \ref{fig:distScTx} veranschaulicht die Verteilung der errechneten Entfernungen mittels $txPower$ und $scPower$. Es ist zu erkennen, dass die ermittelten Entfernungswerte der $scPower$ dichter beieinander liegen und weniger stark streuen. ![Gegenüberstellung der Entfernungsermittlung auf verschiedenen Distanzen von $scPower$ und $txPower$. \label{fig:distScTx}](../static/DeviceDistanceScTxPower.pdf) @@ -665,7 +662,7 @@ Durch die Filterung der \ac{rssi}-Werte sollen Schwankungen in den Messwerten au Unter Verwendung der $scPower$ lag der durchschnittliche Fehler der Rohdaten bei \SI{75.68}{\percent}, der des gleitenden Mittelwerts bei \SI{73,99}{\percent} und der des gewichteten Mittelwerts bei \SI{70.07}{\percent}. Damit ist die Auswirkung des gewichteten Mittelwerts mit einer Verbesserung um \SI{7.42}{\percent} am größten. -Im Weiteren soll überprüft werden, ob sich die zuvor gewonnenen Erkenntnisse auch auf die Lokalisierung übertragen lassen. Da die Messung des \ac{rssi}-Wertes am Smartphone vom Einstrahlwinkel beeinflusst wird (siehe Abschnitt \ref{winkeleinfluss}), wurden die Messungen in zwei Orientierungen durchgeführt, dadurch soll der winkelabhängige Einfluss minimieren werden. In Abbildung \ref{fig:orientierung} ist zu erkennen, dass der Lokalisierungsfehler je nach Orientierungen abhängig vom Messpunkt ist. \SI{180}{\degree} (gelb) liefert bei den Messpunkten A und B einen geringeren Fehler gegenüber \SI{0}{\degree} (blau), welcher bei den Messpunkten C und D einen geringeren Fehler aufweist. In rot ist die Mittlung beider Orientierungen dargestellt, welche für die weitere Betrachtung herangezogen wird. +Im Weiteren soll überprüft werden, ob sich die zuvor gewonnenen Erkenntnisse auch auf die Lokalisierung übertragen lassen. Da die Messung des \ac{rssi}-Wertes am Smartphone vom Einstrahlwinkel beeinflusst wird (siehe Abschnitt \ref{winkeleinfluss}), wurden die Messungen in zwei Orientierungen durchgeführt, dadurch soll der winkelabhängige Einfluss minimiert werden. In Abbildung \ref{fig:orientierung} ist zu erkennen, dass der Lokalisierungsfehler je nach Orientierungen abhängig vom Messpunkt ist. \SI{180}{\degree} (gelb) liefert bei den Messpunkten A und B einen geringeren Fehler gegenüber \SI{0}{\degree} (blau), welcher bei den Messpunkten C und D einen geringeren Fehler aufweist. In rot ist die Mittlung beider Orientierungen dargestellt, welche für die weitere Betrachtung herangezogen wird. ![Auswirkung der Orientierung des Smartphones auf die verschiedenen Messpunkte \label{fig:orientierung}](../static/Loc0180.pdf) @@ -673,43 +670,43 @@ Abbildung \ref{fig:figerr} stellt den Lokalisierungsfehler an den einzelnen Vers ![Betrachtung des Lokalsierungsfehlers: Vergleich zwischen $txPower$ und $scPower$ (links); Vergleich der Filter unter Verwendung der $scPower$ (rechts). \label{fig:figerr}](../static/LocErrorTests.pdf) -Im rechten Diagramm von Abbildung \ref{fig:figerr} sind die Rohdaten den verschiedenen Filtern unter Verwendung der $scPower$ gegenübergestellt. Dabei zeigt sich, dass der gewichtete Mittelwert mit durchschnittlich \SI{189,52}{\percent} (blaue Linie) auch bei der Lokalisierung den geringsten Fehler gegenüber den Rohdaten \SI{226.07}{\percent} (rote Linie) und dem gleitenden Mittelwert \SI{204.32}{\percent} (gelbe Linie) aufweist. Somit bietet er eine Verbesserung von \SI{16.17}{\percent} gegenüber den Rohdaten. +Im rechten Diagramm von Abbildung \ref{fig:figerr} sind die Rohdaten den verschiedenen Filtern unter Verwendung der $scPower$ gegenübergestellt. Dabei zeigt sich, dass der gewichtete Mittelwert mit durchschnittlich \SI{189,52}{\percent} (blaue Linie) auch bei der Lokalisierung den geringsten Fehler gegenüber den Rohdaten \SI{226.07}{\percent} (rote Linie) und dem gleitenden Mittelwert \SI{204.32}{\percent} (gelbe Linie) aufweist. Somit bietet dieser eine Verbesserung von \SI{16.17}{\percent} gegenüber den Rohdaten. Unter Anwendung dieser Erkenntnisse wird in Abbildung \ref{fig:punktwolken} die Positionsbestimmung grafisch betrachtet. Dargestellt sind die, mittels $scPower$ und gleitendem Mittelwertfilter errechneten Punkte (gelb). Die Positionen der Beacons sind blau markiert und der rote Punkt stellt den Mittelpunkt der Punktwolke da. In grün ist der reale Punkt, ermittelt aus den Referenzentfernungen eingezeichnet. Der ``locErr`` gibt den Fehler des roten Punkts zum Referenzpunkt in Prozent an. ![Darstellung der ermittelten Positionen (gelb) und der realen Position (grün) sowie des Mittelwerts der ermittelten Positionen (rot). \label{fig:punktwolken}](../static/position_auswertung.pdf){ width=90% } -Es zeigt sich, dass die Punktwolke sehr stark um den Mittelpunkt streut. Der Mittelpunkt weißt dabei einen Lokalisierungsfehler von \SIrange{40.22}{143}{\percent} auf. Die Lokalisierung ist hierbei weder Präzise noch weißt sie eine hohe Richtigkeit auf. Die Verteilung der Punktwolke an Testposition C weicht dabei von den der anderen Position ab. Bei näherer Betrachtung stellt sich heraus, dass die ermittelte Entfernung zum Beacon ``5b5b`` unten rechts, mit durchschnittlich \SI{0.33}{\meter} um \SI{0.42}{\meter} unterschätzt. Hinzu kommt die geringe Entfernung zum Beacon ``690f`` von \SI{0.39}{\meter}, hierdurch gibt es zwischen den Beacons ``5b5b`` und ``690f`` keine Überschneidung. +Es zeigt sich, dass die Punktwolke sehr stark um den Mittelpunkt streut. Der Mittelpunkt weißt dabei einen Lokalisierungsfehler von \SIrange{40.22}{143}{\percent} auf. Die Lokalisierung ist hierbei weder Präzise, noch weist sie eine hohe Richtigkeit auf. Die Verteilung der Punktwolke an Testposition C weicht dabei von den der anderen Position ab. Bei näherer Betrachtung stellt sich heraus, dass die ermittelte Entfernung zum Beacon ``5b5b`` unten rechts, mit durchschnittlich \SI{0.33}{\meter} um \SI{0.42}{\meter} unterschätzt wird. Hinzu kommt die geringe Entfernung zum Beacon ``690f`` von \SI{0.39}{\meter}, hierdurch gibt es zwischen den Beacons ``5b5b`` und ``690f`` keine Überschneidung. # Diskussion -Die Umsetzung einer Lokalisierungslösung mit einer Auflösung im Zentimeterbereich ist mit dem entwickelten Konzept nicht gelungen. Auch durch den Einsatz der $scPower$ und dem gleitenden Mittelwert, welche zusammen den durchschnittlich geringsten Fehler aufweisen, weichen die ermittelten Positionen im Durchschnitt \SI{129}{\centi\meter} von der realen Position ab. Im folgenden sollen daher die Ergebnisse diskutiert und auf Einzelaspekte näher eingegangen werden. +Die Umsetzung einer Lokalisierungslösung mit einer Auflösung im Zentimeterbereich ist mit dem entwickelten Konzept nicht gelungen. Auch durch den Einsatz der $scPower$ und dem gleitenden Mittelwert, welche zusammen den durchschnittlich geringsten Fehler aufweisen, weichen die ermittelten Positionen im Durchschnitt \SI{129}{\centi\meter} von der realen Position ab. Im Folgenden sollen daher die Ergebnisse diskutiert und auf Einzelaspekte näher eingegangen werden. -Die Arbeit belegt, dass der Einsatz der $scPower$ einen positiven Einfluss auf die Entfernungsermittlung hat. Es wird gezeigt das dieser positive Einfluss auch auf die Lokalisierung übertragbar ist. Eine Genauigkeit von unter \SI{10}{\percent} wie sie Cho at el. [@Cho_2015a] erreicht haben, konnte mit der hier verwendeten Hardware nicht reproduziert werden. Dabei konnten die Beacons aus der Arbeit, mangels Programmierschnittstelle nicht eingesetzt werden. Bei den Beacons fehlt es generell an einer Auswahl von alternativer Hardware welche auch programmierbar ist. +Die Arbeit belegt, dass der Einsatz der $scPower$ einen positiven Einfluss auf die Entfernungsermittlung hat. Es wird gezeigt, dass dieser positive Einfluss auch auf die Lokalisierung übertragbar ist. Eine Genauigkeit von unter \SI{10}{\percent} wie sie Cho at el. [@Cho_2015a] erreicht haben, konnte mit der hier verwendeten Hardware nicht reproduziert werden. Dabei konnten die Beacons aus der Arbeit von Cho at el. mangels Programmierschnittstelle nicht eingesetzt werden. Bei den Beacons fehlt es generell an einer Auswahl von alternativer Hardware, welche auch programmierbar ist. -Des Weiteren wird gezeigt, dass der Einsatz der Filtermethoden nicht nur auf die Entfernungsmessung mittels $txPower$ einen positiven Einfluss hat sondern auch die Messungen der $scPower$ verbessert. Der gewichtete Mittelwert Filter bietet hierbei die besten Ergebnisse für das eingesetzte System. Der Einsatz spezialisierter Filter wie beispielsweise dem Kalmann-Filter bietet weiteres Optimierungspotential. Dies konnte aus Zeitgründen in dieser Arbeit jedoch nicht untersucht werden. +Des Weiteren wird gezeigt, dass der Einsatz der Filtermethoden nicht nur auf die Entfernungsmessung mittels $txPower$ einen positiven Einfluss hat, sondern auch die Messungen der $scPower$ verbessert. Der gewichtete Mittelwert-Filter bietet hierbei die besten Ergebnisse für das eingesetzte System. Der Einsatz spezialisierter Filter wie beispielsweise dem Kalmann-Filter bietet weiteres Optimierungspotential. Dies konnte aus Zeitgründen in dieser Arbeit jedoch nicht untersucht werden. -Entscheidend für gute Messergebnisse ist auch die Hardware. Der \ac{rssi}-Wert schwankt beim eingesetzten Smartphone je nach Einfallswinkel sehr stark. Daher wird die Messung im Versuchsaufbau in zwei Orientierungen durchgeführt um diese Winkelabhängigkeit auszugleichen. Es ist zu vermuten das auch anderen Geräten eine solche Abhängigkeit aufweisen. Durch die Kombination dieses Verfahrens mit zusätzlichen Sensoren wie beispielsweise dem Magnetometer oder Gyroskop, zur Erkennung der Ausrichtung des Smartphones, könnte dieser Einfluss kompensiert werden. Da die Beacons jedoch eine geringe winkelabhängige Dämpfung aufweisen, könnte der Einsatz eines vierten Beacons anstelle des Smartphones Verbesserungspotential bieten. Durch das homogene System sollte die $scPower$ einen noch größeren Einfluss auf die Genauigkeit aufweisen. +Entscheidend für gute Messergebnisse ist auch die Hardware. Der \ac{rssi}-Wert schwankt beim eingesetzten Smartphone je nach Einfallswinkel sehr stark. Daher wird die Messung im Versuchsaufbau in zwei Orientierungen durchgeführt, um diese Winkelabhängigkeit auszugleichen. Es ist zu vermuten, dass auch andere Geräte eine solche Abhängigkeit aufweisen. Durch die Kombination dieses Verfahrens mit zusätzlichen Sensoren wie beispielsweise dem Magnetometer oder Gyroskop, zur Erkennung der Ausrichtung des Smartphones, könnte dieser Einfluss kompensiert werden. Da die Beacons jedoch eine geringe winkelabhängige Dämpfung aufweisen, könnte der Einsatz eines vierten Beacons anstelle des Smartphones Verbesserungspotential bieten. Durch das homogene System sollte die $scPower$ einen noch größeren Einfluss auf die Genauigkeit aufweisen. -Die auf das System angepasste Kalibrierung ist bei den auftretenden Schwankungen des gemessenen \ac{rssi}-Wertes zu fehleranfällig. Den größten Einfluss auf diese Fehleranfälligkeit hat vermutlich der auf \SI{2}{\meter} reduzierte Messbereich auf den die Kalibrierung durchgeführt wird. Durch die Ausweitung dieses Bereichs auf \SI{40}{\meter} die in der Android Beacon Library [@RadiusNetworks_2021] beschrieben sind, könnte die Fehleranfälligkeit reduziert werden. Für die Arbeit stand jedoch kein Raum mit ausreichender Größe zur Verfügung. Durch die unbeständiger Wetterlage und der, aus den Messungen hervorgehende, negativen Einflusses von Feuchtigkeit ließ keine Kalibrierungsmessungen im Freien zu. +Die auf das System angepasste Kalibrierung ist bei den auftretenden Schwankungen des gemessenen \ac{rssi}-Wertes zu fehleranfällig. Den größten Einfluss auf diese Fehleranfälligkeit hat vermutlich der auf \SI{2}{\meter} reduzierte Messbereich, auf dem die Kalibrierung durchgeführt wird. Durch die Ausweitung dieses Bereichs auf \SI{40}{\meter}, die in der Android Beacon Library [@RadiusNetworks_2021] beschrieben sind, könnte die Fehleranfälligkeit reduziert werden. Für die Arbeit stand jedoch kein Raum mit ausreichender Größe zur Verfügung. Die unbeständige Wetterlage und der, aus den Messungen hervorgehende, negativen Einfluss von Feuchtigkeit ließen keine Kalibrierungsmessungen im Freien zu. -Abschließend bleibt zu bewerten ob der Einsatz von Bluetooth die richtige Wahl zur Bestimmung der Position im Zentimeterbereich ist. Wie sich gezeigt hat ist der Dämpfungsfaktor ein, von vielen Einflussfaktoren abhängender Wert. Für eine zuverlässige Messung müssen sehr viele Umgebungsvariablen berücksichtigt werden. Dies ist vor allem in den Referenzmessungen zu erkennen, bei denen sich der Einfluss von feuchter Witterung in sehr viel schlechteren Messwerten äußerte. Diese Faktoren sind selbst unter Idealen Bedingungen nur schwer zu Kontrollieren. Durch den Einsatz der $scPower$, welche den gleichen Einflussfaktoren ausgeliefert ist, lässt sich die Messung zwar verbessern, jedoch bleibt auch diese weit hinter den Erwartungen zurück. Ein andere Ansatz bietet der neue Bluetooth Standard 5.2, welcher die Messung des \acl{aoa}, also des Einfallswinkels, ermöglicht. Der Standard muss hierbei von Sender und Empfänger unterstützt werden, damit sollen jedoch Messungen im Zentimeterbereich ermöglicht werden. Zum Zeitpunkt der Arbeit sind Geräte mit diesem Standard noch sehr selten. Nur die aktuellsten Smartphones setzen Bluetooth Chips mit diesem Standard ein, Bluetooth Beacons konnten am Markt keine gefunden werden. +Abschließend bleibt zu bewerten, ob der Einsatz von Bluetooth die richtige Wahl zur Bestimmung der Position im Zentimeterbereich ist. Wie sich gezeigt hat, ist der Dämpfungsfaktor ein von vielen Einflussfaktoren abhängender Wert. Für eine zuverlässige Messung müssen sehr viele Umgebungsvariablen berücksichtigt werden. Dies ist vor allem in den Referenzmessungen zu erkennen, bei denen sich der Einfluss von feuchter Witterung in sehr viel schlechteren Messwerten äußerte. Diese Faktoren sind selbst unter idealen Bedingungen nur schwer zu kontrollieren. Durch den Einsatz der $scPower$, welche den gleichen Einflussfaktoren ausgeliefert ist, lässt sich die Messung zwar verbessern, jedoch bleibt auch diese weit hinter den Erwartungen zurück. Ein andere Ansatz bietet der neue Bluetooth Standard 5.2, welcher die Messung des \acl{aoa}, also des Einfallswinkels, ermöglicht. Der Standard muss hierbei von Sender und Empfänger unterstützt werden, damit sollen jedoch Messungen im Zentimeterbereich ermöglicht werden. Zum Zeitpunkt der Arbeit sind Geräte mit diesem Standard noch sehr selten. Nur die aktuellsten Smartphones setzen Bluetooth-Chips mit diesem Standard ein, Bluetooth-Beacons konnten am Markt keine gefunden werden. # Zusammenfassung -In dieser Arbeit wird ein neuartiges Lokalisierungskonzept entwickelt und evaluiert, wodurch sich Messungen im Zentimeterbereich durchführen lassen. Dieses Konzept dient als Vorlage zur Erweiterung der Anwendung phyphox® um Experimente mit dem Smartphone auf Basis der Position durchführen zu können. +In dieser Arbeit wurde ein neuartiges Lokalisierungskonzept entwickelt und evaluiert, wodurch sich Messungen im Zentimeterbereich durchführen lassen. Dieses Konzept dient als Vorlage zur Erweiterung der Anwendung phyphox®, um Experimente mit dem Smartphone auf Basis der Position durchführen zu können. -Zunächst wurden die Grundlagen und der Stand der Technik dargelegt und durch eine systematische Bewertung eingegrenzt. Hierzu wurde die Zielsetzung herangezogen und die Methoden hinsichtlich ihrer Auswirkungen zur Erreichung des Ziels bewertet. Im weiteren wurde auf die verwendete Hardware und die Umsetzung der einzelnen Komponenten eingegangen und einzelne Aspekte herausgestellt. +Zunächst wurden die Grundlagen und der Stand der Technik dargelegt und durch eine systematische Bewertung eingegrenzt. Hierzu wurde die Zielsetzung herangezogen und die Methoden hinsichtlich ihrer Auswirkungen zur Erreichung des Ziels bewertet. Im Weiteren wurde auf die verwendete Hardware und die Umsetzung der einzelnen Komponenten eingegangen und einzelne Aspekte herausgestellt. -Es folgte eine experimentelle Untersuchung der einzelnen Komponenten um die spezifischen Eigenschaften der eingesetzten Geräte zu charakterisieren. Durch Anwendung der Erkenntnisse aus diesen Experimenten, den Grundlagen und dem Stand der Technik wurde dann ein Konzept für einen Versuchsaufbau entwickelt. +Es folgte eine experimentelle Untersuchung der einzelnen Komponenten, um die spezifischen Eigenschaften der eingesetzten Geräte zu charakterisieren. Durch Anwendung der Erkenntnisse aus diesen Experimenten, den Grundlagen und dem Stand der Technik wurde dann ein Konzept für einen Versuchsaufbau entwickelt. -Abschließend wurde der entwickelte Versuchsaufbau experimentellen Tests unterzogen. Hierfür wurden Messreihen mit an verschiedenen Positionen angefertigt und ausgewertet. Des Weiteren wurden verschiedenen Methoden und Filter auf die Entfernungsmessung und Lokalisierung angewandt und hinsichtlich ihrer Auswirkungen auf die Messgenauigkeit bewertet. +Abschließend wurde der entwickelte Versuchsaufbau experimentellen Tests unterzogen. Hierfür wurden Messreihen mit verschiedenen Positionen angefertigt und ausgewertet. Des Weiteren wurden verschiedene Methoden und Filter auf die Entfernungsmessung und Lokalisierung angewandt und hinsichtlich ihrer Auswirkungen auf die Messgenauigkeit bewertet. -Es konnte ein Konzept entwickelt werden durch dass eine Positionsbestimmung möglich ist. Es wurde gezeigt das die angewandten Filter und das selbst korrigierende System zur Ermittlung der Entfernung, sowie zur Lokalisierung zu einer Verbesserung der Ergebnisse führen. Die Genauigkeit von wenigen Zentimeter konnte jedoch nicht erreicht werden. Auch die Ergebnisse aus der zugrundeliegenden Literatur ließen sich mit der eingesetzten Hardware nicht reproduzieren. +Es konnte ein Konzept entwickelt werden, durch das` eine Positionsbestimmung möglich ist. Es wurde gezeigt, dass die angewandten Filter und das selbst korrigierende System zur Ermittlung der Entfernung, sowie zur Lokalisierung zu einer Verbesserung der Ergebnisse führen. Die Genauigkeit von wenigen Zentimeter konnte jedoch nicht erreicht werden. Auch die Ergebnisse aus der zugrundeliegenden Literatur ließen sich mit der eingesetzten Hardware nicht reproduzieren. ## Fazit -Mit der eingesetzten Technik und den zugrundeliegenden Methoden kann eine Verbesserung der Entfernungsmessung und Lokalisierung erreicht werden. Durch den Einsatz von Filtern lässt sich die Messgenauigkeit für das eingesetzte Messverfahren erhöhen. Die Verbesserung der Genauigkeit auf wenige Zentimeter Abweichung kann nicht erreicht werden. Die in der Literatur beschriebenen \SI{10}{\percent} Abweichung in einem Messradius von \SI{1.5}{\meter} um einen Beacon, konnten nicht reproduziert werden. Durch die angepasste Kalibrierung wurden die ermittelten Entfernungswerte stärker durch Schwankungen der gemessenen Dämpfungsfaktoren beeinflusst. Ein stabileres Ergebnis liefern die, nicht auf das System optimierten Standard Werte für das Nexus 4. Mit einer Abweichung von durchschnittlich \SI{204.32}{\percent} und einer sich daraus ergebenen Differenz von \SI{129}{\centi\meter}, ist das eingesetzte Verfahren nicht für Tischexperimente geeignet. +Mit der eingesetzten Technik und den zugrundeliegenden Methoden kann eine Verbesserung der Entfernungsmessung und Lokalisierung erreicht werden. Durch den Einsatz von Filtern lässt sich die Messgenauigkeit für das eingesetzte Messverfahren erhöhen. Die Verbesserung der Genauigkeit auf wenige Zentimeter Abweichung kann nicht erreicht werden. Die in der Literatur beschriebenen \SI{10}{\percent} Abweichung in einem Messradius von \SI{1.5}{\meter} um einen Beacon konnten nicht reproduziert werden. Durch die angepasste Kalibrierung wurden die ermittelten Entfernungswerte stärker durch Schwankungen der gemessenen Dämpfungsfaktoren beeinflusst. Ein stabileres Ergebnis liefern die nicht auf das System optimierten Standardwerte für das Nexus 4. Mit einer Abweichung von durchschnittlich \SI{204.32}{\percent} und einer sich daraus ergebenen Differenz von \SI{129}{\centi\meter} ist das eingesetzte Verfahren nicht für Tischexperimente geeignet. ## Ausblick diff --git a/Thesis/abstract.md b/Thesis/abstract.md new file mode 100644 index 0000000..4a149c0 --- /dev/null +++ b/Thesis/abstract.md @@ -0,0 +1 @@ +abstract: 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. \ No newline at end of file diff --git a/Thesis/metadata.yaml b/Thesis/metadata.yaml index 0efcc3e..00f0a8d 100644 --- a/Thesis/metadata.yaml +++ b/Thesis/metadata.yaml @@ -37,4 +37,6 @@ keywords: - selbst korrigierend hyphenation: - Java\-Script - - Mess\-er\-geb\-nisse \ No newline at end of file + - Mess\-er\-geb\-nisse + - Smart\-phone + - Smart\-phones \ No newline at end of file diff --git a/static/Ablaufplan-Advertising.pdf b/static/Ablaufplan-Advertising.pdf index a1443512ceb4046e720303b4611d3d997f42ee4f..7a8439ab02fce8d79089ee916fea6a3ce6c6e9b6 100644 GIT binary patch delta 8689 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 delta 8615 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 im Advertising Paket + style="font-weight:400;font-size:16px;font-family:'trebuchet ms', verdana, arial, sans-serif" + id="text73">im Advertising-Paket M9 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 LpFe;3{`KiE45@DT literal 15006 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