fixed some gfx
added some comments to the tex
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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}.
|
||||
|
||||
|
||||
|
||||
@@ -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}
|
||||
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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|}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
7527
competition/tex/gfx/paths.eps
Normal file
7527
competition/tex/gfx/paths.eps
Normal file
File diff suppressed because it is too large
Load Diff
107
competition/tex/gfx/paths.tex
Normal file
107
competition/tex/gfx/paths.tex
Normal 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
|
||||
Reference in New Issue
Block a user