added heading and step detection to transition

This commit is contained in:
toni
2018-09-20 10:24:23 +02:00
parent 09188dd32e
commit 3fd79ed899
7 changed files with 44 additions and 25 deletions

View File

@@ -22,7 +22,7 @@
\label{fig:museumMapMesh}
\end{subfigure}
\caption{
Floorplan and transition data structures for the lower floors of the building.
Floorplan and transition data structures for the ground floor 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.
@@ -41,7 +41,7 @@
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,
This allowes 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}.
@@ -110,7 +110,7 @@
\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
Whether the newly obtained 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.
@@ -120,6 +120,19 @@
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.
The detected steps $\mObsSteps$ and the heading change $\mObsHeading$ are obtained using the smartphones IMU.
To provide a robust heading change, we first need to rotate the gyroscope onto the east-north-up frame using a suitable transformation matrix.
After the rotation, integrating over the gyros $z$-axis for a predefined time interval provides the users heading change (yaw) \cite{Ebner-15}.
To obtain the matrix in the first place, we assume that the acceleration during walking is cyclic and thus the average acceleration over several cycles has to be almost zero.
This enables to measure the direction of gravity and use it to construct the transformation matrix.
It should be noted, that especially for cheap IMUs, as they can be found in most smartphones, the matrix has to be updated at very short intervals of one or two seconds to preserve good results \cite{davidson2017survey}.
To receive the number of steps, we use a very simple step detection based on the accelerometer magnitude.
For this, we calculated the difference between the average magnitude over the last \SI{200}{\milli\second} and the gravity vector.
If this difference is above a certain threshold ($> \SI{0.32}{\m\per\square\s}$), a step is detected.
To prevent multiple detections within an unrealistic short interval, we block the complete process for \SI{250}{\milli\second} \cite{Koeping14}.
%\commentByFrank{es gaebe noch ganz andere ansaetze etc. aber wir haben wohl nicht mehr genug platz :P}
%\commentByToni{ich denke aber auch, es langt.}