This commit is contained in:
toni
2018-07-10 17:54:23 +02:00
7 changed files with 146 additions and 32 deletions

View File

@@ -74,6 +74,8 @@ The target function to optimize the $6$ model parameters for one \docAPshort{} i
\label{eq:optTarget}
\end{equation}
\commentByFrank{argmin liefert die argumente, nicht den fehler. da muesste nur min stehen}
\noindent Here, one reduces the squared error between reference measurements $s_{\mPosVec} \in \vec{s}$ with well-known location $\mPosVec$ and corresponding model predictions $\mu_{\mPosVec}$ (cf. eq. \eqref{eq:wallAtt}).
The number of floors between $\mPosVec$ and $\mPosAPVec$ is again given by $\Delta f$.
As discussed by \cite{Ebner-17}, optimizing all 6 parameters, especially the unknown \docAPshort{} position $\mPosAPVec$, usually results in optimizing a non-convex, discontinuous function.

View File

@@ -26,9 +26,13 @@ Following, we conducted several test walks throughout the building to examine th
Finally, the respective estimation methods are discussed in section \ref{sec:eval:est}.
\subsection{Transition}
To make a statement about the performance of our novel transition model presented within section \ref {}, we chose a simple scenario, in which a tester walks up and down a staircase three times.
\todo{Unser liebes Treppensteigen. Vergleich altes und neues Bewegungsmodell.}
To make a statement about the performance of our novel transition model presented within section \ref {},
we chose a simple scenario, in which a tester walks up and down a staircase three times.
\todo{speicherbedarf zwischen grid und treppen}
\todo{Unser liebes Treppensteigen. Vergleich altes und neues Bewegungsmodell.}
\subsection{\docWIFI{} Optimization}
\label{sec:exp:opti}

View File

@@ -39,4 +39,4 @@ The observation vector is defined as
Here, $\mRssiVec_\text{wifi}$ contains the signal strength measurements of all \docAP{}s currently visible to the phone. $\mObsHeading$ provides the relative angular change and $\mObsSteps$ the number of steps since the last filter-step.
The result of a simple activity recognition using the phone's barometer is given by $\mObsActivity$, which is one of: standing, walking, walking up or walking down.
\commentByFrank{kann das baro allein zwischen standing/walking unterscheiden?}

View File

@@ -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

View File

@@ -2962,4 +2962,12 @@ address = {{Rothenburg, Germany}},
publisher={Multidisciplinary Digital Publishing Institute}
}
@phdthesis{navMesh1,
author = {Arkin, Ronald Craig},
year = {1987},
REM_month = {9},
REM_pages = {336},
school = {University of Massachusetts},
title = {{Towards Cosmopolitan Robots : Intelligent Navigation in Extended Man-made Environments}}
}

View File

@@ -73,7 +73,10 @@
%\newcommand{\docIBeacon}{iBeacon}
% for equation references
\newcommand{\refeq}[1]{eq. \eqref{#1}}
\newcommand{\refeq}[1]{\eqref{#1}}
\newcommand{\reffig}[1]{fig.~\ref{#1}}
\newcommand{\refFig}[1]{Fig.~\ref{#1}}
% add todo notes
\newcommand{\todo}[1]{%

View File

@@ -1,6 +1,8 @@
\usepackage{xspace}
\newcommand{\eg}{e.g.\@\xspace}
% keyword macros
\newcommand{\docIBeacon}{iBeacon}
\newcommand{\eg}{e.\,g.}
% wifi naming
\newcommand{\wifiRSSI}{RSSI}