fixed some gfx

added some comments to the tex
This commit is contained in:
2016-07-12 17:20:09 +02:00
parent f8d5449dbc
commit 83dab61ca1
10 changed files with 7680 additions and 29 deletions

View File

@@ -1,8 +1,9 @@
\begin{abstract}
This technical description gives an short overview of the indoor localisation and navigation system developed at the University of Applied Sciences W\"urzburg-Schweinfurt and the University of Siegen, Germany.
This technical description gives a short overview of the indoor localisation and navigation system developed at the University of Applied Sciences W\"urzburg-Schweinfurt and the University of Siegen, Germany.
A highly modular system fusing different sensors, namely Wi-Fi, iBeacons, barometer, step- and turn-detection, will be shown.
Additionally extended knowledge provided by prior and past data is incorporate by natural walking paths and smoothing.
Additionally, extended knowledge provided by prior and past data is incorporate by natural walking paths and smoothing.
The system performs all calculations in real time on a commercial smartphone using a high number of particles.
\commentByFrank{particles? haben wir das hier schon eingefuehrt?}
\end{abstract}

View File

@@ -1,16 +1,16 @@
\subsection{Barometer}
If available, the Smartphone's barometer is used to infer the likeliness of the current $z$-location%
If available, the Smartphone's barometer is used to infer the likeliness of the current $z$-location.
%
As ambient pressure readings are highly influenced by environmental conditions
like the weather, time-of-day and others \cite{Muralidharan14-BPS},
we use relative pressure instead of absolute ones.%
we use relative pressure instead of absolute ones.
%
Due to noisy sensors, more than one reading is used to estimate this relative base.
The usual setup time of a navigation-system (route calculation, etc.)
is used to average all barometer readings during this timeframe.
This average $\overline{\mObsPressure}$ serves as relative base.
Furthermore, we estimate the sensor's uncertainty $\sigma_\text{baro}$ for later use within the evaluation step.%
Furthermore, we estimate the sensor's uncertainty $\sigma_\text{baro}$ for later use within the evaluation step.
%
During each transition from $\mStateVec_{t-1}$ to $\mStateVec_t$, we need a corresponding, relative
pressure prediction $\mStatePressure$ which is adjusted whenever a $z$-change happens within the transition.

View File

@@ -19,7 +19,7 @@ By assuming statistical independence of all sensors, the probability density of
whereby absolute position information is given by $p(\vec{o}_t \mid \vec{q}_t)_\text{ib}$ for
\docIBeacon{}s and by $p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}$ for \docWIFI{}.
Compared to other state-of-the-art system, the step- and turn-detection is not incorporated into the evaluation step.
Compared to other state-of-the-art systems, step- and turn-detection are not incorporated into the evaluation step.
In our approach it stabilizes and improves the sampling of states $\vec{q}$ into moving more realistically. The transition step is the carried out using random walks on a graph, which is built offline, and uses the building's floorplan \cite{ebner-16}.

View File

@@ -1,12 +1,17 @@
\subsection{Transition}
To enhance the quality of the proposal distribution, the transition step is
based on a \SI{20}{\centimeter}-gridded graph $G = (V,E)$
based on random walks along a \SI{20}{\centimeter}-gridded graph $G = (V,E)$
with vertices $v_i \in V$ and undirected edges $e_{i,j} \in E$
derived from the buildings floorplan. This ensures that only valid
movements can be sampled from the previous state.%
derived from the buildings floorplan (figure \ref{fig:graphOverview}).
This ensures that only valid movements can be sampled from the previous state.%
\noindent\hspace{1mm}\input{gfx/graphOverview}
\begin{figure}
%\noindent\hspace{1mm}
\input{gfx/graphOverview}
\caption{The floorplan-based graph that is used for the transition step.}
\label{fig:graphOverview}
\end{figure}
The graph is built once and offline using the floorplan created by our editor.
Besides realistic stairwells, additional semantic information (e.g. doors)
@@ -14,18 +19,27 @@
and is used during the online phase.
If the pedestrian's destination is know beforehand, this information can
be included as prior knowledge into the transition step. A shortest-path
calculation imposes additional constraints to the transition by favouring
movements that approach the desired destination (pedestrian sticking to the shortest path)
be included as prior knowledge for the random walk: A shortest-path
calculation imposes constraints by favouring
moves (edges) that approach the desired destination (pedestrian sticking to the shortest path)
over movements that depart from the destination.
To ensure that the calculated shortest path is realistic (resembled human walking paths)
each node within the graph contains a weight, denoting the likelyhood for being visited
by the pedestrian. Using this approach, nodes near to walls receive a lower likelyhood.
During the path-calculation this importance is used to artificially increase/decrease the
To ensure that the calculated shortest path is realistic (resembles human walking paths)
each node within the graph contains a weight, denoting the likelihood for being visited
by the pedestrian. Using this approach, nodes near walls receive a lower likelihood.
During the path-calculation this importance is hereafter used to artificially increase the
weight $\delta(\mEdgeAB)$ between two nodes. This ensures that the resulting path is
farther away from obstacles and looks much more realistic
farther away from obstacles and looks much more realistic, as can be seen in figure \ref{fig:graphPaths}.
\noindent\hspace{1mm}\input{gfx/graphPaths}
\begin{figure}
%\noindent\hspace{1mm}
\input{gfx/graphPaths}
\caption{%
Shortest path calculation based on the underlying graph.
Just using the distance between two nodes as weight $\delta(\mEdgeAB)$ results in very unrealistic walking paths (blue).
Artificially increasing this weight for edges near walls, creates much better path estimations (green).%
}
\label{fig:graphPaths}
\end{figure}

View File

@@ -5,8 +5,10 @@ For this, we have been awarded the best overall paper award at IPIN 2015 in Banf
Since then, we extended our approach by prior navigation knowledge using realistic human walking paths \cite{ebner-16} and smoothing methods \cite{fetzer-16}.
Additionally, a self-developed map editor allows for creating advanced 3D maps and realistically shaped stairs.
Compared to many other systems, we avoid any time-consuming fingerprinting and calibration processes and are able to start with a uniform distribution over the whole building.
\commentByFrank{= we do not need any prior information on the pedestrian's starting position}
All calculations are computed in real time on a commercial smartphone, in most of our examples this is the Motorola Nexus 6 or the Samsung Galaxy S5.
The system is implemented in C++ using the Qt framework and OpenCL.
The system is implemented in C++ using the Qt framework and OpenCL.
\commentByFrank{aktuell noch kein OpenCL leider}
\begin{figure}
\centering
@@ -16,7 +18,7 @@ The system is implemented in C++ using the Qt framework and OpenCL.
\end{figure}%
An overview of all involved components and the sensor fusion procedure can be seen in fig. \ref{fig:sysoverview}.
Here, the smartphone provides all necessary measurements and no additional device is needed.
Here, the smartphone provides all necessary measurements and no additional devices are needed.
The readings of all those sensors are fused using recursive density estimation, directly on the phone:
%
\begin{equation}
@@ -47,7 +49,7 @@ where $\mObsVec_{1:t} = \mObsVec_{1}, \mObsVec_{1}, ..., \mObsVec_{t}$ is a seri
\end{equation}
%
where $\mRssiVec_\text{wifi}$ and $\mRssiVec_\text{ib}$ contain the measurements of all nearby \docAP{}s (\docAPshort{})
and \docIBeacon{}s, respectively. Both serve as absolute positioning component. $\mObsHeading$ and $\mObsSteps$ describe the relative angular change and the number of steps detected for the pedestrian.
and (if available) \docIBeacon{}s, respectively. Both serve as absolute positioning component. $\mObsHeading$ and $\mObsSteps$ describe the relative angular change and the number of steps detected for the pedestrian.
If the smartphone provides a barometer, $\mObsPressure$ is used as an additional, relative verification for the current $z$-component of the pedestrian's location.
%
The recursive density estimation of eq. \eqref{eq:recursiveDensity} is implemented using a particle-filter with the state transition as proposal density.

View File

@@ -12,13 +12,13 @@
To give a brief overview of the system's performance we look back at the evaluation provided in \cite{ebner-16}.
Here, 4 distinct walks were conducted within the faculty building (cf. fig. \ref{fig:paths}).
No smoothing was carried out.
We used \SI{7500}{particles} as realization and calculated the weighted arithmetic mean of the particles as state estimation.
We used \SI{7500}{particles} as realisation and calculated the weighted arithmetic mean of the particles as state estimation.
The ground truth was measured by recording a timestamp at marked spots on the walking route, similar as described in the competition guidelines.
Starting uniformly distributed, the median error for all conducted walks are listed in table \ref{tbl:errNexus} for the Motorola Nexus 6 and the Samsung Galaxy S5.
Additionally performing a smoothing step, would further improve the results and reduces temporal errors, as shown in \cite{fetzer-16}.
%
\begin{table}[h]
\caption{Median error for all conducted walks.}
\caption{Median error for all conducted walks. \commentByFrank{without smoothing?}}
\label{tbl:errNexus}
\centering
\begin{tabular}{|l|c|c|c|c|}

View File

@@ -1,8 +1,8 @@
\subsection{Step- and Turn-Detection}
The smartphone's IMU is used to track the number of steps the pedestrian has made
(accelerometer) as well as the relative heading change (gyroscope) since the last transition
\cite{ebner-15}.%
(accelerometer) as well as its relative heading change (gyroscope) since the last transition
\cite{ebner-15}.
%
To avoid potential sample impoverishment, which is induced when using the state transition as proposal distribution,
we use both values directly within the transition step to constrain the to-be-walked distance and direction for the

View File

@@ -1,9 +1,9 @@
\subsection{\docWIFI}
the smartphone's \docWIFI{} component provides an absolute location estimation $(x,y,z)^T$ by
measuring the signal-strengths of nearby transmitters (\docAP{}) and comparing them with the signal-strengths
The smartphone's \docWIFI{} component provides an absolute location estimation $(x,y,z)^T$ by
measuring the signal-strengths of nearby transmitters (\docAP{}s) and comparing them with the signal-strengths
that should be measurable. The latter are determined using a signal-strength prediction model.
Thus, no fingerprinting is required. Solely the positions of the \docAP{}s must be known beforehand.%
Thus, no fingerprinting is required. Solely the positions of the \docAP{}s must be known beforehand.
%
Prediction uses the wall-attenuation-factor model \cite{ebner-15}
which needs just three parameters:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,107 @@
% GNUPLOT: LaTeX picture with Postscript
\begingroup
\makeatletter
\providecommand\color[2][]{%
\GenericError{(gnuplot) \space\space\space\@spaces}{%
Package color not loaded in conjunction with
terminal option `colourtext'%
}{See the gnuplot documentation for explanation.%
}{Either use 'blacktext' in gnuplot or load the package
color.sty in LaTeX.}%
\renewcommand\color[2][]{}%
}%
\providecommand\includegraphics[2][]{%
\GenericError{(gnuplot) \space\space\space\@spaces}{%
Package graphicx or graphics not loaded%
}{See the gnuplot documentation for explanation.%
}{The gnuplot epslatex terminal needs graphicx.sty or graphics.sty.}%
\renewcommand\includegraphics[2][]{}%
}%
\providecommand\rotatebox[2]{#2}%
\@ifundefined{ifGPcolor}{%
\newif\ifGPcolor
\GPcolorfalse
}{}%
\@ifundefined{ifGPblacktext}{%
\newif\ifGPblacktext
\GPblacktexttrue
}{}%
% define a \g@addto@macro without @ in the name:
\let\gplgaddtomacro\g@addto@macro
% define empty templates for all commands taking text:
\gdef\gplbacktext{}%
\gdef\gplfronttext{}%
\makeatother
\ifGPblacktext
% no textcolor at all
\def\colorrgb#1{}%
\def\colorgray#1{}%
\else
% gray or color?
\ifGPcolor
\def\colorrgb#1{\color[rgb]{#1}}%
\def\colorgray#1{\color[gray]{#1}}%
\expandafter\def\csname LTw\endcsname{\color{white}}%
\expandafter\def\csname LTb\endcsname{\color{black}}%
\expandafter\def\csname LTa\endcsname{\color{black}}%
\expandafter\def\csname LT0\endcsname{\color[rgb]{1,0,0}}%
\expandafter\def\csname LT1\endcsname{\color[rgb]{0,1,0}}%
\expandafter\def\csname LT2\endcsname{\color[rgb]{0,0,1}}%
\expandafter\def\csname LT3\endcsname{\color[rgb]{1,0,1}}%
\expandafter\def\csname LT4\endcsname{\color[rgb]{0,1,1}}%
\expandafter\def\csname LT5\endcsname{\color[rgb]{1,1,0}}%
\expandafter\def\csname LT6\endcsname{\color[rgb]{0,0,0}}%
\expandafter\def\csname LT7\endcsname{\color[rgb]{1,0.3,0}}%
\expandafter\def\csname LT8\endcsname{\color[rgb]{0.5,0.5,0.5}}%
\else
% gray
\def\colorrgb#1{\color{black}}%
\def\colorgray#1{\color[gray]{#1}}%
\expandafter\def\csname LTw\endcsname{\color{white}}%
\expandafter\def\csname LTb\endcsname{\color{black}}%
\expandafter\def\csname LTa\endcsname{\color{black}}%
\expandafter\def\csname LT0\endcsname{\color{black}}%
\expandafter\def\csname LT1\endcsname{\color{black}}%
\expandafter\def\csname LT2\endcsname{\color{black}}%
\expandafter\def\csname LT3\endcsname{\color{black}}%
\expandafter\def\csname LT4\endcsname{\color{black}}%
\expandafter\def\csname LT5\endcsname{\color{black}}%
\expandafter\def\csname LT6\endcsname{\color{black}}%
\expandafter\def\csname LT7\endcsname{\color{black}}%
\expandafter\def\csname LT8\endcsname{\color{black}}%
\fi
\fi
\setlength{\unitlength}{0.0500bp}%
\ifx\gptboxheight\undefined%
\newlength{\gptboxheight}%
\newlength{\gptboxwidth}%
\newsavebox{\gptboxtext}%
\fi%
\setlength{\fboxrule}{0.5pt}%
\setlength{\fboxsep}{1pt}%
\begin{picture}(5040.00,2880.00)%
\gplgaddtomacro\gplbacktext{%
}%
\gplgaddtomacro\gplfronttext{%
\csname LTb\endcsname%
\put(549,869){\makebox(0,0)[r]{\strut{}\footnotesize{path 1}}}%
\csname LTb\endcsname%
\put(549,649){\makebox(0,0)[r]{\strut{}\footnotesize{path 2}}}%
\csname LTb\endcsname%
\put(549,429){\makebox(0,0)[r]{\strut{}\footnotesize{path 3}}}%
\csname LTb\endcsname%
\put(549,209){\makebox(0,0)[r]{\strut{}\footnotesize{path 4}}}%
\csname LTb\endcsname%
\put(549,869){\makebox(0,0)[r]{\strut{}\footnotesize{path 1}}}%
\csname LTb\endcsname%
\put(549,649){\makebox(0,0)[r]{\strut{}\footnotesize{path 2}}}%
\csname LTb\endcsname%
\put(549,429){\makebox(0,0)[r]{\strut{}\footnotesize{path 3}}}%
\csname LTb\endcsname%
\put(549,209){\makebox(0,0)[r]{\strut{}\footnotesize{path 4}}}%
}%
\gplbacktext
\put(0,0){\includegraphics{paths}}%
\gplfronttext
\end{picture}%
\endgroup