current TeX

This commit is contained in:
2017-04-11 13:40:51 +02:00
parent 32674e3fbb
commit 3e244118cc
5 changed files with 215 additions and 52 deletions

View File

@@ -195,6 +195,8 @@
\input{chapters/relatedwork} \input{chapters/relatedwork}
\input{chapters/system}
\input{chapters/work} \input{chapters/work}
\input{chapters/experiments} \input{chapters/experiments}

View File

@@ -20,11 +20,15 @@ verschiedene modelle mit unterschiedlichem berechnungsaufwand.
indoor komplett-system mit IMU, abs-heading, rel-heading, wifi sensor indoor komplett-system mit IMU, abs-heading, rel-heading, wifi sensor
gebäudeplan, bewegungsmodell gebäudeplan, bewegungsmodell
fokus: \todo{
- wlan parameter + optimierung fokus:\\
- wlan parameter + optimierung\\
- evaluation der einzel und gesamtergebnisse - evaluation der einzel und gesamtergebnisse
}
contribution: \todo{
- neues wifi modell, contribution:\\
- neues resampling, - neues wifi modell,\\
- neues resampling,\\
- model param optimierung + eval was es bringt - model param optimierung + eval was es bringt
}

76
tex/chapters/system.tex Normal file
View File

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

View File

@@ -1,19 +1,40 @@
\section{Indoor Positioning System} \section{WiFi Optimization}
nur grob beschreiben wie unser system funktioniert, The WiFi sensor infers the pedestrian's current location based on a comparison between live measurements
dass die absolute positionierung aus dem wlan kommt, (the smartphone continuously scans for nearby \docAP{}s) and reference measurements / predictions
dass man dafür entweder viele fingerprints oder ein modell braucht with well known location.
dann kommts zu dem modell
\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 In \refeq{eq:wifiProb} $\mu_{i,\mPosVec}$ denotes the average signal strength for the \docAPshort{} identified by $i$,
dann einzel-komponenten 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} \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} \label{eq:logDistModel}
\end{equation} \end{equation}
@@ -22,19 +43,19 @@
to also serve for indoor purposes. to also serve for indoor purposes.
% %
This model predicts an \docAP{}'s signal strength 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 \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 the signal's depletion over distance \mPLE{}, which depends on the \docAPshort{}'s surroundings like walls
and other obstacles. and other obstacles.
\mGaussNoise{} is a zero-mean Gaussian noise and models the uncertainty. \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. 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. 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. 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 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}. \todo{cite competition}.
\begin{equation} \begin{equation}
@@ -42,57 +63,105 @@
\label{eq:logNormShadowModel} \label{eq:logNormShadowModel}
\end{equation} \end{equation}
Throughout this work, walls are ignored and only floors/ceilings are considered for the model. Throughout this work, walls are ignored and only floors/ceilings are considered.
In \refeq{eq:logNormShadowModel}, floors/ceilings In \refeq{eq:logNormShadowModel}, those
are included using a constant attenuation factor \mWAF{} multiplied by the number of floors/ceilings \numFloors{} 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 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. without costly intersection checks and thus allows for real-time use cases.
The attenuation \mWAF{} depends on the building's architecture and for common, steel enforced concrete floors 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}. $\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. 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 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 Depending on the building's architecture this might already provide enough accuracy for some use-cases
where a vague location information is sufficient. 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} \begin{figure}
\input{gfx/wifiop_show_optfunc_params} \input{gfx/wifiop_show_optfunc_params}
\label{fig:wifiOptFuncParams} \label{fig:wifiOptFuncTXPEXP}
\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.} \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} \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} \begin{figure}
\input{gfx/wifiop_show_optfunc_pos_yz} \input{gfx/wifiop_show_optfunc_pos_yz}
\label{fig:wifiOptFuncPosYZ} \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} \end{figure}
while optimizing txp and exp usually means optimizing a concave function, Such functions demand for optimization algorithms, that are able to deal with non-convex functions,
optimzing the positiong usually isn't. Especially when the z-coordinate like genetic approaches. However, initial tests indicated that while being superior to simplex
[influencing the WAF] is involved. While this can be mitigated by introducing and similar algorithms, the results were not satisfactorily.
a continuous function for the WAF like a sigmoid, this will still not work
for all situations 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 wie wird optimiert
@@ -113,10 +182,10 @@ c) ...
\subsection {VAP grouping}
VAP grouping erklaeren
probleme bei der optimierung beschreiben. convex usw.. probleme bei der optimierung beschreiben. convex usw..

View File

@@ -13,7 +13,11 @@
\newcommand{\mPosVec}{\vec{\mPos}} % position vector \newcommand{\mPosVec}{\vec{\mPos}} % position vector
\newcommand{\mPosAPVec}{\vec{\mPosAP}} % AP position vector
\newcommand{\mRssiVec}{\vec{s}} % client signal strength measurements \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{\mState}{q} % state variable
\newcommand{\mStateVec}{\vec{q}} % state vector variable \newcommand{\mStateVec}{\vec{q}} % state vector variable
@@ -29,13 +33,21 @@
\newcommand{\mObsPressure}{\mPressure_\text{rel}} % symbol for observation pressure \newcommand{\mObsPressure}{\mPressure_\text{rel}} % symbol for observation pressure
\newcommand{\mStatePressure}{\hat{\mPressure}_\text{rel}} % symbol for state pressure \newcommand{\mStatePressure}{\hat{\mPressure}_\text{rel}} % symbol for state pressure
\newcommand{\mHeading}{\theta} \newcommand{\mHeadingRel}{\theta}
\newcommand{\mObsHeading}{\Delta\mHeading} % symbol used for the observation heading \newcommand{\mHeadingAbs}{\Theta}
\newcommand{\mStateHeading}{\mHeading} % symbol used for the state heading \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{\mSteps}{n_\text{steps}}
\newcommand{\mObsSteps}{\mSteps} \newcommand{\mObsSteps}{\mSteps}
\newcommand{\mObsGPS}{\vec{g}}
\newcommand{\mObsGPSlat}{\text{lat}}
\newcommand{\mObsGPSlon}{\text{lon}}
\newcommand{\fPos}[1]{\textbf{pos}(#1)} \newcommand{\fPos}[1]{\textbf{pos}(#1)}
\newcommand{\fDistance}[2]{\delta(#1, #2)} \newcommand{\fDistance}[2]{\delta(#1, #2)}
\newcommand{\fWA}[1]{\text{wall}(#1)} \newcommand{\fWA}[1]{\text{wall}(#1)}
@@ -119,7 +131,7 @@
\newcommand{\mTXP}{\ensuremath{P_0}} % tx-power \newcommand{\mTXP}{\ensuremath{P_0}} % tx-power
\newcommand{\numFloors}{\ensuremath{n}} \newcommand{\numFloors}{\ensuremath{n}}
\newcommand{\mWAF}{\ensuremath{\beta}} % wall attenuation factor \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 \newcommand{\mMdlDist}{\ensuremath{d}} % distance used within propagation models