From 3e244118cc224a5b73fc5a5f306cb77ee7285118 Mon Sep 17 00:00:00 2001 From: kazu Date: Tue, 11 Apr 2017 13:40:51 +0200 Subject: [PATCH] current TeX --- tex/bare_conf.tex | 2 + tex/chapters/introduction.tex | 14 +-- tex/chapters/system.tex | 76 +++++++++++++++++ tex/chapters/work.tex | 155 ++++++++++++++++++++++++---------- tex/misc/functions.tex | 20 ++++- 5 files changed, 215 insertions(+), 52 deletions(-) create mode 100644 tex/chapters/system.tex diff --git a/tex/bare_conf.tex b/tex/bare_conf.tex index 7215112..82b9c8e 100644 --- a/tex/bare_conf.tex +++ b/tex/bare_conf.tex @@ -195,6 +195,8 @@ \input{chapters/relatedwork} +\input{chapters/system} + \input{chapters/work} \input{chapters/experiments} diff --git a/tex/chapters/introduction.tex b/tex/chapters/introduction.tex index ddbabe2..2dff1ac 100644 --- a/tex/chapters/introduction.tex +++ b/tex/chapters/introduction.tex @@ -20,11 +20,15 @@ verschiedene modelle mit unterschiedlichem berechnungsaufwand. indoor komplett-system mit IMU, abs-heading, rel-heading, wifi sensor gebäudeplan, bewegungsmodell -fokus: -- wlan parameter + optimierung +\todo{ +fokus:\\ +- wlan parameter + optimierung\\ - evaluation der einzel und gesamtergebnisse +} -contribution: -- neues wifi modell, -- neues resampling, +\todo{ +contribution:\\ +- neues wifi modell,\\ +- neues resampling,\\ - model param optimierung + eval was es bringt +} diff --git a/tex/chapters/system.tex b/tex/chapters/system.tex new file mode 100644 index 0000000..b4568c1 --- /dev/null +++ b/tex/chapters/system.tex @@ -0,0 +1,76 @@ +\section{Indoor Positioning System} + + Our smartphone-based indoor localization system estimates the current location and heading + using recursive density estimation. + A graph based movement model provides the transition, + %$p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$ + while the smartphone's accelerometer, gyroscope, magnetometer provide the observations + for the following evaluation step to infer the hidden state, namely the pedestrian's location and heading + \cite{Ebner-16, Fetzer-16}. + + \begin{equation} + \arraycolsep=1.2pt + \begin{array}{ll} + &p(\mStateVec_{t} \mid \mObsVec_{1:t}) \propto\\ + &\underbrace{p(\mObsVec_{t} \mid \mStateVec_{t})}_{\text{evaluation}} + \int \underbrace{p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})}_{\text{transition}} + \underbrace{p(\mStateVec_{t-1} \mid \mObsVec_{1:t-1})d\vec{q}_{t-1}}_{\text{recursion}} \enspace, + \end{array} + \label{eq:recursiveDensity} + \end{equation} + + The hidden state $\mStateVec$ is given by + \begin{equation} + \mStateVec = (x, y, z, \mStateHeading),\enskip + x, y, z, \mStateHeading \in \R \enspace, + \end{equation} + % + where $x, y, z$ represent the pedestrian's position in 3D space + and $\mStateHeading$ his current (absolute) heading. + % + The corresponding observation vector is defined as + % + \begin{equation} + \mObsVec = (\mRssiVecWiFi{}, \mObsSteps, \mObsHeadingRel, \mObsHeadingAbs, \mObsGPS) \enspace. + \end{equation} + % + $\mRssiVecWiFi$ contains the measurements of all nearby \docAP{}s (\docAPshort{}s), + $\mObsSteps$ describes the number of steps detected since the last filter-step, + $\mObsHeadingRel$ the (relative) angular change since the last filter-step, + $\mObsHeadingAbs$ the current, vague absolute heading and + $\mObsGPS = ( \mObsGPSlat, \mObsGPSlon )$ the current location (if available) given by the GPS. + + Assuming statistical independence, the state evaluation's density can be written as + % + \begin{equation} + %\begin{split} + p(\vec{o}_t \mid \vec{q}_t) = + p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}\enskip + p(\vec{o}_t \mid \vec{q}_t)_\text{gps} + \enspace. + \label{eq:evalDensity} + \end{equation} + % + + The remaining observations, + namely: detected steps, relative- and absolute heading are + used within the transition model, where potential movements + $p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$ are sampled + based on those sensor values. + + Thus, the overall system works as described in \cite{Ebner-16}. + Since then, absolute heading and GPS have been added as additional sensors + to further enhance the localization. + \todo{neues resampling?} + + + \todo{ueberleitung} + \todo{ + die absolute positionierung kommt aus dem wlant, + dafür braucht man entweder viele fingerprints oder ein modell + } + As GPS will only work outdoors, e.g. when moving from one building into another, + the system's absolute position is solely provided by the \docWIFI{} component. + Therefore its crucial for this component to provide location estimations + that are as accurate as possible, while ensuring fast setup and + maintenance times. diff --git a/tex/chapters/work.tex b/tex/chapters/work.tex index 967228a..909534c 100644 --- a/tex/chapters/work.tex +++ b/tex/chapters/work.tex @@ -1,19 +1,40 @@ -\section{Indoor Positioning System} - - nur grob beschreiben wie unser system funktioniert, - dass die absolute positionierung aus dem wlan kommt, - dass man dafür entweder viele fingerprints oder ein modell braucht - dann kommts zu dem modell +\section{WiFi 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. - \subsection{Sensor Fusion} + \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} - Gesamtsystem - dann einzel-komponenten + 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} + \subsection{Signal Strength Prediction Model} \begin{equation} - x = \mTXP{} + 10 \mPLE{} + \log_{10} \frac{d}{d_0} + \mGaussNoise{} + \mRssi = \mTXP{} + 10 \mPLE{} + \log_{10} \frac{d}{d_0} + \mGaussNoise{} \label{eq:logDistModel} \end{equation} @@ -22,19 +43,19 @@ to also serve for indoor purposes. % This model predicts an \docAP{}'s signal strength - for an arbitrary location given the distance between both and two environmental parameters: + 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 obstalces between (line-of-sight) the \docAPshort{} and the + 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 realtime use on a smartphone, a (discretized) model pre-computation might thus be necessary + for larger buildings. For real-time use on a smartphone, a (discretized) model pre-computation might thus be necessary \todo{cite competition}. \begin{equation} @@ -42,57 +63,105 @@ \label{eq:logNormShadowModel} \end{equation} - Throughout this work, walls are ignored and only floors/ceilings are considered for the model. - In \refeq{eq:logNormShadowModel}, floors/ceilings + 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 realtime use cases. - The attenuation \mWAF{} depends on the building's architecture and for common, steel enforced concrete floors + 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 Setup} - As previously mentioned, for the prediction model to work, one needs to know the locations of all - permanently installed \docAP{}s within the building plus their environmental parameters. + + \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 mandtatory. + 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 choosen parameters for \mTXP, \mPLE and \mWAF. + 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{Parameter Optimization} + \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. - - - - - - - \begin{figure} \input{gfx/wifiop_show_optfunc_params} - \label{fig:wifiOptFuncParams} - \caption{The average error (in \SI{}{\decibel}) between reference measurements and model predictions for one \docAPshort{} dependent on \docTXP{} and \docEXP{} [fixed position and \mWAF{}] denotes a convex function.} + \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.} + \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} - while optimizing txp and exp usually means optimizing a concave function, - optimzing the positiong usually isn't. Especially when the z-coordinate - [influencing the WAF] is involved. While this can be mitigated by introducing - a continuous function for the WAF like a sigmoid, this will still not work - for all situations + 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} + + 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. + + + \subsection {VAP grouping} + + 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. wie wird optimiert @@ -113,10 +182,10 @@ c) ... + + - \subsection {VAP grouping} - VAP grouping erklaeren probleme bei der optimierung beschreiben. convex usw.. diff --git a/tex/misc/functions.tex b/tex/misc/functions.tex index a0b559e..2ac56d7 100644 --- a/tex/misc/functions.tex +++ b/tex/misc/functions.tex @@ -13,7 +13,11 @@ \newcommand{\mPosVec}{\vec{\mPos}} % position vector +\newcommand{\mPosAPVec}{\vec{\mPosAP}} % AP position vector + \newcommand{\mRssiVec}{\vec{s}} % client signal strength measurements +\newcommand{\mRssiVecWiFi}{\vec{s}_\text{wifi}} % client wifi signal strength measurements +\newcommand{\mRssiVecIB}{\vec{s}_\text{ib}} % client ibeacon signal strength measurements \newcommand{\mState}{q} % state variable \newcommand{\mStateVec}{\vec{q}} % state vector variable @@ -29,13 +33,21 @@ \newcommand{\mObsPressure}{\mPressure_\text{rel}} % symbol for observation pressure \newcommand{\mStatePressure}{\hat{\mPressure}_\text{rel}} % symbol for state pressure -\newcommand{\mHeading}{\theta} -\newcommand{\mObsHeading}{\Delta\mHeading} % symbol used for the observation heading -\newcommand{\mStateHeading}{\mHeading} % symbol used for the state heading +\newcommand{\mHeadingRel}{\theta} +\newcommand{\mHeadingAbs}{\Theta} +\newcommand{\mObsHeadingRel}{\Delta\mHeadingRel} % symbol used for relative heading +\newcommand{\mObsHeadingAbs}{\mHeadingAbs} % symbol used for absolute heading +\newcommand{\mStateHeading}{\mHeadingAbs} % symbol used for the state heading \newcommand{\mSteps}{n_\text{steps}} \newcommand{\mObsSteps}{\mSteps} +\newcommand{\mObsGPS}{\vec{g}} +\newcommand{\mObsGPSlat}{\text{lat}} +\newcommand{\mObsGPSlon}{\text{lon}} + + + \newcommand{\fPos}[1]{\textbf{pos}(#1)} \newcommand{\fDistance}[2]{\delta(#1, #2)} \newcommand{\fWA}[1]{\text{wall}(#1)} @@ -119,7 +131,7 @@ \newcommand{\mTXP}{\ensuremath{P_0}} % tx-power \newcommand{\numFloors}{\ensuremath{n}} \newcommand{\mWAF}{\ensuremath{\beta}} % wall attenuation factor -\newcommand{\mGaussNoise}{\ensuremath{X}} +\newcommand{\mGaussNoise}{\ensuremath{\mathcal{X}}} \newcommand{\mMdlDist}{\ensuremath{d}} % distance used within propagation models