Co-authored-by: Sebastian Preisner <kreativmonkey@calyrium.org>
Reviewed-on: #21
Co-authored-by: Sebastian Preisner <sebastian.preisner@gmail.com>
Co-committed-by: Sebastian Preisner <sebastian.preisner@gmail.com>
@ -163,8 +163,6 @@ Ein Advertising-Paket enthält 31 Bytes, die vom Nutzer frei definiert werden k
| ADV_NONCONN_IND | 31 bytes | nein | nein |
| ADV_NONCONN_IND | 31 bytes | nein | nein |
: Übersicht über die verschiedenen Pakettypen von Advertising-Paketen. \label{tab:adpackettype}
: Übersicht über die verschiedenen Pakettypen von Advertising-Paketen. \label{tab:adpackettype}
- Packetaufbau beschreiben!!
### Entfernungsmessung mit der Signalstärke
### Entfernungsmessung mit der Signalstärke
Die Bluetooth-Spezifikation sieht die Übertragung der Signalstärke, dem sogenannten \ac{rssi}, vor. Dabei handelt es sich um einen absoluten Wert in \ac{dbm} mit einer 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 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.
@ -185,13 +183,13 @@ d = A \cdot \left( \cfrac{P_{R_{x}}}{sxPower} \right)^{B} + C
\end{aligned}
\end{aligned}
\end{equation}
\end{equation}
## Messung, Fehler-Quellen und Korrekturen [draft]
## Messung, Fehler-Quellen und Korrekturen
In der Regel ist jede Messung fehlerbehaftet, auch wenn sie präzise durchgeführt wird. Zum Beispiel kann es schon beim Ablesen von Messdaten zu Fehlern kommen, aber auch das Einbringen eines Messgeräts kann die zu messenden Werte in einem System verändern. Aus diesem Grund ist die Beurteilung und Klassifikation von Messfehlern ein wichtiger Teil bei der Betrachtung einer Messkette [@Lerch_2006_BOOK, S. 89]. In den folgenden Abschnitten werden die notwendigen Begriffe zur Beurteilung von Fehlern eingeführt und weiter die Fehlerkorrekturmöglichkeiten betrachtet.
In der Regel ist jede Messung fehlerbehaftet, auch wenn sie präzise durchgeführt wird. Zum Beispiel kann es schon beim Ablesen von Messdaten zu Fehlern kommen, aber auch das Einbringen eines Messgeräts kann die zu messenden Werte in einem System verändern. Aus diesem Grund ist die Beurteilung und Klassifikation von Messfehlern ein wichtiger Teil bei der Betrachtung einer Messkette [@Lerch_2006_BOOK, S. 89]. In den folgenden Abschnitten werden die notwendigen Begriffe zur Beurteilung von Fehlern eingeführt und weiter die Fehlerkorrekturmöglichkeiten betrachtet.
### Referenzwert
### Referenzwert
In der Literatur wird häufig vom wahren Wert einer Messung im Zusammenhang mit der Fehlerbewertung gesprochen. Dieser wahre Wert ist ein Wert ohne Fehler und meistens nicht bekannt. Aus diesem Grund muss ein Referenzwert ermittelt werden. Dies geschieht mit einem bekannten, möglichst genauem Messsystem. Da jede Messung fehlerbehaftet ist, wird in den folgenden Kapiteln und insbesondere in den Formeln nicht der wahre Wert verwendet sondern der Referenzwert. Dieser Referenzwert stimmt dabei ungefähr mit dem wahren Wert überein.
In der Literatur wird häufig vom wahren Wert einer Messung im Zusammenhang mit der Fehlerbewertung gesprochen. Dieser wahre Wert ist ein Wert ohne Fehler und damit stets unbekannt, da jede Messung fehlerbehaftet ist [@jcgm_2012, Nr. 2.11]. Aus diesem Grund muss ein Referenzwert ermittelt werden. Dies geschieht mit einem bekannten, möglichst genauem Messgerät. Aus diesem Grund wird in den folgenden Kapiteln und insbesondere in den Formeln nicht der wahre Wert verwendet sondern der Referenzwert. Dieser Referenzwert stimmt dabei ungefähr mit dem wahren Wert überein [@jcgm_2012, Nr. 5.18].
### Arten von Messfehler
### Arten von Messfehler
@ -214,7 +212,7 @@ Nachfolgend sollen Beispiele für die beiden Fehlerarten genannt und beschrieben
#### 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 [ QUELLE ]. Dabei kann diese starke Auslastung dazu führen das Pakete nicht Empfangen werden oder die Empfangsstärke beeinflusst wird.
- **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 RSSI je nach verwendeten Advertising Kanal [@Paterna_2017]. Dies ist prinzipiell ein systemischer Fehler der Korrigierbar wäre. Unter Android gibt es derzeit jedoch keine Möglichkeit den Kanal aus zu lesen, weswegen der Fehler damit zufällig auftritt.
| Fehler | Auslöser | Fehler Art |
| Fehler | Auslöser | Fehler Art |
@ -247,27 +245,43 @@ Die Abhängigkeit von Präzision und Richtigkeit wird in Abbildung \ref{fig:gena
### Fehlerbewertung
### Fehlerbewertung
- 1D und 2D Raum
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 einem 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.
- Formeln
- Wozu macht man das?
- Welchen Wert hat die Fehlerbewertung idr?
### Filter
\begin{equation}\label{eq:abs-fehler}
F=M-R
\end{equation}
Der relative Fehler $f$ in Formel \ref{eq:rel-fehler} wird in Prozent angegeben und ermittelt sich aus dem absoluten Fehler $F$ bezogen auf dem Referenzwert $R$.
Die unverarbeiteten Messwerte werden als Rohdaten bezeichnet. Aufgrund der zuvor erwähnten Messfehler, sind diese Messwerte in den meisten Fällen nicht zur Anzeige geeignet. Zunächst müssen die Messwerte vor verarbeitet werden. Hierzu werden zuerst die systemischen Fehler korrigiert. Zur Minimierung der zufälligen Fehler kommen im nächsten Schritt ein oder mehrere Filter zum Einsatz.
\begin{equation}\label{eq:rel-fehler}
f=\cfrac{F}{R} \cdot 100
\end{equation}
#### Gaußfilter
Bei der Lokalisierung ist unter anderem die Beurteilung der Abweichung des gemessenen Punkts zum Referenzpunkt wichtig. Mit Formel \ref{eq:abstand} lässt sich der Abstand $d$ zwischen der gemessene Position $(M_x,M_y)$ und der Referenzposition $(R_x,R_y)$ ermitteln. $d$ ist somit die absolute Abweichung der Lokalisierung $F_{loc}$. Aus den Formeln \ref{eq:abs-fehler} und \ref{eq:rel-fehler} sowie der Kenntnis über die absolute Abweichung in Formel \ref{eq:abstand} ergibt sich die relativen Abweichung $f_{loc}$ in Formel \ref{eq:loc-fehler}.
Eine Methode zur Reduzierung von systemischen Fehler, beschrieben in Abschnitt \ref{arten-von-messfehler}, ist die Kalibrierung. Hierbei werden mehrere Messreihen mit möglichst vielen Messungen angefertigt. Dabei wird darauf geachtet das die äußeren Einflüsse, die auf die Messung einwirken können, weitestgehend eliminiert werden. Durch eine hohe Anzahl von Messungen kann der statistischen Fehler zusätzlich minimiert werden [@jcgm_2012, Nr. 2.19]. Sollte der Mittelwert der Messung nun nicht mit dem Referenzwert übereinstimmen, so ist diese Abweichung auf ein systemischen Fehler zurück zu führen. Um die Linearität des Fehlers zu Beurteilen müssen mehrere, unterschiedliche Messreihen betrachtet werden. Aus den gewonnenen Daten können nun Korrekturfaktoren ermittelt werden, welche den systemischen Fehler reduzieren [@jcgm_2012, Nr. 2.39, Nr. 3.11].
### Filter
Die unverarbeiteten Messwerte werden als Rohdaten bezeichnet. Sie sind aufgrund der zuvor beschriebenen Messfehler nicht zur Anzeige geeignet. Zunächst müssen diese Fehler beseitigt werden. Im ersten Schritt werden die systemischen Fehler, beispielsweise durch eine Kalibrierung, minimiert. Im nächsten schritt gilt es die zufälligen Fehler, also Ausreißer und Rauschen, zu detektieren und zu eliminieren. Hierbei kommen verschiedene Filterverfahren zum Einsatz die einzeln oder in Kombination eingesetzt werden können.
#### Gaußfilter {-}
#### Gewichteter Filter {-}
- Filterverfahren in Tabelle, Erklärung was Filter machen.
Nicht alle müssen angewandt werden.
### Fazit
### Fazit
@ -282,8 +296,6 @@ Der Anwendung fehlt jedoch, ein Möglichkeit zur Lokalisierung des Smartphones.
**Darstellung von Schallinterferenzen:**
**Darstellung von Schallinterferenzen:**
Diese Arbeit soll untersuchen wie eine solche Lokalisierung umgesetzt werden kann.
Diese Arbeit soll untersuchen wie eine solche Lokalisierung umgesetzt werden kann.
@ -355,16 +367,25 @@ Beim Empfang eines Advertising-Pakets wird geprüft, ob das Paket von einem der
## Auswertung
## Auswertung
Die Auswertung der Testmessungen wird auf dem Computer und nicht auf dem Smartphone durchgeführt. Dies erlaubt es auch im Nachhinein, mit ein und der selben Messung unterschiedlichste Modelle zu betrachten. Außerdem müssen Messungen nicht wegen eventueller Programmierfehler wiederholt werden.
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 an der Auswertung vorzunehmen. 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.
Als Programmiersprache kommt Python zum Einsatz. Python bietet eine Vielzahl an Bibliotheken zur Arbeit mit großen Datenmengen und zur wissenschaftlichen Auswertung. Tabelle \ref{tab:libraries} zeigt eine Auflistung der eingesetzten Bibliotheken und eine kurze Beschreibung.
In einem ersten Schritt werden die Daten eingelesen und bereinigt. Zur Bereinigung werden die ersten \SI{5}{\second} und die letzten \SI{10}{\second} der Messreihe entfernt um den Einfluss durch die Bedienung des Smartphones aus den Messreihen zu beseitigen. Danach werden alle Messdaten von Geräten die nicht an der Messung beteiligt waren entfernt. Bei der Übermittlung der Daten werden nicht vorhandene Messdaten mit einer 0 initialisiert. Dies würde bei Berechnungen jedoch zu Fehlern führen, daher werden alle 0 Werte aus den eingelesenen Daten gelöscht.
| Library | Bedeutung |
Um mit den Daten einfacher Arbeiten zu können und eine bessere Übersicht zu erhalten, werden die Spalten aus Tabelle \ref{tab:datastore} umgeformt. Hierzu wird der real gemessene Referenzpunkt ermittelt und in der neuen Spalte ``realPosition`` gespeichert. Die Referenz Entfernung sowie die $scPower$ zu dem jeweiligen Beacon wird ermittelt und in den Spalte ``deviceDistance`` und ``scPower`` abgelegt.
| -------- | ---------- |
| | |
Im letzten Schritt werden überflüssige Spalten gelöscht. Tabelle \ref{tab:dataclean} zeigt die vorhandenen Spalten nach dem Einlesen.
: Verwendete Python libraries zur Auswertung der Messdaten. \label{tab:libraries}
| Spalte | Beschreibung |
| --------- | ----------------------- |
| Time | Empfangszeitpunkt als Unix-Zeitstempel |
| Test | Benutzerdefinierter Name des durchgeführten Tests |
| Device | \ac{mac}-Adresse des Beacon |
| RSSI | Vom Smartphone ermittelter \ac{rssi}-Wert |
| scPower | Ermittelter \ac{rssi}-Referenzwert der benachbarten Beacon auf \SI{1}{\meter} |
| deviceDistance | Physisch ermittelte Entfernung zwischen dem Beacon und Smartphone |
| realPosition | x,y Koordinaten des Smartphones, ermittelt durch die deviceDistance |
: Spaltenübersicht der Messreihen nach dem einlesen der Daten. \label{tab:dataclean}
- 5 sekunden zu beginn und 10 sekunden zum ende werden von den Messdaten verworfen! (mögliche einflüsse durch Human)
# Versuchsvorbereitung
# Versuchsvorbereitung
@ -408,19 +429,32 @@ Für die nächste Messung wird der Beacon in \SI{90}{\degree} Schritten im Uhrze
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" 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" 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. Da die $scPower$ im späteren Versuch durch die benachbarten Beacon erfasst wird, kommt für die Referenzmessung anstelle des iPhones ein zweiter Beacon zum Einsatz.
### Beacon im Versuchsaufbau
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 Fehler durch die nicht optimalen Umgebungsbedingungen zusätzlich besser Filtern zu können, 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 lineare Regression auf die Messdaten der Kalibrierung durchgeführt. Dabei werden Parameter für die Konstanten $A$ und $B$ ermittelt, durch die die Berechnungen der Messdaten möglichst gut mit der Distanz $d$ übereinstimmen.
###
\begin{equation}\label{eq:regress}
\begin{aligned}
d = A \cdot \left( \cfrac{P_{R_{x}}}{txPower} \right)^{B}
\end{aligned}
\end{equation}
Die Konstante $C$ beschreibt den Korrekturfaktor für \SI{1}{\meter} Entfernung. Hierzu werden die Konstanten $A = 1.7358$ und $B = 7.5924$ aus der Regression in die Formel \ref{eq:korrektur} eingesetzt und die Messwerte für die Referenzentfernung $d = \SI{1}{\meter}$ eingesetzt.
## Kalibrierung
\begin{equation}\label{eq:korrektur}
\begin{aligned}
C = d - A \cdot \left( \cfrac{P_{R_{x}}}{txPower} \right)^{B}
\end{aligned}
\end{equation}
In Abbildung \ref{fig:calibration} ist der durchschnittliche Fehler auf die einzelnen Entfernungen aufgetragen. Verglichen wird der Fehler unter Verwendung der Kalibrierungsfaktoren zur Verwendung der Standard Werte der Android Beacon Library. Es ist zu erkennen, dass die Fehlerquote nach Kalibrierung, ab \SI{0.75}{\meter} niedriger ist als mit den Standard Werten.
![Gegenüberstellung der Kalibrierungsfaktoren zu den Standardwerten in der Android Beacon Library. \label{fig:calibration}](../static/calibrationValidation.pdf)
# Versuchsaufbau
# Versuchsaufbau
@ -462,11 +496,16 @@ Da die Anordnung der Antennen gerade im Smartphone nicht bekannt sind, wird die
# Ergebnisse
# Ergebnisse
- Zunächst die Lokalisierung betrachten und dann zu den Gründen wieso diese nicht gut sind!
- Fehlerhafte Zeitlicher Verlauf beim Empfang der Daten
- Fehlerhafte Zeitlicher Verlauf beim Empfang der Daten
- Connections wären sinnvoll
- Connections wären sinnvoll
- Kalibrierung
- Höhere Rate bei der Übertrragung für mehr messdaten
title = {{E}valuation of measurementdata — {S}upplement 1 to the \“{G}uide to the expression ofuncertainty in measurement\” —{P}ropagation of distributionsusing a {M}onte {C}arlo method},