From 3340e83424b5afeee7588d475b27ff6f9f0c1f05 Mon Sep 17 00:00:00 2001 From: Sebastian Preisner Date: Fri, 11 Feb 2022 19:17:23 +0100 Subject: [PATCH] add Lokalisierung - Darstellung der ergebnisse des Algorithmus - Darstellung der Arbeitsweise - Beschreibungstext --- Thesis/README.md | 24 + static/LocationAlgorithmWorking.pdf | Bin 0 -> 34831 bytes static/LocationAlgorithmWorking.svg | 2574 +++++++++++++++++++++++++++ static/Lokalisierungstest.pdf | Bin 0 -> 16867 bytes 4 files changed, 2598 insertions(+) create mode 100644 static/LocationAlgorithmWorking.pdf create mode 100644 static/LocationAlgorithmWorking.svg create mode 100644 static/Lokalisierungstest.pdf 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 0000000000000000000000000000000000000000..27c45dc05f1bc51bbab96af70726248b285e5a18 GIT binary patch literal 34831 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 PXe96!FI81ne>W}wt&jKn literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2e764524a3e125e89d4195b716bc632e84cbf058 GIT binary patch literal 16867 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