Merge branch 'master' of https://git.frank-ebner.de/FHWS/IPIN2018
This commit is contained in:
@@ -74,6 +74,8 @@ The target function to optimize the $6$ model parameters for one \docAPshort{} i
|
|||||||
\label{eq:optTarget}
|
\label{eq:optTarget}
|
||||||
\end{equation}
|
\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}).
|
\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$.
|
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.
|
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.
|
||||||
|
|||||||
@@ -26,7 +26,11 @@ 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}.
|
Finally, the respective estimation methods are discussed in section \ref{sec:eval:est}.
|
||||||
|
|
||||||
\subsection{Transition}
|
\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.
|
|
||||||
|
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.}
|
\todo{Unser liebes Treppensteigen. Vergleich altes und neues Bewegungsmodell.}
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
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.
|
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?}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
\label{fig:museumMapMesh}
|
\label{fig:museumMapMesh}
|
||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
\caption{
|
\caption{
|
||||||
Floorplan and navigation data structures for the lower floors of the building.
|
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.
|
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.
|
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.
|
A navigation mesh (c) requires only 320 triangles to tightly reach every corner within the building.
|
||||||
@@ -30,6 +30,101 @@
|
|||||||
\label{fig:transition}
|
\label{fig:transition}
|
||||||
\end{figure}
|
\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
|
max. 1 Seite
|
||||||
|
|
||||||
\subsection{Mapping}
|
\subsection{Mapping}
|
||||||
|
|||||||
@@ -2962,4 +2962,12 @@ address = {{Rothenburg, Germany}},
|
|||||||
publisher={Multidisciplinary Digital Publishing Institute}
|
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}}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,10 @@
|
|||||||
%\newcommand{\docIBeacon}{iBeacon}
|
%\newcommand{\docIBeacon}{iBeacon}
|
||||||
|
|
||||||
% for equation references
|
% 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
|
% add todo notes
|
||||||
\newcommand{\todo}[1]{%
|
\newcommand{\todo}[1]{%
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
\usepackage{xspace}
|
||||||
|
\newcommand{\eg}{e.g.\@\xspace}
|
||||||
|
|
||||||
% keyword macros
|
% keyword macros
|
||||||
\newcommand{\docIBeacon}{iBeacon}
|
\newcommand{\docIBeacon}{iBeacon}
|
||||||
\newcommand{\eg}{e.\,g.}
|
|
||||||
|
|
||||||
% wifi naming
|
% wifi naming
|
||||||
\newcommand{\wifiRSSI}{RSSI}
|
\newcommand{\wifiRSSI}{RSSI}
|
||||||
|
|||||||
Reference in New Issue
Block a user