Compare commits

...

91 Commits

Author SHA1 Message Date
Sebastian Preisner 535af116a9 abschluss 3 years ago
Sebastian Preisner e22fde4f9c finished presentation 3 years ago
Sebastian Preisner e8c9921276 start editing kolloqium 3 years ago
Sebastian Preisner c49b2d3121 adding first beamer version 3 years ago
Sebastian Preisner f42a5bf1aa Final images 3 years ago
Sebastian Preisner 10c23b74dd Final version 3 years ago
Sebastian Preisner 52d47d3861 remove fußzeile:
kommentar von Dr. Kalbe
3 years ago
Sebastian Preisner 003ea10759 adding tex for last fixes 3 years ago
Sebastian Preisner 2c145d6510 cleanup befor ending 3 years ago
Sebastian Preisner 2dc51d48c9 add tex file for last changes 3 years ago
Sebastian Preisner 72673465b3 fix Henrik Abschlusskorrektur:
Dies ist die Vorabversion, ab hier wird im tex file weiter gearbeitet
3 years ago
Sebastian Preisner 4d0430903d change toc-depth 3 years ago
Sebastian Preisner a81043f80c fix arrows 3 years ago
Sebastian Preisner 1200642fe3 add Silbentrennung 3 years ago
Sebastian Preisner 1947b60e4b fix type 3 years ago
Sebastian Preisner 8c44ce803c fix type from henrik 3 years ago
Sebastian Preisner 520b0289dc fix type 3 years ago
Sebastian Preisner 929d374f69 fix typos Henrik Kommentare 3 years ago
Sebastian Preisner 3cad0cbf6f update befor change 3 years ago
Sebastian Preisner f0e62b1e19 fix ergänzung Diskussion in Aufbau der Arbeit 3 years ago
Sebastian Preisner 1cdbaced28 fix des Beacons 3 years ago
Sebastian Preisner 863f2c0b25 add Silbentrennung 3 years ago
Sebastian Preisner 131486b4da fix Zuschnitt 3 years ago
Sebastian Preisner b2586157ed fix Helligkeit und Zuschnitt 3 years ago
Sebastian Preisner 901a52fca3 fix Ortsauflösung -> Auflösungsvermögen 3 years ago
Sebastian Preisner 1658391bb1 fix gleitender Mittelwert und quatratische Gleichung 3 years ago
Sebastian Preisner a5472c7b7e fix presition Einleitung 3 years ago
Sebastian Preisner bb932edfae correction Systemisch -> Systematisch 3 years ago
Sebastian Preisner 20032aad80 fix comments from steven 3 years ago
Sebastian Preisner 87c4d416d9 add hyphanation 3 years ago
Sebastian Preisner c771a62701 add hpyhenation (für trennungen) 3 years ago
Sebastian Preisner 917936eb99 Update acronyms.yaml 3 years ago
Sebastian Preisner f0b79e440c zuschnitt 3 years ago
Sebastian Preisner 037fce4a3b bilder korrektur 3 years ago
Sebastian Preisner 9f9b0d170f Primärquellen ergänzt 3 years ago
Sebastian Preisner 7f40348b66 Bilder verschoben 3 years ago
Sebastian Preisner f70847c97f vorabversion zur Korrektur 3 years ago
Sebastian Preisner 6b7a807e09 update 12.02.
- einige Umformulierungen
- Diskussion unter Fazit
3 years ago
Sebastian Preisner f8442ff233 fix korrekturen sebbo 3 years ago
Sebastian Preisner f6426be85d fix Henrik Comments 3 years ago
Sebastian Preisner 441bc02ebe draft Ergebnisse 3 years ago
Sebastian Preisner 058ba1c2bd draft Zusammenfassung 3 years ago
Sebastian Preisner 548317f157 correction Versuchsaufbau umformulierung 3 years ago
Sebastian Preisner 3340e83424 add Lokalisierung
- Darstellung der ergebnisse des Algorithmus
- Darstellung der Arbeitsweise
- Beschreibungstext
3 years ago
Sebastian Preisner bfb3f7f7a7 update Bildgröße geändert 3 years ago
Sebastian Preisner 0d68b4e640 update Filter Implementierung
- change Überschrift
- change Textpassagen
- Erweiterung des Textes
3 years ago
Sebastian Preisner f2aabef84d some changes Grundlagen:
- Einleitung
- switch Fazit zu Bewertung der Lokalisierungsmethoden
- remove Abschließende Bewertung
3 years ago
Sebastian Preisner 8f0cdaddca Motivation um Beispiele für Experimente erweitert 3 years ago
Sebastian Preisner 39e2570b89 add Draft to ignore 3 years ago
Sebastian Preisner 7313490faa Update thesis.bib 3 years ago
Sebastian Preisner 7c67a49fe5 Update BeaconRotation.pdf, BeaconSmartphone.pdf, and 4 more files... 3 years ago
Sebastian Preisner f7e447b180 correction Veruschsaufbau 3 years ago
Sebastian Preisner f77e80af3f fix Fehlender Wert für C 3 years ago
Sebastian Preisner 013d9a2e58 change Größe des Versuchsaufbaus 3 years ago
Sebastian Preisner 3f71a8ffc2 scPower Übertragung erweitert:
- Ablaufplan hinzugefügt
- Abnappung des Textes
3 years ago
Sebastian Preisner 4f4cd4fc99 restructure Auswertung 3 years ago
Sebastian Preisner f8e76d2057 correction gewichteter Mittelwert 3 years ago
Sebastian Preisner 563f30f394 correction Henrik Kommentare zur Einleitung 3 years ago
Sebastian Preisner 086ebe7807 Update Zonen_und_Messpunkte.svg and Zonen_und_Messpunkte.pdf 3 years ago
Sebastian Preisner ee494e31a9 add Outdoor image 3 years ago
Sebastian Preisner 5c32abac14 change smallfixes 3 years ago
Sebastian Preisner b993d285f0 change Formulierungen
- Versuchsaufbau
- Fehlerbehebung
3 years ago
Sebastian Preisner 856cf4335c add Einleitung 3 years ago
Sebastian Preisner 6000f16c97 add new quotien 3 years ago
Sebastian Preisner 79c00727dd draft Gleitender und Gewichteter Mittelwert 3 years ago
Sebastian Preisner 94b0300d29 korrektur Referenzwert
in Formel und Text den Referenzwert mit R beschrieben.
3 years ago
Sebastian Preisner 305603d736 draft Aufbau der Arbeit 3 years ago
Sebastian Preisner 619d176f54 draft Einleitung, Motivation und Zielsetzung 3 years ago
Sebastian Preisner 40a53a2c3a add Flussdiagramme für Programmablauf 3 years ago
Sebastian Preisner c8a6343e8e Auswertung 3 years ago
Sebastian Preisner b7d2cb1d44 Namenskorrektur 3 years ago
Sebastian Preisner b8ae8608ec Entwurf Gewichteter und Gleitender Mittelwert 3 years ago
Sebastian Preisner 646d2dc5b9 Kommentare Fleury 3 years ago
Sebastian Preisner 8adaa261a3 Kommentare Henrick 3 years ago
Sebastian Preisner 0a72ffa00c Notitzen 3 years ago
Sebastian Preisner 819fb94e0a change Abgabedatum 3 years ago
Sebastian Preisner abb6e1f28b korrekturlesen erster durchgang 3 years ago
Sebastian Preisner e8ac6be46a reogranize table 3 years ago
Sebastian Preisner ba0996c7db fix Satzstellungen und Formulierung Kalibrierung 3 years ago
Sebastian Preisner 482ecbda76 Rename Zusammenfassung 3 years ago
Sebastian Preisner 96287550b2 add Durchführung Kalibrierung 3 years ago
Sebastian Preisner 5a0cd388fb Add Kalibrierung (part 1) 3 years ago
Sebastian Preisner a78ddea4c0 add Auswertung (part 1) 3 years ago
Sebastian Preisner 427d953502 start Filter 3 years ago
Sebastian Preisner bae4e503c8 Quellen hinzugefügt:
- Rauschen
- Referenzwert
- Kalibrierung
3 years ago
Sebastian Preisner a3814eed67 add Kalibrierung 3 years ago
Sebastian Preisner 2dd990ccf4 add Quellen to Referenzwert 3 years ago
Sebastian Preisner ed2d43ef65 Remove some comments 3 years ago
Sebastian Preisner 0267c17b5f Merge branch 'main' of gitea@git.calyrium.org:Studienarbeit/bachelor-thesis.git 3 years ago
Sebastian Preisner 90fdf23c0b add Fehlerbewertung 3 years ago
Sebastian Preisner 770306e125 Merge branch 'correction' into main 3 years ago

2
.gitignore vendored

@ -1,4 +1,4 @@
*DRAFT*
# Created by https://www.toptal.com/developers/gitignore/api/latex
# Edit at https://www.toptal.com/developers/gitignore?templates=latex

Binary file not shown.

@ -0,0 +1,401 @@
\documentclass[10pt]{beamer}
% Theme choice:
\usetheme{Singapore}
\usecolortheme{seagull}
% Title page details:
%\titlegraphic{\includegraphics[height=1.5cm]{../static/logo.pdf}}
\title{\includegraphics[height=1.5cm]{../static/logo.pdf}\\ \vspace{1em}Bachelorthesis}
\subtitle{Distanzmessung auf kleinen Skalen mit Hilfe von Smartphone-Sensoren}
\date{23.03.2022}
\author{Sebastian Preisner}
%\institute{Wilhelm Büchner Hochschule Darmstadt}
% Setup theme
%\usefonttheme{serif}
\setbeamertemplate{footline}[frame number]{}
\setbeamertemplate{navigation symbols}{}
%\setbeamercolor{block title}{bg=blue!20,fg=black}
%\setbeamercolor{block body}{bg = blue!10, fg = black}
%\setbeamertemplate{itemize item}[square]
%\setbeamercolor{itemize item}{fg = cyan}
%\setbeamercolor{enumerate item}{fg = cyan}
\setbeamercolor{alerted text}{fg=red}
\beamertemplatenavigationsymbolsempty
%\setbeamercolor{titlelike}{fg=red}
\usepackage{appendixnumberbeamer}
% Setup Section title
\AtBeginSection[]{
\begin{frame}[noframenumbering,plain]
\vfill
\centering
\begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
\usebeamerfont{title}\insertsectionhead\par%
\end{beamercolorbox}
\vfill
\end{frame}
}
\newcommand{\backupbegin}{
\newcounter{finalframe}
\setcounter{finalframe}{\value{framenumber}}
}
\newcommand{\backupend}{
\setcounter{framenumber}{\value{finalframe}}
}
% ------------------------------
% Include packages
% ------------------------------
\usepackage[T1]{fontenc}
\usepackage{amsfonts}
\usepackage{FiraSans}
\usepackage{siunitx} % SI-Units
\sisetup{locale = DE}
\usepackage{tikz} % load the package tikz to manipulate the images
\usepackage{pgfpages} % Include notes to the presentation
\usepackage[duration=20]{pdfpcnotes}
%\setbeameroption{show notes}
%\setbeameroption{show notes on second screen = bottom}
% ------------------------------
% Start Document
% ------------------------------
\begin{document}
\maketitle
\begin{frame}{Inhalt der Präsentation}
\setbeamertemplate{section in toc}[sections numbered]
\tableofcontents[hideallsubsections]
\note[item]{Motivation darlegen}
\note[item]{Rahmenbedingungen abstecken}
\note[item]{Grundlagen erarbeiten}
\note[item]{Methodik: Vorgehen erläutern und fließend in die Auswertung übergehen}
\note[item]{Im Fazit gebe ich eine Zusammenfassung der Arbeit und einen Ausblick.}
\note[item]{In der Anschließenden Diskussion werde ich versuchen Ihre Fragen zu beantworten.}
\note[item]{1:20}
\end{frame}
\section{Einleitung}
\begin{frame}{Motivation}
\pause
\note[item]{abweichen üblichen Motivationsbeschreibung}
\note[item]{ganz Persönliche Motivation für das Thema}
\begin{columns}
\begin{column}{0.3\textwidth}
\centering
\includegraphics[width=0.85\textwidth]{../static/Opensource.pdf}
\end{column} \hfill
\note[item]{18 Jahre OpenSource begeistert}
\pause
\begin{column}{0.3\textwidth}
\centering
\includegraphics[width=0.9\textwidth]{../static/Wikipedia.pdf}
\end{column} \hfill
\note[item]{Bildung und Wissen sollten jedem zugänglich sein.}
\pause
\begin{column}{0.3\textwidth}
\centering
\includegraphics[width=0.85\textwidth]{../static/phyphox.jpg}
\end{column}
\end{columns}
\note[item]{Möglichkeit untersuchen}
\note[item]{Lokalisierung zu Entwickeln}
\note[item]{für Tischexperimente nutzbar}
\note[item]{3:16}
\end{frame}
\begin{frame}{Technologie und Hardware}
\note[item]{Zum Einsatz kommt Bluetooth}
\note[item]{etablierter Standard zum Austausch von Daten}
\note[item]{Bluetooth-Beacon von Espurino}
\note[item]{Programmierbar mittels JavaScript}
\note[item]{OnePlus 7t mit Android 11}
\begin{columns}
\begin{column}{0.3\textwidth}
\includegraphics[width=\textwidth]{../static/Bluetooth-logo.pdf}
\hspace*{15pt}\hbox{\tiny\scriptsize Quelle:\thinspace{\tiny\itshape Bluetooth SIG}}
\end{column}
\pause
\begin{column}{0.3\textwidth}
\includegraphics[width=\textwidth]{../static/puckjs-single.jpeg}
\end{column}
\pause
\begin{column}{0.3\textwidth}
\includegraphics[width=.7\textwidth]{../static/OnePlus-7T-Blue(2).png}
\hspace*{15pt}\hbox{\tiny\scriptsize Quelle:\thinspace{\tiny\itshape OnePlus}}
\end{column}
\end{columns}
\note[item]{4:30}
\end{frame}
\section{Grundlagen}
\begin{frame}{Distanzmessung}
\centering
\begin{overprint}
\includegraphics<1>{../static/reale-strecke.pdf}
\includegraphics<2>{../static/digitale-wegpunkte.pdf}
\includegraphics<3>{../static/digitale-strecke.pdf}
\end{overprint}
\onslide<1>{
\begin{block}{Definition}
Die Distanzmessung beschreibt die Messung der Länge einer zurückgelegten Strecke. Die Strecke bezeichnet den Weg zwischen Start- und Zielpunkt.
\end{block}
}
\note[item]{Diskrete erfassung von Wegpunkten.}
\note[item]{Die summe der Abstände zwischen den Wegpunkten = Strecke.}
\note[item]{Wegpunkte können durch die Lokalisierung bestimmt werden.}
\note[item]{Beschränkung auf Lokalisierung}
\note[item]{}
\note[item]{\textbf{Übergang:} Verschiedene Lokalisierungsverfahren}
\note[item]{6:00}
\end{frame}
\begin{frame}{Trilateration}
\centering
\begin{overprint}
\includegraphics<1>[height=.8\textheight]{../static/lateration-entfernung.pdf}
\note[item]{Entfernung zwischen Sender und Empfänger}
\note[item]{Kreis mit der Entfernung als Radius um den Sender}
\note[item]{Mögliche Positionen des Empfängers}
\includegraphics<2>[height=.8\textheight]{../static/lateration-kreis.pdf}
\note[item]{genaue Position zwei weitere Sender benötigt = Trilateration}
\includegraphics<3>[height=.8\textheight]{../static/lateration-position.pdf}
\note[item]{Um missverständnisse aus zu räumen: Die Trilateration ist \textbf{nicht mit der Triangulation} zu verwechseln bei der die Einfallswinkel zur Positionsbestimmung herangezogen werden hallo.}
\end{overprint}
\note[item]{9:30}
\end{frame}
\begin{frame}{Entfernungsmessung}
\centering
\note[item]{Entfernungsmessung mit Funksystemen = Signalstärkemessung.}
\note[item]{RSSI bei Bluetooth}
\note[item]{long-distance path loss Modell zur Vorhersage von Signalstärkeverlusten bei der Ausbreitung von Funkwellen.}
\note[item]{Einsatz in der Android-Beacon-Library}
\note[item]{Cho et al.}
\note[item]{Verbesserung bis 1,5m auf unter 10\%}
\note[item]{Ersetzung txPower durch live RSSI auf 1m, hier scPower}
\note[item]{Untersuchen der Übertragbarkeit auf die Lokalisierung}
\onslide<1->{RSSI - Received Signal Strength Indicator}
\onslide<2->{
\begin{eqnarray}
d = A \cdot \left( \frac{P_R}{\alert<3>{txPower}} \right)^B + C
\end{eqnarray}
}
\onslide<4->{"Accurate Distance Estimation between Things: A Self-correcting Approach" von Cho et al.}
\onslide<4->{
\begin{eqnarray}
d = A \cdot \left( \frac{P_R}{\alert<4->{scPower}} \right)^B + C
\end{eqnarray}
}
\note[item]{10:50}
\end{frame}
\begin{frame}<presentation:0>[noframenumbering]{Forschungsfragen}
\begin{itemize}
\item Lässt sich das Selbstkorrigierende System auch zur Lokalisierung einsetzen?
\item Ist eine Verbesserung durch den Einsatz von Filtern möglich?
\item Ist eine Verbesserung durch eine, auf den Versuchs angepasste kalibrierung Möglich?
\note[item]{Eine frage die in der Arbeit vergessen wurde zu erwähnen: \textbf{Ist es möglich einen Versuchsaufbau zu erstellen der wenig Fehlereinflüsse zulässt?}. Dies ist prinzipiell gelungen, jedoch liegt der Fehler nicht im Versuchsaufbau sondern in der umgebung und des schwankenden $RSSI$ werts durch die Umgebungsbedingungen.}
\end{itemize}
\end{frame}
\section{Methodik}
\begin{frame}{Vorgehen}
\note[item]{experimentelle Untersuchung \textbf{Abstrahlcharakterristik und Dämpfung} der Hardware}
\note[item]{Kalibrierungsbereich von 40 m auf 2 m reduziert.}
\note[item]{Versuchsaufbau wird gleich näher beschrieben.}
\note[item]{Experimentelle Tests des Versuchsaufbaus}
\note[item]{Auswertung Einfluss selbstkorrigierendes System, Filter, Kalibrierung}
\begin{itemize}
\item Referenzmessungen
\item Kalibrierung
\item Versuchsaufbau
\item Versuchsdurchführung
\item Auswertung
\end{itemize}
\note[item]{12:45}
\end{frame}
\begin{frame}{Referenzmessung - Outdoor/Indoor }
\note[item]{Insgesammt 40 Messreihen und xxxx Datenpunkte}
\note[item]{Reduzierung von Reflektionen durch Wänden und Gegenstände.}
\note[item]{Weite Funksysteme im 2.4GHz Band = Wifi, Zigbee, weiter Bluetooth Geräte}
\note[item]{Einfluss durch Funksysteme}
\note[item]{Ergab sich ein zuvor nicht bedachter Einflussfaktor}
\note[item]{Kalibrierung im Innenbereich da leichter Kontrollierbar}
\centering
\includegraphics[height=0.8\textheight]{../static/BeaconSmartphone.pdf}
\note[item]{13:55}
\end{frame}
\begin{frame}{Referenzmessung Smartphone Rotation}
\note[item]{Positionierung der Geräte.}
\note[item]{Rotationsrichtung = Uhrzeigersinn}
\note[item]{Schwächung linke Smartphoneseite 45-135 Grad}
\note[item]{Entfernungsdifferenz zwischen 225 Grad und 90 Grad = 1,6m}
\centering
\includegraphics[height=0.8\textheight]{../static/SmartphoneRotation.pdf}
\note[item]{16:00}
\end{frame}
\begin{frame}{Versuchsaufbau}
\note[item]{3 Beacon zur umsetzung der Trilateration}
\note[item]{Gleichseitiges Dreieck mit 1m Schenkellänge}
\note[item]{jeder Beacon erfasst die scPower seiner Nachbarn und übermittelt diese zur Berechnung}
\note[item]{Winkelabhängigkeit des Smartphones}
\note[item]{Display nach oben, Rotation um 180 Grad zwischen den Messreihen eines Messpunktes}
\note[item]{Karton mit Eingezeichneten Messpunkten}
\begin{columns}
\begin{column}{.58\textwidth}
\includegraphics[height=.7\textheight]{../static/Zonen_und_Messpunkte.pdf}
\end{column}
\pause
\begin{column}{.25\textwidth}
\includegraphics[height=.5\textheight]{../static/SmartphoneRotationGrafik.pdf}
\end{column}
\pause
\begin{column}{.5\textwidth}
\includegraphics[angle=270,width=.7\textwidth]{../static/Versuchsaufbau.jpg}
\end{column}
\end{columns}
\note[item]{16:50}
\end{frame}
\section{Auswertung}
\begin{frame}{Entfernungsmessung}
\note[item]{txPower 102,03\%}
\note[item]{scPower 63,97\%}
\note[item]{Verbesserung 35,85\%}
\centering
\includegraphics[width=0.85\textwidth]{../static/ScVsTxPower.pdf}
\note[item]{17:33}
\end{frame}
\begin{frame}{Lokalisierung}
\note[item]{Verbesserung durchschnittlich 61,35\%}
\centering
\includegraphics[width=.85\textwidth]{../static/LocErrScVsTxPower.pdf}
\note[item]{18:50}
\end{frame}
\section{Fazit}
\begin{frame}{Zusammenfassung}
\begin{itemize}[<+->]
\item Entwicklung eines Versuchsaufbaus zur Lokalisierung
\item scPower verbessert die Entfernungsmessung und Lokalisierung
\item Verbesserung durch Filter nachgewiesen
\item Abweichung von unter 10\% nicht reproduzierbar
\item Genauigkeit reicht nicht für Tischexperimente
\end{itemize}
\note[item]{Durchschnittliche Abweichung 204,32\%}
\note[item]{Durchschnittliche Abweichung 129cm}
\note[item]{18:50}
\end{frame}
\begin{frame}{Ausblick}
\begin{itemize}[<+->]
\item Zusätzliche Sensoren
\item Spezialisierte Filter
\item Angle of Arrival unter Bluetooth 5.2
\end{itemize}
\note[item]{Einsatz zusetzlicher Sensoren}
\note[item]{Einsatz spezialisierter Filter}
\note[item]{Bluetooth 5.2, Dezember 2019}
\note[item]{20:25}
\end{frame}
\section{Diskussion}
\appendix
\backupbegin
\begin{frame}{Filter}
\note[item]{Rohdaten 226,07\%}
\note[item]{gwichteter Mittelwert 189,52\%}
\note[item]{gleitender Mittelwert 204,32\%}
\note[item]{gleitender Mittelwert verbesserung 16,17\%}
\centering
\includegraphics[width=.85\textwidth]{../static/LocErrFilter.pdf}
\end{frame}
\begin{frame}{Kalibrierung}
\centering
\note[item]{check}
\includegraphics[width=0.9\textwidth]{../static/DistanceErrorKalibration.pdf}
\end{frame}
\begin{frame}{Selbstkorrigierendes System}
\centering
\includegraphics[height=0.9\textheight]{../static/Ablaufplan-Advertising.pdf}
\end{frame}
\begin{frame}{Positionierung}
\centering
\includegraphics[height=0.9\textheight]{../static/position_auswertung.pdf}
\end{frame}
\begin{frame}{Lokalisierung}
\centering
\includegraphics[width=0.9\textwidth]{../static/Lokalisierungstest.pdf}
\end{frame}
\begin{frame}{AoA - Angle of Arrival}
\centering
\includegraphics[width=0.9\textwidth]{../static/aoaPositioning.pdf}
\end{frame}
\begin{frame}{Rotation}
\centering
\includegraphics[width=0.9\textwidth]{../static/BeaconRotation.pdf}
\end{frame}
\backupend
\end{document}

@ -0,0 +1,70 @@
\ProvidesPackage{pdfpcnotes}
% Handling of kv parameters.
% We have the following options, that all take time in the HH:MM format
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
family=PDFPC,
prefix=PDFPC@
}
\DeclareStringOption{duration}
\DeclareStringOption{starttime}
\DeclareStringOption{endtime}
\DeclareStringOption{lastminutes}
\DeclareStringOption{fontsize}
\ProcessKeyvalOptions*
% Small macro to make inserting options easier.
\newcommand\PDFPC@option[2]{
\ifx#2\@empty\else
\immediate\write\pdfpcnotesfile{[#1]}%
\immediate\write\pdfpcnotesfile{#2}%
\fi
}
% create a new file handle
\newwrite\pdfpcnotesfile
% open file on \begin{document}
\AtBeginDocument{%
\immediate\openout\pdfpcnotesfile\jobname.pdfpc\relax
\PDFPC@option{duration}{\PDFPC@duration}
\PDFPC@option{start_time}{\PDFPC@starttime}
\PDFPC@option{end_time}{\PDFPC@endtime}
\PDFPC@option{last_minutes}{\PDFPC@lastminutes}
\PDFPC@option{font_size}{\PDFPC@fontsize}
\immediate\write\pdfpcnotesfile{[notes]}
}
% define a # http://tex.stackexchange.com/a/37757/10327
\begingroup
\catcode`\#=12
\gdef\hashchar{#}%
\endgroup
\def\lastframenumber{0}
% define command \pnote{} that works like note but
% additionally writes notes to file in pdfpc readable format
\newcommand{\pnote}[1]{%
% keep normal notes working
\note{#1}%
% if frame changed - write a new header
\ifdim\theframenumber pt>\lastframenumber pt
\let\lastframenumber\theframenumber
\begingroup
\let\#\hashchar
\immediate\write\pdfpcnotesfile{\#\#\# \theframenumber}%
\endgroup
\fi
% write note to file
\immediate\write\pdfpcnotesfile{\unexpanded{#1}}%
}
% close file on \end{document}
\AtEndDocument{%
\immediate\closeout\pdfpcnotesfile
}

@ -1,7 +0,0 @@
# Einleitung
## Motivation und Ausgangslage
## Zielsetzung
## Aufbau der Arbeit

@ -1,27 +0,0 @@
# Technsiche Grundlagen
## Methoden zur Positionsbestimmung
- Wie kann die Position bestimmt werden?
### Trilateration
### Triangulation
- Wie kann die Entfernung zum Referenzepunkt bestimmt werden?
### Angle of Arrival
### Time of Arrival
TOA [@Akcan_2006a] finds the distance between a transmitter and a receiver using one way propagation delay by exploiting the relationship. Accurate Distance Estimation between Things: A Self-correcting Approach between the light speed and the carrier frequency of the signal. However, TOA positioning requires an accurately synchronized clock as 1.0 μs error in time equals to 300 meters in terms of distance [12]. TOA will not be used for low cost devices because the high accuracy clock costs quite a lot. It is difficult to say that TOA will be widely applied to solve the accurate positioning problem.
## Bluetooth
- Wie funktioniert das BLE Advertising?
## Fehlerkorrekturen
- Wie funktioniert der Kallmannfilter?
## Beschreibung der eigenen Idee/Motivation

@ -1 +0,0 @@
# Konzeption und Anforderungsanalyse

@ -1,13 +0,0 @@
# Testaufbau
In diesem Kapitel wird der Versuchsaufbau beschrieben. Dieser Orientiert sich an den Anforderungen aus dem Vorherigen Kapitel. Im Fokus steht hierbei die Umsetzung eines einfach um zu setzenden Versuchsaufbau der eine möglichst genaue Messung ermöglicht.
## Anordnung der Beacon
Die Bluetooth Beacon werden in einem gleichseitigen Dreieck mit einer Seitenlänge von 1m auf einer Ebenen fläche angeordnet (Abbildung \ref{fig:versuchsaufbau}). Hierdurch empfängt jeder Beacon von seinen Nachbarn den RSSI Wert auf 1m Entfernung und kann diesen zur Kalibrierung an das Smartphone übermitteln. Dieser Versuchsaufbau ermöglicht es, das System um weitere Beacon zu erweitern. Auch ließe sich hierdurch eine 6 Seitige Pyramidenform umsetzen um die Messung auf die 3. Dimmension aus zu weiten.
## Messpunkte
Der Versuchsaufbau wird, wie in Abbildung \ref{fig:zones} dargestellt, in drei Zonen eingeteilt. Die Zonen ergeben sich aus der Geometrie des Versuchsaufbaus. Zone 1 hat einen Radius von 0.289m und wird durch das gleichseitige Dreieck begrenzt. In dieser Zone ist kein Beacon weiter als 0.866m vom Smartphone entfernt. Zone 2 misst einen Radius von 0.577m und schließt das Dreieck ein. Die maximale Distanz zu einem Beacon beträgt 1.154m. Die Zone 3 wird durch die maximale Entfernung von 1.5m (!!! 1.5m kommen aus dem Paper für das Verfahren zur Kalibrierenug !!!) zu einem Beacon bestimmt. Ihr Radius beträgt damit 1.067m. Ein weiterer Messpunkt ist auf einer der Seiten des Dreiecks zu finden. Dieser wurde gewählt um den Einfluss des Smartphones auf die Funkstrecke der Beacon auf dieser Seite zu ermitteln.
![Aufteilung des Versuchsaufbaus in Zonen und Messpunkte \label{fig:zones}](../static/zonen_und_messpunkte.png)

@ -1 +0,0 @@
# Umsetzung der Filteralgorithmen

@ -1 +0,0 @@
# Testaufbau und Durchführung

@ -1 +0,0 @@
# Ergebnisse

@ -1,5 +0,0 @@
# Zusammenfassung und Ausblick
## Zusammenfassung und Fazit
## Ausblick

File diff suppressed because it is too large Load Diff

@ -1,84 +1,95 @@
# Einleitung [draft]
# Einleitung
Smartphones enthalten immer mehr Sensoren, mit denen sie Daten aus ihrer Umwelt erfassen. Erst durch den Zugriff über Software werden diese Sensordaten zu nützlichen Features. So wird Beispielsweise das Display eingeschaltet, sobald man das Smartphone aus der Hosentasche holt oder ausgeschaltet, wenn man es sich ans Ohr hält. Ein großes Augenmerk erhält die Lokalisierung der Geräte. Hierdurch werden Anwendungen wie die Navigation ermöglicht. Bei der Distanzmessung geht es darum, die Strecke, die ein Gerät in Bewegung zurücklegt, zu erfassen. In dieser Arbeit soll untersucht werden, wie die Messung auf kleinen Skalen, im Zentimeterbereich, umgesetzt werden kann.
Die Vielzahl verbauter Sensoren in Smartphones macht deren Einsatzmöglichkeiten immer umfangreicher. Durch den Zugriff von Software auf die Sensoren werden nützliche Features umgesetzt: So dient das Smartphone beispielsweise durch den Einsatz des Lagesensors als Wasserwaage oder wird mithilfe des Beschleunigungssensors zu einem Schrittzähler. Ein besonderes Interesse erhält hierbei die Standortbestimmung der Geräte. Sie ermöglicht Anwendungen zur Navigation oder das Steuern von ortsgebundenen Aktionen. Die meisten dieser Anwendungen kommen mit einem Auflösungsvermögen von wenigen Metern zurecht, da oft eine größere Entfernung zwischen den Orten besteht [@Bajaj_2002a]. 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 diese Auflösung nicht mehr ausreichend.
## Motivation [draft]
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 und dem finanziellen Aufwand der Umsetzung. Beispielsweise ist 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.
Die Open-Source-Andwendung phyphox&reg;\footnote{https://phyphox.org} ermöglicht es mithilfe der im Smartphone verbauten Sensoren Experimente durch zu führen. Der Anwendung fehlt es derzeit an einer Möglichkeit, das Smartphone im Raum zu lokalisieren, was dazu führt das einige Experimente nicht durchführbar sind. Zur Lokalisierung soll Bluetooth eingesetzt werden. Aus der Literaturrecherche geht hervor, das die Abweichung von Bluetooth zur Lokalisierung meist mehrere Meter groß ist. Die Arbeit soll untersuchen ob diese Abweichung auf wenige Zentimeter reduziert werden kann um sie für Experimente nutzbar zu machen. Hierfür sollen sich selbst kalibrierenden Bluetooth-Beacons und die Filterung der Messdaten eingesetzt werden.
## Problemstellung und Motivation
## Zielsetzung [draft]
Die Open-Source-Andwendung phyphox&reg; [@phyphox] ermöglicht es mithilfe der im Smartphone verbauten Sensoren Experimente durchzuführen. Wie aus einem Interview mit dem Entwickler [@MI191_2021, ab: 1 h 30 min] hervor geht, wird die Applikation unter anderem in der Lehre eingesetzt, um physikalische oder chemische Zusammenhänge für die Schüler erlebbar zu machen. Sie ersetzt dabei teils kostenintensive Lehrmaterialien, die nicht an jeder Schule verfügbar sind. Dadurch hilft phyphox&reg; bei der Verbesserung und Verbreitung von physikalischer und chemischer Bildung.
Eine Lokalisierung des Smartphones wird oft zur Navigation eingesetzt. Hierbei kommt es meist nicht auf den letzten Meter bis zum Ziel an. In dieser Arbeit geht es darum, die Genauigkeit der Distanzmessung auf einen eingeschränkten Bereich von rund \SI{2}{\meter} zu verbessern. Dabei sollen verschiedene
Zur Durchführung der Experimente liest die Anwendung die Sensordaten des Smartphones aus und zeichnet diese auf. Durch die Kombination verschiedener Sensoren und Parameter (beispielsweise die Zeit), lassen sich so verschiedenste Experimente realisieren [@Staacks_2018]. Ein Beispiel für ein solches Experiment ist die Ermittlung der Länge eines Pendels. Hierbei wird das Smartphone an das Pendel gehängt und unter Einsatz des Beschleunigungssensors die Richtungsänderung erkannt und somit die Pendelfrequenz ermittelt. Aus der Pendelfrequenz lässt sich dann die Länge des Pendels errechnen.
Aktuell fehlt es der Anwendung an einer Möglichkeit, das Smartphone im Raum zu lokalisieren. Durch die Lokalisierung kann eine Distanzmessung durchgeführt oder der zurückgelegte Weg aufgezeichnet werden. Die Implementierung einer Lokalisierungslösung würde den Umfang an möglichen Experimenten somit erweitern. Beispiele für solche Experimente sind:
Bisherige Lösungen beschäftigen sich überwiegend mit der Indoornavigation. Hier sind die Umwelteinflüsse und Abstände der Referenzpunkte sehr viel Größer.
- **Darstellung Abstandsgesetz:** Das Abstandsgesetz beschreibt den Abfall der Energie von allem, was sich kugelförmig ausbreitet: Als Beispiel sei hier der Schall oder das Licht genannt. Die Oberfläche einer Kugel wächst mit zunehmendem Abstand, dem Radius $r$, zum Quadrat. Die Energie nimmt somit im Quadrat zum Abstand der Quelle ab [@Harten_2012_BOOK, S. 123]. Dieses Gesetz lässt sich mit dem Smartphone in einem Experiment veranschaulichen. Hierbei kann man den Schalldruck mit dem Mikrofon oder die Lichtintensität mit dem Helligkeitssensor messen und zusammen mit der Entfernungsänderung aufzeichnen.
- **Foucault'sche Pendel:** Bei einem Foucault'schen Pendel kann man über den Tagesverlauf beobachten, dass sich die Schwingungsebene des Pendels über den Tag dreht. Hier könnte eine möglichst genaue Aufzeichnung der Schwingungsebene die Rotation über den Versuchszeitraum aufzeichnen [@Lichtenegger_2015a, S. 25 Rotierende Systeme].
Damit diese Erweiterung möglichst vielen Nutzern der Anwendung zugänglich ist, beschränkt sich die Auswahl der Sensoren auf solche, die in möglichst vielen Smartphones verbaut sind oder durch den Einsatz von Bluetooth, welches in allen gängigen Smartphones zu finden ist. Aus diesem Grund soll dies näher betrachtet werden. In der Forschung ist das Interesse an Bluetooth, im Bereich der Innenraumnavigation, groß. Aus der Literaturrecherche geht hervor, dass die Abweichung von Bluetooth bei der Lokalisierung meist mehrere Meter groß ist [@Cho_2015a; @Paterna_2017]. Diese hohe Abweichung ist für die angesprochenen Experimente nicht geeignet. In dieser Arbeit soll untersucht werden, ob die Abweichung durch den Einsatz verschiedener Techniken auf wenige Zentimeter reduziert werden kann, um sie für Experimente nutzbar zu machen.
Das Ziel der Arbeit ist es, die Genauigkeit einer Distanzmessung auf einem eingeschränkten Bereich von rund \SI{2}{\meter} zu erhöhen. Das gewählte Setup soll dabei möglichst einfach umsetzbar sein.
Mithilfe einer Beispielimplementierung soll die Genauigkeit dieses Setups untersucht werden. Zur weiteren Verbesserung der Genauigkeit sollen verschiedene Filtermöglichkeiten implementiert werden. Mit einer genauen Distanzmessung lassen sich beispielsweise neue Experimente mit dem Smartphone umsetzen.
## Zielsetzung
---
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.
Im Smartphone befinden sich mehrere Sensoren, die zur Lokalisierung des Geräts eingesetzt werden können. Da sich die Experimente mit phyphox&reg; meist im Innenraum abspielen, wird GPS für diesen Einsatzzweck nicht betrachtet. Mithilfe von WLAN, Bluetooth, NFC, Magnetometer, Gyroskop, Accelerometer, Kamera und Ultraschall bleiben jedoch viele weitere Möglichkeiten zur Lokalisierung bestehen [@maghdid_comprehensive_2021].
Cho et al. beschreiben in ihrer Arbeit [@Cho_2015a] eine Methode zur Verbesserung der Entfernungsmessung mithilfe von Bluetooth-Beacon und einem sich selbst korrigierendem Systems. Dabei wird eine Abweichung von unter \SI{10}{\percent} auf einer Distanz von bis zu \siacl{1.5}{m}{\meter} erreicht. Es soll untersucht werden, ob dieses System auch zur Positionsbestimmung eingesetzt und dadurch die Abweichung reduziert werden kann. Der zusätzliche Einsatz verschiedener Filtermethoden und eine Kalibrierung sollen auf ihren Einfluss auf die Messergebnisse hin untersucht werden. Der Versuchsaufbau soll so gestaltet sein, dass er in Schulen und anderen Umgebungen leicht nachgestellt werden kann.
Der eigene Beitrag liegt darin, ein neuartiges Konzept zu erarbeiten, welches eine Distanzmessung auf der Skala eines Tischexperiments ermöglicht. Hierzu wird das System von selbst korrigierenden Beacons aus der Arbeit [@Cho_2015a] auf die zweite Dimension ausgeweitet. Entwickelt wird ein Versuchsaufbau mit selbst korrigierenden Beacons, welcher leicht nachvollziehbar ist und die Fehleranfälligkeit verringert. Durch eine an den Versuchsaufbau und das System angepasste Kalibrierung sowie den Einsatz verschiedener Filter soll die Genauigkeit weiter erhöht werden.
Um eine genaue Distanzmessung durchführen zu können muss die Punktuelle Lokalisation eines Gerätes möglich genau sein.
Die angepasste Kalibrierung, die Filter und die Auswirkung der selbst korrigierenden Beacons werden anhand einer experimentellen Basis evaluiert. Dabei werden verschiedene Bewertungskriterien zur Fehlerbewertung herangezogen und die einzelnen Maßnahmen zueinander betrachtet. Die Evaluierung wird exemplarisch anhand eines OnePlus 7t und Bluetooth-Beacons von Puck.js durchgeführt.
Die Distanz beschreibt die Länge einer, durch eine dynamische Bewegung zurückgelegten Strecke. Die Entfernung hingegen beschreibt den Abstand zwischen zwei Punkten im Raum. Die Lokalisierung bezeichnet die Position in einem 2D oder 3D Raum.
## 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 theoretischen Grundlagen und der Stand der Forschung beschrieben. Des Weiteren findet in diesem Kapitel eine Eingrenzung des Themenfelds auf bestimmte Methoden zur Lösung des Problems statt.
## Aufbau der Arbeit
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. Der letzten Abschnitt beschäftigt sich mit einzelnen Aspekten der Auswertung.
# Grundlagen
Im Kapitel \ref{versuchsvorbereitung} werden grundlegende Eigenschaften des Systems vor den eigentlichen Versuchen untersucht. Die durchgeführten Messreihen bieten dabei einen Einblick in das verwendete System und dienen als Grundlage für die Entwicklung des Versuchsaufbaus in Kapitel \ref{versuchsaufbau}. Dazu werden zunächst Messungen im freien, mit einem Abstand von \SI{200}{\meter} zu Wänden und möglichen elektrischen Strahlungsquellen, durchgeführt, um die Störeinflüsse zu reduzieren. Betrachtet werden verschiedene Positionierungen zwischen den eingesetzten Geräten und deren Auswirkung auf die Dämpfung. Abschließend wird eine angepasste Kalibrierung des Systems vorgenommen.
Die Erkenntnisse aus Kapitel \ref{versuchsvorbereitung} dienen als Grundlage für den Versuchsaufbau, der in Kapitel \ref{versuchsaufbau} beschrieben wird. Dabei wird die Anordnung der Geräte in der Versuchsdurchführung bestimmt. Ferner wird auf die Messpunkte des Versuchs sowie auf Besonderheiten bei der Versuchsdurchführung eingegangen.
Die Lokalisierung und Distanzmessung ist ein wichtiges Forschungsfeld. Die Anwendungsfälle reichen von der Aufzeichnung der Trainingsstrecke über die Navigation bis hin zur Verfolgung von Objekten. Bei vielen Anwendungsbereichen ist eine Genauigkeit von wenigen Metern ausreichend. Dies ändert sich, wenn man Experimente auf kleineren Maßstäben wie zum Beispiel einem Tisch, durchführen möchte. Hierbei können wenige Zentimeter Abweichung über das Gelingen des Experiments entscheiden.
In Kapitel \ref{ergebnisse} wird das System anhand von Experimenten bewertet. Sowohl die eingesetzten Methode, als auch die verschiedenen Filter werden gegenübergestellt. Eine abschließende Diskussion zu den Erkenntnisse aus der Voruntersuchung und den Ergebnissen des Versuchs findet sich in Kapitel \ref{diskussion}.
Im Smartphone befinden sich viele verschiedene Sensoren. Einige davon lassen sich zur Lokalisierung des Geräts einsetzen. Die Open-Source-Anwendung phyphox&reg; bietet die Möglichkeit mit dem Smartphone zu Experimentieren. Hierzu verwendet die Anwendung die im Smartphone verbauten Sensoren. Dabei werden die Rohdaten der Sensoren ausgelesen und aufzeichnen. Durch die Kombination verschiedener Sensoren oder Parametern wie die Zeit, lassen sich verschiedenste Experimente realisieren. Ein Experiment ermöglicht es beispielsweise die Länge eines Pendels zu bestimmen. Hierzu wird das Smartphone an das Pendel gehängt und unter Einsatz des Beschleunigungssensors die Richtungsänderung erkannt und somit die Pendelfrequenz ermittelt. Aus der Pendelfrequenz lässt sich dann die Länge des Pendels errechnen.
Eine Zusammenfassung der Arbeit findet sich in Kapitel \ref{zusammenfassung}. Hier werden die Ergebnisse nochmal in der Gesamtheit betrachtet und in Bezug auf den Stand der Technik erörtert. Abschließend wird ein Ausblick auf mögliche Verbesserungen und Erweiterungen des Lokalisierungssystems gegeben.
Ein weiteres Beispiel ist die Messung der Geschwindigkeit eines Fahrstuhls mithilfe des Luftdrucksensors. Hierbei wird die Höhenänderung ins Verhältnis zur Zeit gesetzt um die Geschwindigkeit zu ermitteln. Mit Kenntnis der Höhe eines Stockwerks lässt sich die gemessene Höhenänderung auch in die Anzahl an zurückgelegten Stockwerken umrechnen. Jedoch fehlt der Anwendung bisher eine Möglichkeit zur Lokalisierung des Smartphones.
In diesem Kapitel werden die technischen Grundlagen erörtert und eine abschließende Bewertung durchgeführt. Dabei werden die Grundlagen zunächst allgemein betrachtet und in weiteren Kapiteln vertieft.
# Grundlagen
Im Jahr 2021 wurden unter dem \ac{ieee} 15 Journal veröffentlicht, die sich mit dem Thema Lokalisierung mittels Bluetooth beschäftigen, dies legt ein großes Interesse an diesem Forschungsgebiet nah. Die Anwendungsfälle reichen von der Aufzeichnung von Wegen über die Navigation bis hin zur Verfolgung von Objekten. Bei vielen Anwendungsbereichen ist eine Genauigkeit von wenigen Metern ausreichend. Dies ändert sich, wenn man Experimente auf kleineren Maßstäben wie zum Beispiel einem Tisch durchführen möchte. Hierbei entscheiden wenige Zentimeter Abweichung über das Gelingen des Experiments.
In diesem Kapitel werden die technischen Grundlagen erörtert. Zunächst werden die Techniken zur Lokalisierung besprochen und eine abschließende Bewertung durchgeführt. In den nachfolgenden Abschnitten werden die Grundlagen hinsichtlich dieser Bewertung vertieft.
## 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.
![Auswirkung unterschiedlicher Anzahl von erfassten Wegpunkten. \label{fig:wegpunktcount}](../static/Wegpunkte.pdf){ width=70% }
![Auswirkung der Erfassungshäufigkeit von Wegpunkten. \label{fig:wegpunktcount}](../static/Wegpunkte.pdf)
Wie Abbildung \ref{fig:wegpunktcount} verdeutlicht, wird die Streckenabbildung durch die Anzahl an aufgezeichneten Wegpunkten verbessert. Im linken Teil der Abbildung werden nur drei Messpunkte erfasst, 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.
## Lokalisierung
Zur Bestimmung der einzelnen Wegpunkte ist eine Lokalisierung des Messobjektes erforderlich. Hierbei wird die Position des Objekts im Raum bestimmt. Der Raum kann dabei eindimensional oder mehrdimensional sein [@Strang_2008_BOOK]. Die folgenden Kapitel erörtern verschiedene Verfahren zur Lokalisierung, bei denen die Position des oder der Sender bekannt ist und die Position des Empfängers ermittelt werden soll.
Zur Bestimmung der einzelnen Wegpunkte ist eine Lokalisierung des Messobjektes erforderlich. Hierbei wird die Position des Objekts bestimmt. Die Positionsbestimmung kann dabei eindimensional oder mehrdimensional sein [@Strang_2008_BOOK]. Strang et al. beschreiben in ihrem Buch [@Strang_2008_BOOK] ein und mehrdimensionale Lokalisierungsverfahren, die relevantesten werden in den nachfolgenden Kapiteln näher erläutert.
### Cell-ID
Zu den einfachsten Methoden der Lokalisierung gehört das \ac{cellid}-Verfahren. Dabei haben alle Sender einen eindeutig zugeordneten \ac{id}. Diese \ac{id} wird vom Sender mit ausgestrahlt. Der Empfangsbereich, in dem ein Sender empfangen werden kann, nennt sich Zelle (engl. Cell). Ein Empfänger, der das Signal empfängt, kann dieses durch die \ac{id} eindeutig einem Sender und dessen Zelle zuordnen [@Strang_2008_BOOK]. Dabei ist die Genauigkeit des Verfahrens im wesentlichen von der Reichweite, also der Größe der jeweiligen Zelle, des Senders abhängig.
Zu den einfachsten Methoden der Lokalisierung gehört das \ac{cellid}-Verfahren. Dabei haben alle Sender einen eindeutig zugeordneten \ac{id}. Diese \ac{id} wird vom Sender mit ausgestrahlt. Der Empfangsbereich, in dem ein Sender empfangen werden kann, nennt sich Zelle (engl. Cell). Ein Empfänger dieses Signals kann dieses durch die \ac{id} eindeutig einem Sender und dessen Zelle zuordnen [@Strang_2008_BOOK]. Dabei ist die Genauigkeit des Verfahrens im Wesentlichen von der Reichweite, also der Größe der jeweiligen Zelle, des Senders abhängig.
Die Lokalisierung kann verbessert werden, wenn sich mehrere Sendezellen überlappen. Abbildung \ref{fig:cellid} rechts zeigt, das in diesem Fall die Position des Empfängers auf die Schnittmenge der Sendezellen begrenzt wird, die vom Empfänger empfangen werden. Der rötlich eingefärbte Bereich kennzeichnet das Areal in dem sich der Empfänger befinden kann. Die rote Begrenzung ist die Sendereichweite des Senders.
![Positionsbestimmung durch überschneidende Zellen. \label{fig:cellid}](../static/cellid.pdf){width=80%}
Die Lokalisierung kann verbessert werden, wenn sich mehrere Sendezellen überlappen. Abbildung \ref{fig:cellid} rechts zeigt, das in diesem Fall die Position des Empfängers auf die Schnittmenge der Sendezellen begrenzt wird, die vom Empfänger empfangen werden. Der rötlich eingefärbte Bereich kennzeichnet das Areal, in dem sich der Empfänger befinden kann. Die rote Begrenzung ist die Sendereichweite des Senders, sie ist in der Realität jedoch nicht so homogen wie dargestellt.
![Positionsbestimmung durch überschneidende Zellen. \label{fig:cellid}](../static/cellid.pdf)
### Fingerprinting
Das Fingerprinting ist ein Ansatz, der sich die Mehrwegausbreitung (mehr dazu unter Abschnitt \ref{fehlerkorrekturen}) von Funksignalen zu Nutze macht. Hierbei wird für jeden Empfangsort ein charakteristisches Muster (Fingerabdruck, engl. Fingerprint) aufgezeichnet [@Strang_2008_BOOK]. Dabei gliedert sich dieses Verfahren in zwei Phasen:
Das Fingerprinting ist ein Ansatz, der sich die Mehrwegausbreitung (mehr dazu in Abschnitt \ref{messung-fehler}) von Funksignalen zu Nutze macht. Hierbei wird für jeden Empfangsort ein charakteristisches Muster (Fingerabdruck, engl. Fingerprint) aufgezeichnet [@Strang_2008_BOOK]. Dabei gliedert sich dieses Verfahren in zwei Phasen:
1. Die Offline-Phase: Hierbei werden passende ortsabhängige Parameter bestimmt, durch die eine eindeutige Identifikation eines Ortes möglich ist. Diese Parameter werden für jeden Ort gemessen und in einer Datenbank mit der Ortsinformation verknüpft gespeichert. Die ortsabhängigen Parameter hängen stark von der Umgebung ab. Bei einer Umgebungsänderung müssen diese Parameter aktualisiert werden.
1. Die Offline-Phase: Hierbei werden passende ortsabhängige Parameter bestimmt, durch die eine eindeutige Identifikation eines Ortes möglich ist. Diese Parameter werden für jeden Ort gemessen und in einer Datenbank mit der Ortsinformation verknüpft gespeichert. Die starke Ortsabhängigkeit der Parameter führt dazu, dass bei Umgebungsänderungen diese aktualisiert werden müssen.
2. Die Online-Phase: Dabei misst der Empfänger den Fingerprint, also den Parameter zur Identifikation, und gleicht diesen mit der Datenbank ab. Dazu werden Mustererkennungsalgorithmen benötigt, welche aus der Datenbank den wahrscheinlichsten Fingerprint ermitteln und damit den wahrscheinlichsten Ort herausgeben.
### Triangulation
Die Triangulation basiert auf der Ermittlung des Einfallswinkels der eingehenden Signale. Dieses Verfahren wird auch \ac{aoa} genannt. Die Messung des Einfallswinkels ist mit gerichteten Antennenarrays oder Laufzeitmessungen zwischen mehreren Antennen möglich. Für den einfachen Fall einer Messung kann keine Entfernungsinformation gewonnen werden. Erst die Messungen des Einfallswinkels mehrerer Sender führt zu einem linearen Gleichungssystem, dessen Lösung die Position des Empfängers bestimmt [@Strang_2008_BOOK].
Die Triangulation basiert auf der Ermittlung des Einfallswinkels der eingehenden Signale. Dieses Verfahren wird auch \ac{aoa} genannt. Die Messung des Einfallswinkels ist mit gerichteten Antennenarrays oder Laufzeitmessungen zwischen mehreren Antennen möglich. Für den einfachen Fall einer Messung, bei der nur ein Sender und Empfer beteiligt sind, kann keine Entfernungsinformation gewonnen werden. Erst die Messungen des Einfallswinkels von zwei Sendern führt zu einem linearen Gleichungssystem, dessen Lösung die Position des Empfängers bestimmt [@Strang_2008_BOOK]. Abbildung \ref{fig:aoa} zeigt dies beispielhaft mit zwei Sender und ein Empfänger.
![2D Positionierung über \acl{aoa}. \label{fig:aoa}](../static/aoaPositioning.pdf)
### Trilateration
Bei der Lateration handelt es um ein Methode zur Positionsbestimmung bei der die Entfernung zwischen Sender und Empfänger ermittelt wird. Durch die Entfernung zwischen Sender und Empfänger entsteht im zweidimensionalen Bereich ein Kreis um den Sender. Der Empfänger befindet sich dann auf einem Punkt dieser Kreisbahn [@Strang_2008_BOOK]. Um eine eindeutige Position zu ermitteln sind mindestens drei Sender notwendig, weswegen diese Methode auch Trilateration genannt wird. Abbildung \ref{fig:lateration} zeigt das Verfahren: Die Position des Empfängers wurde zur besseren Darstellung nur eingekreist, er befindet sich auf dem Schnittpunkt der im inneren des gestrichelten schwarzen Kreis zu erkennen ist. Der Abstand zwischen Sender und Empfänger $r$ entspricht dem Radius des Kreises um den Sender. Der Empfänger befindet sich auf einem unbestimmten Punkt der Kreislinie. Wird nun ein weiterer Sender hinzugefügt, so definieren die jeweiligen Schnittpunkte der Kreise die mögliche Position des Empfängers. Bei drei Sendern gibt es im optimalen Fall nur einen Schnittpunkt bei dem alle drei Kreislinien aufeinander treffen.
Bei der Lateration handelt es sich um eine Methode zur Positionsbestimmung, bei der die Entfernung zwischen Sender und Empfänger ermittelt wird. Durch die Entfernung zwischen Sender und Empfänger entsteht im zweidimensionalen Bereich ein Kreis um den Sender. Der Empfänger befindet sich dann auf einem Punkt dieser Kreisbahn [@Strang_2008_BOOK]. Um eine eindeutige Position zu ermitteln, sind mindestens drei Sender notwendig, weswegen diese Methode auch Trilateration genannt wird. Abbildung \ref{fig:lateration} zeigt das Verfahren: Die Position des Empfängers wurde zur besseren Darstellung nur eingekreist, er befindet sich auf dem Schnittpunkt der drei Kreise innerhalb des gestrichelten schwarzen Kreises. Der Abstand zwischen Sender und Empfänger $r$ entspricht dem Radius des Kreises um den Sender. Der Empfänger befindet sich auf einem unbestimmten Punkt der Kreislinie. Wird nun ein weiterer Sender hinzugefügt, so definieren die jeweiligen Schnittpunkte der Kreise die mögliche Position des Empfängers. Bei drei Sendern gibt es im optimalen Fall nur einen Schnittpunkt, bei dem alle drei Kreislinien aufeinander treffen.
![2D-Positionierung mit der Trilateration \label{fig:lateration}](../static/lateration.pdf)
![2D-Positionierung mit der Trilateration. \label{fig:lateration}](../static/lateration.pdf)
Formel \ref{eq:lgsTrilateration} zeigt das allgemeine lineare Gleichungssystem zur Berechnung der Position $p_x$ und $p_y$ bei der Trilateration [@Noertjahyana_2017]. Dabei beschreibt $x_i$ und $y_i$ die Position der Sender $i=1,2,3$ und $r_i$ den gemessenen Abstand zwischen Sender $i$ und Empfänger.
Formel \ref{eq:lgsTrilateration} zeigt das allgemeine quadratische Gleichungssystem zur Berechnung der Position $p_x$ und $p_y$ bei der Trilateration [@Noertjahyana_2017]. Dabei beschreibt $x_i$ und $y_i$ die Position der Sender $i=1,2,3$ und $r_i$ den gemessenen Abstand zwischen Sender $i$ und Empfänger.
\begin{equation}\label{eq:lgsTrilateration}
\begin{aligned}
@ -88,7 +99,9 @@ Formel \ref{eq:lgsTrilateration} zeigt das allgemeine lineare Gleichungssystem z
\end{aligned}
\end{equation}
Im weiteren werden die Verfahren zur Ermittlung der Entfernung zwischen Sender und Empfänger vorgestellt.
Strang et al. haben verschiedene Verfahren zur Distanzberechnung anhand von Mobilfunkzellen vorgestellt [@Strang_2008_BOOK], diese werden im Folgenden allgemein beschrieben:
#### Laufzeitmessung {-}
@ -96,25 +109,25 @@ Die Laufzeitmessung, besser bekannt unter dem englischen Begriff \ac{toa}, beruh
#### Laufzeitdifferenzmessung {-}
Bei der Laufzeitdifferenzmessung, auch bekannt als \ac{tdoa}, wird die Differenz der Signallaufzeit zweier Sender am Empfänger gemessen. Der Vorteil gegenüber dem \ac{toa}-Verfahren liegt darin, dass keine Zeitsynchronizität zwischen dem Sender und Empfänger hergestellt werden muss. Die Laufzeitdifferenzen zwischen den Signalen zweier Sender entspricht damit einer Differenz der Distanz vom Empfänger zu den beiden Sendern [@Strang_2008_BOOK].
Bei der Laufzeitdifferenzmessung, auch bekannt als \ac{tdoa}, wird die Differenz der Signallaufzeit zweier Sender am Empfänger gemessen. Der Vorteil gegenüber dem \ac{toa}-Verfahren liegt darin, dass keine Zeitsynchronizität zwischen dem Sender und Empfänger hergestellt werden muss. Die Laufzeitdifferenzen zwischen den Signalen zweier Sender entspricht damit der Differenz der Distanz vom Empfänger zu den beiden Sendern [@Strang_2008_BOOK].
#### Signalstärkemessung {-}
Die Messung der Signalstärke, auch bekannt als \ac{rss} ist ein gängiges Verfahren bei der Lokalisierung mithilfe von Funksystemen [@Chen_2019; @Davidson_2017a; @Ye_2019]. Hierbei wird die Empfangsleistung und damit die Dämpfung des Signals am Empfänger gemessen. Die Signaldämpfung hängt dabei unter anderem von der Distanz zwischen Sender und Empfänger ab. Zur Berechnung der Entfernung ist die Kenntnis über den mathematischen Zusammenhang zwischen Entfernung und Signaldämpfung notwendig. Diese Ausbreitungsmodelle sind für viele Szenarien bekannt [@Strang_2008_BOOK].
### Fazit
### Bewertung
Im Folgenden sollen die eingangs erwähnten Verfahren zur Lokalisierung hinsichtlich der Fragestellung betrachtet werden. Dabei liegt ein besonderes Augenmerk auf der möglichen Ortsauflösung und dem Aufwand, mit dem das Verfahren umgesetzt werden kann.
Im Folgenden sollen die eingangs erwähnten Verfahren zur Lokalisierung hinsichtlich der Fragestellung betrachtet werden. Dabei liegt ein besonderes Augenmerk auf dem möglichen räumliches Auflösevermögen und dem Aufwand, mit dem das Verfahren implementiert und angewendet werden kann. Tabelle \ref{tab:location} bietet eine Übersicht der Bewertung der einzelnen Verfahren.
Das \ac{cellid}-Verfahren hat eine sehr geringe Ortsauflösung. Auch mit einer hohen Anzahl an Sendern bleibt die ermittelte Position nur ein diffuses Areal anstelle einer punktgenauen Lokalisierung. Der Aufwand der Umsetzung hingegen ist als eher gering einzuschätzen.
Das \ac{cellid}-Verfahren hat eine sehr geringes Auflösevermögen. Auch mit einer hohen Anzahl an Sendern bleibt die ermittelte Position nur ein diffuses Areal anstelle einer punktgenauen Lokalisierung. Der Aufwand der Umsetzung hingegen ist als eher gering einzuschätzen.
Beim Fingerprinting-Verfahren ist die Ortsauflösung unter anderem vom betriebenen Aufwand bei der Einrichtung abhängig. Auch die gewählten Parameter zum Erstellen des Fingerabdrucks und die Beständigkeit der Umgebung haben großen Einfluss auf die Ortsauflösung. Daher muss die Einrichtung bei Veränderungen an der Umgebung erneut durchgeführt werden, was den Aufwand für diese Methode stark erhöht.
Beim Fingerprinting-Verfahren ist das Auflösungsvermögen unter anderem vom betriebenen Aufwand bei der Einrichtung abhängig. Auch die gewählten Parameter zum Erstellen des Fingerabdrucks und die Beständigkeit der Umgebung haben großen Einfluss auf das Auflösungsvermögen. Daher muss die Einrichtung bei Veränderungen an der Umgebung erneut durchgeführt werden, was den Aufwand für diese Methode stark erhöht.
Das \acl{aoa}-Verfahren lässt sich nur umsetzen, wenn das Gerät die benötigte Hardware zur Ermittlung des Eintrittswinkel mitbringt. Die Ortsauflösung ist dann jedoch nur von den Messfehlern abhängig und kann somit zunächst als sehr hoch eingestuft werden. Der Aufwand ist jedoch, passende Hardware vorausgesetzt, relativ gering.
Das \acl{aoa}-Verfahren lässt sich nur umsetzen, wenn das Gerät die benötigte Hardware zur Ermittlung des Eintrittswinkels mitbringt. Das Auflösungsvermögen ist dann nur von den Messfehlern, beschrieben in Abschnitt \ref{messung-fehler}, abhängig und kann somit zunächst als sehr hoch eingestuft werden. Der Aufwand ist jedoch, passende Hardware vorausgesetzt, relativ gering.
Für die Trilateration stehen mehrere Verfahren zur Auswahl. Diese unterscheiden sich hauptsächlich im Aufwand. Die Ortsauflösung ist, wie schon beim \ac{aoa}-Verfahren, abhängig von den Messfehlern der eingesetzten Verfahren. Dabei wird beim \ac{rss}-Verfahren eine etwas geringere Ortsauflösung angenommen, da die Entfernung aufgrund der Signalstärke nicht nur durch Umwelteinflüsse, sondern auch durch das verwendete Modell beeinflusst wird. Der Aufwand für \ac{toa} und \ac{tdoa} wird mit sehr hoch angenommen, da eine genaue Zeitmessung spezielle Hardware voraussetzt. Diese Hardware ist in Smartphones nicht verbaut.
Für die Trilateration stehen mehrere Verfahren zur Auswahl. Diese unterscheiden sich hauptsächlich im Aufwand. Das Auflösungsvermögen ist, wie schon beim \ac{aoa}-Verfahren, abhängig von den Messfehlern der eingesetzten Verfahren. Dabei wird beim \ac{rss}-Verfahren ein etwas geringeres Auflösungsvermögen angenommen, da die Entfernung aufgrund der Signalstärke nicht nur durch Umwelteinflüsse, sondern auch durch das verwendete Modell beeinflusst wird. Der Aufwand für \ac{toa} und \ac{tdoa} wird mit sehr hoch angenommen, da eine genaue Zeitmessung spezielle Hardware voraussetzt. Diese Hardware ist in Smartphones nicht zu finden.
| Verfahren | mögliche Ortsauflösung | Aufwand |
| Verfahren | mögliches Auflösungsvermögen | Aufwand |
| ------- | ------------- | ------- |
| \ac{cellid} | sehr gering | gering |
| Fingerprinting | stark schwankend | sehr hoch |
@ -122,54 +135,62 @@ Für die Trilateration stehen mehrere Verfahren zur Auswahl. Diese unterscheiden
| \acl{toa} | sehr hoch | sehr hoch |
| \acl{tdoa} | sehr hoch | sehr hoch |
| \acl{rss} | hoch | gering |
: Übersicht und Bewertung der Verfahren zur Lokalisierung. \label{tab:location}
: Übersicht und Bewertung der Verfahren zur Lokalisierung nach räumlichen Auflösungsvermögen und Umsetzungsaufwand. \label{tab:location}
## Smartphonesensoren
## Smartphone-Sensoren
Aktuelle Smartphones besitzen eine Vielzahl von Sensoren, um mit ihrer Umwelt zu interagieren. Viele der Sensoren lassen sich alleine oder in Kombination zur Entfernungsmessung oder Distanzmessung einsetzen [@Subbu_2013; @Chen_2019; @Li_2012; @SosaSesma_2016].
Aktuelle Smartphones besitzen eine Vielzahl von Sensoren, welche die Interaktion mit der Umwelt durch Messung von Umgebungsvariablen ermöglichen. Viele der Sensoren lassen sich alleine oder in Kombination zur Entfernungsmessung oder Distanzmessung einsetzen [@Subbu_2013; @Chen_2019; @Li_2012; @SosaSesma_2016].
Die Entfernung zu einem Referenzpunkt wie einer Wand, lässt sich zum Beispiel durch den Einsatz eines Sonars messen. Für die Umsetzung kommen das Mikrofon und der Lautsprecher des Smartphones in Frage [@Graham_2015]. In dieser Arbeit geht es jedoch um einen flexibleren Einsatzbereich, bei dem eine Lokalisierung zwingend erforderlich ist.
Die Entfernung zu einem Referenzpunkt, wie einer Wand, lässt sich zum Beispiel durch den Einsatz eines Sonars messen. Für die Umsetzung kommen das Mikrofon und der Lautsprecher des Smartphones in Frage [@Graham_2015]. Dies entspricht einer eindimensionalen Positionsbestimmung, deren Einsatzbereich für diese Arbeit zu unflexibel ist.
Zu den bekanntesten Sensoren zur Lokalisierung gehört das \ac{gps}. Hierbei wird mit Hilfe von Satelliten die Position des Smartphones ermittelt. Dies ermöglicht die Ortung außerhalb von Gebäuden mit einer Genauigkeit von wenigen Metern [@Bajaj_2002a]. Da die Messungen jedoch nicht auf den Außenbereich beschränkt sein sollen, wird \ac{gps} nicht näher betrachtet.
Zu den bekanntesten Sensoren zur Lokalisierung gehört das \ac{gps}. Hierbei wird mithilfe von Satelliten die Position des Smartphones ermittelt. Dies ermöglicht die Ortung außerhalb von Gebäuden mit einer Genauigkeit von wenigen Metern [@Bajaj_2002a]. Da die Messungen jedoch nicht auf den Außenbereich beschränkt sein sollen, wird \ac{gps} nicht näher betrachtet.
Die Innenraum-Lokalisierung und Navigation ist ein Forschungsfeld mit großem Interesse. Viele Arbeiten basieren auf dem vom \ac{ieee} festgelegten Standard IEEE 802.11, besser bekannt als \ac{wifi} [@Chen_2019]. Für den Einsatz von \ac{wifi} zur Lokalisierung muss zunächst eine Karte (siehe Kapitel \ref{fingerprinting}) mit der Funkstärkenverteilung erstellt werden [@Davidson_2017a]. Dies bedeutet einen hohen zeitlichen Aufwand bei der Einrichtung und eine geringe Flexibilität im Einsatz.
Die Innenraum-Lokalisierung und Navigation ist ein Forschungsfeld mit großem Interesse. Viele Arbeiten basieren auf dem vom \ac{ieee} festgelegten Standard IEEE 802.11, auch bekannt als \ac{wifi} [@Chen_2019]. Für den Einsatz von \ac{wifi} zur Lokalisierung muss zunächst eine Karte (siehe Kapitel \ref{fingerprinting}) mit der Funkstärkenverteilung erstellt werden [@Davidson_2017a]. Dies bedeutet einen hohen zeitlichen Aufwand bei der Einrichtung und eine geringe Flexibilität im Einsatz.
Ein weiterer Sensor, der zur Lokalisierung in Innenräumen häufig betrachtet wird, ist Bluetooth. Dieser ist weit verbreitet und kostengünstiger als \ac{wifi} [@Ye_2019]. Des Weiteren wurde mit \ac{ble} ein Standard entwickelt, der sehr stromsparend ist. Im weiteren Verlauf der Arbeit soll Bluetooth näher betrachtet werden.
Ein weiterer Sensor, der zur Lokalisierung in Innenräumen häufig betrachtet wird, ist Bluetooth. Dieser ist genauso wie \ac{wifi} weit verbreitet, dabei allerdings kostengünstiger [@Ye_2019]. Im weiteren Verlauf der Arbeit soll Bluetooth näher betrachtet werden.
## Bluetooth
Bei Bluetooth handelt es sich um einen Industriestandard, der in den 1990er-Jahren durch die \ac{sig} entwickelt und eingeführt wurde. Die Technologie dient seither zur Datenübertragung zwischen verschiedenen Endgeräten mittels Funktechnik. Die Reichweite hängt maßgeblich von der Umgebung und der Sendeleistung ab und kann zwischen \SIrange{1}{200}{\meter} betragen. Bluetooth arbeitet im lizenzfreiem \ac{ism} von \SIrange{2,402}{2,480}{\giga\Hz}, wodurch es weltweit zulassungsfrei betrieben werden darf. Im Jahr 2020 wurde Bluetooth in 4 Milliarden verkauften Produkten verbaut [@BluetoothSIG_2021]. Darunter befinden sich Smartphones, Computer, medizinische Geräte sowie Unterhaltungsmedien und vieles mehr. Dies und die Tatsache das die \ac{sig} im Jahr 2021 36.645 Mitglieder aufweist [@BluetoothSIG_2021], lässt schlussfolgern, das Bluetooth ein etablierter Standard für den Austausch von Daten ist.
Bei Bluetooth handelt es sich um einen Industriestandard, der in den 1990er-Jahren durch die \ac{sig} entwickelt und eingeführt wurde. Die Technologie dient seither zur Datenübertragung zwischen verschiedenen Endgeräten mittels Funktechnik. Die Reichweite hängt maßgeblich von der Umgebung und der Sendeleistung ab und kann zwischen \SI{1}{\meter} und \SI{200}{\meter} betragen. Bluetooth arbeitet im lizenzfreiem \ac{ism} von \siacl{2.402}{ghz}{\giga\Hz} bis \SI{2,480}{\giga\Hz}, wodurch es weltweit zulassungsfrei betrieben werden darf. Im Jahr 2020 wurde Bluetooth in 4 Milliarden verkauften Produkten verbaut [@BluetoothSIG_2021]. Darunter befinden sich Smartphones, Computer, medizinische Geräte sowie Unterhaltungsmedien und vieles mehr. Dies und die Tatsache das die \ac{sig} im Jahr 2021 36.645 Mitglieder aufweist [@BluetoothSIG_2021], lässt schlussfolgern, das Bluetooth ein etablierter Standard für den Austausch von Daten ist.
### 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.
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 könnte. 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.
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, hierunter zählen: Ein reduzierter Stromverbrauch und die kurze Aufbauzeit einer Übertragung. 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.
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].
Nach einer Sichtung des Sortiments der Onlineshops Amazon und Reichelt am 18.05.2021 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 und seine Spezifikationen [@BluetoothSIG_2014] näher betrachtet.
\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.
Durch die stromsparenden Eigenschaften von \ac{ble} wird es häufig auch in kleinen Geräten eingesetzt, welche Daten ohne aktive Verbindung via Bluetooth übertragen. 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} 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)
Ein Advertising-Paket enthält 31 Bytes, die vom Nutzer frei definiert werden können. Dabei wird es jeweils auf allen drei Advertising-Kanälen versendet. Das Senden benötigt dabei weniger als \SI{10}{\milli\second}. Das Sendeintervall kann zwischen \SI{20}{\milli\second} und \SI{10.24}{\second} eingestellt werden. Tabelle \ref{tab:adpackettype} zeigt die Advertising-Pakettypen; bei Typen die keine Verbindung zulassen ist das minimal mögliche Sendeintervall auf \SI{100}{\milli\second} beschränkt [@BluetoothSIG_2014, Vol. 2 Part E S. 968 und Vol. 3 Part C S. 389].
\ac{ble} sendet im \SI{2.4}{\giga\Hz} \ac{ism}, welches in 40 physikalische Kanäle zu je \siacl{2}{mhz}{\mega\Hz} aufgeteilt wird. 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.
| Advertising \ac{pdu} | Maximale adv Datenlänge | Scan Request Erlaubt | Verbindung Erlaubt |
| ---------------- | ------------- | ----------- | -------- |
| ADV_IND | 31 bytes | ja | ja |
| ADV_DIRECT_IND | 6 bytes | nein | ja |
| ADV_SCAN_IND | 31 bytes | ja | nein |
| ADV_NONCONN_IND | 31 bytes | nein | nein |
: Übersicht über die verschiedenen Pakettypen von Advertising-Paketen. \label{tab:adpackettype}
Ein Advertising-Paket enthält 31 Bytes, die vom Nutzer frei definiert werden können. Dabei wird es jeweils auf allen drei Advertising-Kanälen versendet. Das Senden benötigt dabei weniger als \num{10} \acl{ms}n (\si{\milli\second}). Das Sendeintervall kann zwischen \SI{20}{\milli\second} und \num{10.24} \acl{s}n (\si{\second}) eingestellt werden. Tabelle \ref{tab:adpackettype} zeigt die Advertising-Pakettypen; bei Typen die keine Verbindung zulassen ist das minimal mögliche Sendeintervall auf \SI{100}{\milli\second} beschränkt [@BluetoothSIG_2014, Vol. 2 Part E S. 969 und Vol. 3 Part C S. 389].
- Packetaufbau beschreiben!!
\begin{longtable}[]{@{}llll@{}}
\caption{Übersicht über die verschiedenen Pakettypen von
Advertising-Paketen. \label{tab:adpackettype}}\tabularnewline
\toprule
\begin{tabular}[c]{@{}l@{}}Advertising- \\ \ac{pdu}\end{tabular} & \begin{tabular}[c]{@{}l@{}}Maximale\\ Datenlänge\end{tabular} & \begin{tabular}[c]{@{}l@{}}Scan Request\\Erlaubt\end{tabular} & \begin{tabular}[c]{@{}l@{}}Verbindung\\ Erlaubt\end{tabular} \\
\midrule
\endfirsthead
\toprule
\begin{tabular}[c]{@{}l@{}}Advertising- \\ \ac{pdu}\end{tabular} & \begin{tabular}[c]{@{}l@{}}Maximale\\ Datenlänge\end{tabular} & \begin{tabular}[c]{@{}l@{}}Scan Request\\Erlaubt\end{tabular} & \begin{tabular}[c]{@{}l@{}}Verbindung\\ Erlaubt\end{tabular} \\
\midrule
\endhead
ADV\_IND & 31 bytes & ja & ja \\
ADV\_DIRECT\_IND & 6 bytes & nein & ja \\
ADV\_SCAN\_IND & 31 bytes & ja & nein \\
ADV\_NONCONN\_IND & 31 bytes & nein & nein \\
\bottomrule
\end{longtable}
### 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 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 die 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$. Die $txPower$ entspricht dabei der Empfangsstärke auf \SI{1}{\meter} Entfernung und $P_{R_{x}}$ die empfangene Signalstärke des Beacons. Die $txPower$ wird häufig vom Hersteller angegeben und ist somit ein bekannter, fester Wert. Die Konstanten $A$, $B$ und $C$ sind empirisch ermittelte Werte, die für jede Hardwarekombination unterschiedlich sind. Standardmäßig kommen in der Android Beacon library die folgenden, auf das Smartphone Nexus 4 kalibrierten, Faktoren zum Eingesetzt: $A = 0,89976$, $B = 7,7095$ und $C = 0,111$.
\begin{equation}\label{eq:beacondistance}
\begin{aligned}
@ -177,269 +198,407 @@ d = A \cdot \left( \cfrac{P_{R_{x}}}{txPower} \right)^{B} + C
\end{aligned}
\end{equation}
Da die Signalstärke Schwankungen unterliegt, mehr dazu in Abschnitt \ref{messung-fehler-quellen-und-korrekturen}, führt die Messung der Entfernung mit einem festen Wert für $txPower$ zu größeren Abweichungen. Dies kann nach [@Cho_2015a] durch den Einsatz eines Kalibrierungs-Beacon im Abstand von \SI{1}{\meter} zum zu messenden Beacon optimiert werden. Dabei misst der Kalibrierungs-Beacon die aktuelle Signalstärke und übermittelt diese an den Scanner. Bei der Berechnung der Entfernung wird nun die $txPower$ durch den aktuell gemessenen \ac{rssi}-Wert auf \SI{1}{\meter}, $scPower$ ersetzt.
Da die Signalstärke Schwankungen unterliegt, mehr dazu im nächsten Kapitel \ref{messung-fehler}, führt die Messung der Entfernung mit einem festen Wert für $txPower$ zu größeren Abweichungen. Dies kann nach Cho et al. [@Cho_2015a] durch den Einsatz eines Kalibrierungs-Beacons im Abstand von \SI{1}{\meter} zum zu messenden Beacon optimiert werden. Dabei misst der Kalibrierungs-Beacon die aktuelle Signalstärke und übermittelt diese an den Scanner. Bei der Berechnung der Entfernung wird nun in Formel \ref{eq:beacondistance-scPower} anstelle der $txPower$ der aktuell gemessenen \ac{rssi}-Wert auf \SI{1}{\meter}, beschrieben als $scPower$, eingesetzt.
\begin{equation}\label{eq:beacondistance}
\begin{equation}\label{eq:beacondistance-scPower}
\begin{aligned}
d = A \cdot \left( \cfrac{P_{R_{x}}}{sxPower} \right)^{B} + C
d = A \cdot \left( \cfrac{P_{R_{x}}}{scPower} \right)^{B} + C
\end{aligned}
\end{equation}
## Messung, Fehler-Quellen und Korrekturen [draft]
## Messung, Fehlerquellen 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
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 kommt anstelle des wahren Werts der Referenzwert zum Einsatz. Dieser Referenzwert wird mithilfe bekannter, möglichst genauer Messmethoden ermittelt. Für die Entfernung sind dies beispielsweise Maßbänder oder digitale Entfernungsmessgeräte. Dabei kommt es sowohl beim Ablesen als auch beim Anhalten des Maßbandes zu Ungenauigkeiten, was die Ermittlung des wahren Werts unmöglich macht. In den folgenden Kapiteln und insbesondere in den Formeln wird aus diesem Grund nicht der wahre Wert, sondern der Referenzwert verwendet. Dieser Referenzwert stimmt dabei ungefähr mit dem wahren Wert überein [@jcgm_2012, Nr. 5.18].
### Arten von Messfehler
### Arten von Messfehlern
Messfehler werden in systemische und zufällige Fehler unterschieden:
Messfehler werden in systematische und zufällige Fehler unterschieden:
**Systemische Fehler** sind vorhersagbar und somit auch korrigierbar. Sie unterteilen sich in statische Messfehler und dynamische Messfehler. Statische Messfehler haben einen konstanten Betrag und ein bestimmtes Vorzeichen, dynamische Messfehler hingegen resultieren in einer zeitliche Veränderung des Messwertes einer Messreihe. Da systemische Fehler prinzipiell korrigierbar sind, sollten sie nach Möglichkeit im ersten Schritt der Messwertverarbeitung berichtigt werden [@Lerch_2006_BOOK, S. 90].
**Systematische Fehler** sind vorhersagbar und somit auch korrigierbar. Sie unterteilen sich in statische Messfehler und dynamische Messfehler. Statische Messfehler haben einen konstanten Betrag und ein bestimmtes Vorzeichen, dynamische Messfehler hingegen resultieren in einer zeitlichen Veränderung des Messwertes einer Messreihe. Da systematische Fehler prinzipiell korrigierbar sind, sollten sie nach Möglichkeit im ersten Schritt der Messwertverarbeitung berichtigt werden [@Lerch_2006_BOOK, S. 90].
**Zufällige Messfehler** lassen sich hingegen nicht unmittelbar erfassen. Die Abweichungen vom wahren Wert kann nur in Form von Wahrscheinlichkeitsaussagen beschrieben werden. Um diesen Fehlertyp zu beurteilen, müssen möglichst viele Messungen durchgeführt werden. Dabei ergibt sich eine Normalverteilung nach Gauß. Das Normalverteilungsgesetz für zufällige Fehler ist dabei wie folgt charakterisiert: positive und negative Abweichungen treten gleich häufig auf, die Wahrscheinlichkeit des Auftretens einer Abweichung nimmt mit zunehmender Größe der Abweichung ab [@Lerch_2006_BOOK, S. 91].
**Zufällige Messfehler** lassen sich hingegen nicht unmittelbar erfassen. Die Abweichungen vom wahren Wert können nur in Form von Wahrscheinlichkeitsaussagen beschrieben werden. Um diesen Fehlertyp zu beurteilen, müssen möglichst viele Messungen durchgeführt werden. Nach dem zentralen Grenzwertsatz ergibt sich hierbei in der Regel eine Normalverteilung nach Gauß. Das Normalverteilungsgesetz für zufällige Fehler ist dabei wie folgt charakterisiert: positive und negative Abweichungen treten gleich häufig auf, die Wahrscheinlichkeit des Auftretens einer Abweichung nimmt mit zunehmender Größe der Abweichung ab [@Lerch_2006_BOOK, S. 91].
Nachfolgend sollen Beispiele für die beiden Fehlerarten genannt und beschrieben werden. Tabelle \ref{tab:error} gibt eine Übersicht über die verschiedenen Fehler.
#### Beispiele systemische Fehler {-}
#### Beispiele systematischer Fehler {-}
- **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.
- **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].
- **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.
- **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.
- **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 eines 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 können zur Mehrfachmessung eines Signals führen.
- **Smartphone-Gehäuse**: Wie 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, kann die Signalstärke beeinflussen. Da die meisten Hüllen aus Plastik bestehen, ist dieser Effekt jedoch als gering anzusehen.
- **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, vergleichend hierzu die Abbildung der Empfangscharakteristik in [@Raytac_2021, S. 30 Antenna].
- **RSSI Sensor**: Die Signalmessung wird durch den Bluetooth Chip durchgeführt. Dieser nutzt einen 8-bit \ac{adw}, 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 Hersteller ab.
- **Versuchsaufbau**: Auch der Aufbau des Versuchs kann zu Fehlern im System führen. Dieser systematische Fehler kann meist nur durch die Wiederholung der Versuche korrigiert werden.
#### 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.
- **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 |
| ---------- | -------------------- | --------- |
| Hindernisse | physikalisch | systemisch |
| Reflektionen | physikalisch | systemisch |
| Smartphone-Gehäuse | physikalisch | systemisch |
| Antennenanordnung | physikalisch, maschinell | systemisch |
| RSSI Sensor | Implementierung | systemisch |
| Versuchsaufbau | human | systemisch |
| Funkrauschen | physikalisch | zufällig |
| Bluetooth Channel Rotation | Implementierung | systemisch/zufällig |
: Übersicht der Fehler, Fehlerarten und Auslöser \label{tab:error}
- **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, dass 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 \ac{rssi} je nach verwendetem Advertising-Kanal [@Paterna_2017]. Dies ist prinzipiell ein systematischer 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 | Fehlerart | Ursache |
| ---------- | --------- | -------------------- |
| Hindernisse | systematisch | physikalisch |
| Reflektionen | systematisch | physikalisch |
| Smartphone-Gehäuse | systematisch | physikalisch |
| Antennenanordnung | systematisch | physikalisch, konstruktiv |
| RSSI Sensor | systematisch | Implementierung |
| Versuchsaufbau | systematisch | Mensch |
| Funkrauschen | zufällig | physikalisch |
| Bluetooth Channel Rotation | systematisch/zufällig | Implementierung |
: Übersicht der Fehler, Fehlerarten und Ursache \label{tab:error}
### Genauigkeit einer Messung
Die Genauigkeit einer Messung wird durch die Richtigkeit und die Präzision beschrieben. Dabei hat ein Messwert eine hohe Genauigkeit, wenn sowohl eine hohe Richtigkeit, als auch eine hohe Präzision vorliegt.
Die Richtigkeit lässt eine Aussage über die Nähe von Einzelmesswerte zum tatsächlichen Messwert zu. Bei einer guten Richtigkeit stimmen die gemessenen Werte im Mittel mit dem tatsächlichen Messwert nahezu überein. In Formel \ref{eq:richtigkeit} wird die Richtigkeit mathematisch beschrieben. Sie wird dabei durch den Betrag der Differenz aus dem Mittelwert $\overline{x}$ der gemessenen Werte und dem Referenzwert $x_{Ref}$ beschrieben.
![Zusammenhang zwischen Richtigkeit und Präzision. \label{fig:genauigkeit}](../static/genauigkeit.pdf)
Die Richtigkeit lässt eine Aussage über die Nähe von Einzelmesswerten zum tatsächlichen Messwert zu. Bei einer guten Richtigkeit stimmen die gemessenen Werte im Mittel mit dem tatsächlichen Messwert nahezu überein. In Formel \ref{eq:richtigkeit} wird die Richtigkeit mathematisch beschrieben. Sie wird dabei durch den Betrag der Differenz aus dem Mittelwert $\overline{x}$ der gemessenen Werte und dem Referenzwert $R$ beschrieben.
\begin{equation}\label{eq:richtigkeit}
\text{Richtigkeit}=|\overline{x}-x_{Ref}|
\text{Richtigkeit}=|\overline{x}-R|
\end{equation}
Die Präzision beschreibt die Streuung der Messwerte um den Mittelwert. Je näher die Messwerte beieinander liegen, desto höher die Präzision. Die Streuung wird dabei durch zufällige Fehler ausgelöst und kann durch die relative Standardabweichung ausgedrückt werden.
Die Abhängigkeit von Präzision und Richtigkeit wird in Abbildung \ref{fig:genauigkeit} verdeutlicht. Dabei liegt der tatsächliche Wert jeweils im Zentrum der Kreise. Nur das Szenario rechts oben in der Abbildung hat eine hohe Genauigkeit, da es sowohl eine hohe Präzision, als auch eine hohe Richtigkeit aufweist. Alle anderen Szenarien haben eine geringe Genauigkeit, können jedoch eine hohe Präzision oder eine hohe Richtigkeit oder keins von beidem (unten links) aufweisen.
![Zusammenhang zwischen Richtigkeit und Präzision \label{fig:genauigkeit}](../static/genauigkeit.pdf)
### Fehlerbewertung
- 1D und 2D Raum
- Formeln
- Wozu macht man das?
- Welchen Wert hat die Fehlerbewertung idr?
Eine weitere Kenngröße, die eine Aussage über die Qualität der Messung liefert, ist der Messfehler [@Lerch_2006_BOOK, S. 89]. Er wird unterteilt 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.
### Filter
\begin{equation}\label{eq:abs-fehler}
F=M-R
\end{equation}
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.
Der relative Fehler $f$ in Formel \ref{eq:rel-fehler} wird in Prozent angegeben und ermittelt sich aus dem absoluten Fehler $F$ bezogen auf den Referenzwert $R$.
#### Gaußfilter
\begin{equation}\label{eq:rel-fehler}
f=\cfrac{F}{R} \cdot 100
\end{equation}
#### Gewichteter 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 gemessenen 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 relative Abweichung $f_{loc}$ in Formel \ref{eq:loc-fehler}.
#### Kallman-Filter
\begin{equation}\label{eq:abstand}
d=F_{loc}=\sqrt{(M_x-R_x)^2 + (M_y-R_y)^2}
\end{equation}
\begin{equation}\label{eq:loc-fehler}
f_{loc}=\sqrt{\cfrac{(M_x-R_x)^2 + (M_y-R_y)^2}{R_x^2+R_y^2}} \cdot 100
\end{equation}
### Kalibrierung
Eine Methode zur Reduzierung von systematischen Fehlern, beschrieben in Abschnitt \ref{arten-von-messfehlern} Systematische Fehler, ist die Kalibrierung. Hierbei werden mehrere Messreihen mit möglichst vielen Messungen angefertigt. Es wird darauf geachtet, dass die äußeren Einflüsse, die auf die Messung einwirken können, weitestgehend eliminiert werden und die Messumgebung stets gleich bleibt. Durch eine hohe Anzahl von Messungen kann der statistische 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 einen systematischen Fehler zurückzuführen. Um die Linearität des Fehlers zu beurteilen, müssen mehrere Messreihen mit unterschiedlichen Eingangsvoraussetzungen betrachtet werden. Die Eingangsvoraussetzungen sind vom betrachteten System abhängig, im Fall der Entfernungsmessungen werden Messreihen mit unterschiedlichen Abständen angefertigt. Aus den gewonnenen Daten können so Korrekturfaktoren ermittelt werden, welche den systematischen Fehler reduzieren [@jcgm_2012, Nr. 2.39, Nr. 3.11].
### Filter
- Filterverfahren in Tabelle, Erklärung was Filter machen.
Nicht alle müssen angewandt werden.
Die unverarbeiteten Messwerte werden als Rohdaten bezeichnet. Sie sind aufgrund der zuvor beschriebenen Messfehler nicht zur Anzeige geeignet. Um den Einfluss der Fehler zu reduzieren, werden im ersten Schritt die systematischen Fehler minimiert. Im nächsten Schritt gilt es die zufälligen Fehler, also stark gestreute Werte und Rauschen, zu detektieren und zu eliminieren. Hierbei kommen verschiedene Filterverfahren zum Einsatz, die einzeln oder in Kombination eingesetzt werden können. Im Folgenden werden zwei Filtermethoden beschrieben, die im Rahmen dieser Arbeit untersucht werden sollen.
### Fazit
#### Gleitender Mittelwert {-}
- Fehlerkorrektur durch einen Laborähnlichen Aufbau.
- Züfällige Fehler durch Filter XY
Beim gleitenden Mittelwert handelt es sich um eine 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.
## Bewertung
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. Zur Ermittlung des arithmetischen Mittelwertes wird 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.
Der Anwendung fehlt jedoch, ein Möglichkeit zur Lokalisierung des Smartphones. Dabei ist die Messung auf kleinen Skalen, im Zentimeterbereich wichtig um ein möglichst breites Spektrum an Experimenten zu ermöglichen. Beispiele hierfür sind:
\begin{equation}\label{eq:gleitendME}
m_i = \frac{1}{2q+1} \sum_{k=i-q}^{i+q} x_k
\end{equation}
**Darstellung des Abstandsgesetz:** Das Abstandsgesetz beschreibt den Abfall der Energie von allem was sich Kugelförmig ausbreitet, als Beispiel sei hier der Schall oder das Licht genannt. Die Oberfläche einer Kugel wächst mit zunehmenden Abstand, dem Radius $r$, zum Quadrat. Die Energie nimmt somit im Quadrat zum Abstand der Quelle ab [@Harten_2012_BOOK, S. 123]. Dieses Gesetz lässt sich mit dem Smartphone in einem Experiment veranschaulichen. Hierbei kann man den Schalldruck mit dem Mikrophone oder die Lichtintensität mit dem Helligkeitssensor messen und zusammen mit der Entfernungsänderung aufzeichnen.
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.
**Darstellung von Schallinterferenzen:**
\begin{equation}\label{eq:gleitendTime}
m_{i_t} = \frac{1}{A} \sum_{k=i_t-q_t}^{i_t+q_t} x_k
\end{equation}
#### Gewichteter Mittelwert {-}
In den Sozialwissenschaften finden Wichtungen häufig Anwendung und sind trotz der unterschiedlichen wissenschaftlichen Disziplinen in mathematischer Hinsicht auch im technischen Bereich nutzbar. Demnach können Wichtungsfaktoren grundsätzlich auf zwei unterschiedliche Arten bestimmt werden.
| Messwerte Verteilung \si{\percent} | SOLL \si{\percent} | Beispiel für eine IST Verteilung \si{\percent} | Wichtungsfaktor (SOLL/IST)
| ------------ | ----------- | ----------------- | ------------ |
| 0-25 | 5 | 15 | 0,333 |
| 25-50 | 10 | 25 | 0,4 |
| 50-75 | 25 | 25 | 1 |
| 75-100 | 60 | 40 | 1,5 |
: Beispiel für die Ermittlung des Wichtungsfaktors durch SOLL/IST Vergleich. \label{tab:wichtungsfaktor}
Diese Arbeit soll untersuchen wie eine solche Lokalisierung umgesetzt werden kann.
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.
\begin{equation}\label{eq:weighted}
m_{w} = \frac{\sum\limits_{k= i-q}^{i+q} w_k \cdot x_k}{\sum\limits_{k= i-q}^{i+q} w_k}
\end{equation}
# Implementierung
In den folgenden Abschnitten wird die verwendete Hardware sowie die Umsetzung beschrieben. Zum Einsatz kommen die Programmiersprachen Java\-Script, 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 Implementierung beschrieben. Zum Einsatz kommen die Programmiersprachen JavaScript, Python und Kotlin. Dieser Mix wird in den nächsten Abschnitten verständlich und ergibt sich aus der gewählten Hardware und dem Vorgehen.
## Beacon
## Beacons
Als Bluetooth-Beacon kommen Puck.js\footnote{https://www.puck-js.com/}, Abbildung \ref{fig:puck}, von der Firma Espruino\footnote{http://www.espruino.com/} zum Einsatz. Diese bieten, auf ihrer offenen Plattform, neben Bluetooth noch weitere Sensoren wie: ein Magnetometer zur Messung von Magnetfeldern, ein Accelerometer zur Messung von Beschleunigungen, ein Gyroscope zur Messung der Winkelgeschwindigkeit, einen Temperatursensor und vieles mehr. Durch diese Sensoren kann der Beacon auch für weitere Anwendungen eingesetzt werden, was jedoch nicht Bestandteil dieser Arbeit sein soll.
Als Bluetooth-Beacons kommen Puck.js [@puckjs], Abbildung \ref{fig:puck}, der Firma Espruino zum Einsatz. Die Beacons basieren auf einer offenen Plattform und bieten neben Bluetooth noch weitere Sensoren wie: ein Magnetometer zur Messung von Magnetfeldern, ein Accelerometer zur Messung von Beschleunigungen, ein Gyroscope zur Messung der Winkelgeschwindigkeit, einen Temperatursensor und vieles mehr. Durch diese Sensoren kann der Beacon auch für weitere Anwendungen eingesetzt werden, was jedoch nicht Bestandteil dieser Arbeit sein soll.
![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 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 Beacon wird ein hohes Advertising-Intervall benötigt, welches für eine kürzere Batterielebensdauer sorgt. 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, so 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 Beacon 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 Beacon auf. Im Versuchsmodus wird der Advertising-Name nicht mit ausgesendet, mehr dazu im Kapitel \ref{advertising}.
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 |
| D6:7C:70:1C:5B:5B | BLE 5b5b | 5b5b |
: Übersicht der \ac{mac}-Adressen und zugehörigen Namen der verwendeten Beacon. \label{tab:devices}
| C6:13:E8:3F:69:0F | BLE 690f | ``690f`` |
| CD:10:9A:4C:9D:31 | BLE 9d31 | ``9d31`` |
| D6:7C:70:1C:5B:5B | BLE 5b5b | ``5b5b`` |
: Übersicht der \ac{mac}-Adressen und zugehörigen Namen der verwendeten Beacons. \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.
### Advertising
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 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 wieder mit 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.
### 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:selfkorrekting} zeigt den Ablauf des selbst korrigierenden Systems bei dem Beacon 5b5b ein Advertising-Paket aussendet, welches von den Beacon 690f und 9d31 empfangen und verarbeitet wird. Die Beacon 690f und 9d31 speichern den \ac{rssi}-Wert des Empfangenen Pakets von Beacon 5b5b als $scPower$ in ihrem 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-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% }
## Smartphone
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 durch den Anwender ausgefüllt werden. Der Testname dient dazu, die Testdaten bei der Auswertung zu identifizieren, er dient auch als Dateiname für die gespeicherten Daten. In den weiteren drei Feldern wird die, für den durchgeführten Versuch, real gemessene Entfernung zwischen Smartphone und dem jeweiligen Beacon notiert. Sollten ein oder mehrere Beacon 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.
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.
![Screenshot der Smartphone-Testanwendung: Bluetooth Advertise Logger. \label{fig:appfrontend}](../static/appfrontend.jpg){ height=600px }
![Screenshot der Smartphone-Testanwendung: Bluetooth Advertise Logger. \label{fig:appfrontend}](../static/appfrontend.jpg){ height=400px }
Beim Empfang eines Advertising-Pakets wird geprüft, ob das Paket von einem der Beacon versendet wurde. Hierzu wird zunächst nach der \ac{uuid} gefiltert und anschließend nach den \ac{mac}-Adressen der drei Beacon. Ist das Paket von einem der Beacon, so werden die Daten des Advertising-Pakets in einer Textdatei, mit dem Testnamen als Dateinamen, auf dem Smartphone abgelegt. Die Daten werden im \ac{csv}-Format gespeichert, dabei sind die einzelnen Spalten mit Hilfe eines Kommas voneinander getrennt. In Tabelle \ref{tab:datastore} werden die Spalten aufgelistet und ihr Inhalt kurz erläutert.
Beim Empfang eines Advertising-Pakets wird geprüft, ob das Paket von einem der Beacons versendet wurde. Hierzu wird zunächst nach der \ac{uuid} gefiltert und anschließend nach den \ac{mac}-Adressen der drei verwendeten Beacons. Ist das Paket von einem der Beacons, so werden die Daten des Advertising-Pakets in einer Textdatei, mit dem Testnamen als Dateinamen, auf dem Smartphone abgelegt. Die Daten werden im \ac{csv}-Format gespeichert. In Tabelle \ref{tab:datastore} werden die Spalten aufgelistet und ihr Inhalt kurz erläutert.
| Spalte | Beschreibung |
| --------- | ----------------------- |
| Time | Empfangszeitpunkt als Unix-Zeitstempel |
| Test | Benutzerdefinierter Name des durchgeführten Tests |
| Device | \ac{mac}-Adresse des Beacon |
| Device | \ac{mac}-Adresse des Beacons |
| RSSI | Vom Smartphone ermittelter \ac{rssi}-Wert |
| 5b5b_dist | Benutzerdefinierte, gemessene Distanz des Beacons 5b5b |
| 5b5b_dist | gemessene Referenzentfernung zum Beacon 5b5b |
| 5b5b_rssi | Ermittelte $scPower$ des Beacons 5b5b |
| 690f_dist | Benutzerdefinierte, gemessene Distanz des Beacons 690f |
| 690f_dist | gemessene Referenzentfernung zum Beacon 690f |
| 690f_rssi | Ermittelte $scPower$ des Beacons 690f |
| 9d31_dist | Benutzerdefinierte, gemessene Distanz des Beacons 9d31 |
| 9d31_dist | gemessene Referenzentfernung zum Beacon 9d31 |
| 9d31_rssi | Ermittelte $scPower$ des Beacons 9d31 |
: Spaltenübersicht der gespeicherten \ac{csv}-Datei bei aktiver Messung. \label{tab:datastore}
## 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 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
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. Bei der Übermittlung der Daten werden nicht vorhandene Messdaten mit einer 0 initialisiert. Dies würde bei Berechnungen zu Fehlern führen, weswegen alle 0-Werte aus den eingelesenen Daten gelöscht werden.
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 Referenzpunkt aus den Referenzentfernungen zu den Beacons ermittelt und in der neuen Spalte ``realPosition`` gespeichert. Die Referenzentfernung sowie die $scPower$ zu dem jeweiligen Beacon wird ausgelesen und in den Spalten ``deviceDistance`` und ``scPower`` abgelegt.
Im letzten Schritt werden überflüssige Spalten gelöscht. Tabelle \ref{tab:dataclean} zeigt die vorhandenen Spalten nach dem Einlesen.
| Spalte | Beschreibung |
| --------- | ----------------------- |
| ``Time`` | Empfangszeitpunkt als Unix-Zeitstempel |
| ``Test`` | Benutzerdefinierter Name des durchgeführten Tests |
| ``Device`` | \ac{mac}-Adresse des Beacons |
| ``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}
### Ermittlung der Messwerte
Die zeitlichen Abstände sowie die Reihenfolge der Advertising-Pakete sind zufällig (vgl. Abb. \ref{fig:messreihe}). Die Beacons senden zwar in einem konstanten Intervall von \SI{100}{\milli\second}, jedoch kann es bei der Übertragung zu Kollisionen kommen. Auch Aussetzer in der Übertragung oder andere Störeinflüsse führen zum Ausbleiben eines Advertising-Pakets. Um bei Berechnungen aus den Messdaten stets alle eingesetzten Beacons zu berücksichtigen, wird ein Fenster aus \SI{400}{\milli\second} betrachtet. Der zu betrachtende Messwert wird dabei aus einem Fenster von \SI{\pm 200}{\milli\second} gemittelt. Die Wahl der Fenstergröße wurde durch folgende Überlegungen getroffen: Das Fenster sollte nicht zu groß sein, um Schwankungen in den Messdaten möglichst wenig zu beeinflussen (vgl. Abschnitt \ref{filter}); Das Fenster sollte nicht zu klein sein, so dass möglichst immer alle 3 Beacons in dem betrachteten Messausschnitt enthalten sind.
![Ausschnitt aus einer Messreihe. \label{fig:messreihe}](../static/Messreihe.png){width=95%}
### 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 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}
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}
![Auswirkungen verschiedener Eingabevariablen auf die Lokalisierung durch den verwendeten Lokalisierungsalgorithmus. \label{fig:locationAlgorithmTest}](../static/Lokalisierungstest.pdf){ width=95% }
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, 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, 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.
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.
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.
| Library | Bedeutung |
| -------- | ---------- |
| | |
: Verwendete Python libraries zur Auswertung der Messdaten. \label{tab:libraries}
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.
- 5 sekunden zu beginn und 10 sekunden zum ende werden von den Messdaten verworfen! (mögliche einflüsse durch Human)
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 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.
![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 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.
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 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 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.
## Referenzmessung
Die Referenzmessungen bieten einen Einblick in das System. Sie sollen systemische Einflüsse aufzeigen und so die Entwicklung eines optimierten Versuchsaufbaus ermöglichen. Die ersten Messungen werden im Freien durchgeführt, um etwaige Störeinflüsse durch Reflektionen und \ac{wifi}-Signalen zu verringern. Ein Karton dient als ebene Fläche auf einer Wiese. Auf dem Karton werden nicht nur die Messobjekte platziert, sondern auch Markierungen aufgebracht, um die Positionierung und Ausrichtung zu erleichtern. Abbildung \ref{fig:messunge-draußen} zeigt den Versuchsaufbau.
Die Referenzmessungen bieten einen Einblick in das System. Sie sollen systematische Einflüsse aufzeigen und so die Entwicklung eines optimierten Versuchsaufbaus ermöglichen. Die ersten Messungen werden im Freien durchgeführt, um etwaige Störeinflüsse durch Reflektionen und \ac{wifi}-Signalen zu verringern. Ein Karton dient als ebene Fläche auf einer Wiese. Auf dem Karton werden nicht nur die Messobjekte platziert, sondern auch Markierungen aufgebracht, um die Positionierung und Ausrichtung zu erleichtern. Abbildung \ref{fig:messung-outdoor} zeigt den Versuchsaufbau.
![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}. Die Messdauer einer Referenzmessung wurde auf eine Minute begrenzt. Die Auswertung findet wie im Abschnitt \ref{auswertung} beschrieben statt.
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 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 Verschlechterung des absoluten Wertes des \ac{rssi}. 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 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}
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 wurde im Innenraum durchgeführt um die Einflüsse durch Reflektionen und \ac{wifi}-Signalen zu Untersuchen. In Abbildung \ref{fig:ref-beaconSmartphone} Messung "Indoor" ist zu sehen, dass der absolute Messwert im Innenraum noch etwas besser wird zur Außenmessung. 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
Bei der Messung des Winkeleinfluss soll untersucht werden, wie sich die Lage der einzelnen Geräte zueinander auf die Messungen auswirken. Hierbei werden in verschiedenen Messungen sowohl das Smartphone, als auch der Beacon rotiert und der \ac{rssi}-Wert mit einem zweiten Gerät auf \SI{1}{\meter} Entfernung gemessen. Die Rotation findet hierbei im Uhrzeigersinn statt. Hieraus ergibt sich eine Verteilung der Rotationswinkel zum Empfänger gegen den Uhrzeigersinn, dies wird in Abbildung \ref{fig:puck-rotation} veranschaulicht.
Bei der Messung des Winkeleinfluss soll untersucht werden, wie sich die Lage der einzelnen Geräte zueinander auf den \ac{rssi}-Wert auswirken. An den Messungen sind immer zwei Geräte beteiligt. Ein Gerät ist statisch, wird also zwischen den Messungen nicht verändert, das andere wird nach jeder Messung um einen definierten Winkel rotiert. Der Abstand zwischen den Geräten beträgt immer \SI{1}{\meter}. Eine tabellarische Auflistung der durchgeführten Versuche ist in Tabelle \ref{tab:versuchstabelle-rotation} zu finden. Die Rotation findet im Uhrzeigersinn statt. Es ergibt sich dabei eine Verteilung der Rotationswinkel zum Empfänger gegen den Uhrzeigersinn, dies wird in Abbildung \ref{fig:puck-rotation} veranschaulicht.
| Versuchsname | Beacon 1 | Beacon 2 | Smartphone |
| ------------- | -------- | -------- | ---------- |
| SmartphoneRotation0 | 0 | - | 0 |
| SmartphoneRotation45 | 0 | - | 45 |
| SmartphoneRotation90 | 0 | - | 90 |
| SmartphoneRotation135 | 0 | - | 135 |
| SmartphoneRotation180 | 0 | - | 180 |
| SmartphoneRotation225 | 0 | - | 225 |
| SmartphoneRotation270 | 0 | - | 270 |
| SmartphoneRotation315 | 0 | - | 315 |
| BeaconRotation0 | 0 | - | 0 |
| BeaconRotation90 | 90 | - | 0 |
| BeaconRotation180 | 180 | - | 0 |
| BeaconRotation270 | 270 | - | 0 |
| BeaconBeaconRotation0 | 0 | 0 | - |
| BeaconBeaconRotation90 | 0 | 90 | - |
| BeaconBeaconRotation180 | 0 | 180 | - |
| BeaconBeaconRotation270 | 0 | 270 | - |
: Versuchsübersicht - Untersuchung des Einfluss verschiedener Rotationswinkel bei \SI{1}{\meter} Entfernung auf den \ac{rssi}-Wert. \label{tab:versuchstabelle-rotation}
![Verteilung der Rotationswinkel am Beispiel des Beacon. \label{fig:puck-rotation}](../static/BeaconRotation.png){ width=60% }
![Verteilung der Rotationswinkel am Beispiel des Beacons. \label{fig:puck-rotation}](../static/BeaconRotation.pdf){ width=60% }
#### 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 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 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 äußert sich die \ac{rssi}-Differenz zwischen \SI{235}{\degree} und \SI{90}{\degree} in einer Entfernungsdifferenz von rund \SI{2,4}{\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
#### Beacon Rotation {-}
Für die nächste Messung wird der Beacon in \SI{90}{\degree} Schritten im Uhrzeigersinn um den Mittelpunkt rotiert. Wie in Abbildung \ref{fig:puck-rotation} zu erkennen, wird \SI{0}{\degree} durch den Chip auf dem Beacon gekennzeichnet. Bei den Messungen ist die Schwankung des mittleren \ac{rssi}-Werts, von \SI{-64}{\dB} bei \SI{180}{\degree} bis \SI{-68}{\dB} bei \SI{270}{\degree}, als gering einzustufen. Wie Abbildung \ref{fig:ref-beaconrotation} Messung "Beacon zu Smartphone" zeigt, ist die Streuung der Messwerte bei \SI{90}{\degree} und \SI{180}{\degree} am größten.
Für die nächste Messung wird ein Beacon in \SI{90}{\degree} Schritten im Uhrzeigersinn um seinen Mittelpunkt rotiert. Der Versuchsaufbau ist in Abbildung \ref{fig:pucksmartphone-rotation} dargestellt. Der Chip des Beacons kennzeichnet \SI{0}{\degree} und das Smartphone zeigt mit dem Hörer zum Beacon. Bei den Messungen ist die Schwankung des mittleren \ac{rssi}-Werts, von \SI{-64}{\dB} bei \SI{180}{\degree} bis \SI{-68}{\dB} bei \SI{270}{\degree}, als gering einzustufen. Wie Abbildung \ref{fig:ref-beaconrotation} Messung "Beacon zu Smartphone" zeigt, ist die Streuung der Messwerte bei \SI{90}{\degree} und \SI{180}{\degree} am größten.
![Referenzmessung bei der Rotation des Beacon im Uhrzeigersinn. \label{fig:ref-beaconrotation}](../static/BeaconRotationAuswertung.pdf)
![Versuchsaufbau Rotation Beacon zu Smartphone. \label{fig:pucksmartphone-rotation}](../static/SmartphoneBeaconRotation.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" im gegenzug das am rotierenden Beacon eingehende Signal welches vom statischen Beacon ausgesendet wird.
\newpage
![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.
### Beacon im Versuchsaufbau
## Durchführung der Kalibrierung
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 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.
## Kalibrierung
\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. Daraus ergibt sich die Konstante $C$ zu $-0,1688$.
\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 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 (Nexus 4) in der Android Beacon Library. \label{fig:calibration}](../static/calibrationValidation.pdf)
# Versuchsaufbau
Dieses Kapitel beschreibt den Versuchsaufbau. Er orientiert sich an den zuvor behandelten Anforderungen. Dabei liegt der Fokus auf einem Aufbau der leicht nachzubildenden 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 Beacon
## Anordnung der Beacons
Die Bluetooth-Beacon werden in einem gleichseitigen Dreieck mit einer Seitenlänge von \SI{1}{\meter} auf einer ebenen Fläche angeordnet (Abbildung \ref{fig:versuchsaufbau}). Hierdurch empfängt jeder Beacon von seinen Nachbarn den RSSI Wert auf \SI{1}{\meter} Entfernung und kann diesen zur Kalibrierung an das Smartphone übermitteln. Dieser Versuchsaufbau ermöglicht es, das System um weitere Beacon zu erweitern. Auch ließe sich hierdurch eine Dreieckspyramide mit 6 gleichlangen Kanten aufbauen, wodurch die Messung auf die 3. Dimension erweitert werden kann.
Die Bluetooth-Beacons werden in einem gleichseitigen Dreieck mit einer Seitenlänge von \SI{1}{\meter} auf einer ebenen Fläche angeordnet (vgl. Abb. \ref{fig:versuchsaufbau}). Hierdurch empfängt jeder Beacon von seinen Nachbarn den \ac{rssi}-Wert auf \SI{1}{\meter} Entfernung und kann somit die $scPower$ für die spätere Entfernungsermittlung an das Smartphone übertragen. Die Ausrichtung der Beacons erfolgt mit den in Abbildung \ref{fig:puck-rotation} gekennzeichneten \SI{180}{\degree} zum Zentrum des Dreiecks. Dieser Versuchsaufbau ermöglicht es, das System um zusätzliche Beacons zu erweitern. Hierdurch ließe sich beispielsweise ein Tetraeder mit 6 gleichlangen Kanten aufbauen, wodurch die Messung auf die 3. Dimension erweitert werden kann.
![Versuchsaufbau mit dem Smartphone an Messpunkt ``A``. \label{fig:versuchsaufbau}](../static/Versuchsaufbau.jpg)
## Messpunkte
Der Versuchsaufbau wird, wie in Abbildung \ref{fig:zones} dargestellt, in drei Zonen eingeteilt. Die ersten beiden Zonen ergeben sich aus der Geometrie des Versuchsaufbaus. Zone 1 hat einen Radius von \SI{0.289}{\meter} und wird durch das gleichseitige Dreieck begrenzt. In dieser Zone ist kein Beacon weiter als \SI{0.866}{\meter} vom Smartphone entfernt. Zone 2 misst einen Radius von \SI{0.577}{\meter} und schließt das Dreieck ein. Die maximale Distanz zu einem Beacon beträgt \SI{1.154}{\meter}. Bei Zone 3 liegt der am weitesten entfernte Punkt \SI{1.5}{\meter} von einem Beacon entfernt. Dieser wurde gewählt, da der Messfehler bis \SI{1.5}{\meter} laut dem Artikel [@Cho_2015a] unter \SI{10}{\percent} liegt. Es ergibt sich dabei ein Radius von \SI{0,75}{\meter} um das Zentrum.
Der Versuchsaufbau wird, wie in Abbildung \ref{fig:zones} dargestellt, in drei Zonen eingeteilt. Die ersten beiden Zonen ergeben sich aus der Geometrie des Versuchsaufbaus. Zone 1 hat einen Radius von \SI{0.289}{\meter} und wird durch das gleichseitige Dreieck begrenzt. In dieser Zone ist kein Beacon weiter als \SI{0.866}{\meter} vom Smartphone entfernt. Zone 2 misst einen Radius von \SI{0.577}{\meter} und schließt das Dreieck ein. Die maximale Distanz zu einem Beacon in Zone 2 beträgt \SI{1.154}{\meter}. Bei Zone 3 liegt der am weitesten entfernte Punkt \SI{1.5}{\meter} von einem Beacon entfernt. Dieser wurde gewählt, da der Fehler bei der Ermittlung der Entfernung bis zu einem Abstand von \SI{1.5}{\meter} laut Cho et al. [@Cho_2015a] unter \SI{10}{\percent} liegt. Es ergibt sich dabei ein Radius von \SI{0,932}{\meter} um das Zentrum.
![Aufteilung des Versuchsaufbaus in Zonen und Messpunkte. \label{fig:zones}](../static/Zonen_und_Messpunkte.pdf)
![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 Beacon aufgezeigt. Messpunkt A befindet sich im Zentrum der Kreisrunden Zonen. Messpunkt C und D jeweils am Rand von Zone 2 und Zone 3. Um möglichst viele Messpunkte zu erhalten ist der Messpunkt C nicht mittig zwischen zwei Beacon. Eine Besondere Rolle spiel Messpunkt B. Dieser befindet sich auf einer Seite des Dreiecks und liegt somit genau zwischen zwei Beacon. Er wurde gewählt, um den Einfluss des Smartphones auf die Funkstrecke der Beacon zu untersuchen.
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 Abstände zu den Beacon
\caption{Messpunkte und deren Referenzentfernung zu den Beacons.
\label{tab:messpunkte}}\tabularnewline
\toprule
& \multicolumn{3}{l}{Entfernung in cm} \\
@ -450,23 +609,109 @@ In Tabelle \ref{tab:messpunkte} sind die einzelnen Messpunkte und Abstände zu d
\endhead
%
A & 57,7 & 57,7 & 57,7 \\
B & 86.5 & 50 & 50 \\
C & 115,4 & 40 & 70,5 \\
D & 67 & 75 & 68 \\
E & 90 & 213,4 & 94
B & 86,7 & 50 & 50 \\
C & 74,3 & 39 & 113,2 \\
D & 77,5 & 150 & 85 \\
\end{longtable}
Um eine Konstante Messung zu gewährleisten werden die Beacon mittig auf den Referenzpunkt in gleicher Orientierung positioniert. Das Smartphone wird so auf den Messpunkten platziert, das der Messpunkt in der Mitte des Geräts ligt.
Da die Anordnung der Antennen gerade im Smartphone nicht bekannt sind, wird die Entfernung zwischen den Beacon und dem Smartphone immer von der Mitte der Geräte gemessen.
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
- Fehlerhafte Zeitlicher Verlauf beim Empfang der Daten
- Connections wären sinnvoll
Zunächst soll der Einfluss der Kalibrierung auf die Entfernungsberechnung betrachtet werden. Die Ermittlung der Entfernung findet mit Formel \ref{eq:beacondistance} statt. Gegenübergestellt werden die Konstanten aus der Android Beacon Library für das Nexus 4 ($A = 0,89976$, $B = 7,7095$, $C = 0,111$) sowie die Konstanten aus der Kalibrierung ($A = 1,7358$, $B = 7,5924$, $C = -0,1688$) (siehe Abschnitt \ref{durchfuxfchrung-der-kalibrierung}). Dabei wird der relative Fehler über die gemessenen Entfernungen betrachtet. Abbildung \ref{fig:erg-kalibrierung} zeigt das Verhältnis vom durchschnittlichen relativen Fehler gegenüber den verschiedenen Referenzentfernungen. Die Verbindungslinien zwischen den Messpunkten dienen der besseren Visualisierung und stellen keine Interpolation der Zwischenwerte da. Die roten Linien kennzeichnen den Einsatz der $txPower$, die blauen Linien die der $scPower$. Dabei steht die durchgezogene Linie für die Verwendung der Nexus 4 Konstanten und die gestrichelte Linie für den Einsatz der kalibrierten Konstanten.
![Einfluss der Kalibrierung auf die Bestimmung der Entfernung. Die Messpunkte sind nur zur besseren visuellen Darstellung mit Linien verbunden. \label{fig:erg-kalibrierung}](../static/DistanceErrorKalibration.pdf)
Zu erkennen ist, dass der relative Fehler durch den Einsatz der kalibrierten Konstanten zunimmt. Im Mittel steigt der Fehler über die gemessenen Entfernungen unter Einsatz der $txPower$ von \SI{102,03}{\percent} für die Nexus 4 Konstanten auf \SI{183,47}{\percent} bei den kalibrierten Konstanten. Unter Verwendung der $scPower$ liegt der mittlere Fehler bei \SI{63,97}{\percent} für die Nexus 4 Konstanten und \SI{108,13}{\percent} bei den kalibrierten Konstanten. Der Fehler ist für alle vier betrachteten Methoden bei \SI{0.577}{\meter} am größten.
Die angewandte Methode zur Kalibrierung hat somit einen negativen Einfluss auf die Genauigkeit der Entfernungsberechnung. Ein Grund hierfür kann die Beschränkung des Messbereichs zur Kalibrierung auf \SI{2}{\meter} sein. Durch die Anpassung des Kalibrierungsbereichs wird das System allgemein anfälliger für Schwankungen in den gemessenen Dämpfungswerten. Dies lässt sich anhand der Referenzmessung aus Abschnitt \ref{winkeleinfluss} Smartphone Rotation zeigen. Hierbei ändert sich der gemessene \ac{rssi}-Wert bei gleicher Entfernung zum Beacon je nach Einfallswinkel. Tabelle \ref{tab:einfallswinkeleinfluss} stellt den relativen Fehler bei der Ermittlung der Distanz unter verschiedenen Einfallswinkeln dar. Es ist zu erkennen, dass Änderungen des \ac{rssi}-Werts bei den kalibrierten Konstanten zu einer stärkeren Abweichung führen als bei den Nexus 4 Konstanten. Die Differenz der relativen Fehler nimmt mit steigendem \ac{rssi}-Wert zu, was für eine höhere Empfindlichkeit auf Änderungen spricht. Aus diesem Grund werden im weiteren Verlauf die Auswertungen mittels Nexus 4 Konstanten vorgenommen.
\begin{longtable}{lllll}
\caption{Vergleich zwischen den Nexus 4 Konstanten und den Konstanten aus der Kalibrierung anhand der Referenzmessung des Einfallswinkels aus Abschnitt \ref{winkeleinfluss} Smartphone Rotation.}
\label{tab:einfallswinkeleinfluss}\\
\toprule
& & \multicolumn{2}{l}{Relativer Fehler in \si{\percent}} & \\
Rotationswinkel & RSSI in \si{\dB} & \begin{tabular}[c]{@{}l@{}}Nexus 4 \\ Konstanten\end{tabular} & \begin{tabular}[c]{@{}l@{}}Kalibrierungs \\ Konstanten\end{tabular} & \begin{tabular}[c]{@{}l@{}}Absolute \\ Differenz\end{tabular} \\
\midrule
\endfirsthead
%
\endhead
%
\cline{1-5}
\endfoot
%
\endlastfoot
%
\SI{0}{\degree} & -78,82 & 225.86 & 415,53 & 189,67 \\
\SI{45}{\degree} & -84,55 & 451,95 & 790,46 & 338,51 \\
\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{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.
![Gegenüberstellung der Entfernungsermittlung auf verschiedenen Distanzen von $scPower$ und $txPower$. \label{fig:distScTx}](../static/DeviceDistanceScTxPower.pdf)
Durch die Filterung der \ac{rssi}-Werte sollen Schwankungen in den Messwerten ausgeglichen und die Entfernungsberechnung verbessert werden. Abbildung \ref{fig:err-filter} bestätigt eine positive Auswirkung durch den Einsatz von Filtern. Dabei werden die relativen Fehler zu den Referenzentfernungen für die ungefilterten RSSI Werte (rote), dem gleitenden Mittelwert (gelbe) und dem gewichteten Mittelwert (blaue) gegenübergestellt. Der farbige Schatten zeigt die Standardabweichung an.
![Einfluss der verschiedenen Filtermethoden auf die Entfernungsberechnung mittels $scPower$ \label{fig:err-filter}](../static/DistanceErrorFilter.pdf)
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 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)
Abbildung \ref{fig:figerr} stellt den Lokalisierungsfehler an den einzelnen Versuchspositionen da (siehe Kapitel \ref{versuchsaufbau}). Im linken Diagramm wird die $scPower$ (gelbe Linie) gegenüber der $txPower$ (rote Linie) betrachtet. Dabei ist zu erkennen, dass die $scPower$ auch bei der Lokalisierung einen geringeren Fehler aufweist. An Position A, welche im Zentrum des Dreiecks liegt, ist die Abweichung am größten. Dort besteht eine Differenz von \SI{1216,93}{\percent} zwischen der $txPower$ und $scPower$. Im Durchschnitt bietet die $scPower$ eine Verbesserung der Lokalisierung um \SI{61.35}{\percent} gegenüber der $txPower$.
![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 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 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 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.
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 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.
# Zusammenfassung
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&reg;, 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.
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 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 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 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
# Zusammenfassung und Ausblick
Durch den Einsatz weiterer Sensoren ließe sich das Verfahren weiter optimieren. Sowohl die Ausrichtung des Smartphones als auch Informationen zur Beschleunigung und Bewegungsrichtung könnten bei den Messungen berücksichtigt und zur Filterung eingesetzt werden. Auch der Einsatz optimierter Filter wie beispielsweise einen Kalmann-Filter könnte die Messgenauigkeit erhöhen.
## Zusammenfassung und Fazit
Der Einfluss von Feuchtigkeit und Temperatur auf die Signalstärke sollte näher untersucht werden. Gerade der Einfluss durch die relative Luftfeuchtigkeit könnte Erkentnisse liefern, durch die die Signalstärkeermittlung verbessert werden kann.
## Ausblick
Weiter bietet sich die Untersuchung von \ac{ble} 5.2 und der neu integrierten \acl{aoa} Funktion an. Hierdurch kann nicht nur die Entfernungsmessung verbessert, sondern auch die Orientierung innerhalb des Versuchsaufbaus bestimmt werden.

@ -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.

@ -1,6 +1,9 @@
acronym:
longest: ISM-Band
longest: A/D-Wandler
list:
- id: adw
short: A/D-Wandler
long: Analog/Digital-Wandler
- id: aoa
short: AoA
long: Angle of Arrival
@ -61,6 +64,7 @@ acronym:
- id: ms
short: ms
long: Millisekunde
plural: Millisekunden
- id: pdu
short: PDU
long: Protocol Data Unit

@ -25,5 +25,4 @@ bibliography:
#citation-abbreviations: abbrevs.json
table-of-contents: true
toc-depth: 3
toc-depth: 3

@ -1,5 +1,5 @@
title: Distanzmessung auf kleinen Skalen mithilfe von Smartphone-Sensoren
date: 01.02.2022
date: 22.02.2022
hochschule:
name: Wilhelm Büchner Hochschule
adresse: Hilpertstraße 31, 64295 Darmstadt
@ -19,13 +19,15 @@ aufgabe:
arbeit:
typ: Bachelorthesis
betreuer:
- Michael Fleury
- Michael Fleury M.Eng.
- Dr. Thomas Kalbe
lang: de
toc: true
lof: true
lot: true
insurance: true
reference-section-title: Literaturverzeichnis
link-citations: true
keywords:
- Lokalisierung
- Bluetooth
@ -33,3 +35,8 @@ keywords:
- Sensoren
- Kalman Filter
- selbst korrigierend
hyphenation:
- Java\-Script
- Mess\-er\-geb\-nisse
- Smart\-phone
- Smart\-phones

@ -0,0 +1,8 @@
sequenceDiagram
participant 5 as 5b5b
participant 6 as 690f
loop alle 100 ms
5 ->>+ 6: Advertising
6 ->> 6: Speichern scPower 5b5b&lt;br/&gt; im Advertising Paket
6 ->>- 5: Advertising
end

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

@ -2,9 +2,9 @@
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="161.41754mm"
height="132.42311mm"
viewBox="0 0 161.41754 132.42311"
width="190.54416mm"
height="138.34641mm"
viewBox="0 0 190.54416 138.3464"
version="1.1"
id="svg5"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
@ -26,13 +26,13 @@
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="1.1741442"
inkscape:cx="205.68172"
inkscape:cy="328.32424"
inkscape:window-width="1720"
inkscape:window-height="1380"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:zoom="0.5870721"
inkscape:cx="373.03766"
inkscape:cy="28.957261"
inkscape:window-width="1712"
inkscape:window-height="1409"
inkscape:window-x="1720"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
fit-margin-top="0"
@ -99,7 +99,7 @@
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-36.369494,-43.551144)">
transform="translate(-23.362524,-40.852761)">
<image
width="132.08194"
height="132.08194"
@ -111,81 +111,81 @@
style="stroke-width:7.3423"
clip-path="url(#clipPath1035)" />
<path
style="fill:#ff5555;stroke:#ff8080;stroke-width:0.800002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.980392;marker-end:url(#Arrow1Mend)"
style="fill:#ff5555;stroke:#ff8080;stroke-width:1.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.980392;marker-end:url(#Arrow1Mend)"
d="M 115.84051,66.233361 V 49.486174"
id="path875" />
<path
style="fill:#ff5555;stroke:#ff8080;stroke-width:0.800001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.980392;marker-end:url(#Arrow1Mend)"
style="fill:#ff5555;stroke:#ff8080;stroke-width:1.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.980392;marker-end:url(#Arrow1Mend)"
d="m 160.11037,111.06029 h 18.33437"
id="path1161" />
<path
style="fill:#ff5555;stroke:#ff8080;stroke-width:0.799999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.980392;marker-end:url(#Arrow1Mend)"
style="fill:#ff5555;stroke:#ff8080;stroke-width:1.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.980392;marker-end:url(#Arrow1Mend)"
d="M 71.060211,111.1728 H 54.058608"
id="path1243" />
<path
style="fill:#ff5555;stroke:#ff8080;stroke-width:0.865001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.980392;marker-end:url(#Arrow1Mend)"
style="fill:#ff5555;stroke:#ff8080;stroke-width:1.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.980392;marker-end:url(#Arrow1Mend)"
d="m 115.84051,153.67097 v 16.84611"
id="path1245" />
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="112.35279"
y="46.76059"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="104.51579"
y="46.213333"
id="text4835"><tspan
sodipodi:role="line"
id="tspan4833"
style="stroke-width:0.264583"
x="112.35279"
y="46.76059">0 Grad</tspan></text>
style="font-size:7.05556px;stroke-width:0.264583"
x="104.51579"
y="46.213333">0 Grad</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="181.66747"
y="112.30061"
y="113.35895"
id="text5975"><tspan
sodipodi:role="line"
id="tspan5973"
style="stroke-width:0.264583"
style="font-size:7.05556px;stroke-width:0.264583"
x="181.66747"
y="112.30061">270 Grad</tspan></text>
y="113.35895">270 Grad</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="36.147285"
y="112.30061"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="22.918106"
y="113.35895"
id="text8793"><tspan
sodipodi:role="line"
id="tspan8791"
style="stroke-width:0.264583"
x="36.147285"
y="112.30061">90 Grad</tspan></text>
style="font-size:7.05556px;stroke-width:0.264583"
x="22.918106"
y="113.35895">90 Grad</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="107.93964"
y="175.39514"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="102.1188"
y="179.09926"
id="text13507"><tspan
sodipodi:role="line"
id="tspan13505"
style="stroke-width:0.264583"
x="107.93964"
y="175.39514">180 Grad</tspan></text>
style="font-size:7.05556px;stroke-width:0.264583"
x="102.1188"
y="179.09926">180 Grad</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Send)"
d="m 127.30341,62.560985 c 20.25713,3.843793 30.32475,17.574664 34.95048,36.585908"
style="fill:none;stroke:#000000;stroke-width:1.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send)"
d="m 127.25125,62.529843 c 21.68071,4.490721 32.45584,20.53256 37.40665,42.743487"
id="path926"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
id="text3371"><textPath
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
id="text3371"
transform="translate(-0.95755988,-1.2148543)"><textPath
xlink:href="#path3849"
id="textPath4202"><tspan
id="tspan3369"
style="stroke-width:0.264583">Rotationsrichtung</tspan></textPath></text>
id="textPath4202"
style="font-size:7.05556px">Rotationsrichtung</textPath></text>
<path
style="fill:none;stroke:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send)"
d="m 128.36175,61.502651 c 20.25713,3.843793 30.32475,17.574664 34.95048,36.585908"
d="m 128.30568,61.446675 c 23.02843,4.368817 34.47337,19.975191 39.73193,41.583185"
id="path3849"
sodipodi:nodetypes="cc" />
</g>

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="675.41925"
height="778.39819"
id="svg3290"
version="1.1"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="Opensource.svg"
inkscape:export-filename="/home/rafael/workspace/logo-osi/5/png/logo396x412.png"
inkscape:export-xdpi="52.737835"
inkscape:export-ydpi="52.737835"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs3292" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.9899495"
inkscape:cx="526.28947"
inkscape:cy="480.83261"
inkscape:document-units="px"
inkscape:current-layer="g3879"
showgrid="false"
inkscape:window-width="3432"
inkscape:window-height="1409"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true"
inkscape:pagecheckerboard="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<sodipodi:guide
orientation="1,0"
position="354.80815,49.432925"
id="guide3004" />
</sodipodi:namedview>
<metadata
id="metadata3295">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-35.110725,-108.23442)">
<g
style="display:inline"
id="g3879"
transform="matrix(3.1607572,0,0,3.1607572,1289.8039,2829.9529)"
inkscape:export-filename="/home/paulormm/usp/softwarelivre/OSI/OSI_member_card_model_final-300dpi.png"
inkscape:export-xdpi="300.05554"
inkscape:export-ydpi="300.05554">
<path
inkscape:export-ydpi="48.18"
inkscape:export-xdpi="48.18"
inkscape:export-filename="/home/rafael/workspace/logo-osi/3/png/logo396x412.png"
id="path3773"
d="m -287.05192,-768.95371 m 11.01179,28.68474 a 30.724865,30.724865 0 1 0 -22.02358,0 l -20.69627,53.92828 a 88.487611,88.487611 0 1 1 63.41612,0 z"
inkscape:connector-curvature="0"
style="text-anchor:middle;fill:#3fa652;stroke:#21552a;stroke-width:7.37397;stroke-linejoin:round" />
<text
inkscape:export-filename="/home/rafael/workspace/logo-osi/3/png/logo396x412.png"
inkscape:export-ydpi="48.18"
inkscape:export-xdpi="48.18"
id="text7890-3-1"
y="-643.90765"
x="-402.74231"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;display:inline;fill:#20552a;fill-opacity:1;stroke:none"
xml:space="preserve"
transform="scale(0.99041196,1.0096809)"><tspan
id="tspan3306"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35.1552px;line-height:1.25;font-family:OpenSymbol;-inkscape-font-specification:Sans;fill:#000000;fill-opacity:1"
y="-643.90765"
x="-402.74231"
sodipodi:role="line">open</tspan><tspan
id="tspan7894-2-9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35.1552px;line-height:1.25;font-family:FreeSans;-inkscape-font-specification:Sans;fill:#000000;fill-opacity:1"
y="-627.95056"
x="-402.74231"
sodipodi:role="line" /></text>
<text
inkscape:export-filename="/home/rafael/workspace/logo-osi/3/png/logo396x412.png"
inkscape:export-ydpi="48.18"
inkscape:export-xdpi="48.18"
id="text7890-3-1-1"
y="-644.53589"
x="-299.91721"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;display:inline;fill:#20552a;fill-opacity:1;stroke:none"
xml:space="preserve"
transform="scale(0.99041196,1.0096809)"><tspan
id="tspan3306-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35.1552px;line-height:1.25;font-family:OpenSymbol;-inkscape-font-specification:Sans;fill:#000000;fill-opacity:1"
y="-644.53589"
x="-299.91721"
sodipodi:role="line">source</tspan><tspan
id="tspan7894-2-9-4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35.1552px;line-height:1.25;font-family:FreeSans;-inkscape-font-specification:Sans;fill:#000000;fill-opacity:1"
y="-628.5788"
x="-299.91721"
sodipodi:role="line" /></text>
<text
inkscape:export-filename="/home/rafael/workspace/logo-osi/3/png/logo396x412.png"
inkscape:export-ydpi="48.18"
inkscape:export-xdpi="48.18"
id="text7890-3-1-1-4"
y="-609.43024"
x="-368.47388"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;display:inline;fill:#20552a;fill-opacity:1;stroke:none"
xml:space="preserve"
transform="scale(0.99041196,1.0096809)"><tspan
id="tspan3306-2-7"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35.1552px;line-height:1.25;font-family:OpenSymbol;-inkscape-font-specification:Sans;fill:#000000;fill-opacity:1"
y="-609.43024"
x="-368.47388"
sodipodi:role="line">initiative</tspan><tspan
id="tspan7894-2-9-4-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35.1552px;line-height:1.25;font-family:FreeSans;-inkscape-font-specification:Sans;fill:#000000;fill-opacity:1"
y="-593.47314"
x="-368.47388"
sodipodi:role="line" /></text>
<g
id="g3797"
transform="translate(-21.225811,-1.0146812)"
inkscape:export-filename="/home/rafael/workspace/logo-osi/3/png/logo396x412.png"
inkscape:export-xdpi="48.18"
inkscape:export-ydpi="48.18">
<ellipse
transform="matrix(0.33912491,0,0,0.33852655,-402.53969,-908.3754)"
id="path3015"
style="fill:none;stroke:#000000;stroke-width:6.66514;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
cx="645.71429"
cy="646.64789"
rx="23.571428"
ry="23.571411" />
<text
id="text3793"
y="-685.33014"
x="-188.29698"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:OpenSymbol;-inkscape-font-specification:'OpenSymbol Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
xml:space="preserve"><tspan
y="-685.33014"
x="-188.29698"
id="tspan3795"
sodipodi:role="line"
style="font-size:12.6552px;line-height:1.25">R</tspan></text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

@ -28,14 +28,14 @@
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="3.3209814"
inkscape:cx="103.43328"
inkscape:cy="143.48168"
inkscape:window-width="1720"
inkscape:window-height="1380"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:cx="103.58384"
inkscape:cy="143.18057"
inkscape:window-width="1712"
inkscape:window-height="1409"
inkscape:window-x="1720"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="g1005" />
inkscape:current-layer="layer1" />
<defs
id="defs1053">
<inkscape:path-effect
@ -154,7 +154,7 @@
id="tspan975"
style="stroke-width:0.264583"
x="34.562565"
y="34.683277">wenig Messpunkte</tspan></text>
y="34.683277">wenige Messpunkte</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1894.98px" height="654.644px" viewBox="0 0 1894.98 654.644" enable-background="new 0 0 1894.98 654.644" xml:space="preserve">
<g>
<defs>
<rect id="SVGID_1_" width="1894.976" height="654.644"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_2_)" fill="#0079BD" d="M349.215,160.141c23.873,0,46.706,4.436,67.736,12.51 c-31.266-22.877-69.812-36.393-111.522-36.393c-22.446,0-43.975,3.921-63.95,11.1c-51.387,33.798-85.319,91.968-85.319,158.072 c0,13.378,1.399,26.428,4.041,39.021C162.73,242.229,246.385,160.141,349.215,160.141"/>
<path clip-path="url(#SVGID_2_)" fill="#97C21A" d="M160.141,349.214c0-1.593,0.021-3.181,0.06-4.764 c-2.643-12.593-4.041-25.643-4.041-39.022c0-66.104,33.932-124.273,85.319-158.071c-72.95,26.216-125.124,95.998-125.124,177.974 c0,80.55,50.376,149.323,121.337,176.564C190.682,467.5,160.141,411.928,160.141,349.214"/>
<path clip-path="url(#SVGID_2_)" fill="#009648" d="M345.234,494.502c-91.044,0-167.05-64.354-185.033-150.052 c-0.039,1.583-0.06,3.171-0.06,4.764c0,62.714,30.54,118.285,77.551,152.682c21.031,8.073,43.864,12.51,67.737,12.51 c38.306,0,73.943-11.403,103.725-30.982C389.189,490.594,367.668,494.502,345.234,494.502"/>
<path clip-path="url(#SVGID_2_)" fill="#00A1D2" d="M534.216,310.048c-1.921,79.967-53.459,147.633-125.032,173.354 c-29.788,19.593-65.436,31.002-103.755,31.002c-23.873,0-46.706-4.436-67.736-12.509c31.266,22.876,69.812,36.393,111.522,36.393 c104.422,0,189.073-84.651,189.073-189.073C538.288,335.786,536.879,322.686,534.216,310.048"/>
<path clip-path="url(#SVGID_2_)" fill="#393A90" d="M416.937,172.64c47.02,34.396,77.566,89.972,77.566,152.692 c0,66.117-33.944,124.296-85.349,158.092c71.55-25.699,123.117-93.31,125.094-173.23 C520.979,246.959,476.118,195.354,416.937,172.64"/>
<path clip-path="url(#SVGID_2_)" fill="#82348B" d="M305.429,136.258c41.709,0,80.256,13.516,111.522,36.393 C476.154,195.377,521,247.024,534.247,310.289c0.04-1.615,0.061-3.235,0.061-4.86c0-104.422-84.651-189.074-189.074-189.074 c-38.319,0-73.967,11.41-103.755,31.003C261.454,140.179,282.982,136.258,305.429,136.258"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M494.503,325.332c0-62.713-30.541-118.285-77.552-152.681 c-21.031-8.073-43.864-12.51-67.737-12.51c-102.83,0-186.485,82.089-189.013,184.31c17.983,85.699,93.989,150.052,185.033,150.052 c22.447,0,43.975-3.92,63.95-11.099C460.571,449.604,494.503,391.435,494.503,325.332"/>
<path clip-path="url(#SVGID_2_)" fill="#FFFFFF" d="M246.062,408.384v-85.311c0-6.718,5.466-12.184,12.185-12.184h0.874 c6.718,0,12.184,5.466,12.184,12.184v85.311h12.404v-85.311v-51.213c0-6.719,5.466-12.185,12.185-12.185h0.874 c6.718,0,12.184,5.466,12.184,12.185v136.523h12.404V271.861v-41.862c0-6.719,5.466-12.184,12.185-12.184h0.874 c6.718,0,12.184,5.465,12.184,12.184v41.862v136.523h12.404V271.861c0-6.719,5.466-12.185,12.184-12.185h0.875 c6.718,0,12.184,5.466,12.184,12.185v51.213v85.311h12.404v-85.311c0-6.718,5.466-12.184,12.184-12.184h0.874 c6.719,0,12.185,5.466,12.185,12.184v85.311h12.404v-85.311c0-13.558-11.03-24.588-24.589-24.588h-0.874 c-4.432,0-8.589,1.184-12.184,3.245v-29.87c0-13.558-11.03-24.588-24.588-24.588h-0.875c-4.431,0-8.589,1.184-12.184,3.244v-20.518 c0-13.558-11.03-24.589-24.588-24.589h-0.874c-13.559,0-24.589,11.031-24.589,24.589v20.518c-3.595-2.06-7.753-3.244-12.184-3.244 h-0.874c-13.559,0-24.589,11.03-24.589,24.588v29.87c-3.595-2.061-7.753-3.245-12.184-3.245h-0.874 c-13.559,0-24.589,11.03-24.589,24.588v85.311H246.062z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M663.342,494.469l-4.897-34.026c-0.897-6.285-1.47-10.936-1.795-13.955h-0.164 c-0.49,2.284-1.387,5.547-2.692,9.383l-12.976,38.599h-6.935l-12.322-36.149c-1.469-4.326-2.613-8.322-3.51-11.832h-0.083 c-0.325,4.325-0.814,8.976-1.469,14.523l-3.996,33.458h-6.449l7.836-55.082h7.914l12.647,37.291 c0.901,2.695,2.206,6.938,3.103,10.692h0.082c1.062-3.754,1.959-6.855,3.018-10.12l12.893-37.863h8.161l8.161,55.082H663.342z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M696.461,495.203c-10.852,0-17.87-6.609-17.87-20.809 c0-11.585,7.182-21.215,19.339-21.215c9.877,0,17.953,5.465,17.953,20.318C715.883,485.577,708.458,495.203,696.461,495.203 M697.362,458.237c-6.367,0-12.404,4.815-12.404,15.667c0,10.364,4.404,16.076,12.404,16.076c6.363,0,12.157-4.894,12.157-16.076 C709.519,464.113,705.437,458.237,697.362,458.237"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M741.091,494.959c-5.466,0-9.301-0.407-13.462-1.551v-58.511h6.12v20.565 c0,2.284-0.247,5.387-0.737,7.428l0.165,0.079c2.284-6.12,7.506-9.791,13.873-9.791c9.548,0,14.931,6.609,14.931,19.178 C761.981,486.799,753.821,494.959,741.091,494.959 M745.824,458.237c-8.161,0-12.075,9.466-12.075,16.647v14.199 c2.366,0.735,4.815,1.061,7.914,1.061c8.404,0,13.873-5.058,13.873-17.298C755.536,463.707,752.515,458.237,745.824,458.237"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M777.073,445.018c-2.366,0-4.243-1.794-4.243-4.161 c0-2.284,1.877-4.161,4.243-4.161c2.285,0,4.244,1.795,4.244,4.161C781.317,443.141,779.358,445.018,777.073,445.018 M773.974,453.912h6.12v40.559h-6.12V453.912z"/>
<rect x="796.166" y="434.898" clip-path="url(#SVGID_2_)" fill="#005EA7" width="6.12" height="59.572"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M847.573,473.254H820.48c-0.407,11.914,4.325,16.809,13.463,16.809 c3.917,0,8-0.815,11.507-2.367l1.061,4.979c-4,1.551-8.733,2.527-13.791,2.527c-12.079,0-18.606-6.609-18.606-20.808 c0-12.075,6.609-21.216,17.873-21.216c11.178,0,15.747,7.588,15.747,16.4C847.734,470.398,847.734,471.786,847.573,473.254 M831.576,457.912c-5.712,0-9.791,4.243-10.771,10.853h20.566C841.532,462.238,837.778,457.912,831.576,457.912"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M898.891,495.203c-17.055,0-20.318-9.544-20.318-19.01v-36.806h6.281v36.233 c0,7.915,2.612,14.442,14.527,14.442c10.116,0,15.096-4.243,15.096-15.993v-34.683h6.12v34.192 C920.597,487.696,913.172,495.203,898.891,495.203"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M962.37,494.469v-26.194c0-6.363-1.716-10.037-7.589-10.037 c-7.264,0-12.404,7.181-12.404,16.811v19.421h-6.12v-40.558h6.038c0,2.695-0.247,6.61-0.654,9.058l0.164,0.083 c2.284-5.956,7.424-9.874,14.524-9.874c9.305,0,12.16,5.796,12.16,13.056v28.235H962.37z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M987.253,445.018c-2.366,0-4.243-1.794-4.243-4.161 c0-2.284,1.877-4.161,4.243-4.161c2.284,0,4.243,1.795,4.243,4.161C991.496,443.141,989.537,445.018,987.253,445.018 M984.151,453.912h6.12v40.559h-6.12V453.912z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1023.071,494.469h-6.363l-15.342-40.558h6.935l9.466,26.442 c0.818,2.526,1.552,4.814,2.288,7.181h0.082c0.65-2.205,1.466-4.654,2.203-6.856l9.707-26.767h6.692L1023.071,494.469z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1077.413,473.254h-27.092c-0.408,11.914,4.325,16.809,13.466,16.809 c3.918,0,7.996-0.815,11.507-2.367l1.058,4.979c-3.996,1.551-8.729,2.527-13.787,2.527c-12.079,0-18.606-6.609-18.606-20.808 c0-12.075,6.609-21.216,17.87-21.216c11.182,0,15.75,7.588,15.75,16.4C1077.578,470.398,1077.578,471.786,1077.413,473.254 M1061.42,457.912c-5.712,0-9.791,4.243-10.771,10.853h20.563C1071.376,462.238,1067.622,457.912,1061.42,457.912"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1109.153,459.298c-8.977-1.551-13.22,5.306-13.22,18.933v16.239h-6.12v-40.559 h6.038c0,2.695-0.325,6.692-0.979,10.202l0.164,0.082c1.631-5.959,5.874-11.914,14.359-10.935L1109.153,459.298z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1125.793,495.203c-3.1,0-6.527-0.325-9.059-1.058l0.736-5.631 c2.61,0.977,6.038,1.549,9.141,1.549c5.63,0,9.709-2.61,9.709-6.854c0-9.955-19.829-3.674-19.829-18.116 c0-6.773,5.306-11.914,15.668-11.914c2.531,0,5.631,0.407,7.997,0.897l-0.572,5.14c-2.448-0.732-5.301-1.222-8.079-1.222 c-5.873,0-8.729,2.448-8.729,6.444c0,9.795,19.829,4.001,19.829,17.951C1142.605,489.573,1136.32,495.203,1125.793,495.203"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1158.759,445.018c-2.366,0-4.243-1.794-4.243-4.161 c0-2.284,1.877-4.161,4.243-4.161c2.284,0,4.243,1.795,4.243,4.161C1163.002,443.141,1161.043,445.018,1158.759,445.018 M1155.655,453.912h6.12v40.559h-6.12V453.912z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1191.56,495.124c-8.161,0-10.527-3.592-10.527-11.997v-24.399h-8.815v-4.815 h8.815V440.45l6.12-1.716v15.178h11.914v4.815h-11.914v21.87c0,7.263,1.305,9.14,6.12,9.14c2.041,0,3.917-0.247,5.469-0.654 l0.732,5.145C1197.189,494.713,1194.087,495.124,1191.56,495.124"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1227.95,498.305c-4.733,12.729-9.631,17.138-18.688,17.138 c-1.305,0-3.1-0.247-4.325-0.49l0.653-5.469c1.306,0.329,3.264,0.571,4.815,0.571c4.568,0,7.997-2.201,11.343-10.853l1.794-4.733 l-15.503-40.558h7.017l8.486,23.257c1.305,3.757,2.206,6.613,3.104,9.63h0.082c0.732-2.608,2.445-7.671,4.078-12.322l7.264-20.564 h6.692L1227.95,498.305z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1284.656,495.203c-10.854,0-17.871-6.609-17.871-20.809 c0-11.585,7.178-21.215,19.339-21.215c9.873,0,17.952,5.465,17.952,20.318C1304.076,485.577,1296.652,495.203,1284.656,495.203 M1285.552,458.237c-6.366,0-12.403,4.815-12.403,15.667c0,10.364,4.407,16.076,12.403,16.076c6.367,0,12.158-4.894,12.158-16.076 C1297.71,464.113,1293.631,458.237,1285.552,458.237"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1339.647,440.367c-2.041-0.653-4.243-0.896-6.366-0.896 c-6.202,0-8.977,3.589-8.977,11.424v3.018h11.997v4.815h-11.997v35.743h-6.119v-35.743h-8.811v-4.815h8.811v-2.856 c0-11.342,5.63-16.564,15.342-16.564c2.284,0,4.486,0.246,6.692,0.736L1339.647,440.367z"/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="1386.969,444.61 1386.969,494.469 1380.767,494.469 1380.767,444.61 1364.281,444.61 1364.281,439.387 1403.534,439.387 1403.534,444.61 "/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1438.862,473.254h-27.092c-0.408,11.914,4.325,16.809,13.465,16.809 c3.918,0,7.997-0.815,11.507-2.367l1.059,4.979c-3.996,1.551-8.729,2.527-13.787,2.527c-12.079,0-18.606-6.609-18.606-20.808 c0-12.075,6.609-21.216,17.87-21.216c11.181,0,15.75,7.588,15.75,16.4C1439.027,470.398,1439.027,471.786,1438.862,473.254 M1422.869,457.912c-5.712,0-9.791,4.243-10.771,10.853h20.563C1432.825,462.238,1429.071,457.912,1422.869,457.912"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1464.972,495.042c-9.058,0-17.544-4.083-17.544-19.421 c0-13.302,6.691-22.277,19.339-22.277c3.918,0,7.507,0.65,10.362,1.795l-1.223,5.14c-2.694-1.061-6.284-1.959-9.873-1.959 c-7.834,0-12.161,6.774-12.161,16.24c0,8.322,2.613,15.26,12.322,15.26c3.671,0,7.1-0.736,10.038-2.123l1.144,5.063 C1473.865,494.227,1469.297,495.042,1464.972,495.042"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1516.133,494.469v-26.194c0-6.363-1.716-10.037-7.589-10.037 c-7.265,0-12.404,7.181-12.404,16.811v19.421h-6.12v-59.571h6.12v19.915c0,2.691-0.165,6.037-0.653,8.078l0.164,0.078 c2.365-5.954,7.424-9.791,14.44-9.791c9.306,0,12.161,5.796,12.161,13.056v28.235H1516.133z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1563.454,494.469v-26.194c0-6.363-1.713-10.037-7.589-10.037 c-7.264,0-12.404,7.181-12.404,16.811v19.421h-6.12v-40.558h6.038c0,2.695-0.243,6.61-0.651,9.058l0.161,0.083 c2.288-5.956,7.429-9.874,14.527-9.874c9.302,0,12.158,5.796,12.158,13.056v28.235H1563.454z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1599.107,495.203c-10.853,0-17.869-6.609-17.869-20.809 c0-11.585,7.178-21.215,19.339-21.215c9.873,0,17.952,5.465,17.952,20.318C1618.529,485.577,1611.105,495.203,1599.107,495.203 M1600.005,458.237c-6.366,0-12.404,4.815-12.404,15.667c0,10.364,4.408,16.076,12.404,16.076c6.366,0,12.157-4.894,12.157-16.076 C1612.162,464.113,1608.084,458.237,1600.005,458.237"/>
<rect x="1630.276" y="434.898" clip-path="url(#SVGID_2_)" fill="#005EA7" width="6.12" height="59.572"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1665.93,495.203c-10.854,0-17.871-6.609-17.871-20.809 c0-11.585,7.182-21.215,19.34-21.215c9.877,0,17.953,5.465,17.953,20.318C1685.352,485.577,1677.926,495.203,1665.93,495.203 M1666.83,458.237c-6.367,0-12.404,4.815-12.404,15.667c0,10.364,4.404,16.076,12.404,16.076c6.362,0,12.157-4.894,12.157-16.076 C1678.987,464.113,1674.905,458.237,1666.83,458.237"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1710.48,515.443c-10.285,0-16.973-4.325-16.973-12.079 c0-4.977,3.264-8.977,7.099-11.179c-2.53-0.979-4.082-3.264-4.082-5.959c0-2.773,1.716-5.301,4.407-6.69 c-3.753-2.203-5.958-5.874-5.958-11.261c0-7.996,6.041-15.096,16.894-15.096c2.119,0,3.428,0.242,5.466,0.732h13.791v4.814h-7.261 c2.367,1.878,3.754,4.897,3.754,8.408c0,8.239-5.552,14.768-16.977,14.768c-1.794,0-3.264-0.161-4.812-0.651 c-1.876,0.897-2.938,2.367-2.938,3.754c0,2.449,2.284,3.263,7.261,3.428l7.836,0.325c8.812,0.325,13.626,4.49,13.626,11.589 C1731.613,508.915,1722.884,515.443,1710.48,515.443 M1716.274,493.981l-8.161-0.326h-2.612c-3.507,2.284-5.795,5.223-5.795,8.647 c0,5.227,5.062,8.243,11.836,8.243c8.894,0,13.791-3.997,13.791-9.384C1725.333,496.836,1722.477,494.226,1716.274,493.981 M1711.542,457.912c-6.613,0-10.445,4.243-10.445,9.874c0,6.119,3.671,9.547,10.198,9.547c6.284,0,10.202-3.51,10.202-9.63 C1721.497,461.665,1717.904,457.912,1711.542,457.912"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1761.798,498.305c-4.731,12.729-9.626,17.138-18.685,17.138 c-1.305,0-3.103-0.247-4.325-0.49l0.655-5.469c1.304,0.329,3.263,0.571,4.811,0.571c4.571,0,8-2.201,11.342-10.853l1.798-4.733 l-15.507-40.558h7.021l8.485,23.257c1.306,3.757,2.202,6.613,3.1,9.63h0.082c0.733-2.608,2.45-7.671,4.079-12.322l7.264-20.564 h6.691L1761.798,498.305z"/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="692.15,249.805 678.878,249.805 663.195,195.649 647.509,249.805 634.373,249.805 605.014,160.126 624.589,160.126 640.94,216.693 656.625,160.126 669.894,160.126 685.58,216.693 701.802,160.126 721.369,160.126 "/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="732.093,249.537 732.093,236.4 744.962,236.4 744.962,173.261 732.093,173.261 732.093,160.126 777.67,160.126 777.67,173.261 764.801,173.261 764.801,236.4 777.67,236.4 777.67,249.537 "/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="795.629,249.537 795.629,160.126 815.469,160.126 815.469,234.123 845.765,234.123 845.765,249.537 "/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="909.437,249.537 909.437,208.65 882.358,208.65 882.358,249.537 862.519,249.537 862.519,160.126 882.358,160.126 882.358,193.1 909.437,193.1 909.437,160.126 929.275,160.126 929.275,249.537 "/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="950.999,249.537 950.999,160.126 1001.537,160.126 1001.537,175.541 970.838,175.541 970.838,193.1 998.052,193.1 998.052,208.518 970.838,208.518 970.838,234.123 1002.878,234.123 1002.878,249.537 "/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="1021.67,249.537 1021.67,160.126 1041.51,160.126 1041.51,234.123 1071.801,234.123 1071.801,249.537 "/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="1147.541,249.537 1147.541,197.39 1128.774,233.451 1125.02,233.451 1106.118,197.39 1106.118,249.537 1089.229,249.537 1089.229,160.126 1103.169,160.126 1126.895,204.36 1150.486,160.126 1164.428,160.126 1164.428,249.537 "/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1252.493,249.537h-33.376v-89.411h28.551c20.375,0,31.771,7.909,31.771,23.995 c0,6.971-4.021,12.733-9.115,16.354c8.043,4.29,14.077,12.333,14.077,21.58C1284.401,238.544,1273.141,249.537,1252.493,249.537 M1238.956,174.201v20.108h8.712c7.242,0,12.332-2.817,12.332-10.188s-5.09-9.92-12.332-9.92H1238.956z M1238.956,208.386v27.075 h10.992c9.115,0,14.746-4.554,14.746-13.406c0-8.843-5.631-13.669-14.746-13.669H1238.956z"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1331.983,251.011c-17.827,0-32.708-13.406-32.708-37.263v-53.622h19.839 v55.899c0,12.601,5.495,18.363,12.869,18.363c7.507,0,12.87-5.762,12.87-18.363v-55.899h19.838v53.622 C1364.691,237.604,1349.946,251.011,1331.983,251.011 M1317.506,151.949c-4.558,0-8.311-4.021-8.311-8.445 c0-4.558,3.753-8.311,8.311-8.311c4.422,0,8.176,3.753,8.176,8.311C1325.682,147.928,1321.928,151.949,1317.506,151.949 M1346.461,151.949c-4.558,0-8.312-4.021-8.312-8.445c0-4.558,3.754-8.311,8.312-8.311c4.559,0,8.311,3.753,8.311,8.311 C1354.771,147.928,1351.02,151.949,1346.461,151.949"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1417.636,251.01c-22.784,0-37.934-20.508-37.934-46.113 c0-25.602,15.149-46.246,37.934-46.246c13.273,0,22.656,5.898,28.419,16.354l-10.052,10.052c-4.826-5.762-9.384-8.98-16.354-8.98 c-10.724,0-19.707,10.324-19.707,28.82c0,18.502,8.983,28.69,19.707,28.69c6.971,0,11.929-3.754,16.219-8.983l10.323,10.187 C1440.561,244.711,1430.909,251.01,1417.636,251.01"/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="1509.055,249.537 1509.055,208.65 1481.98,208.65 1481.98,249.537 1462.141,249.537 1462.141,160.126 1481.98,160.126 1481.98,193.1 1509.055,193.1 1509.055,160.126 1528.895,160.126 1528.895,249.537 "/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="1601.01,249.537 1566.428,197.662 1566.428,249.537 1549.27,249.537 1549.27,160.126 1562.139,160.126 1596.72,212.003 1596.72,160.126 1613.878,160.126 1613.878,249.537 "/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="1634.922,249.537 1634.922,160.126 1685.457,160.126 1685.457,175.541 1654.762,175.541 1654.762,193.1 1681.976,193.1 1681.976,208.518 1654.762,208.518 1654.762,234.123 1686.802,234.123 1686.802,249.537 "/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1755.964,249.537l-22.385-29.759h-9.251v29.759h-19.838v-89.411h31.503 c21.18,0,33.647,13.406,33.647,29.893c0,11.124-5.766,20.911-16.357,25.873l25.337,33.645H1755.964z M1733.18,174.469h-8.852 v30.964h8.852c10.319,0,16.35-5.763,16.35-15.414C1749.529,180.231,1743.499,174.469,1733.18,174.469"/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="661.183,377.653 661.183,336.766 634.104,336.766 634.104,377.653 614.266,377.653 614.266,288.243 634.104,288.243 634.104,321.216 661.183,321.216 661.183,288.243 681.021,288.243 681.021,377.653 "/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M771.1,333.013c0,26.677-16.222,46.112-37.67,46.112 c-21.448,0-37.534-19.436-37.534-46.112c0-26.674,16.086-46.245,37.534-46.245C754.878,286.768,771.1,306.339,771.1,333.013 M733.43,303.522c-8.979,0-17.291,9.651-17.291,29.491c0,19.84,8.312,29.49,17.291,29.49c8.983,0,17.43-9.65,17.43-29.49 C750.86,313.173,742.413,303.522,733.43,303.522"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M821.768,379.125c-22.792,0-37.938-20.508-37.938-46.112 c0-25.603,15.146-46.245,37.938-46.245c13.269,0,22.652,5.898,28.418,16.354l-10.055,10.051c-4.826-5.762-9.384-8.979-16.354-8.979 c-10.724,0-19.704,10.324-19.704,28.819c0,18.503,8.98,28.689,19.704,28.689c6.97,0,11.932-3.753,16.221-8.982l10.321,10.188 C844.688,372.828,835.037,379.125,821.768,379.125"/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="912.514,377.653 912.514,336.766 885.436,336.766 885.436,377.653 865.597,377.653 865.597,288.243 885.436,288.243 885.436,321.216 912.514,321.216 912.514,288.243 932.354,288.243 932.354,377.653 "/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M979.268,379.125c-11.528,0-22.656-4.29-30.296-11.392l6.567-13.137 c8.314,5.762,15.686,8.311,23.057,8.311c6.434,0,11.128-2.949,11.128-9.384c0-6.166-8.58-9.383-18.499-13.941 c-10.589-4.961-20.512-12.468-20.512-27.078c0-15.146,12.736-25.737,28.955-25.737c9.788,0,19.574,4.289,26.945,11.928 l-6.166,12.604c-7.91-5.898-14.345-8.314-20.242-8.314c-6.3,0-10.59,3.353-10.59,8.715c0,5.498,5.632,8.443,12.869,11.66 c12.601,5.634,26.274,11.664,26.274,28.555C1008.759,369.342,995.085,379.125,979.268,379.125"/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1059.533,379.125c-22.789,0-37.935-20.508-37.935-46.112 c0-25.603,15.146-46.245,37.935-46.245c13.27,0,22.656,5.898,28.418,16.354l-10.052,10.051c-4.825-5.762-9.388-8.979-16.357-8.979 c-10.724,0-19.704,10.324-19.704,28.819c0,18.503,8.98,28.689,19.704,28.689c6.97,0,11.933-3.753,16.222-8.982l10.323,10.188 C1082.454,372.828,1072.803,379.125,1059.533,379.125"/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="1150.951,377.653 1150.951,336.766 1123.873,336.766 1123.873,377.653 1104.034,377.653 1104.034,288.243 1123.873,288.243 1123.873,321.216 1150.951,321.216 1150.951,288.243 1170.791,288.243 1170.791,377.653 "/>
<path clip-path="url(#SVGID_2_)" fill="#005EA7" d="M1223.871,379.125c-17.827,0-32.708-13.404-32.708-37.262v-53.62h19.839v55.897 c0,12.601,5.495,18.362,12.869,18.362c7.507,0,12.869-5.762,12.869-18.362v-55.897h19.839v53.62 C1256.579,365.721,1241.834,379.125,1223.871,379.125"/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="1278.117,377.653 1278.117,288.243 1297.956,288.243 1297.956,362.24 1328.252,362.24 1328.252,377.653 "/>
<polygon clip-path="url(#SVGID_2_)" fill="#005EA7" points="1345.678,377.653 1345.678,288.243 1396.213,288.243 1396.213,303.657 1365.518,303.657 1365.518,321.216 1392.728,321.216 1392.728,336.634 1365.518,336.634 1365.518,362.24 1397.554,362.24 1397.554,377.653 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

@ -26,15 +26,15 @@
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.9461521"
inkscape:cx="352.48033"
inkscape:cy="263.69967"
inkscape:window-width="1720"
inkscape:window-height="1380"
inkscape:zoom="1.3380611"
inkscape:cx="340.79161"
inkscape:cy="268.67233"
inkscape:window-width="1712"
inkscape:window-height="1409"
inkscape:window-x="1720"
inkscape:window-y="32"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer2"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
@ -110,14 +110,14 @@
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="117.67733"
y="87.067345"
x="104.62843"
y="79.26403"
id="text7614"><tspan
sodipodi:role="line"
id="tspan7612"
style="stroke-width:0.264583"
x="117.67733"
y="87.067345">Zone 2</tspan></text>
x="104.62843"
y="79.26403">Zone 2</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
@ -132,14 +132,14 @@
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="133.18498"
y="69.314644"
x="109.9843"
y="55.53199"
id="text12796"><tspan
sodipodi:role="line"
id="tspan12794"
style="stroke-width:0.264583"
x="133.18498"
y="69.314644">Zone 3</tspan></text>
x="109.9843"
y="55.53199">Zone 3</tspan></text>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path15436"
@ -172,14 +172,14 @@
<text
xml:space="preserve"
style="font-size:7.76111px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="61.166931"
y="84.364799"
x="123.93523"
y="82.982758"
id="text29678"><tspan
sodipodi:role="line"
id="tspan29676"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583"
x="61.166931"
y="84.364799">x</tspan></text>
x="123.93523"
y="82.982758">x</tspan></text>
<text
xml:space="preserve"
style="font-size:7.76111px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
@ -274,7 +274,7 @@
id="tspan58600"
style="font-size:3.52778px;fill:#474747;fill-opacity:1;stroke-width:0.264583"
x="124.62286"
y="140.97481">0,750m</tspan></text>
y="140.97481">0,932m</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
@ -300,14 +300,14 @@
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="66.897743"
y="85.274292"
x="128.74704"
y="85.749252"
id="text13749"><tspan
sodipodi:role="line"
id="tspan13747"
style="stroke-width:0.264583"
x="66.897743"
y="85.274292">C</tspan></text>
x="128.74704"
y="85.749252">C</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
@ -319,5 +319,39 @@
style="stroke-width:0.264583"
x="98.213211"
y="206.69835">D</tspan></text>
<text
xml:space="preserve"
style="font-size:3.09883px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="92.655235"
y="72.997246"
id="text3676"><tspan
sodipodi:role="line"
id="tspan3674"
style="stroke-width:0.264583"
x="92.655235"
y="72.997246">690f</tspan></text>
<text
xml:space="preserve"
style="font-size:3.15907px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="138.48398"
y="153.53679"
id="text5410"><tspan
sodipodi:role="line"
id="tspan5408"
style="stroke-width:0.264583"
x="138.48398"
y="153.53679">5b5b</tspan></text>
<text
xml:space="preserve"
style="font-size:2.88184px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="43.100227"
y="159.90285"
id="text9728"
transform="scale(1.0442532,0.95762216)"><tspan
sodipodi:role="line"
id="tspan9726"
style="stroke-width:0.264583"
x="43.100227"
y="159.90285">9d31</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

@ -26,15 +26,15 @@
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="3.3209814"
inkscape:cx="115.92959"
inkscape:cy="74.526163"
inkscape:window-width="1720"
inkscape:window-height="1380"
inkscape:window-x="1720"
inkscape:window-y="32"
inkscape:zoom="1.6604907"
inkscape:cx="143.93336"
inkscape:cy="-118.0374"
inkscape:window-width="1139"
inkscape:window-height="1409"
inkscape:window-x="1146"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer2"
inkscape:current-layer="layer3"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
@ -46,6 +46,74 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(-80.43809,-24.478283)" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Winkel"
style="display:inline"
transform="translate(-80.43809,-24.478283)">
<path
id="path7243"
style="fill:#ff8080;fill-opacity:0.98039216;stroke:#000000;stroke-width:0.377953;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 500.50586,177.67578 a 30.44238,29.338695 0 0 0 -6.71875,18.37891 30.44238,29.338695 0 0 0 0.0234,0.58593 l 36.62109,-0.14648 z"
transform="scale(0.26458333)" />
<path
id="path7434"
style="fill:#ff8080;fill-opacity:0.98039216;stroke:#000000;stroke-width:0.0999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:transform-center-x="-0.094475646"
inkscape:transform-center-y="-5.0863034"
d="m 100.56034,27.107648 -3.14529,4.991487 a 7.656408,7.5197261 0 0 0 4.13165,1.194434 7.656408,7.5197261 0 0 0 5.33614,-2.134059 z" />
<path
id="path8212"
style="fill:#ff8080;fill-opacity:0.98039216;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:transform-center-x="-0.09938367"
inkscape:transform-center-y="-5.0817535"
d="m 88.835404,45.009398 -4.627108,6.973128 7.317383,-0.02851 a 8.0545463,7.5129982 0 0 0 0.115239,-1.245881 8.0545463,7.5129982 0 0 0 -2.805514,-5.69874 z" />
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="87.328972"
y="50.314068"
id="text28079"><tspan
sodipodi:role="line"
id="tspan28077"
style="stroke-width:0.264583"
x="87.328972"
y="50.314068">α</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="100.27863"
y="31.917028"
id="text32001"><tspan
sodipodi:role="line"
id="tspan31999"
style="stroke-width:0.264583"
x="100.27863"
y="31.917028">β</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="131.92519"
y="50.436207"
id="text38737"><tspan
sodipodi:role="line"
id="tspan38735"
style="stroke-width:0.264583"
x="131.92519"
y="50.436207">γ</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="107.88968"
y="55.34845"
id="text45035"><tspan
sodipodi:role="line"
id="tspan45033"
style="stroke-width:0.264583"
x="107.88968"
y="55.34845">d</tspan></text>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
@ -198,8 +266,9 @@
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 84.208225,51.989016 H 140.34357"
id="path929" />
d="m 84.208225,51.989016 h 46.942945 9.1924"
id="path929"
sodipodi:nodetypes="ccc" />
<rect
style="fill:#000000;fill-opacity:0.980392;stroke:none;stroke-width:0.499999;stroke-opacity:0.729412"
id="rect953"
@ -228,72 +297,4 @@
d="M 140.34357,51.989016 102.35962,28.289975"
id="path7218" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Winkel"
style="display:inline"
transform="translate(-80.43809,-24.478283)">
<path
id="path7243"
style="fill:none;fill-opacity:0.980392;stroke:#000000;stroke-width:0.377953;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 500.50586,177.67578 a 30.44238,29.338695 0 0 0 -6.71875,18.37891 30.44238,29.338695 0 0 0 0.0234,0.58593 l 36.62109,-0.14648 z"
transform="scale(0.26458333)" />
<path
id="path7434"
style="fill:none;fill-opacity:0.980392;stroke:#000000;stroke-width:0.0999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:transform-center-x="-0.094475646"
inkscape:transform-center-y="-5.0863034"
d="m 100.56034,27.107648 -3.14529,4.991487 a 7.656408,7.5197261 0 0 0 4.13165,1.194434 7.656408,7.5197261 0 0 0 5.33614,-2.134059 z" />
<path
id="path8212"
style="fill:none;fill-opacity:0.980392;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:transform-center-x="-0.09938367"
inkscape:transform-center-y="-5.0817535"
d="m 88.835404,45.009398 -4.627108,6.973128 7.317383,-0.02851 a 8.0545463,7.5129982 0 0 0 0.115239,-1.245881 8.0545463,7.5129982 0 0 0 -2.805514,-5.69874 z" />
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="87.328972"
y="50.314068"
id="text28079"><tspan
sodipodi:role="line"
id="tspan28077"
style="stroke-width:0.264583"
x="87.328972"
y="50.314068">α</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="100.27863"
y="31.917028"
id="text32001"><tspan
sodipodi:role="line"
id="tspan31999"
style="stroke-width:0.264583"
x="100.27863"
y="31.917028">β</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="131.92519"
y="50.436207"
id="text38737"><tspan
sodipodi:role="line"
id="tspan38735"
style="stroke-width:0.264583"
x="131.92519"
y="50.436207">γ</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="107.88968"
y="55.34845"
id="text45035"><tspan
sodipodi:role="line"
id="tspan45033"
style="stroke-width:0.264583"
x="107.88968"
y="55.34845">d</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

@ -0,0 +1,16 @@
flowchart TD
data --> Verarbeitung
Verarbeitung --> Positionsberechnung
subgraph Positionsberechnung
dataPos[Datenberechnung auf Fenster von +- 200ms] --> checkDevice{alle Geräte in Datensatz}
checkDevice --> ja
checkDevice --> nein
nein --> allNaN[Alle Spalten NaN]
ja --> getRadii[Radien von Datensatz]
getRadii --> getPosition[x,y Positionsbestimmung]
getPosition --> mse[Ermittle MSE]
getPosition --> locerr[Ermittle Location Error]
allNaN --> append[Daten zusammenführen]
getPosition --> append
end

Binary file not shown.

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="42.990032mm"
height="30.303333mm"
viewBox="0 0 42.990031 30.303333"
version="1.1"
id="svg1056"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="digitale-strecke.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1058"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="3.3209814"
inkscape:cx="73.472257"
inkscape:cy="26.197075"
inkscape:window-width="1712"
inkscape:window-height="1409"
inkscape:window-x="1720"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs1053">
<inkscape:path-effect
effect="skeletal"
id="path-effect973"
is_visible="true"
lpeversion="1"
pattern="m 70.853032,41.79779 a 0.47876352,0.44136241 54.869114 0 1 -0.636466,-0.137572 0.47876352,0.44136241 54.869114 0 1 0.08546,-0.645532 0.47876352,0.44136241 54.869114 0 1 0.636465,0.137571 0.47876352,0.44136241 54.869114 0 1 -0.08546,0.645533 z"
copytype="repeated"
prop_scale="1"
scale_y_rel="false"
spacing="8.6"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
hide_knot="false"
fuse_tolerance="0" />
</defs>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-84.40673,-41.834703)">
<g
id="g969"
transform="translate(3.1090383,1.260922)"
inkscape:export-filename="/home/sebastian/Dokumente/Privat/Studium/WBH/Thesis/static/wegpunkte.png"
inkscape:export-xdpi="236"
inkscape:export-ydpi="236">
<path
style="fill:none;stroke:#b0b0b0;stroke-width:2.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 122.86877,52.130692 C 104.43798,12.616139 96.686723,101.43682 82.671933,56.824311"
id="path963" />
<path
style="fill:none;stroke:#ff8080;stroke-width:1.865;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.9"
d="m 122.86877,52.130692 -5.74389,-8.794389 -8.38353,0.709029 -5.34354,7.890411 -4.197701,8.151031 -4.96312,7.654687 -7.404182,-1.598342 -4.160873,-9.318807"
id="path965"
sodipodi:nodetypes="cccccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 122.89394,51.249873 c 0.21368,0.120569 0.28046,0.407085 0.14922,0.637123 -0.13125,0.230066 -0.40982,0.31637 -0.62084,0.196652 -0.21105,-0.11973 -0.27688,-0.401097 -0.1477,-0.63138 0.1292,-0.230311 0.40566,-0.322951 0.61932,-0.202395 z m -5.29847,-8.015312 c 0.24896,0.03742 0.4185,0.292098 0.37125,0.554392 -0.0473,0.26247 -0.28802,0.428604 -0.52083,0.389499 -0.2329,-0.03912 -0.38425,-0.269176 -0.3488,-0.527347 0.0355,-0.258348 0.2495,-0.453951 0.49838,-0.416544 z m -8.89613,0.298503 c 0.0499,-0.246102 0.31373,-0.403415 0.57462,-0.342563 0.26022,0.0607 0.41284,0.310608 0.36281,0.540856 -0.05,0.230317 -0.28771,0.373018 -0.54615,0.323863 -0.25776,-0.04903 -0.44117,-0.276095 -0.39128,-0.522156 z m -5.46427,7.884216 c -0.0265,-0.24331 0.1668,-0.464387 0.43015,-0.491992 0.26331,-0.0276 0.49596,0.148221 0.52173,0.389412 0.0258,0.241186 -0.16469,0.459102 -0.42717,0.488171 -0.26244,0.02906 -0.49821,-0.142275 -0.52471,-0.385591 z m -4.391478,8.444463 c -0.03154,-0.241019 0.154397,-0.464046 0.416433,-0.498948 0.261988,-0.0349 0.501195,0.131891 0.533207,0.374208 0.03201,0.242312 -0.155638,0.467303 -0.41822,0.501319 -0.262534,0.03401 -0.499881,-0.135554 -0.53142,-0.376579 z m -5.107176,7.8484 c 0.03493,-0.233636 0.264725,-0.391604 0.526621,-0.358782 0.02298,0.0029 0.04577,0.0072 0.0682,0.01304 0,0 0,0 0,0 0.159092,0.04121 0.288167,0.152639 0.337346,0.299956 0,0 0,0 0,0 0.01975,0.05887 0.02592,0.121111 0.0178,0.182804 -0.03272,0.248462 -0.284441,0.424891 -0.550884,0.381068 -0.26479,-0.04355 -0.433962,-0.284729 -0.399074,-0.518089 z M 86.84012,65.927759 c 0.21921,0.09358 0.313513,0.357021 0.216104,0.599888 -0.09747,0.243024 -0.354753,0.377631 -0.585635,0.282518 -0.230944,-0.09514 -0.333988,-0.379235 -0.227448,-0.623016 0.106607,-0.243937 0.377826,-0.352944 0.596979,-0.25939 z m -3.621674,-8.676401 c 0.194071,0.146178 0.222969,0.434446 0.0648,0.645989 -0.158184,0.211565 -0.444462,0.266662 -0.640334,0.119688 -0.195882,-0.146983 -0.225107,-0.438989 -0.06547,-0.650213 0.159653,-0.211247 0.446942,-0.261633 0.641004,-0.115464 z"
id="path967"
inkscape:path-effect="#path-effect973"
inkscape:original-d="M 122.85252,52.079026 C 104.42173,12.564469 96.670481,101.38516 82.655688,56.77264" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="42.990032mm"
height="30.303333mm"
viewBox="0 0 42.990031 30.303333"
version="1.1"
id="svg1056"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="digitale-wegpunkte.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1058"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="3.3209814"
inkscape:cx="73.472257"
inkscape:cy="26.197075"
inkscape:window-width="1712"
inkscape:window-height="1409"
inkscape:window-x="1720"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="g969" />
<defs
id="defs1053">
<inkscape:path-effect
effect="skeletal"
id="path-effect973"
is_visible="true"
lpeversion="1"
pattern="m 70.853032,41.79779 a 0.47876352,0.44136241 54.869114 0 1 -0.636466,-0.137572 0.47876352,0.44136241 54.869114 0 1 0.08546,-0.645532 0.47876352,0.44136241 54.869114 0 1 0.636465,0.137571 0.47876352,0.44136241 54.869114 0 1 -0.08546,0.645533 z"
copytype="repeated"
prop_scale="1"
scale_y_rel="false"
spacing="8.6"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
hide_knot="false"
fuse_tolerance="0" />
</defs>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-84.40673,-41.834703)">
<g
id="g969"
transform="translate(3.1090383,1.260922)"
inkscape:export-filename="/home/sebastian/Dokumente/Privat/Studium/WBH/Thesis/static/wegpunkte.png"
inkscape:export-xdpi="236"
inkscape:export-ydpi="236">
<path
style="fill:none;stroke:#b0b0b0;stroke-width:2.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 122.86877,52.130692 C 104.43798,12.616139 96.686723,101.43682 82.671933,56.824311"
id="path963" />
<path
style="fill:none;stroke:#000000;stroke-width:2.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 122.89394,51.249873 c 0.21368,0.120569 0.28046,0.407085 0.14922,0.637123 -0.13125,0.230066 -0.40982,0.31637 -0.62084,0.196652 -0.21105,-0.11973 -0.27688,-0.401097 -0.1477,-0.63138 0.1292,-0.230311 0.40566,-0.322951 0.61932,-0.202395 z m -5.29847,-8.015312 c 0.24896,0.03742 0.4185,0.292098 0.37125,0.554392 -0.0473,0.26247 -0.28802,0.428604 -0.52083,0.389499 -0.2329,-0.03912 -0.38425,-0.269176 -0.3488,-0.527347 0.0355,-0.258348 0.2495,-0.453951 0.49838,-0.416544 z m -8.89613,0.298503 c 0.0499,-0.246102 0.31373,-0.403415 0.57462,-0.342563 0.26022,0.0607 0.41284,0.310608 0.36281,0.540856 -0.05,0.230317 -0.28771,0.373018 -0.54615,0.323863 -0.25776,-0.04903 -0.44117,-0.276095 -0.39128,-0.522156 z m -5.46427,7.884216 c -0.0265,-0.24331 0.1668,-0.464387 0.43015,-0.491992 0.26331,-0.0276 0.49596,0.148221 0.52173,0.389412 0.0258,0.241186 -0.16469,0.459102 -0.42717,0.488171 -0.26244,0.02906 -0.49821,-0.142275 -0.52471,-0.385591 z m -4.391478,8.444463 c -0.03154,-0.241019 0.154397,-0.464046 0.416433,-0.498948 0.261988,-0.0349 0.501195,0.131891 0.533207,0.374208 0.03201,0.242312 -0.155638,0.467303 -0.41822,0.501319 -0.262534,0.03401 -0.499881,-0.135554 -0.53142,-0.376579 z m -5.107176,7.8484 c 0.03493,-0.233636 0.264725,-0.391604 0.526621,-0.358782 0.02298,0.0029 0.04577,0.0072 0.0682,0.01304 0,0 0,0 0,0 0.159092,0.04121 0.288167,0.152639 0.337346,0.299956 0,0 0,0 0,0 0.01975,0.05887 0.02592,0.121111 0.0178,0.182804 -0.03272,0.248462 -0.284441,0.424891 -0.550884,0.381068 -0.26479,-0.04355 -0.433962,-0.284729 -0.399074,-0.518089 z M 86.84012,65.927759 c 0.21921,0.09358 0.313513,0.357021 0.216104,0.599888 -0.09747,0.243024 -0.354753,0.377631 -0.585635,0.282518 -0.230944,-0.09514 -0.333988,-0.379235 -0.227448,-0.623016 0.106607,-0.243937 0.377826,-0.352944 0.596979,-0.25939 z m -3.621674,-8.676401 c 0.194071,0.146178 0.222969,0.434446 0.0648,0.645989 -0.158184,0.211565 -0.444462,0.266662 -0.640334,0.119688 -0.195882,-0.146983 -0.225107,-0.438989 -0.06547,-0.650213 0.159653,-0.211247 0.446942,-0.261633 0.641004,-0.115464 z"
id="path967"
inkscape:path-effect="#path-effect973"
inkscape:original-d="M 122.85252,52.079026 C 104.42173,12.564469 96.670481,101.38516 82.655688,56.77264" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

@ -0,0 +1,187 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="111.18105mm"
height="95.2658mm"
viewBox="0 0 111.18105 95.2658"
version="1.1"
id="svg7507"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="lateration-entfernung.svg"
inkscape:export-filename="/home/sebastian/Dokumente/Privat/Studium/WBH/Thesis/static/lateration.png"
inkscape:export-xdpi="236"
inkscape:export-ydpi="236"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7509"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.6604907"
inkscape:cx="213.79222"
inkscape:cy="158.38692"
inkscape:window-width="1712"
inkscape:window-height="1409"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer3"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<defs
id="defs7504" />
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
sodipodi:insensitive="true"
transform="translate(-33.835808,-1.893868)" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Senderadius"
transform="translate(-33.835808,-1.893868)">
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 112.44994,60.694823 81.612916,47.192636"
id="path14875" />
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="101.10923"
y="60.087627"
id="text16829"><tspan
sodipodi:role="line"
id="tspan16827"
style="stroke-width:0.264583"
x="101.10923"
y="60.087627">r</tspan></text>
<text
xml:space="preserve"
style="font-size:2.24344px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="107.82997"
y="67.942665"
id="text25053"><tspan
sodipodi:role="line"
id="tspan25051"
style="stroke-width:0.264583"
x="107.82997"
y="67.942665">Sender 1</tspan></text>
<text
xml:space="preserve"
style="font-size:2.24344px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="74.710899"
y="53.199852"
id="text5170"><tspan
sodipodi:role="line"
id="tspan5168"
style="stroke-width:0.264583"
x="74.710899"
y="53.199852">Empfänger</tspan></text>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Sender"
transform="translate(-33.835808,-1.893868)">
<g
id="g13976"
transform="translate(-12.905253,3.4147808)">
<g
id="g3642"
transform="translate(66.906053,-10.605364)">
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-opacity:0.729412"
id="circle3622"
cx="57.364681"
cy="63.305435"
r="1.5429883"
transform="rotate(-0.48177263)" />
<g
id="g3634">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.55399;stroke-opacity:0.729412"
id="path3624"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="226.40784"
sodipodi:cy="171.04062"
sodipodi:r1="52.289089"
sodipodi:r2="26.144545"
sodipodi:arg1="0.52878919"
sodipodi:arg2="1.5759867"
inkscape:rounded="0"
inkscape:randomized="0"
transform="matrix(0.04256352,-3.5790455e-4,8.654603e-4,0.10292418,48.093357,52.306291)"
inkscape:transform-center-x="-0.016853428"
inkscape:transform-center-y="-1.3414674"
d="m 271.55521,197.41985 -45.28307,-0.23504 -45.28307,-0.23504 22.84508,-39.09877 22.84509,-39.09877 22.43798,39.33381 z" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3626"
width="2.8710895"
height="0.41484898"
x="56.459408"
y="71.261574" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3628"
width="2.0541782"
height="0.41484898"
x="56.867863"
y="70.136177" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3630"
width="1.7186335"
height="0.41484898"
x="57.035633"
y="69.010803" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3632"
width="1.1083764"
height="0.41484898"
x="57.340763"
y="67.885406" />
</g>
<path
id="path3636"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.519185,61.659591 a 2.0204463,1.5438012 0 0 0 -0.655428,1.137398 2.0204463,1.5438012 0 0 0 0.655428,1.137399 1.785814,1.7662191 0 0 1 -0.420891,-1.137399 1.785814,1.7662191 0 0 1 0.420891,-1.137398 z m 2.731621,5.29e-4 a 1.785814,1.7662191 0 0 1 0.4193,1.136883 1.785814,1.7662191 0 0 1 -0.420892,1.137398 2.0204463,1.5438012 0 0 0 0.655428,-1.137398 2.0204463,1.5438012 0 0 0 -0.653836,-1.136883 z" />
<path
id="path3638"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.15232,61.143839 a 2.5634695,2.2438354 0 0 0 -0.831584,1.653149 2.5634695,2.2438354 0 0 0 0.831584,1.653152 2.2657764,2.5671083 0 0 1 -0.534012,-1.653152 2.2657764,2.5671083 0 0 1 0.534012,-1.653149 z m 3.465782,7.69e-4 a 2.2657764,2.5671083 0 0 1 0.531993,1.652401 2.2657764,2.5671083 0 0 1 -0.534012,1.653149 2.5634695,2.2438354 0 0 0 0.831583,-1.653149 2.5634695,2.2438354 0 0 0 -0.829564,-1.652401 z" />
<path
id="path3640"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 55.718763,60.693879 a 3.2052033,2.854563 0 0 0 -1.039761,2.103104 3.2052033,2.854563 0 0 0 1.039761,2.103107 2.8329863,3.2658244 0 0 1 -0.667695,-2.103107 2.8329863,3.2658244 0 0 1 0.667695,-2.103104 z m 4.333399,9.79e-4 a 2.8329863,3.2658244 0 0 1 0.665171,2.102151 2.8329863,3.2658244 0 0 1 -0.667695,2.103104 3.2052033,2.854563 0 0 0 1.03976,-2.103104 3.2052033,2.854563 0 0 0 -1.037236,-2.102151 z" />
</g>
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Empfänger"
transform="translate(-33.835808,-1.893868)">
<circle
style="fill:none;fill-opacity:0.980392;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1"
id="circle852"
cx="81.498337"
cy="47.32383"
r="2.8716919" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="111.18105mm"
height="95.2658mm"
viewBox="0 0 111.18105 95.2658"
version="1.1"
id="svg7507"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="lateration-kreis.svg"
inkscape:export-filename="/home/sebastian/Dokumente/Privat/Studium/WBH/Thesis/static/lateration.png"
inkscape:export-xdpi="236"
inkscape:export-ydpi="236"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7509"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.6604907"
inkscape:cx="213.79222"
inkscape:cy="158.38692"
inkscape:window-width="1712"
inkscape:window-height="1409"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer4"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<defs
id="defs7504" />
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
sodipodi:insensitive="true"
transform="translate(-33.835808,-1.893868)" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Senderadius"
transform="translate(-33.835808,-1.893868)">
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 112.44994,60.694823 81.612916,47.192636"
id="path14875" />
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="101.10923"
y="60.087627"
id="text16829"><tspan
sodipodi:role="line"
id="tspan16827"
style="stroke-width:0.264583"
x="101.10923"
y="60.087627">r</tspan></text>
<text
xml:space="preserve"
style="font-size:2.24344px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="107.82997"
y="67.942665"
id="text25053"><tspan
sodipodi:role="line"
id="tspan25051"
style="stroke-width:0.264583"
x="107.82997"
y="67.942665">Sender 1</tspan></text>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Sender"
transform="translate(-33.835808,-1.893868)">
<g
id="g13976"
transform="translate(-12.905253,3.4147808)">
<circle
style="fill:none;fill-opacity:0.980392;stroke:#de8948;stroke-width:0.499999;stroke-opacity:1"
id="circle13959"
cx="124.79025"
cy="56.005764"
r="32.881859" />
<g
id="g3642"
transform="translate(66.906053,-10.605364)">
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-opacity:0.729412"
id="circle3622"
cx="57.364681"
cy="63.305435"
r="1.5429883"
transform="rotate(-0.48177263)" />
<g
id="g3634">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.55399;stroke-opacity:0.729412"
id="path3624"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="226.40784"
sodipodi:cy="171.04062"
sodipodi:r1="52.289089"
sodipodi:r2="26.144545"
sodipodi:arg1="0.52878919"
sodipodi:arg2="1.5759867"
inkscape:rounded="0"
inkscape:randomized="0"
transform="matrix(0.04256352,-3.5790455e-4,8.654603e-4,0.10292418,48.093357,52.306291)"
inkscape:transform-center-x="-0.016853428"
inkscape:transform-center-y="-1.3414674"
d="m 271.55521,197.41985 -45.28307,-0.23504 -45.28307,-0.23504 22.84508,-39.09877 22.84509,-39.09877 22.43798,39.33381 z" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3626"
width="2.8710895"
height="0.41484898"
x="56.459408"
y="71.261574" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3628"
width="2.0541782"
height="0.41484898"
x="56.867863"
y="70.136177" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3630"
width="1.7186335"
height="0.41484898"
x="57.035633"
y="69.010803" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3632"
width="1.1083764"
height="0.41484898"
x="57.340763"
y="67.885406" />
</g>
<path
id="path3636"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.519185,61.659591 a 2.0204463,1.5438012 0 0 0 -0.655428,1.137398 2.0204463,1.5438012 0 0 0 0.655428,1.137399 1.785814,1.7662191 0 0 1 -0.420891,-1.137399 1.785814,1.7662191 0 0 1 0.420891,-1.137398 z m 2.731621,5.29e-4 a 1.785814,1.7662191 0 0 1 0.4193,1.136883 1.785814,1.7662191 0 0 1 -0.420892,1.137398 2.0204463,1.5438012 0 0 0 0.655428,-1.137398 2.0204463,1.5438012 0 0 0 -0.653836,-1.136883 z" />
<path
id="path3638"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.15232,61.143839 a 2.5634695,2.2438354 0 0 0 -0.831584,1.653149 2.5634695,2.2438354 0 0 0 0.831584,1.653152 2.2657764,2.5671083 0 0 1 -0.534012,-1.653152 2.2657764,2.5671083 0 0 1 0.534012,-1.653149 z m 3.465782,7.69e-4 a 2.2657764,2.5671083 0 0 1 0.531993,1.652401 2.2657764,2.5671083 0 0 1 -0.534012,1.653149 2.5634695,2.2438354 0 0 0 0.831583,-1.653149 2.5634695,2.2438354 0 0 0 -0.829564,-1.652401 z" />
<path
id="path3640"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 55.718763,60.693879 a 3.2052033,2.854563 0 0 0 -1.039761,2.103104 3.2052033,2.854563 0 0 0 1.039761,2.103107 2.8329863,3.2658244 0 0 1 -0.667695,-2.103107 2.8329863,3.2658244 0 0 1 0.667695,-2.103104 z m 4.333399,9.79e-4 a 2.8329863,3.2658244 0 0 1 0.665171,2.102151 2.8329863,3.2658244 0 0 1 -0.667695,2.103104 3.2052033,2.854563 0 0 0 1.03976,-2.103104 3.2052033,2.854563 0 0 0 -1.037236,-2.102151 z" />
</g>
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Empfänger"
transform="translate(-33.835808,-1.893868)">
<circle
style="fill:none;fill-opacity:0.980392;stroke:#aeaeae;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1"
id="circle1533"
cx="98.540764"
cy="29.373327"
r="2.8716919" />
<circle
style="fill:none;fill-opacity:0.980392;stroke:#aeaeae;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1"
id="circle850"
cx="125.57301"
cy="88.914459"
r="2.8716919" />
<circle
style="fill:none;fill-opacity:0.980392;stroke:#aeaeae;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1"
id="circle852"
cx="140.26994"
cy="43.669056"
r="2.8716919" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

@ -0,0 +1,345 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="111.18105mm"
height="95.2658mm"
viewBox="0 0 111.18105 95.2658"
version="1.1"
id="svg7507"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="lateration-position.svg"
inkscape:export-filename="/home/sebastian/Dokumente/Privat/Studium/WBH/Thesis/static/lateration.png"
inkscape:export-xdpi="236"
inkscape:export-ydpi="236"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7509"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.6604907"
inkscape:cx="213.79222"
inkscape:cy="158.38692"
inkscape:window-width="3432"
inkscape:window-height="1409"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer3"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<defs
id="defs7504" />
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
sodipodi:insensitive="true"
transform="translate(-33.835808,-1.893868)" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Senderadius"
transform="translate(-33.835808,-1.893868)">
<circle
style="fill:none;fill-opacity:0.980392;stroke:#de4848;stroke-width:0.499999;stroke-opacity:1"
id="path13461"
cx="62.571583"
cy="68.423897"
r="28.485775" />
<circle
style="fill:none;fill-opacity:0.980392;stroke:#debd48;stroke-width:0.499999;stroke-opacity:1"
id="circle13961"
cx="82.237305"
cy="24.612598"
r="22.468731" />
<text
xml:space="preserve"
style="font-size:2.24344px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="107.82997"
y="67.942665"
id="text25053"><tspan
sodipodi:role="line"
id="tspan25051"
style="stroke-width:0.264583"
x="107.82997"
y="67.942665">Sender 1</tspan></text>
<text
xml:space="preserve"
style="font-size:2.24344px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="58.673233"
y="75.163956"
id="text28401"><tspan
sodipodi:role="line"
id="tspan28399"
style="stroke-width:0.264583"
x="58.673233"
y="75.163956">Sender 2</tspan></text>
<text
xml:space="preserve"
style="font-size:2.24344px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="76.846764"
y="33.633606"
id="text28405"><tspan
sodipodi:role="line"
id="tspan28403"
style="stroke-width:0.264583"
x="76.846764"
y="33.633606">Sender 3</tspan></text>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Sender"
transform="translate(-33.835808,-1.893868)">
<g
id="g13976"
transform="translate(-12.905253,3.4147808)">
<circle
style="fill:none;fill-opacity:0.980392;stroke:#de8948;stroke-width:0.499999;stroke-opacity:1"
id="circle13959"
cx="124.79025"
cy="56.005764"
r="32.881859" />
<g
id="g3642"
transform="translate(66.906053,-10.605364)">
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-opacity:0.729412"
id="circle3622"
cx="57.364681"
cy="63.305435"
r="1.5429883"
transform="rotate(-0.48177263)" />
<g
id="g3634">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.55399;stroke-opacity:0.729412"
id="path3624"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="226.40784"
sodipodi:cy="171.04062"
sodipodi:r1="52.289089"
sodipodi:r2="26.144545"
sodipodi:arg1="0.52878919"
sodipodi:arg2="1.5759867"
inkscape:rounded="0"
inkscape:randomized="0"
transform="matrix(0.04256352,-3.5790455e-4,8.654603e-4,0.10292418,48.093357,52.306291)"
inkscape:transform-center-x="-0.016853428"
inkscape:transform-center-y="-1.3414674"
d="m 271.55521,197.41985 -45.28307,-0.23504 -45.28307,-0.23504 22.84508,-39.09877 22.84509,-39.09877 22.43798,39.33381 z" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3626"
width="2.8710895"
height="0.41484898"
x="56.459408"
y="71.261574" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3628"
width="2.0541782"
height="0.41484898"
x="56.867863"
y="70.136177" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3630"
width="1.7186335"
height="0.41484898"
x="57.035633"
y="69.010803" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3632"
width="1.1083764"
height="0.41484898"
x="57.340763"
y="67.885406" />
</g>
<path
id="path3636"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.519185,61.659591 a 2.0204463,1.5438012 0 0 0 -0.655428,1.137398 2.0204463,1.5438012 0 0 0 0.655428,1.137399 1.785814,1.7662191 0 0 1 -0.420891,-1.137399 1.785814,1.7662191 0 0 1 0.420891,-1.137398 z m 2.731621,5.29e-4 a 1.785814,1.7662191 0 0 1 0.4193,1.136883 1.785814,1.7662191 0 0 1 -0.420892,1.137398 2.0204463,1.5438012 0 0 0 0.655428,-1.137398 2.0204463,1.5438012 0 0 0 -0.653836,-1.136883 z" />
<path
id="path3638"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.15232,61.143839 a 2.5634695,2.2438354 0 0 0 -0.831584,1.653149 2.5634695,2.2438354 0 0 0 0.831584,1.653152 2.2657764,2.5671083 0 0 1 -0.534012,-1.653152 2.2657764,2.5671083 0 0 1 0.534012,-1.653149 z m 3.465782,7.69e-4 a 2.2657764,2.5671083 0 0 1 0.531993,1.652401 2.2657764,2.5671083 0 0 1 -0.534012,1.653149 2.5634695,2.2438354 0 0 0 0.831583,-1.653149 2.5634695,2.2438354 0 0 0 -0.829564,-1.652401 z" />
<path
id="path3640"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 55.718763,60.693879 a 3.2052033,2.854563 0 0 0 -1.039761,2.103104 3.2052033,2.854563 0 0 0 1.039761,2.103107 2.8329863,3.2658244 0 0 1 -0.667695,-2.103107 2.8329863,3.2658244 0 0 1 0.667695,-2.103104 z m 4.333399,9.79e-4 a 2.8329863,3.2658244 0 0 1 0.665171,2.102151 2.8329863,3.2658244 0 0 1 -0.667695,2.103104 3.2052033,2.854563 0 0 0 1.03976,-2.103104 3.2052033,2.854563 0 0 0 -1.037236,-2.102151 z" />
</g>
</g>
<g
id="g13415"
transform="translate(24.097498,-41.416786)">
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-opacity:0.729412"
id="circle13395"
cx="57.364681"
cy="63.305435"
r="1.5429883"
transform="rotate(-0.48177263)" />
<g
id="g13407">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.55399;stroke-opacity:0.729412"
id="path13397"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="226.40784"
sodipodi:cy="171.04062"
sodipodi:r1="52.289089"
sodipodi:r2="26.144545"
sodipodi:arg1="0.52878919"
sodipodi:arg2="1.5759867"
inkscape:rounded="0"
inkscape:randomized="0"
transform="matrix(0.04256352,-3.5790455e-4,8.654603e-4,0.10292418,48.093357,52.306291)"
inkscape:transform-center-x="-0.016853428"
inkscape:transform-center-y="-1.3414674"
d="m 271.55521,197.41985 -45.28307,-0.23504 -45.28307,-0.23504 22.84508,-39.09877 22.84509,-39.09877 22.43798,39.33381 z" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect13399"
width="2.8710895"
height="0.41484898"
x="56.459408"
y="71.261574" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect13401"
width="2.0541782"
height="0.41484898"
x="56.867863"
y="70.136177" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect13403"
width="1.7186335"
height="0.41484898"
x="57.035633"
y="69.010803" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect13405"
width="1.1083764"
height="0.41484898"
x="57.340763"
y="67.885406" />
</g>
<path
id="path13409"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.519185,61.659591 a 2.0204463,1.5438012 0 0 0 -0.655428,1.137398 2.0204463,1.5438012 0 0 0 0.655428,1.137399 1.785814,1.7662191 0 0 1 -0.420891,-1.137399 1.785814,1.7662191 0 0 1 0.420891,-1.137398 z m 2.731621,5.29e-4 a 1.785814,1.7662191 0 0 1 0.4193,1.136883 1.785814,1.7662191 0 0 1 -0.420892,1.137398 2.0204463,1.5438012 0 0 0 0.655428,-1.137398 2.0204463,1.5438012 0 0 0 -0.653836,-1.136883 z" />
<path
id="path13411"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.15232,61.143839 a 2.5634695,2.2438354 0 0 0 -0.831584,1.653149 2.5634695,2.2438354 0 0 0 0.831584,1.653152 2.2657764,2.5671083 0 0 1 -0.534012,-1.653152 2.2657764,2.5671083 0 0 1 0.534012,-1.653149 z m 3.465782,7.69e-4 a 2.2657764,2.5671083 0 0 1 0.531993,1.652401 2.2657764,2.5671083 0 0 1 -0.534012,1.653149 2.5634695,2.2438354 0 0 0 0.831583,-1.653149 2.5634695,2.2438354 0 0 0 -0.829564,-1.652401 z" />
<path
id="path13413"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 55.718763,60.693879 a 3.2052033,2.854563 0 0 0 -1.039761,2.103104 3.2052033,2.854563 0 0 0 1.039761,2.103107 2.8329863,3.2658244 0 0 1 -0.667695,-2.103107 2.8329863,3.2658244 0 0 1 0.667695,-2.103104 z m 4.333399,9.79e-4 a 2.8329863,3.2658244 0 0 1 0.665171,2.102151 2.8329863,3.2658244 0 0 1 -0.667695,2.103104 3.2052033,2.854563 0 0 0 1.03976,-2.103104 3.2052033,2.854563 0 0 0 -1.037236,-2.102151 z" />
</g>
<g
id="g13437"
transform="translate(5.0730332,0.6362343)">
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-opacity:0.729412"
id="circle13417"
cx="57.364681"
cy="63.305435"
r="1.5429883"
transform="rotate(-0.48177263)" />
<g
id="g13429">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.55399;stroke-opacity:0.729412"
id="path13419"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="226.40784"
sodipodi:cy="171.04062"
sodipodi:r1="52.289089"
sodipodi:r2="26.144545"
sodipodi:arg1="0.52878919"
sodipodi:arg2="1.5759867"
inkscape:rounded="0"
inkscape:randomized="0"
transform="matrix(0.04256352,-3.5790455e-4,8.654603e-4,0.10292418,48.093357,52.306291)"
inkscape:transform-center-x="-0.016853428"
inkscape:transform-center-y="-1.3414674"
d="m 271.55521,197.41985 -45.28307,-0.23504 -45.28307,-0.23504 22.84508,-39.09877 22.84509,-39.09877 22.43798,39.33381 z" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect13421"
width="2.8710895"
height="0.41484898"
x="56.459408"
y="71.261574" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect13423"
width="2.0541782"
height="0.41484898"
x="56.867863"
y="70.136177" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect13425"
width="1.7186335"
height="0.41484898"
x="57.035633"
y="69.010803" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect13427"
width="1.1083764"
height="0.41484898"
x="57.340763"
y="67.885406" />
</g>
<path
id="path13431"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.519185,61.659591 a 2.0204463,1.5438012 0 0 0 -0.655428,1.137398 2.0204463,1.5438012 0 0 0 0.655428,1.137399 1.785814,1.7662191 0 0 1 -0.420891,-1.137399 1.785814,1.7662191 0 0 1 0.420891,-1.137398 z m 2.731621,5.29e-4 a 1.785814,1.7662191 0 0 1 0.4193,1.136883 1.785814,1.7662191 0 0 1 -0.420892,1.137398 2.0204463,1.5438012 0 0 0 0.655428,-1.137398 2.0204463,1.5438012 0 0 0 -0.653836,-1.136883 z" />
<path
id="path13433"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.15232,61.143839 a 2.5634695,2.2438354 0 0 0 -0.831584,1.653149 2.5634695,2.2438354 0 0 0 0.831584,1.653152 2.2657764,2.5671083 0 0 1 -0.534012,-1.653152 2.2657764,2.5671083 0 0 1 0.534012,-1.653149 z m 3.465782,7.69e-4 a 2.2657764,2.5671083 0 0 1 0.531993,1.652401 2.2657764,2.5671083 0 0 1 -0.534012,1.653149 2.5634695,2.2438354 0 0 0 0.831583,-1.653149 2.5634695,2.2438354 0 0 0 -0.829564,-1.652401 z" />
<path
id="path13435"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 55.718763,60.693879 a 3.2052033,2.854563 0 0 0 -1.039761,2.103104 3.2052033,2.854563 0 0 0 1.039761,2.103107 2.8329863,3.2658244 0 0 1 -0.667695,-2.103107 2.8329863,3.2658244 0 0 1 0.667695,-2.103104 z m 4.333399,9.79e-4 a 2.8329863,3.2658244 0 0 1 0.665171,2.102151 2.8329863,3.2658244 0 0 1 -0.667695,2.103104 3.2052033,2.854563 0 0 0 1.03976,-2.103104 3.2052033,2.854563 0 0 0 -1.037236,-2.102151 z" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Empfänger"
transform="translate(-33.835808,-1.893868)">
<circle
style="fill:none;fill-opacity:0.980392;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1"
id="path34935"
cx="81.612915"
cy="47.192638"
r="2.8716919" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="111.18105mm"
height="95.2658mm"
viewBox="0 0 111.18105 95.2658"
version="1.1"
id="svg7507"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="lateration-positionen.svg"
inkscape:export-filename="/home/sebastian/Dokumente/Privat/Studium/WBH/Thesis/static/lateration.png"
inkscape:export-xdpi="236"
inkscape:export-ydpi="236"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7509"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.6604907"
inkscape:cx="213.79222"
inkscape:cy="158.38692"
inkscape:window-width="3432"
inkscape:window-height="1409"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer4"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<defs
id="defs7504" />
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
sodipodi:insensitive="true"
transform="translate(-33.835808,-1.893868)" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Senderadius"
transform="translate(-33.835808,-1.893868)">
<text
xml:space="preserve"
style="font-size:2.24344px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="107.82997"
y="67.942665"
id="text25053"><tspan
sodipodi:role="line"
id="tspan25051"
style="stroke-width:0.264583"
x="107.82997"
y="67.942665">Sender 1</tspan></text>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Sender"
transform="translate(-33.835808,-1.893868)">
<g
id="g13976"
transform="translate(-12.905253,3.4147808)">
<circle
style="fill:none;fill-opacity:0.980392;stroke:#de8948;stroke-width:0.499999;stroke-opacity:1"
id="circle13959"
cx="124.79025"
cy="56.005764"
r="32.881859" />
<g
id="g3642"
transform="translate(66.906053,-10.605364)">
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-opacity:0.729412"
id="circle3622"
cx="57.364681"
cy="63.305435"
r="1.5429883"
transform="rotate(-0.48177263)" />
<g
id="g3634">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.55399;stroke-opacity:0.729412"
id="path3624"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="226.40784"
sodipodi:cy="171.04062"
sodipodi:r1="52.289089"
sodipodi:r2="26.144545"
sodipodi:arg1="0.52878919"
sodipodi:arg2="1.5759867"
inkscape:rounded="0"
inkscape:randomized="0"
transform="matrix(0.04256352,-3.5790455e-4,8.654603e-4,0.10292418,48.093357,52.306291)"
inkscape:transform-center-x="-0.016853428"
inkscape:transform-center-y="-1.3414674"
d="m 271.55521,197.41985 -45.28307,-0.23504 -45.28307,-0.23504 22.84508,-39.09877 22.84509,-39.09877 22.43798,39.33381 z" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3626"
width="2.8710895"
height="0.41484898"
x="56.459408"
y="71.261574" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3628"
width="2.0541782"
height="0.41484898"
x="56.867863"
y="70.136177" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3630"
width="1.7186335"
height="0.41484898"
x="57.035633"
y="69.010803" />
<rect
style="fill:#ffffff;fill-opacity:0.979873;stroke:none;stroke-width:0.499998;stroke-opacity:0.729412"
id="rect3632"
width="1.1083764"
height="0.41484898"
x="57.340763"
y="67.885406" />
</g>
<path
id="path3636"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.519185,61.659591 a 2.0204463,1.5438012 0 0 0 -0.655428,1.137398 2.0204463,1.5438012 0 0 0 0.655428,1.137399 1.785814,1.7662191 0 0 1 -0.420891,-1.137399 1.785814,1.7662191 0 0 1 0.420891,-1.137398 z m 2.731621,5.29e-4 a 1.785814,1.7662191 0 0 1 0.4193,1.136883 1.785814,1.7662191 0 0 1 -0.420892,1.137398 2.0204463,1.5438012 0 0 0 0.655428,-1.137398 2.0204463,1.5438012 0 0 0 -0.653836,-1.136883 z" />
<path
id="path3638"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 56.15232,61.143839 a 2.5634695,2.2438354 0 0 0 -0.831584,1.653149 2.5634695,2.2438354 0 0 0 0.831584,1.653152 2.2657764,2.5671083 0 0 1 -0.534012,-1.653152 2.2657764,2.5671083 0 0 1 0.534012,-1.653149 z m 3.465782,7.69e-4 a 2.2657764,2.5671083 0 0 1 0.531993,1.652401 2.2657764,2.5671083 0 0 1 -0.534012,1.653149 2.5634695,2.2438354 0 0 0 0.831583,-1.653149 2.5634695,2.2438354 0 0 0 -0.829564,-1.652401 z" />
<path
id="path3640"
style="fill:#000000;fill-opacity:0.979873;stroke:none;stroke-width:0.5;stroke-opacity:0.729412"
d="m 55.718763,60.693879 a 3.2052033,2.854563 0 0 0 -1.039761,2.103104 3.2052033,2.854563 0 0 0 1.039761,2.103107 2.8329863,3.2658244 0 0 1 -0.667695,-2.103107 2.8329863,3.2658244 0 0 1 0.667695,-2.103104 z m 4.333399,9.79e-4 a 2.8329863,3.2658244 0 0 1 0.665171,2.102151 2.8329863,3.2658244 0 0 1 -0.667695,2.103104 3.2052033,2.854563 0 0 0 1.03976,-2.103104 3.2052033,2.854563 0 0 0 -1.037236,-2.102151 z" />
</g>
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Empfänger"
transform="translate(-33.835808,-1.893868)">
<circle
style="fill:none;fill-opacity:0.980392;stroke:#aeaeae;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1"
id="circle1533"
cx="95.58123"
cy="31.111128"
r="2.8716919" />
<circle
style="fill:none;fill-opacity:0.980392;stroke:#aeaeae;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1"
id="circle2417"
cx="119.45792"
cy="27.826706"
r="2.8716919" />
<circle
style="fill:none;fill-opacity:0.980392;stroke:#aeaeae;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1"
id="circle2419"
cx="124.3369"
cy="89.631981"
r="2.8716919" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

@ -0,0 +1,29 @@
flowchart TD
Datei --> Einlesen
subgraph Einlesen
rmdevice[Geräte entfernen] --> cleanData[Zeitstempel zu Index]
cleanData --> calcScPower[Berechne scPower]
calcScPower --> scPower
calcScPower --> calcRSSI[Verschiedene Filter auf den RSSI]
calcRSSI --> rssiFilter
calcRSSI --> remove[Unnötige Spalten löschen]
end
subgraph cleanData[Daten Bereinigen]
indexing --> replaceZero[Ersetze 0 durch NaN]
replaceZero --> dropHuman[Entferne Anfang 5s und Ende 10s]
dropHuman --> calcPosition[Zusammenfassen Positionsfelder]
calcPosition --> deviceDist[Zusammenführen Gerät mit Abstand]
end
subgraph scPower[Berechnung scPower]
iterate[Iteriere über Datensatz] --> window[Zeitfenster +- 300ms]
window --> returnScPower[Rückgabe Mittelwert]
returnScPower --> savescPower[Spalte: scPower]
end
subgraph rssiFilter[Filtermethoden RSSI]
iterateRSSI[Iterierung über Datensatz] --> windowRSSI[Zeitfenster +- 300ms]
windowRSSI --> returnRSSIMean[Rückgabe Mittelwert]
returnRSSIMean --> RSSIMeanSave[Spalte: RSSI_rolling_mean]
windowRSSI --> returnRSSIweighted[Rückgabe gewichteter Mittelwert]
returnRSSIweighted --> RSSIweightedSave[Spalte: RSSI_rolling_weightedMean]
end

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 KiB

After

Width:  |  Height:  |  Size: 516 KiB

@ -0,0 +1,70 @@
%PDF-1.5
%µí®û
4 0 obj
<< /Length 5 0 R
/Filter /FlateDecode
>>
stream
xœeŽ±
A Dû|ÅüÀÅdw“Ý|Á<>`qZŠ…(‡…¿oÐRBC<32>œIÃxDuÜVÚHØC4ÿâ8cw<^äÜ¥Fíx“`Ÿû¤ó%<25>;5°A¿?æ_ÕΣ¡î6°Â<C2B0>-¦\ ­²…öÂV*jÊ£³x g!#N
endstream
endobj
5 0 obj
135
endobj
3 0 obj
<<
/ExtGState <<
/a0 << /CA 1 /ca 1 >>
>>
>>
endobj
2 0 obj
<< /Type /Page % 1
/Parent 1 0 R
/MediaBox [ 0 0 121.861511 85.899216 ]
/Contents 4 0 R
/Group <<
/Type /Group
/S /Transparency
/I true
/CS /DeviceRGB
>>
/Resources 3 0 R
>>
endobj
1 0 obj
<< /Type /Pages
/Kids [ 2 0 R ]
/Count 1
>>
endobj
6 0 obj
<< /Producer (cairo 1.16.0 (https://cairographics.org))
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00310020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
/CreationDate (D:20220321111214+01'00)
>>
endobj
7 0 obj
<< /Type /Catalog
/Pages 1 0 R
>>
endobj
xref
0 8
0000000000 65535 f
0000000552 00000 n
0000000321 00000 n
0000000249 00000 n
0000000015 00000 n
0000000227 00000 n
0000000617 00000 n
0000000900 00000 n
trailer
<< /Size 8
/Root 7 0 R
/Info 6 0 R
>>
startxref
952
%%EOF

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="42.990032mm"
height="30.303333mm"
viewBox="0 0 42.990031 30.303333"
version="1.1"
id="svg1056"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="reale-strecke.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1058"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="3.3209814"
inkscape:cx="73.472257"
inkscape:cy="26.197075"
inkscape:window-width="1712"
inkscape:window-height="1409"
inkscape:window-x="1720"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="g969" />
<defs
id="defs1053">
<inkscape:path-effect
effect="skeletal"
id="path-effect973"
is_visible="true"
lpeversion="1"
pattern="m 70.853032,41.79779 a 0.47876352,0.44136241 54.869114 0 1 -0.636466,-0.137572 0.47876352,0.44136241 54.869114 0 1 0.08546,-0.645532 0.47876352,0.44136241 54.869114 0 1 0.636465,0.137571 0.47876352,0.44136241 54.869114 0 1 -0.08546,0.645533 z"
copytype="repeated"
prop_scale="1"
scale_y_rel="false"
spacing="8.6"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
hide_knot="false"
fuse_tolerance="0" />
</defs>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-84.40673,-41.834703)">
<g
id="g969"
transform="translate(3.1090383,1.260922)"
inkscape:export-filename="/home/sebastian/Dokumente/Privat/Studium/WBH/Thesis/static/wegpunkte.png"
inkscape:export-xdpi="236"
inkscape:export-ydpi="236">
<path
style="fill:none;stroke:#b0b0b0;stroke-width:2.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 122.86877,52.130692 C 104.43798,12.616139 96.686723,101.43682 82.671933,56.824311"
id="path963" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

@ -1365,7 +1365,7 @@ URL: https://elib.dlr.de/54309/1/Lokalisierungsverfahren_v22.pdf},
year = {2014},
access = {2021-12-01},
file = {:files/Core_v4.2.pdf:PDF},
groups = {Verwendet},
groups = {Verwendet, Normen},
keywords = {Bluetooth, Core Specification},
priority = {prio1},
qualityassured = {qualityAssured},
@ -1496,14 +1496,15 @@ URL: https://elib.dlr.de/54309/1/Lokalisierungsverfahren_v22.pdf},
qualityassured = {qualityAssured},
}
@Misc{beacon_library_2021,
title = {{A}ndroid {B}eacon {L}ibrary},
year = {2021},
comment = {Calculating Formula Constants: https://altbeacon.github.io/android-beacon-library/distance-calculations2.html
https://docs.google.com/spreadsheets/d/1ymREowDj40tYuA5CXd4IfC4WYPXxlx5hq1x8tQcWWCI/edit#gid=0},
groups = {Verwendet},
url = {https://github.com/AltBeacon/android-beacon-library},
urldate = {2021-12-21},
@Misc{RadiusNetworks_2021,
author = {{Radius Networks}},
title = {{C}alculating {F}ormula {C}onstants},
year = {2021},
file = {:distance-calculations2.html:URL},
groups = {Verwendet},
qualityassured = {qualityAssured},
url = {https://altbeacon.github.io/android-beacon-library/distance-calculations2.html},
urldate = {2021-12-21},
}
@Article{Paterna_2017,
@ -1548,7 +1549,7 @@ https://docs.google.com/spreadsheets/d/1ymREowDj40tYuA5CXd4IfC4WYPXxlx5hq1x8tQcW
comment = {https://ub-deposit.fernuni-hagen.de/receive/mir_mods_00001418},
doi = {10.18445/20180824-220948-0},
file = {:Diss_Lategahn_Kartenbasierte_Lokalisierung_2018.pdf:PDF},
groups = {Algorithmen},
groups = {Algorithmen, Thesis von anderen},
keywords = {Ortsbestimmung; Positionierung; Geb{\"a}udekarten; Topologische Karten; Kalman-Filter; Smartphone; Bluetooth Low Energy; Pedestrian Dead Reckoning; Sequenzielle Monte-Carlo-Methode},
priority = {prio1},
publisher = {FernUniversit{\"a}t Hagen},
@ -1573,6 +1574,200 @@ Zitat: Antennen abstrahlcharakteristik!},
urldate = {2022-01-20},
}
@Book{Traenkler_2014_BOOK,
editor = {Hans-Rolf Tränkler and Leo Reindl},
publisher = {Springer Berlin Heidelberg},
title = {Sensortechnik},
year = {2014},
isbn = {978-3-642-29941-4},
month = feb,
series = {VDI-Buch},
doi = {10.1007/978-3-642-29942-1},
ean = {9783642299414},
file = {:2014_Book_Sensortechnik.pdf:PDF},
groups = {Verwendet},
qualityassured = {qualityAssured},
subtitle = {Handbuch für Praxis und Wissenschaft},
}
@Misc{beacon_library_2021,
title = {{A}ndroid {B}eacon {L}ibrary},
year = {2021},
comment = {Calculating Formula Constants: https://altbeacon.github.io/android-beacon-library/distance-calculations2.html
https://docs.google.com/spreadsheets/d/1ymREowDj40tYuA5CXd4IfC4WYPXxlx5hq1x8tQcWWCI/edit#gid=0},
groups = {Verwendet},
url = {https://github.com/AltBeacon/android-beacon-library},
urldate = {2021-12-21},
}
@Misc{jcgm_2008,
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},
year = {2008},
comment = {https://www.bipm.org/en/committees/jc/jcgm/publications},
file = {:JCGM_101_2008_E.pdf:PDF},
groups = {Verwendet, Normen},
key = {JCGM 101:2008},
number = {JCGM 101},
qualityassured = {qualityAssured},
ranking = {rank5},
type = {Norm},
url = {https://www.bipm.org/en/committees/jc/jcgm/publications},
}
@Misc{jcgm_2012,
note = {Erstveröffentlichung 2008},
title = {{I}nternational vocabulary ofmetrology {B}asic and generalconcepts and associated terms ({VIM})},
year = {2012},
comment = {https://www.bipm.org/en/committees/jc/jcgm/publications},
file = {:JCGM_200_2012.pdf:PDF},
groups = {Verwendet, Normen},
key = {JCGM 200:2012},
number = {JCGM 200:2012},
priority = {prio1},
qualityassured = {qualityAssured},
ranking = {rank5},
type = {Norm},
url = {https://www.bipm.org/en/committees/jc/jcgm/publications},
volume = {3},
}
@Book{Heilmann_2020_BOOK,
author = {Rolf Heilmann},
publisher = {Springer Fachmedien Wiesbaden},
title = {{R}auschen in der {S}ensorik},
year = {2020},
isbn = {978-3-658-29213-3},
month = mar,
comment = {https://www.ebook.de/de/product/38468474/rolf_heilmann_rauschen_in_der_sensorik.html},
doi = {10.1007/978-3-658-29214-0},
ean = {9783658292133},
file = {:Heilmann2020_Book_RauschenInDerSensorik.epub:ePUB;:Heilmann2020_Book_RauschenInDerSensorik.pdf:PDF},
groups = {Verwendet},
qualityassured = {qualityAssured},
}
@Misc{DIN_13312_2005,
title = {{N}avigation {B}egriffe, {A}bkürzungen, {F}ormelzeichen, graphische {S}ymbole},
year = {2005},
comment = {https://www.bipm.org/en/committees/jc/jcgm/publications},
file = {:files/DIN 13312_2005 (9601621).PDF:PDF},
groups = {Normen},
key = {DIN 13312:2005-02},
number = {DIN 13312},
priority = {prio1},
qualityassured = {qualityAssured},
ranking = {rank3},
type = {Norm},
}
@Article{Cheveigne_2019,
author = {Alain de Cheveign{\'{e}} and Israel Nelken},
journal = {Neuron},
title = {{F}ilters: {W}hen, {W}hy, and {H}ow ({N}ot) to {U}se {T}hem},
year = {2019},
month = {apr},
number = {2},
pages = {280--293},
volume = {102},
doi = {10.1016/j.neuron.2019.02.039},
file = {:files/Filter-when-why-and-how-to-use.pdf:PDF},
groups = {Normen},
publisher = {Elsevier {BV}},
qualityassured = {qualityAssured},
}
@InProceedings{MI191_2021,
author = {Reinhard Remfort and Nicolas Wöhrl},
booktitle = {Methodisch Inkorrekt},
title = {{M}191 - {F}remdkork},
year = {2021},
month = may,
number = {191},
series = {Audio-Podcast},
date = {18.05.2021},
groups = {Verwendet},
journal = {Methodisch Inkorrekt},
qualityassured = {qualityAssured},
url = {https://minkorrekt.de/mi191-fremdkork/},
urldate = {2021-08-05},
}
@InCollection{Alt_1994a,
author = {Christian Alt and Walter Bien},
booktitle = {Gewichtung in der Umfragepraxis},
publisher = {{VS} Verlag für Sozialwissenschaften},
title = {{G}ewichtung, ein sinnvolles {V}erfahren in den {S}ozialwissenschaften? {F}ragen, {P}robleme und {S}chlu{\ss}folgerungen},
year = {1994},
pages = {124--140},
doi = {10.1007/978-3-663-08044-2_10},
groups = {Verwendet},
}
@InCollection{Lichtenegger_2015a,
author = {Klaus Lichtenegger},
booktitle = {Schlüsselkonzepte zur Physik},
publisher = {Springer Berlin Heidelberg},
title = {{K}lassische {M}echanik},
year = {2015},
pages = {13--47},
doi = {10.1007/978-3-8274-2385-6_2},
file = {:files/Lichtenegger2015_Book_SchlüsselkonzepteZurPhysik.pdf:PDF},
groups = {Verwendet},
qualityassured = {qualityAssured},
}
@Article{Moldenhauer_2018a,
author = {Laura Moldenhauer and Rosemarie Helmerich and Enrico Köppe and Jochen Wittmann},
journal = {Materials Today: Proceedings},
title = {Experimental modeling approach for determining the moisture damping exponent of a bluetooth low energy signal in moist building material},
year = {2018},
number = {13},
pages = {26609--26614},
volume = {5},
doi = {10.1016/j.matpr.2018.08.124},
publisher = {Elsevier {BV}},
}
@Misc{phyphox,
author = {{RWTH AAchen}},
title = {phyphox&reg;},
year = {2021},
file = {:phyphox - Phyphox&reg\;.html:URL},
groups = {Verwendet},
qualityassured = {qualityAssured},
url = {https://phyphox.org},
urldate = {2022-02-15},
}
@Misc{puckjs,
author = {{Pur3 Ltd}},
title = {{P}uck.js - the {J}ava{S}cript {B}luetooth {B}eacon},
year = {2020},
file = {:puckjs - Puck.js the JavaScript Bluetooth Beacon.html:URL},
groups = {Verwendet},
qualityassured = {qualityAssured},
url = {https://www.puck-js.com/},
urldate = {2021-12-20},
}
@Article{Staacks_2018,
author = {S. Staacks and S. Hütz and H. Heinke and C. Stampfer},
journal = {Physics Education},
title = {{A}dvanced tools for smartphone-based experiments: phyphox},
year = {2018},
month = {may},
number = {4},
pages = {045009},
volume = {53},
abstract = {The sensors in modern smartphones are a promising and cost-effective tool for experimentation in physics education, but many experiments face practical problems. Often the phone is inaccessible during the experiment and the data usually needs to be analyzed subsequently on a computer. We address both problems by introducing a new app, called phyphox, which is specifically designed for utilizing experiments in physics teaching. The app is free and designed to offer the same set of features on Android and iOS.},
doi = {10.1088/1361-6552/aac05e},
file = {:files/Staacks_2018_Phys._Educ._53_045009.pdf:PDF},
groups = {Verwendet},
publisher = {{IOP} Publishing},
qualityassured = {qualityAssured},
url = {https://doi.org/10.1088/1361-6552/aac05e},
}
@Comment{jabref-meta: databaseType:bibtex;}
@Comment{jabref-meta: fileDirectoryLatex-sebastian-anarchy:/home/sebastian/Dokumente/Privat/Studium/WBH/Thesis;}
@ -1590,4 +1785,5 @@ Zitat: Antennen abstrahlcharakteristik!},
3 SearchGroup:Filtering\;0\;filter\;0\;0\;1\;0x8a8a8aff\;\;Filtermethoden und Anwendung von Filter\;;
2 StaticGroup:Thesis von anderen\;0\;0\;0x8a8a8aff\;\;\;;
2 StaticGroup:Verwendet\;0\;1\;0x30ff30ff\;\;\;;
2 StaticGroup:Normen\;0\;0\;0x4d001aff\;\;\;;
}

Loading…
Cancel
Save