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

@@ -7,7 +7,8 @@
To sample only transitions that are actually feasible
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}.
However, we add improved $z$-transitions by also modelling realistic
stairwells using nodes and edges, depicted in fig. \ref{fig:gridStairs}.
@@ -44,31 +45,31 @@
%
\begin{align}
\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}
\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)$
which e.g. depends on the edge's direction $\angle e$ and the
During the random walk, each edge has its own probability $p(\mEdgeAB)$
which e.g. depends on the edge's direction $\angle \mEdgeAB$ and the
pedestrian's current heading $\gHead$.
Furthermore, section \ref{sec:nav} uses $p(e)$ to incorporate prior path knowledge to
favour edges leading towards the pedestrian's desired target $\mTarget$.
Furthermore, section \ref{sec:nav} uses $p(\mEdgeAB)$ to incorporate prior path knowledge to
favour edges leading towards the pedestrian's desired target $\mVertexDest$.
\commentByFrank{fixed}
For each single movement on the graph, we calculate $p(e)$ for all edges
connected to a vertex $v$, and, hereafter, randomly draw the to-be-walked edge
For each single movement on the graph, we calculate $p(\mEdgeAB)$ for all edges
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
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
step-size of \SI{0.7}{\meter}.
detected steps $\mObs_t^{\mObsSteps}$ and the pedestrian's step-size $\mStepSize$.
\commentByFrank{step-size als variable}
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$:
%
\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}
\end{equation}
@@ -88,17 +89,27 @@
\subsection{Wall Avoidance}
\label{sec:wallAvoidance}
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
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 modify the weight $\fDistance{v}{v'}$ between two vertices
$v,v'$, examined by the shortest-path algorithm.
%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
%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 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.
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
nearest to $v$.
obstacles. A nearest-neighbour search \cite{Cover1967} $\fNN{\mVertexA}{V'}$ within $V'$ provides the vertex
nearest to $\mVertexA$.
%\begin{equation}
% v' = \fNN{v}{V'} \enskip .
%\end{equation}
@@ -106,10 +117,11 @@
is derived using a normal distribution with a deviation of \SI{0.5}{\meter}:
%
\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 .
\label{eq:wallAvoidance}
\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.
%While this approach provides good results for most areas, doors are downvoted by
@@ -154,7 +166,7 @@
\begin{figure}
\includegraphics[width=\columnwidth]{door_pca}
\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.}
\label{fig:doorPCA}
\end{figure}
@@ -165,12 +177,12 @@
(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
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}:
%
%\commentByFrank{distanzrechnung: formel ok?}
\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}
\end{equation}
%
@@ -178,7 +190,7 @@
and \refeq{eq:doorDetection}:
%
\begin{equation}
\fImp{v} = 1.0 - \fWA{v} + \fDD{v} \enspace .
\fImp{\mVertexA} = 1.0 - \fWA{\mVertexA} + \fDD{\mVertexA} \enspace .
\label{eq:finalImp}
\end{equation}
%
@@ -203,22 +215,22 @@
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
$\delta(e_{1,2})$ for the Dijkstra:
$\delta(\mEdgeAB)$ for the Dijkstra:
%
\begin{equation}
\begin{split}
\delta(e_{1,2}) =
\delta(v_1, v_2) =
\delta(\mEdgeAB) =
\delta(\mVertexA, \mVertexB) =
\frac
{ \| v_1 - v_2 \| }
{ \fImp{v_2} }
{ \| \mVertexA - \mVertexB \| }
{ \fImp{\mVertexB} }
\enskip.
\end{split}
\label{eq:edgeWeight}
\end{equation}
%
Eq. \eqref{eq:edgeWeight} artificially increases the euclidean distance between $v_1, v_2$ when
$v_2$ approaches a wall and decreases it when encountering a door.
Eq. \eqref{eq:edgeWeight} artificially increases the euclidean distance between $\mVertexA, \mVertexB$ when
$\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
%the impact of the previously calculated importance-factors.
@@ -243,9 +255,11 @@
\newcommand{\pathCentroid}{{\vec{\overline{c}}_{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.
%
%
@@ -255,14 +269,22 @@
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.
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
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.
%
We thus calculate the standard deviation of the distance of all samples from the centre
$\pathCentroid$. After advancing the starting-vertex by three times this deviation
We thus calculate the standard deviation of the distance of all sample-positions
$\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
and closer (but not too close) to the desired destination.
%
@@ -273,18 +295,19 @@
%
\begin{equation}
\begin{split}
p(e) &=
p(v' \mid v) =
\mathcal{N} (\angle e \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
p(\mEdgeAB) &=
p(\mVertexB \mid \mVertexA) =
\mathcal{N} (\angle \mEdgeAB \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
\alpha &=
\begin{cases}
0.9 & \| v' - \pathRef \| < \| v - \pathRef \| \\
0.1 & \text{else}
\mUsePath & \| \mVertexB - \pathRef \| < \| \mVertexA - \pathRef \| \\
(1-\mUsePath) & \text{else}
\end{cases}
\end{split}
\enskip .
\label{eq:transShortestPath}
\end{equation}
\commentByFrank{$\mUsePath$ als variable}
%
@@ -292,20 +315,20 @@
\subsubsection{Multipath}
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} \| $
for the path from $v$ to the pedestrian's destination $\dot{v}$.
$\fLength{\mVertexA}{\mVertexDest}$ % = \sum_{i=s}^{e-1} \| v_{i} - v_{i+1} \| $
for the path from $\mVertexA$ to the pedestrian's destination $\mVertexDest$.
We thus apply the same assumption as \refeq{eq:transShortestPath} and downvote edges
not decreasing the distance to the destination:
%
\begin{equation}
\begin{split}
p(e) &=
p(v' \mid v) =
\mathcal{N} (\angle e \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
p(\mEdgeAB) &=
p(\mVertexB \mid \mVertexA) =
\mathcal{N} (\angle \mEdgeAB \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
\alpha &=
\begin{cases}
0.9 & \fLength{v'}{\dot{v}} < \fLength{v}{\dot{v}} \\
0.1 & \text{else}
\mUsePath & \fLength{\mVertexB}{\mVertexDest} < \fLength{\mVertexA}{\mVertexDest} \\
(1-\mUsePath) & \text{else}
\end{cases}
\end{split}
\enskip .