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/system}
\input{chapters/work}
\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
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
}

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

View File

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