diff --git a/Thesis/README.md b/Thesis/README.md index e8ec456..bd9be42 100644 --- a/Thesis/README.md +++ b/Thesis/README.md @@ -420,6 +420,30 @@ Die zeitlichen Abstände sowie die Reihenfolge der Advertising-Pakete sind zufä ![Ausschnitt aus einer Messreihe. \label{fig:messreihe}](../static/Messreihe.png) +### Umsetzung der Trilateration + +Zur Umsetzung der Trilateration wird das Lineare Gleichungssystem aus Formel \ref{eq:lgsTrilateration} zu $p_x$ und $p_y$ aufgelöst. Die daraus resultierenden Formeln \ref{eq:trilaterationAlgorithmus} errechnen aus den ermittelten Abstände $r_1$, $r_2$ und $r_3$ zu den jeweiligen Beacons die Positionen $p_x$ und $p_y$. + +\begin{equation}\label{eq:trilaterationAlgorithmus} +\begin{aligned} + p_x &= \frac{r_1^2 - r_2^2 + x_2^2}{ 2 \cdot x_2 } \\ + p_y &= \frac{r_1^2 - r_3^2 + (x_3^2 + y_3^2) - (2 \cdot x_3 \cdot p_x)}{2 \cdot y_3} +\end{aligned} +\end{equation} + +Da die Entfernungsermittlung fehlerbehaftet ist, können verschiedene Szenarien auftreten auf die der angewandte Algorithmus überprüft werden muss. Abbildung \ref{fig:locationAlgorithmTest} zeigt die einzelnen Szenarien die im folgenden kurz beschrieben werden. Die blauen Punkte markieren die Position der Beacon, die durch die übergebenen Radien $r_1$, $r_2$ und $r_3$ sind jeweils durch die roten Kreise symbolisiert. Der ermittelte Punkt $p_x, p_y$ wird als roter Punkt dargestellt: + +![Auswirkungen verschiedener Eingabevariablen auf die Lokalisierung durch den verwendeten Lokalsierungsalgorithmus. \label{fig:locationAlgorithmTest}](../static/Lokalisierungstest.pdf) + +1. Die Kreise haben einen eindeutigen Schnittpunkt (oben links und unten rechts) +2. Die Kreise haben gar keinen Schnittpunkt (oben mitte) +3. Die Kreise schneiden sich alle, jedoch nicht an einem gemeinsamen Punkt (oben rechts, unten links) +4. Die Kreise schneiden sich teilweise (unten mitte) + +In Abbildung \ref{fig:locationAlgorithmWorking} ist die Vorgehensweise des Algorithmus veranschaulicht. Um jeden Beacon wird ein Kreis mit der ermittelten Entfernung als Radius gezogen. Wenn sich zwei Kreise schneiden, so wird eine Gerade (schwarz dargestellt) durch diesen Schnittpunkt gelegt. Gibt es keinen solchen Schnittpunkt, werden die beiden beteiligten Beacon durch eine Linie verbunden (hellblau dargestellt). Ausgehend vom dritten Beacon, wird eine Gerade im \SI{90}{\degree} Winkel durch diese Verbindungslinie gezogen. Die ermittelte Position ist der Punkt, an dem sich alle drei Geraden schneiden. + +![Ermittlung der Position bei sich nicht überschneidenden Kreise \label{fig:locationAlgorithmWorking}](../static/LocationAlgorithmWorking.pdf) + ### 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. diff --git a/static/LocationAlgorithmWorking.pdf b/static/LocationAlgorithmWorking.pdf new file mode 100644 index 0000000..27c45dc Binary files /dev/null and b/static/LocationAlgorithmWorking.pdf differ diff --git a/static/LocationAlgorithmWorking.svg b/static/LocationAlgorithmWorking.svg new file mode 100644 index 0000000..a948de8 --- /dev/null +++ b/static/LocationAlgorithmWorking.svg @@ -0,0 +1,2574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1,0 + + + + + + + + + + + + + + + + + 0,5 + + + + + + + + + + + + + + + + + 0,0 + + + + + + + + + + 0,5 + + + + + + + + + + 1,0 + + + + + + + + + + 1,5 + + + + + + + + + + 2,0 + + + x Meter + + + + + + + + + + 1,0 + + + + + + + + + + + + + + + + + 0,5 + + + + + + + + + + + + + + + + + 0,0 + + + + + + + + + + 0,5 + + + + + + + + + + 1,0 + + + + + + + + + + 1,5 + + + + + + + + + + 2,0 + + + y Meter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1,0 + + + + + + + + + + + + + + + + + 0,5 + + + + + + + + + + + + + + + + + 0,0 + + + + + + + + + + 0,5 + + + + + + + + + + 1,0 + + + + + + + + + + 1,5 + + + + + + + + + + 2,0 + + + x Meter + + + + + + + + + + 1,0 + + + + + + + + + + + + + + + + + 0,5 + + + + + + + + + + + + + + + + + 0,0 + + + + + + + + + + 0,5 + + + + + + + + + + 1,0 + + + + + + + + + + 1,5 + + + + + + + + + + 2,0 + + + y Meter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/Lokalisierungstest.pdf b/static/Lokalisierungstest.pdf new file mode 100644 index 0000000..2e76452 Binary files /dev/null and b/static/Lokalisierungstest.pdf differ