fix korrekturen sebbo

main
Sebastian Preisner 3 years ago
parent f6426be85d
commit f8442ff233

@ -2,7 +2,7 @@
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. 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. 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 ## Problemstellung und Motivation
@ -27,7 +27,7 @@ Die angepasste Kalibrierung, die Filter und die Auswirkung der selbst korrigiere
## Aufbau der Arbeit ## 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. 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 theoretischen 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. 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.
@ -52,7 +52,7 @@ In diesem Kapitel werden die technischen Grundlagen erörtert. Zunächst werden
## Distanzmessung ## 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. 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 acht, gleichmäßig verteilte Messpunkte erfasst worden, der aufgezeichnete Weg entspricht fast dem realen Weg.
![Auswirkung der Erfassungshäufigkeit von Wegpunkten. \label{fig:wegpunktcount}](../static/Wegpunkte.pdf) ![Auswirkung der Erfassungshäufigkeit von Wegpunkten. \label{fig:wegpunktcount}](../static/Wegpunkte.pdf)
@ -153,13 +153,13 @@ Bei Bluetooth handelt es sich um einen Industriestandard, der in den 1990er-Jahr
### Bluetooth Low Energy ### 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. 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ät nur den \ac{ble}-Standard, so wird es als Bluetooth Smart-Gerät 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. 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]. 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} 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 (grau und rot) den drei am häufigsten verwendeten \ac{wifi}-Kanälen (gelb) 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}](../static/ble-advertising-channels.pdf) ![\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}](../static/ble-advertising-channels.pdf)
@ -177,7 +177,7 @@ Ein Advertising-Paket enthält 31 Bytes, die vom Nutzer frei definiert werden k
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. 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$. 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 Ausbreitung 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{equation}\label{eq:beacondistance}
\begin{aligned} \begin{aligned}
@ -195,7 +195,7 @@ d = A \cdot \left( \cfrac{P_{R_{x}}}{scPower} \right)^{B} + C
## Messung, Fehler-Quellen und -Korrekturen {#messung-fehler} ## Messung, Fehler-Quellen und -Korrekturen {#messung-fehler}
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. 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.
### Referenzwert ### Referenzwert
@ -216,14 +216,14 @@ Nachfolgend sollen Beispiele für die beiden Fehlerarten genannt und beschrieben
- **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. - **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. - **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. - **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]. - **Antennenanordnung**: Sowohl die Orientierung als auch die Position der Antenne beeinflussen die Qualität des empfangenen 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. - **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 vom Herstellern ab.
- **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. - **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 {-} #### 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]. - **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. - **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 \ac{rssi} je nach verwendetem 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 auszulesen, weswegen der Fehler damit zufällig auftritt.
| Fehler | Fehler Art | Ursache | | Fehler | Fehler Art | Ursache |
| ---------- | --------- | -------------------- | | ---------- | --------- | -------------------- |
@ -255,7 +255,7 @@ Die Abhängigkeit von Präzision und Richtigkeit wird in Abbildung \ref{fig:gena
### Fehlerbewertung ### 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. 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 Messwert $M$ und dem Referenzwert $R$ und gibt Auskunft über die absolute Abweichung zwischen den beiden Werten.
\begin{equation}\label{eq:abs-fehler} \begin{equation}\label{eq:abs-fehler}
F=M-R F=M-R
@ -283,19 +283,19 @@ Eine Methode zur Reduzierung von systemischen Fehlern, beschrieben in Abschnitt
### Filter ### 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. 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 minimiert, beispielsweise durch eine Kalibrierung. 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 {-} #### 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. 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. 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} \begin{equation}\label{eq:gleitendME}
m_i = \frac{1}{2q+1} \sum_{k=i-q}^{i+q} x_k m_i = \frac{1}{2q+1} \sum_{k=i-q}^{i+q} x_k
\end{equation} \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. 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} \begin{equation}\label{eq:gleitendTime}
m_{i_t} = \frac{1}{A} \sum_{k=i_t-q_t}^{i_t+q_t} x_k m_{i_t} = \frac{1}{A} \sum_{k=i_t-q_t}^{i_t+q_t} x_k
@ -315,7 +315,7 @@ Der Wichtungsfaktor wird im zweiten Fall durch das Soll-Wert/Ist-Wert Verhältni
| 75-100 | 60 | 40 | 1,5 | | 75-100 | 60 | 40 | 1,5 |
: Beispiel für die Ermittlung des Wichtungsfaktors durch SOLL/IST Vergleich. \label{tab:wichtungsfaktor} : 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. 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} \begin{equation}\label{eq:weighted}
m_{w} = \cfrac{\sum_{i=1}^{n} x_k}{\sum_{i=1}^{n} w_i} m_{w} = \cfrac{\sum_{i=1}^{n} x_k}{\sum_{i=1}^{n} w_i}
@ -323,7 +323,7 @@ m_{w} = \cfrac{\sum_{i=1}^{n} x_k}{\sum_{i=1}^{n} w_i}
# Implementierung # 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. In den folgenden Abschnitten wird die verwendete Hardware sowie die Umsetzung beschrieben. Zum Einsatz kommen die Programmiersprachen Java\-Script, Python und Kotlin. Dieser Mix wird in den nächsten Abschnitten verständlich und ergibt sich sich aus der gewählten Hardware und dem Vorgehen.
## Beacon ## Beacon
@ -331,13 +331,13 @@ Als Bluetooth-Beacon kommen Puck.js\footnote{https://www.puck-js.com/}, Abbildun
![Puck.js inklusive Gehäuse. \label{fig:puck}](../static/puckjs.jpeg) ![Puck.js inklusive Gehäuse. \label{fig:puck}](../static/puckjs.jpeg)
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. 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-Beacons sehr einfach.
![Screenshot der Espruino \ac{ide} im Chrome-Browser. \label{fig:ide}](../static/espruino_ide.png) ![Screenshot der Espruino \ac{ide} im Chrome-Browser. \label{fig:ide}](../static/espruino_ide.png)
### Modi ### 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. Während der Versuche mit den Beacons 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 Button erneut gedrückt, zeigt die rote LED das Beenden des Versuchsmodus an und der Beacon wechselt in den Programmiermodus zurück.
### Identifizierung ### Identifizierung
@ -345,9 +345,9 @@ Jeder Beacon verfügt über eine einzigartige Hardware-Adresse, \ac{mac}-Adresse
| \ac{mac}-Adresse | Advertising Name | Kurzname | | \ac{mac}-Adresse | Advertising Name | Kurzname |
| ---------------- | --------- | -------- | | ---------------- | --------- | -------- |
| C6:13:E8:3F:69:0F | BLE 690f | 690f | | C6:13:E8:3F:69:0F | BLE 690f | ``690f`` |
| CD:10:9A:4C:9D:31 | BLE 9d31 | 9d31 | | CD:10:9A:4C:9D:31 | BLE 9d31 | ``9d31`` |
| D6:7C:70:1C:5B:5B | BLE 5b5b | 5b5b | | D6:7C:70:1C:5B:5B | BLE 5b5b | ``5b5b`` |
: Übersicht der \ac{mac}-Adressen und zugehörigen Namen der verwendeten Beacon. \label{tab:devices} : Ü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. 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.
@ -356,13 +356,13 @@ Weiterhin wird für das Advertising ein universeller Identifikator benötigt. Di
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 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. 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$ ### 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. 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}](../static/Ablaufplan-Advertising.pdf){ width=60% } ![Ablauf des Advertisings am Beispiel von zwei Beacon. \label{fig:selfcorrecting}](../static/Ablaufplan-Advertising.pdf){ width=60% }
@ -431,7 +431,8 @@ Zur Umsetzung der Trilateration wird das lineare Gleichungssystem aus Formel \re
\end{aligned} \end{aligned}
\end{equation} \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: 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. Die Kreise werden durch die Entfernungen zu den Beacons $r_1$, $r_2$ und $r_3$ gebildet. Der ermittelte Punkt $p_x, p_y$ wird als roter Punkt dargestellt:
![Auswirkungen verschiedener Eingabevariablen auf die Lokalisierung durch den verwendeten Lokalisierungsalgorithmus. \label{fig:locationAlgorithmTest}](../static/Lokalisierungstest.pdf) ![Auswirkungen verschiedener Eingabevariablen auf die Lokalisierung durch den verwendeten Lokalisierungsalgorithmus. \label{fig:locationAlgorithmTest}](../static/Lokalisierungstest.pdf)
@ -446,15 +447,15 @@ In Abbildung \ref{fig:locationAlgorithmWorking} ist die Vorgehensweise des Algor
### Filter-Implementierung ### 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. 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 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. 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, 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ä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 Gewichtung vorgenommen. Dabei wird wie folgt gewichtet: 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 Gewichtung vorgenommen. Dabei wird wie folgt gewichtet:
- Sind alle Werte gleich groß, so wird dieser Wert zurück gegeben. - Sind alle Werte gleich groß, so wird dieser Wert zurückgegeben.
- Sind zwei verschiedene Werte im Datensatz, so wird der Höhere mit einfach und der Niedrige 4-Fach gewichtet. - 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 Werte einfach, die mittleren Wert 2-Fach und die niedrigsten Werte 4-Fach gewichtet. - Sind drei oder mehr verschiedene Werte im Datensatz, so werden die höchsten Werte einfach, die mittleren Wert 2-Fach und die niedrigsten Werte 4-Fach gewichtet.
@ -462,7 +463,7 @@ Zur Einteilung der Messwerte wird die prozentuale Lage im betrachteten Datensatz
# Versuchsvorbereitung # 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. 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{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. 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.
@ -476,11 +477,11 @@ Soweit nicht anders beschrieben beträgt der Abstand für die Referenzmessungen
### Beacon-Smartphone ### 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. 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. 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) ![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 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. 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.
### Winkeleinfluss ### Winkeleinfluss
@ -490,11 +491,11 @@ Bei der Messung des Winkeleinfluss soll untersucht werden, wie sich die Lage der
#### Smartphone Rotation #### 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}. 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örer, 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}.
![Referenzmessung bei Smartphone Rotation im Uhrzeigersinn. \label{fig:ref-smartphoneRotation}](../static/SmartphoneRotation.pdf) ![Referenzmessung bei Smartphone Rotation im Uhrzeigersinn. \label{fig:ref-smartphoneRotation}](../static/SmartphoneRotation.pdf)
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}. 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}.
#### Beacon Rotation #### Beacon Rotation
@ -502,7 +503,7 @@ Für die nächste Messung wird der Beacon in \SI{90}{\degree} Schritten im Uhrze
![Referenzmessung bei der Rotation des Beacon im Uhrzeigersinn. \label{fig:ref-beaconrotation}](../static/BeaconRotationAuswertung.pdf) ![Referenzmessung bei der Rotation des Beacon im Uhrzeigersinn. \label{fig:ref-beaconrotation}](../static/BeaconRotationAuswertung.pdf)
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. 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 ## Durchführung der Kalibrierung
@ -566,7 +567,7 @@ C & 74,3 & 39 & 113,2 \\
D & 77,5 & 150 & 85 \\ D & 77,5 & 150 & 85 \\
\end{longtable} \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 Messpunkten platziert. Dies gewährleistet einen gleichbleibenden Abstand auch bei Rotation des Smartphones. Die Referenzentfernung wird somit jeweils von der Mitte der Beacon zur Mitte des Smartphones ermittelt. Um die winkelabhängige Dämpfung, die in Abschnitt \ref{winkeleinfluss} beschrieben ist, 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 Messpunkten platziert. Dies gewährleistet einen gleichbleibenden Abstand auch bei Rotation des Smartphones. Die Referenzentfernung wird somit jeweils von der Mitte der Beacon 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 # Ergebnisse

Loading…
Cancel
Save