TeX changes

This commit is contained in:
2016-02-22 22:44:40 +01:00
parent 44504f0a59
commit 8889c4cf83
3 changed files with 107 additions and 68 deletions

View File

@@ -38,9 +38,12 @@
As uncertainties we used $\sigma_\text{wifi} = \sigma_\text{ib} = 8.0$, both growing with each measurement's age. As uncertainties we used $\sigma_\text{wifi} = \sigma_\text{ib} = 8.0$, both growing with each measurement's age.
While the pressure change was assumed to be \SI{0.105}{$\frac{\text{\hpa}}{\text{\meter}}$}, all other barometer-parameters While the pressure change was assumed to be \SI{0.105}{$\frac{\text{\hpa}}{\text{\meter}}$}, all other barometer-parameters
are determined automatically (see \ref{sec:sensBaro}). The step size for the transition was configured to be \SI{70}{\centimeter} are determined automatically (see \ref{sec:sensBaro}). The step size $\mStepSize$ for the transition was configured to be
with an allowed derivation of \SI{10}{\percent}. The heading deviation in \SI{70}{\centimeter} with an allowed derivation of \SI{10}{\percent}. The heading deviation in
\refeq{eq:transSimple}, \refeq{eq:transShortestPath} and \refeq{eq:transMultiPath} was \SI{25}{\degree}. \refeq{eq:transSimple}, \refeq{eq:transShortestPath} and \refeq{eq:transMultiPath} was \SI{25}{\degree}.
Edges departing from the pedestrian's destination are downvoted using $\mUsePath = 0.9$.
\commentByFrank{$\mUsePath$ erklaert}
As we start with a discrete uniform distribution for $\mStateVec_0$ (random position and heading), the first few estimations As we start with a discrete uniform distribution for $\mStateVec_0$ (random position and heading), the first few estimations
are omitted from the error calculation to allow the system to somewhat settle its initial state. Even though, the error are omitted from the error calculation to allow the system to somewhat settle its initial state. Even though, the error
@@ -71,9 +74,11 @@
\begin{figure} \begin{figure}
\input{gfx/eval/error_timed_nexus} \input{gfx/eval/error_timed_nexus}
\caption{Development of the error while walking along Path 4 using the Motorola Nexus 6. \caption{Development of the error while walking along Path 4 using the Motorola Nexus 6.
When leaving the suggested route (3), the error of shortest path \refeq{eq:transShortestPath} When leaving the suggested route (3), the error of \textbf{shortest} path \refeq{eq:transShortestPath}
and multipath \refeq{eq:transMultiPath} increases. and \textbf{multi}path \refeq{eq:transMultiPath} increases.
The same issues arise when facing multimodalities between two staircases just before the destination (9).} The same issues arise when facing multimodalities between two staircases just before the destination (9).
\commentByFrank{hilft das bold vlt. schon um die legende zu verstehen?}
}
\label{fig:errorTimedNexus} \label{fig:errorTimedNexus}
\end{figure} \end{figure}
% detailed analysis of path 4 % detailed analysis of path 4
@@ -133,8 +138,9 @@
% overall error-distribution for nexus and galaxy % overall error-distribution for nexus and galaxy
\begin{figure} \begin{figure}
\input{gfx/eval/error_dist_nexus} \input{gfx/eval/error_dist_nexus}
\caption{Error distribution for all walks conducted with the Motorola Nexus 6. Our proposed methods \caption{Error distribution of all walks conducted with the Motorola Nexus 6 for distinct percentile values.
clearly provide an enhancement for the overall localization process.} Our proposed methods clearly provide an enhancement for the overall localization process.
\commentByFrank{percentile erwaehnt}}
\label{fig:errorDistNexus} \label{fig:errorDistNexus}
\end{figure} \end{figure}
%\begin{figure} %\begin{figure}
@@ -143,9 +149,11 @@
%\end{figure} %\end{figure}
The median error values for all other paths and the other smartphone are listed in table The median error values for all other paths and the other smartphone are listed in table
\ref{tbl:errNexus} and \ref{tbl:errGalaxy}. As can be seen, adding prior knowledge \ref{tbl:errNexus} and \ref{tbl:errGalaxy}. Furthermore, fig. \ref{fig:errorDistNexus}
is able to improve the localisation for all examined situations, even when depicts the error development for several percentile values. As can be seen, adding prior
knowledge is able to improve the localisation for all examined situations, even when
leaving the suggested path or when facing bad/slow sensor readings. leaving the suggested path or when facing bad/slow sensor readings.
\commentByFrank{fig. \ref{fig:errorDistNexus} erwaehnt}
% error values % error values
\begin{table} \begin{table}

View File

@@ -7,7 +7,8 @@
To sample only transitions that are actually feasible To sample only transitions that are actually feasible
within the environment, we utilize a \SI{20}{\centimeter}-gridded graph within the environment, we utilize a \SI{20}{\centimeter}-gridded graph
$G = (V,E)$ with vertices $v \in V$ and undirected edges $e \in E$ $G = (V,E)$ with vertices $v_i \in V$ and undirected edges $e_{i,j} \in E$
\commentByFrank{notation geaendert. so ok?}
derived from the buildings floorplan as described in section \ref{sec:relatedWork}. derived from the buildings floorplan as described in section \ref{sec:relatedWork}.
However, we add improved $z$-transitions by also modelling realistic However, we add improved $z$-transitions by also modelling realistic
stairwells using nodes and edges, depicted in fig. \ref{fig:gridStairs}. stairwells using nodes and edges, depicted in fig. \ref{fig:gridStairs}.
@@ -44,31 +45,31 @@
% %
\begin{align} \begin{align}
\gHead &= \mState_{t}^{\mStateHeading} = \mState_{t-1}^{\mStateHeading} + \mObs_t^{\mObsHeading} + \mathcal{N}(0, \sigma_{\gHead}^2) \\ \gHead &= \mState_{t}^{\mStateHeading} = \mState_{t-1}^{\mStateHeading} + \mObs_t^{\mObsHeading} + \mathcal{N}(0, \sigma_{\gHead}^2) \\
\gDist &= \mObs_t^{\mObsSteps} \cdot \SI{0.7}{\meter} + \mathcal{N}(0, \sigma_{\gDist}^2) \gDist &= \mObs_t^{\mObsSteps} \cdot \mStepSize + \mathcal{N}(0, \sigma_{\gDist}^2)
. .
\end{align} \end{align}
\commentByFrank{fixed. war das falsche makro in (2) und dem satz darunter. das delta musste weg. der state hat ein absolutes heading} \commentByFrank{fixed. war das falsche makro in (2) und dem satz darunter. das delta musste weg. der state hat ein absolutes heading. step-size als variable}
% %
During the random walk, each edge has its own probability $p(e)$ During the random walk, each edge has its own probability $p(\mEdgeAB)$
which e.g. depends on the edge's direction $\angle e$ and the which e.g. depends on the edge's direction $\angle \mEdgeAB$ and the
pedestrian's current heading $\gHead$. pedestrian's current heading $\gHead$.
Furthermore, section \ref{sec:nav} uses $p(e)$ to incorporate prior path knowledge to Furthermore, section \ref{sec:nav} uses $p(\mEdgeAB)$ to incorporate prior path knowledge to
favour edges leading towards the pedestrian's desired target $\mTarget$. favour edges leading towards the pedestrian's desired target $\mVertexDest$.
\commentByFrank{fixed} \commentByFrank{fixed}
For each single movement on the graph, we calculate $p(e)$ for all edges For each single movement on the graph, we calculate $p(\mEdgeAB)$ for all edges
connected to a vertex $v$, and, hereafter, randomly draw the to-be-walked edge connected to a vertex $\mVertexA$, and, hereafter, randomly draw the to-be-walked edge
depending on those probabilities. This step is repeated until the sum depending on those probabilities. This step is repeated until the sum
of the length of all used edges exceeds $d$. The latter depends on the number of of the length of all used edges exceeds $d$. The latter depends on the number of
detected steps $\mObs_t^{\mObsSteps}$ and assumes an average detected steps $\mObs_t^{\mObsSteps}$ and the pedestrian's step-size $\mStepSize$.
step-size of \SI{0.7}{\meter}. \commentByFrank{step-size als variable}
To quantify the improvement prior knowledge is able to provide, To quantify the improvement prior knowledge is able to provide,
we define a simple reference for $p(e)$ that assigns a probability to each edge we define a simple reference for $p(\mEdgeAB)$ that assigns a probability to each edge
just based on its deviation from the currently estimated heading $\gHead$: just based on its deviation from the currently estimated heading $\gHead$:
% %
\begin{equation} \begin{equation}
p(e) = p(e \mid \gHead) = \mathcal{N} (\angle e \mid \gHead, \sigma_\text{dev}^2). p(\mEdgeAB) = p(\mEdgeAB \mid \gHead) = \mathcal{N} (\angle \mEdgeAB \mid \gHead, \sigma_\text{dev}^2).
\label{eq:transSimple} \label{eq:transSimple}
\end{equation} \end{equation}
@@ -88,17 +89,27 @@
\subsection{Wall Avoidance} \subsection{Wall Avoidance}
\label{sec:wallAvoidance} \label{sec:wallAvoidance}
As discussed in section \ref{sec:relatedWork}, simply applying a shortest-path algorithm such as Dijkstra or %As discussed in section \ref{sec:relatedWork}, simply applying a shortest-path algorithm such as Dijkstra or
A* using the previously created graph would obviously lead to non-realistic paths sticking to walls and %A* using the previously created graph would obviously lead to non-realistic paths sticking to walls and
walking many diagonals. Pedestrians however, will probably keep a small gap between themselves and %walking many diagonals. Pedestrians however, will probably keep a small gap between themselves and
nearby walls. To calculate paths that resemble this behaviour, an importance-factor is derived for %nearby walls.
each vertex. Those will be used to modify the weight $\fDistance{v}{v'}$ between two vertices %To calculate paths that resemble this behaviour, an importance-factor is derived for
$v,v'$, examined by the shortest-path algorithm. %each vertex. Those will be used to modify the weight $\fDistance{v}{v'}$ between two vertices
%$v,v'$, examined by the shortest-path algorithm.
Shortest-path algorithms such as Dijkstra use a scalar weight $\fDistance{v_1}{v_2}$ between two vertices
to determine the path with the lowest overall weight.
As discussed in section \ref{sec:relatedWork}, simply using the distance
$\fDistance{\mVertexA}{\mVertexB} = \| \mVertexA - \mVertexB \|$ as weighting function, would obviously lead to non-realistic paths
sticking to walls and walking many diagonals. Pedestrians however, will probably keep a small gap between
themselves and nearby walls. To calculate paths that resemble this behaviour, an importance-factor is derived for
each vertex. Those will be used to scale the distance between two nodes, just like navigation systems use
the speed-limit as scaling-factor.
\commentByFrank{so besser? der ganze absatz.}
To downvote vertices near walls, we need to determine the distance of each vertex from its nearest wall. To downvote vertices near walls, we need to determine the distance of each vertex from its nearest wall.
We therefore derive an inverted version $G' = (V', E')$ of the graph $G$, just describing walls and We therefore derive an inverted version $G' = (V', E')$ of the graph $G$, just describing walls and
obstacles. A nearest-neighbour search \cite{Cover1967} $\fNN{v}{V'}$ within $V'$ provides the vertex obstacles. A nearest-neighbour search \cite{Cover1967} $\fNN{\mVertexA}{V'}$ within $V'$ provides the vertex
nearest to $v$. nearest to $\mVertexA$.
%\begin{equation} %\begin{equation}
% v' = \fNN{v}{V'} \enskip . % v' = \fNN{v}{V'} \enskip .
%\end{equation} %\end{equation}
@@ -106,10 +117,11 @@
is derived using a normal distribution with a deviation of \SI{0.5}{\meter}: is derived using a normal distribution with a deviation of \SI{0.5}{\meter}:
% %
\begin{equation} \begin{equation}
\fWA{v} = \mathcal{N}( \| v - \fNN{v}{V'} \| \mid 0.0, 0.5^2) \fWA{\mVertexA} = \mathcal{N}( \| \mVertexA - \fNN{\mVertexA}{V'} \| \mid 0.0, 0.5^2)
\enskip . \enskip .
\label{eq:wallAvoidance} \label{eq:wallAvoidance}
\end{equation} \end{equation}
\commentByFrank{fixed. WA war WallAvoidance. hatte statt ll immer $\|$ gelesen und deshalb nicht verstanden}
% %
%The parameters of the normal distribution and the scaling-factors were chosen empirically. %The parameters of the normal distribution and the scaling-factors were chosen empirically.
%While this approach provides good results for most areas, doors are downvoted by %While this approach provides good results for most areas, doors are downvoted by
@@ -154,7 +166,7 @@
\begin{figure} \begin{figure}
\includegraphics[width=\columnwidth]{door_pca} \includegraphics[width=\columnwidth]{door_pca}
\caption{Detect doors within the floorplan using $k$-NN to get the centroid $\vec{c}$ and covariance $\mat{\Sigma}$ \caption{Detect doors within the floorplan using $k$-NN to get the centroid $\vec{c}$ and covariance $\mat{\Sigma}$
of the wall-vertices (black) near $v$. While the left version is fine, the $v$ in the middle is too far of the wall-vertices (black) near $\mVertexA$. While the left version is fine, the $\mVertexA$ in the middle is too far
from $\vec{c}$ and the right one has an invalid eigenvalue-ratio.} from $\vec{c}$ and the right one has an invalid eigenvalue-ratio.}
\label{fig:doorPCA} \label{fig:doorPCA}
\end{figure} \end{figure}
@@ -165,12 +177,12 @@
(right) the ratio between $\lambda_1$ and $\lambda_2$ is below the threshold. (right) the ratio between $\lambda_1$ and $\lambda_2$ is below the threshold.
For smooth gradients around doors, we again use a distribution based on For smooth gradients around doors, we again use a distribution based on
the distance of a vertex $v$ from its nearest door and a deviation the distance of a vertex $\mVertexA$ from its nearest door and a deviation
of \SI{1.0}{\meter}: of \SI{1.0}{\meter}:
% %
%\commentByFrank{distanzrechnung: formel ok?} %\commentByFrank{distanzrechnung: formel ok?}
\begin{equation} \begin{equation}
\fDD{v} = \mathcal{N}( \| \fPos{v} - \vec{c} \| \mid 0.0, 1.0^2 ) \fDD{\mVertexA} = \mathcal{N}( \| \fPos{\mVertexA} - \vec{c} \| \mid 0.0, 1.0^2 )
\label{eq:doorDetection} \label{eq:doorDetection}
\end{equation} \end{equation}
% %
@@ -178,7 +190,7 @@
and \refeq{eq:doorDetection}: and \refeq{eq:doorDetection}:
% %
\begin{equation} \begin{equation}
\fImp{v} = 1.0 - \fWA{v} + \fDD{v} \enspace . \fImp{\mVertexA} = 1.0 - \fWA{\mVertexA} + \fDD{\mVertexA} \enspace .
\label{eq:finalImp} \label{eq:finalImp}
\end{equation} \end{equation}
% %
@@ -203,22 +215,22 @@
Hereafter, every node in the grid knows the distance and shortest path to the pedestrian's target. Hereafter, every node in the grid knows the distance and shortest path to the pedestrian's target.
To get realistic path suggestions, we use the importance-factors to adjust the edge-weight To get realistic path suggestions, we use the importance-factors to adjust the edge-weight
$\delta(e_{1,2})$ for the Dijkstra: $\delta(\mEdgeAB)$ for the Dijkstra:
% %
\begin{equation} \begin{equation}
\begin{split} \begin{split}
\delta(e_{1,2}) = \delta(\mEdgeAB) =
\delta(v_1, v_2) = \delta(\mVertexA, \mVertexB) =
\frac \frac
{ \| v_1 - v_2 \| } { \| \mVertexA - \mVertexB \| }
{ \fImp{v_2} } { \fImp{\mVertexB} }
\enskip. \enskip.
\end{split} \end{split}
\label{eq:edgeWeight} \label{eq:edgeWeight}
\end{equation} \end{equation}
% %
Eq. \eqref{eq:edgeWeight} artificially increases the euclidean distance between $v_1, v_2$ when Eq. \eqref{eq:edgeWeight} artificially increases the euclidean distance between $\mVertexA, \mVertexB$ when
$v_2$ approaches a wall and decreases it when encountering a door. $\mVertexB$ approaches a wall and decreases it when encountering a door.
% %
%whereby $\text{stretch}(\cdots)$ is a scaling function (linear or non-linear) used to adjust %whereby $\text{stretch}(\cdots)$ is a scaling function (linear or non-linear) used to adjust
%the impact of the previously calculated importance-factors. %the impact of the previously calculated importance-factors.
@@ -243,9 +255,11 @@
\newcommand{\pathCentroid}{{\vec{\overline{c}}_{t-1}}} \newcommand{\pathCentroid}{{\vec{\overline{c}}_{t-1}}}
\newcommand{\pathDev}{\sigma_{t-1}} \newcommand{\pathDev}{\sigma_{t-1}}
\newcommand{\pathRef}{\hat{v}} \newcommand{\pathRef}{v_\text{ref}}
Before every transition, the centroid $\pathCentroid$ of the current
Before every transition, the centre-position $\pathCentroid = (x,y,z)^T$ of the current
\commentByFrank{reicht das so schon?}
sample-set, representing the posterior distribution at time $t-1$, is calculated. sample-set, representing the posterior distribution at time $t-1$, is calculated.
% %
% %
@@ -255,14 +269,22 @@
This centre serves as the starting point for the shortest-path calculation. This centre serves as the starting point for the shortest-path calculation.
As it is not necessarily part of the grid, its nearest-grid-neighbour is determined and used instead. As it is not necessarily part of the grid, its nearest-grid-neighbour is determined and used instead.
This vertex is located somewhere within the sample-set and already knows the way to the pedestrian's This vertex is located somewhere within the sample-set and already knows the way to the pedestrian's
destination $\mTarget$. destination $\mVertexDest$.
% %
As new states $\mStateVec_{t}$ should approach the pedestrian's destination As new states $\mStateVec_{t}$ should approach the pedestrian's destination
we use a reference $\pathRef$ all states try to reach. This references must we use a reference $\pathRef$ all states try to reach. This references must
be both part of the shortest path and located somewhere outside of the sample-set. be both part of the shortest path and located somewhere outside of the sample-set.
% %
We thus calculate the standard deviation of the distance of all samples from the centre We thus calculate the standard deviation of the distance of all sample-positions
$\pathCentroid$. After advancing the starting-vertex by three times this deviation $\fPos{\mStateVec_{t-1}}$ from aforementioned centre $\pathCentroid$.
\commentByFrank{so klarer? platz fuer groese Eq. fehlt und Notation zum ansprechen jedes einzelnen Particles vermeide ich lieber...}
%\begin{equation}
% d_\text{cen} = \| pos(q_{t-1}) - \pathCentroid \|
% \sigma_\text{cen} = stdDev(distance)
%\end{equation}
After advancing the starting-vertex by three times this deviation
we get the new point $\pathRef$ that is: part of the shortest path, outside of the sample-set we get the new point $\pathRef$ that is: part of the shortest path, outside of the sample-set
and closer (but not too close) to the desired destination. and closer (but not too close) to the desired destination.
% %
@@ -273,18 +295,19 @@
% %
\begin{equation} \begin{equation}
\begin{split} \begin{split}
p(e) &= p(\mEdgeAB) &=
p(v' \mid v) = p(\mVertexB \mid \mVertexA) =
\mathcal{N} (\angle e \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\ \mathcal{N} (\angle \mEdgeAB \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
\alpha &= \alpha &=
\begin{cases} \begin{cases}
0.9 & \| v' - \pathRef \| < \| v - \pathRef \| \\ \mUsePath & \| \mVertexB - \pathRef \| < \| \mVertexA - \pathRef \| \\
0.1 & \text{else} (1-\mUsePath) & \text{else}
\end{cases} \end{cases}
\end{split} \end{split}
\enskip . \enskip .
\label{eq:transShortestPath} \label{eq:transShortestPath}
\end{equation} \end{equation}
\commentByFrank{$\mUsePath$ als variable}
% %
@@ -292,20 +315,20 @@
\subsubsection{Multipath} \subsubsection{Multipath}
The shortest-path algorithm mentioned in \ref{sec:pathEstimation} already calculated the distance The shortest-path algorithm mentioned in \ref{sec:pathEstimation} already calculated the distance
$\fLength{v}{\dot{v}}$ % = \sum_{i=s}^{e-1} \| v_{i} - v_{i+1} \| $ $\fLength{\mVertexA}{\mVertexDest}$ % = \sum_{i=s}^{e-1} \| v_{i} - v_{i+1} \| $
for the path from $v$ to the pedestrian's destination $\dot{v}$. for the path from $\mVertexA$ to the pedestrian's destination $\mVertexDest$.
We thus apply the same assumption as \refeq{eq:transShortestPath} and downvote edges We thus apply the same assumption as \refeq{eq:transShortestPath} and downvote edges
not decreasing the distance to the destination: not decreasing the distance to the destination:
% %
\begin{equation} \begin{equation}
\begin{split} \begin{split}
p(e) &= p(\mEdgeAB) &=
p(v' \mid v) = p(\mVertexB \mid \mVertexA) =
\mathcal{N} (\angle e \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\ \mathcal{N} (\angle \mEdgeAB \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
\alpha &= \alpha &=
\begin{cases} \begin{cases}
0.9 & \fLength{v'}{\dot{v}} < \fLength{v}{\dot{v}} \\ \mUsePath & \fLength{\mVertexB}{\mVertexDest} < \fLength{\mVertexA}{\mVertexDest} \\
0.1 & \text{else} (1-\mUsePath) & \text{else}
\end{cases} \end{cases}
\end{split} \end{split}
\enskip . \enskip .

View File

@@ -43,13 +43,21 @@
\newcommand{\mKNN}{\text{knn}} \newcommand{\mKNN}{\text{knn}}
\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{wa}(#1)} \newcommand{\fWA}[1]{\text{wall}(#1)}
\newcommand{\fDD}[1]{\text{dd}(#1)} \newcommand{\fDD}[1]{\text{door}(#1)}
\newcommand{\fImp}[1]{\text{imp}(#1)} \newcommand{\fImp}[1]{\text{imp}(#1)}
\newcommand{\fNN}[2]{\text{nn}(#1, #2)} \newcommand{\fNN}[2]{\text{nn}(#1, #2)}
\newcommand{\fLength}[2]{\text{d}(#1, #2)} \newcommand{\fLength}[2]{\text{d}(#1, #2)}
\newcommand{\mTarget}{\dot{v}} %\newcommand{\mTarget}{\dot{v}}
\newcommand{\mVertexA}{v_i}
\newcommand{\mVertexB}{v_j}
\newcommand{\mEdgeAB}{e_{i,j}}
\newcommand{\mVertexDest}{v_\text{dest}}
\newcommand{\mUsePath}{\kappa}
\newcommand{\mStepSize}{s_\text{step}}
%\newcommand{\docIBeacon}{iBeacon} %\newcommand{\docIBeacon}{iBeacon}
@@ -118,12 +126,12 @@
\newcommand{\mMdlDist}{\ensuremath{d}} % distance used within propagation models \newcommand{\mMdlDist}{\ensuremath{d}} % distance used within propagation models
\newcommand{\mGraph}{\ensuremath{G}} %\newcommand{\mGraph}{\ensuremath{G}}
\newcommand{\mVertices}{\ensuremath{V}} %\newcommand{\mVertices}{\ensuremath{V}}
\newcommand{\mVertex}{\ensuremath{v}} %\newcommand{\mVertex}{\ensuremath{v}}
\newcommand{\mVertexB}{\ensuremath{w}} %\newcommand{\mVertexB}{\ensuremath{w}}
\newcommand{\mEdges}{\ensuremath{E}} %\newcommand{\mEdges}{\ensuremath{E}}
\newcommand{\mEdge}{\ensuremath{e}} %\newcommand{\mEdge}{\ensuremath{e}}