worked on transition
added new bib stuff added new helper functions
This commit is contained in:
@@ -1,34 +1,129 @@
|
||||
\section{Transition}
|
||||
\label{sec:transition}
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
\begin{subfigure}{0.325\textwidth}
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
\includegraphics[width=5.1cm]{gfx/transition/museumMap.pdf}
|
||||
\caption{3D Floorplan}
|
||||
\label{fig:museumMap}
|
||||
\end{subfigure}
|
||||
\begin{subfigure}{0.325\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=5.1cm]{gfx/transition/museumMapGrid.pdf}
|
||||
\caption{Navigation graph}
|
||||
\label{fig:museumMapGrid}
|
||||
\end{subfigure}
|
||||
\begin{subfigure}{0.325\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=5.1cm]{gfx/transition/museumMapMesh.pdf}
|
||||
\caption{Navigation mesh}
|
||||
\label{fig:museumMapMesh}
|
||||
\end{subfigure}
|
||||
\caption{
|
||||
Floorplan and navigation data structures for the lower floors of the building.
|
||||
To reach every nook and cranny, the graph based approach (b) requires many nodes and edges.
|
||||
The depicted version uses a coarse node-spacing of \SI{90}{\centi\meter} (1700 nodes) and barely reaches all doors and stairs.
|
||||
A navigation mesh (c) requires only 320 triangles to tightly reach every corner within the building.
|
||||
}
|
||||
\label{fig:transition}
|
||||
\end{figure}
|
||||
\begin{subfigure}{0.325\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=5.1cm]{gfx/transition/museumMap.pdf}
|
||||
\caption{3D Floorplan}
|
||||
\label{fig:museumMap}
|
||||
\end{subfigure}
|
||||
\begin{subfigure}{0.325\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=5.1cm]{gfx/transition/museumMapGrid.pdf}
|
||||
\caption{Navigation graph}
|
||||
\label{fig:museumMapGrid}
|
||||
\end{subfigure}
|
||||
\begin{subfigure}{0.325\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=5.1cm]{gfx/transition/museumMapMesh.pdf}
|
||||
\caption{Navigation mesh}
|
||||
\label{fig:museumMapMesh}
|
||||
\end{subfigure}
|
||||
\caption{
|
||||
Floorplan and transition data structures for the lower floors of the building.
|
||||
To reach every nook and cranny, the graph based approach (b) requires many nodes and edges.
|
||||
The depicted version uses a coarse node-spacing of \SI{90}{\centi\meter} (1700 nodes) and barely reaches all doors and stairs.
|
||||
A navigation mesh (c) requires only 320 triangles to tightly reach every corner within the building.
|
||||
}
|
||||
\label{fig:transition}
|
||||
\end{figure}
|
||||
|
||||
Within previous works, we used a graph of equidistant nodes (see \reffig{fig:museumMapGrid})
|
||||
to model the buildings floorplan, representing the basis for the transition step \cite{Ebner-15, Ebner-16}.
|
||||
% in 15 und 16 haben wir stueckweise den graph eingefuhert
|
||||
%
|
||||
The graph equals a grid, where each node constitutes the center of a grid-cell.
|
||||
Cells, usually around \SI{30} x \SI{30}{\centi\meter} in size,
|
||||
are only placed in regions that are actually walkable and not intersected by any walls
|
||||
or other obstacles. After placement, each cell is connected with their, up to 8, potential
|
||||
neighbors in the plane, creating a walkable graph for each floor. The resulting graphs are
|
||||
hereafter connected via stairs or elevators, to form the final data structure
|
||||
for the whole building.
|
||||
This allowed for (semi-)random walks along the graph, by assigning probabilities to each edge,
|
||||
using prior knowledge provided by sensors, forming the transition probability
|
||||
$p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$ \cite{Ebner-16}.
|
||||
|
||||
Due to the equidistant spacing, the resulting graph was rather rigid and
|
||||
only well-suited for rectangular buildings. For more contorted buildings, like many
|
||||
historic ones, the node-spacing needs to be small, to reliably reach every door, stair
|
||||
and corner of the building. Within \reffig{fig:museumMapGrid} we used a
|
||||
\SI{90}{\centi\meter} spacing, that is barely able to reach all places within
|
||||
the lower floors of the building, and failing to connect the upper floors reliably.
|
||||
While using smaller spacings remedies the problem, it requires huge amounts of memory:
|
||||
up to several hundred megabytes and millions of nodes and edges to model a single building.
|
||||
% musuem aus figure: 90cm grid : ca 2000 nodes, ca 6500 edges
|
||||
% museum aus figure: 30cm grid : ca 32k nodes und 120k edges
|
||||
% museum ganz, 20cm grid : ca 75k nodes, 280k edges
|
||||
|
||||
Because of both, required memory amounts and inaccuracies of the graph-based
|
||||
model, we developed a new basis for the transition step, that is still able to answer
|
||||
$p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$.
|
||||
The new foundation is provided by well-known navigation meshes \cite{navMesh1}
|
||||
where the walkable area is spanned by convex polygons, sharing
|
||||
their outline edges. Each polygon knows its adjacent
|
||||
neighbors, creating a walkable mesh.
|
||||
Using variable shaped/sized elements instead of rigid grid-cells
|
||||
provides both, higher accuracy for reaching every corner, and a reduced
|
||||
memory footprint as a single polygon is able to cover arbitrarily
|
||||
large regions. However, polygons impose several drawbacks on
|
||||
common operations used within the transition step, like checking whether
|
||||
a point is contained within some region. This is much more costly for polygons
|
||||
compared to grid-cells, which are axis-aligned rectangles.
|
||||
% museum aus figure: 305 3-ecke
|
||||
% museum ganz : 789 fuer alles
|
||||
%
|
||||
Such issues can be mitigated by using triangles instead of polygons, depicted within \reffig{fig:museumMapMesh}.
|
||||
Doing so, each element within the mesh has exactly three edges and a maximum of three neighbors.
|
||||
While this usually requires some additional memory, as more triangles are need compared to polygons,
|
||||
operations, such as aforementioned contains-check, can now easily be performed,
|
||||
\eg{} by using barycentric coordinates.
|
||||
|
||||
\newcommand{\turnNoise}{\mathcal{T}}
|
||||
\newcommand{\stepSize}{\mathcal{S}}
|
||||
This data structure yields room for various strategies to be applied within the transition step.
|
||||
The most simple approach uses an average pedestrian step size together with the
|
||||
number of detected steps $\mObsSteps$ together and change in heading $\mObsHeading$
|
||||
gathered from sensor observations $\mObsVec_{t-1}$.
|
||||
Combined with previously estimated position $(x,y)^T$ and heading $\mStateHeading$
|
||||
%from $\mStateVec_{t-1}$
|
||||
, including uncertainties for step-size $\stepSize$
|
||||
and turn-angle $\turnNoise$,
|
||||
this directly defines new potential whereabouts
|
||||
$p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$:
|
||||
%
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
x_t &=& \overbrace{x_{t-1}}^{\text{old pos.}}& & &+& \overbrace{\mObsSteps \cdot \stepSize}^{\text{distance}}& & &\cdot& \overbrace{\cos(\mStateHeading + \turnNoise)}^{\text{direction}}& & ,\enskip \turnNoise &\sim \mathcal{N}(\mObsHeading, \sigma_\text{turn}^2) \\
|
||||
y_t &=& y_{t-1}\phantom{.}& & &+& \mObsSteps \cdot \stepSize& & &\cdot& \sin(\mStateHeading + \turnNoise)& & ,\enskip \stepSize &\sim \mathcal{N}(\SI{70}{\centi\meter}, \sigma_\text{step}^2)
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
\noindent{}with
|
||||
\begin{equation*}
|
||||
\mObsSteps,\mObsHeading \in \mObsVec_{t-1}
|
||||
\enskip\enskip\enskip
|
||||
\text{and}
|
||||
\enskip\enskip\enskip
|
||||
x_{t-1},y_{t-1},\mStateHeading \in \mStateVec_{t-1}
|
||||
\enskip.
|
||||
\end{equation*}
|
||||
|
||||
Whether the determined destination $(x_t, y_t)^T$ is actually reachable from the start $(x_{t-1}, y_{t-1})^T$ can be determined
|
||||
by checking if their corresponding triangles are connected with each other.
|
||||
If so, the corresponding $z_t$ can be interpolated using the barycentric coordinates of $(x_t, y_t)^T$
|
||||
within a 2D projection of the triangle the position belongs to and applying them to the original 3D triangle.
|
||||
|
||||
If the destination is unreachable,
|
||||
\eg{} due to walls or other obstacles. Those occurrences demand for different handling strategies. Simply trying again might
|
||||
be a viable solution, as uncertainty induced by $\turnNoise$ and $\stepSize$ will yield a slightly different destination
|
||||
that might be reachable. Increasing $\sigma_\text{step}$ and $\sigma_\text{turn}$ for those cases might also be a viable choice.
|
||||
Likewise, just using some random position, omitting heading/steps might be viable as well.
|
||||
|
||||
\commentByFrank{es gaebe noch ganz andere ansaetze etc. aber wir haben wohl nicht mehr genug platz :P}
|
||||
|
||||
|
||||
like
|
||||
|
||||
max. 1 Seite
|
||||
|
||||
|
||||
Reference in New Issue
Block a user