\section{WiFi Location Estimation} \label{sec:optimization} The WiFi sensor infers the pedestrian's current location based on a comparison between live measurements (the smartphone continuously scans for nearby \docAP{}s) and reference measurements / predictions with well known location. \begin{equation} p(\vec{o}_t \mid \vec{q}_t)_\text{wifi} = p(\mRssiVecWiFi \mid \mPosVec) = \prod p(\mRssi_{i} \mid \mPosVec),\enskip %\mPos = (x,y,z)^T \mPosVec \in \R^3 \label{eq:wifiObs} \end{equation} % \begin{equation} p(\mRssi_i \mid \mPosVec) = \mathcal{N}(\mRssi_i \mid \mu_{i,\mPosVec}, \sigma_{i,\mPosVec}^2) \label{eq:wifiProb} \end{equation} In \refeq{eq:wifiProb} $\mu_{i,\mPosVec}$ denotes the average signal strength for the \docAPshort{} identified by $i$, that should be measurable given the location $\mPosVec = (x,y,z)^T$. This value can be determined using various methods. Most common, as of today, seems fingerprinting, where hundreds of locations throughout the building are scanned beforehand, and the received \docAP{}s including their signal strength denote the location's fingerprint. \todo{cite} % While allowing for highly accurate location estimations, given enough fingerprints, such a setup is costly. We therefore use a model prediction instead, that just relies on the \docAPshort{}'s position $\mPosAPVec{} = (x,y,z)^T$ and some parameters. \subsection{Signal Strength Prediction Model} \begin{equation} \mRssi = \mTXP{} + 10 \mPLE{} + \log_{10} \frac{d}{d_0} + \mGaussNoise{} \label{eq:logDistModel} \end{equation} The log distance model \todo{cite} in \refeq{eq:logDistModel} is a commonly used signal strength prediction model that is intended for line-of-sight predictions. However, depending on the surroundings, the model is versatile enough to also serve for indoor purposes. % This model predicts an \docAP{}'s signal strength for an arbitrary location $\mPosVec{}$ given the distance between both and two environmental parameters: The \docAPshort{}'s signal strength \mTXP{} measurable at a known distance $d_0$ (usually \SI{1}{\meter}) and the signal's depletion over distance \mPLE{}, which depends on the \docAPshort{}'s surroundings like walls and other obstacles. \mGaussNoise{} is a zero-mean Gaussian noise and models the uncertainty. The log normal shadowing model is a slight modification, to adapt the log distance model to indoor use cases. It introduces an additional parameter, that models obstacles between (line-of-sight) the \docAPshort{} and the location in question by attenuating the signal with a constant value. % Depending on the use case, this value describes the number and type of walls, ceilings, floors etc. between both locations. For obstacles, this requires an intersection-test of each obstacle with the line-of-sight, which is costly for larger buildings. For real-time use on a smartphone, a (discretized) model pre-computation might thus be necessary \todo{cite competition}. \begin{equation} x = \mTXP{} + 10 \mPLE{} + \log_{10} \frac{d}{d_0} + \numFloors{} \mWAF{} + \mGaussNoise{} \label{eq:logNormShadowModel} \end{equation} Throughout this work, walls are ignored and only floors/ceilings are considered. In \refeq{eq:logNormShadowModel}, those are included using a constant attenuation factor \mWAF{} multiplied by the number of floors/ceilings \numFloors{} between sender and the location in question. Assuming \todo{passendes wort?} buildings, this number can be determined without costly intersection checks and thus allows for real-time use cases. The attenuation \mWAF{} per element depends on the building's architecture and for common, steel enforced concrete floors $\approx 8.0$ might be a viable choice \todo{cite}. \subsection {Model Parameters} As previously mentioned, for the prediction model to work, one needs to know the location $\mPosAPVec_i$ for every permanently installed \docAP{} $i$ within the building plus its environmental parameters. % While it is possible to use empiric values for \mTXP{}, \mPLE{} and \mWAF{} \cite{Ebner-15}, the positions are mandatory. For many installations, there should be floorplans that include the locations of all installed transmitters. If so, a model setup takes only several minutes to (vaguely) position the \docAPshort{}s within a virtual map and assigning them some fixed, empirically chosen parameters for \mTXP{}, \mPLE{} and \mWAF{}. Depending on the building's architecture this might already provide enough accuracy for some use-cases where a vague location information is sufficient. \subsection{Model Parameter Optimization} As a compromise between fingerprinting and pure empiric model parameters, one can optimize the model parameters based on a few reference measurements throughout the building. Obviously, the more parameters are unknown ($\mPosAPVec{}, \mTXP{}, \mPLE{}, \mWAF{}$) the more reference measurements are necessary to provide a viable optimization. Just optimizing \mTXP{} and \mPLE{} usually means optimizing a convex function as can be seen in figure \ref{fig:wifiOptFuncTXPEXP}. For such functions, algorithms like gradient descent \todo{cite} and (downhill) simpelx \todo{cite} are well suited. \todo{formel fuer opt: was wird optimiert?} \begin{equation} argmin_{bla} blub() \end{equation} \begin{figure} \input{gfx/wifiop_show_optfunc_params} \label{fig:wifiOptFuncTXPEXP} \caption{ The average error (in \SI{}{\decibel}) between reference measurements and model predictions for one \docAPshort{} dependent on \docTXP{} \mTXP{} and \docEXP{} \mPLE{} [fixed position $\mPosAPVec{}$ and \mWAF{}] denotes a convex function. } \end{figure} However, optimizing the transmitter's position usually means optimizing a non-convex function, especially when the $z$-coordinate, that influences the number of attenuating floors/ceilings, is involved. While the latter can be mitigated by introducing a continuous function for the number $n$ of floors/ceilings, like a sigmoid, this will still not work for all situations. As can be seen in figure \ref{fig:wifiOptFuncPosYZ}, there are two local minima and only one of both also is a global one. \begin{figure} \input{gfx/wifiop_show_optfunc_pos_yz} \label{fig:wifiOptFuncPosYZ} \caption{ The average error (in \SI{}{\decibel}) between reference measurements and model predictions for one \docAPshort{} dependent on $y$- and $z$-position [fixed $x$, \mTXP{}, \mPLE{} and \mWAF{}] usually denotes a non-convex function with multiple [here: two] local minima. } \end{figure} Such functions demand for optimization algorithms, that are able to deal with non-convex functions, like genetic approaches. However, initial tests indicated that while being superior to simplex and similar algorithms, the results were not satisfactorily. As the Range of the six to-be-optimized parameters is known ($\mPosAPVec{}$ within the building, \mTXP{}, \mPLE{}, \mWAF{} within a sane interval), we used some modifications. The initial population is uniformly sampled from the known range. During each iteration the best \SI{25}{\percent} of the population are kept and the remaining entries are re-created by modifying the best entries with uniform random values within \SI{10}{\percent} of the known range. To stabilize the result, the allowed modification range is adjusted over time, known as cooling \todo{cite}. \subsection{Modified Signal Strength Model} %\todo{nicht: during initial eval, sondern gleich sagen, dass die vermutung nahe liegt, dass das modell %nicht gut klappen wird, weil waende und unser metall-glas nicht beruecksichtigt werden. deshalb %versuchen wir ein anderes modell das immernoch live arbeiten kann} %During the initial eval, some issues were discovered. While aforementioned optimization was able to %reduce the error between reference measurements and model estimations to \SI{50}{\percent}, %the position estimation \ref{eq:wifiProb} did not benefit from improved model parameters. %To the contrary, there were several situations throughout the testing walks, where %the inferred location was more erroneous than before. As the used model does not consider walls, it is expected to provide erroneous values for regions that are heavily attenuated by e.g. concrete or metallised glass. \subsection{\docWIFI{} quality factor} \todo{wifi quality factor??} \todo{formel für toni} \begin{equation} \newcommand{\leMin}{l_\text{min}} \newcommand{\leMax}{l_\text{max}} q(\mRssiVec) = \max(0, \min( \frac{ \bar\mRssi - \leMin }{ \leMax - \leMin }, 1 ) ) \label{eq:wifiQuality} \end{equation} \subsection {VAP grouping} \label{sec:vap} Assuming normal conditions, the received signal strength at one location will (strongly) vary due to environmental conditions like temperature, humidity, open/closed doors, RF interference. Fast variations can be addressed by averaging several consecutive measurements at the expense of a delay in time. To prevent this delay we use the fact, that many buildings use so called virtual access points where one physical hardware \docAP{} provides more than one virtual network to connect to. They can usually be identified, as only the last digit of the MAC-address is altered among the virtual networks. % As those virtual networks normally share the same frequency, they are unable to transmit at the same time. When scanning for \docAPshort{}s one will thus receive several responses from the same hardware, all with a very small delay in time (micro- to milliseconds). Such measurements may be grouped using some aggregate function like average, median or maximum. \todo{abs-head ist in der observation besser, weil es beim resampling mehr bringt und dafuer srogt, dass die richtigen geloescht werden!} \todo{anfaenglich falsches heading ist gift, wegen rel. heading, weil sich dann alles verlaeuft. fix: anfaenglich große heading variation erlauben} \todo{wifi-veto erklaeren. wir fragen die 4 laut model an jeder pos staerksten APs ab und vergleichen die mit dem scan. weichen min 50 prozent um mehr als 20 dB ab, oder sind im scan nicht gesehen worden, wird fuer diese position ein veto eingelegt: 0.001 vs 0.999. das geht auch nur so, da ja an jeder position andere APs die staerksten waeren.. direkt mit deren wahrscheinlichkeiten zu arbeiten wuerde also aepfel mit birnen vergleichen} wie wird optimiert a) bekannte pos + empirische params b) bekannte pos + opt params (fur alle APs gleich) [simplex] c) bekannte pos + opt params (eigene je AP) [simplex] d) alles opt: pos und params (je ap) [range-random] wenn man nur die fingerprints des floors nimmt in dem gelaufen wird, ist alles gut sobald man andere floors drueber/drunter dazu nimmt, ist es nicht mehr gnaz so gut, oder wird schlechter das spricht dafuer dass das modell nicht gut passt koennte man zeigen indem man den durchschnittlichen fehler je fingerprint plottet??? the optimization-result also depends on the optimzation target: a) the (average) error between measurment and model prediction b) the (average) probability for the model's prediction given the fingerprint, ... c) ... probleme bei der optimierung beschreiben. convex usw.. wo geht simplex gut, wo eher nicht harte WAF übergänge scheinen beim optimieren als auch beim matchen nicht so gut gleitende übergänge mittels sigmoid wirken besser war eine wichtige erkenntnis die vom AP bekannte position wird NICHT als input fuer die alles-OPT funktion benutzt die ist wirklich 'irgendwo' range-random algo domain bekannt [map groesse, txp/exp/waf in etwa] genetic refinement mit cooling [= erst grob, dann fein] optimierung ist tricky. auch wegen dem WAF der ja sprunghaft dazu kommt, sobald messung und AP in zwei unterschiedlichen stockwerken liegen.. und das selbst wenn hier vlt sichtkontakt möglich wäre, da der test 2D ist und nicht 3D aps sind (statistisch) unaebhaengig. d.h., jeder AP kann fuer sich optimiert werden. optimierung des gesamtsystems ist nicht notwendig. pro AP also 6 params. pos x/y/z, txp, exp, waf