diff --git a/tex/chapters/eval.tex b/tex/chapters/eval.tex index 4775f5b..a4f6fe7 100644 --- a/tex/chapters/eval.tex +++ b/tex/chapters/eval.tex @@ -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. diff --git a/tex/chapters/experiments.tex b/tex/chapters/experiments.tex index d0b718e..404eceb 100644 --- a/tex/chapters/experiments.tex +++ b/tex/chapters/experiments.tex @@ -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} diff --git a/tex/chapters/system.tex b/tex/chapters/system.tex index 74993b0..b36ac26 100644 --- a/tex/chapters/system.tex +++ b/tex/chapters/system.tex @@ -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?} diff --git a/tex/chapters/transition.tex b/tex/chapters/transition.tex index 5cf3cfb..a0f6024 100644 --- a/tex/chapters/transition.tex +++ b/tex/chapters/transition.tex @@ -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 diff --git a/tex/egbib.bib b/tex/egbib.bib index 796fabf..64a1c49 100644 --- a/tex/egbib.bib +++ b/tex/egbib.bib @@ -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}} +} diff --git a/tex/misc/functions.tex b/tex/misc/functions.tex index e61fec3..0fa1eb6 100644 --- a/tex/misc/functions.tex +++ b/tex/misc/functions.tex @@ -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]{% diff --git a/tex/misc/keywords.tex b/tex/misc/keywords.tex index e1b6b13..9c7f64f 100644 --- a/tex/misc/keywords.tex +++ b/tex/misc/keywords.tex @@ -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}