diff --git a/tex/chapters/experiments.tex b/tex/chapters/experiments.tex index 81a2028..bcbddbc 100644 --- a/tex/chapters/experiments.tex +++ b/tex/chapters/experiments.tex @@ -44,7 +44,7 @@ \SI{70}{\centimeter} with an allowed derivation of \SI{10}{\percent}. The heading deviation in \refeq{eq:transSimple}, \refeq{eq:transShortestPath} and \refeq{eq:transMultiPath} was \SI{25}{\degree}. Edges departing from the pedestrian's destination are downvoted using $\mUsePath = 0.9$. - \commentByFrank{$\mUsePath$ erklaert} + %\commentByFrank{$\mUsePath$ erklaert} As we start with a discrete uniform distribution for $\mStateVec_0$ (random position and heading), the first few estimations @@ -69,9 +69,8 @@ \input{gfx/eval/paths} \caption{The four paths that were part of the evaluation. Starting positions are marked with black circles. - For a better visualisation they were slightly shifted to avoid overlapping. - \commentByFrank{font war korrekt, aber die groesse war zu gross im vgl. zu den anderen} - } + For a better visualisation they were slightly shifted to avoid overlapping.} + %\commentByFrank{font war korrekt, aber die groesse war zu gross im vgl. zu den anderen} \label{fig:paths} \end{figure} % error development over time while walking along a path @@ -80,9 +79,7 @@ \caption{Error development while walking along Path 4 using the Motorola Nexus 6. When leaving the suggested route \refSeg{3}, the error of \textbf{shortest} path \refeq{eq:transShortestPath} and \textbf{multi}path \refeq{eq:transMultiPath} increases. - The same issues arise when facing multimodalities between two staircases just before the destination \refSeg{9}. - \commentByFrank{hilft das bold vlt. schon um die legende zu verstehen?} - } + The same issues arise when facing multimodalities between two staircases just before the destination \refSeg{9}.} \label{fig:errorTimedNexus} \end{figure} % detailed analysis of path 4 @@ -149,8 +146,8 @@ \begin{figure} \input{gfx/eval/error_dist_nexus} \caption{Error distribution of all walks conducted with the Motorola Nexus 6 for distinct percentile values. - Our proposed methods clearly provide an enhancement for the overall localization process. - \commentByFrank{percentile erwaehnt}} + Our proposed methods clearly provide an enhancement for the overall localization process.} + %\commentByFrank{percentile erwaehnt} \label{fig:errorDistNexus} \end{figure} %\begin{figure} @@ -163,7 +160,7 @@ depicts the error development for several percentile values. As can be seen, adding prior knowledge is able to improve the localisation for all examined situations, even when leaving the suggested path or when facing bad/slow sensor readings. - \commentByFrank{fig. \ref{fig:errorDistNexus} erwaehnt} + %\commentByFrank{fig. \ref{fig:errorDistNexus} erwaehnt} % error values \begin{table} diff --git a/tex/chapters/grid.tex b/tex/chapters/grid.tex index 36e96e6..992e9e5 100644 --- a/tex/chapters/grid.tex +++ b/tex/chapters/grid.tex @@ -8,7 +8,7 @@ To sample only transitions that are actually feasible within the environment, we utilize a \SI{20}{\centimeter}-gridded graph $G = (V,E)$ with vertices $v_i \in V$ and undirected edges $e_{i,j} \in E$ - \commentByFrank{notation geaendert. so ok?} + %\commentByFrank{notation geaendert. so ok?} derived from the buildings floorplan as described in section \ref{sec:relatedWork}. However, we add improved $z$-transitions by also modelling realistic stairwells using nodes and edges, depicted in fig. \ref{fig:gridStairs}. @@ -36,7 +36,7 @@ New states $\mStateVec_{t}$ may now be sampled by starting at the vertex for position $\fPos{\mStateVec_{t-1}} = (x,y,z)^T$ - \commentByFrank{eingefuehrt} + %\commentByFrank{eingefuehrt} and walking along adjacent nodes into a given walking-direction $\gHead$ until a distance $\gDist$ is reached \cite{Ebner-15}. Both, heading and distance, are supplied by the current sensor readings $\mObsVec_{t}$ @@ -48,21 +48,21 @@ \gDist &= \mObs_t^{\mObsSteps} \cdot \mStepSize + \mathcal{N}(0, \sigma_{\gDist}^2) . \end{align} - \commentByFrank{fixed. war das falsche makro in (2) und dem satz darunter. das delta musste weg. der state hat ein absolutes heading. step-size als variable} + %\commentByFrank{fixed. war das falsche makro in (2) und dem satz darunter. das delta musste weg. der state hat ein absolutes heading. step-size als variable} % During the random walk, each edge has its own probability $p(\mEdgeAB)$ which e.g. depends on the edge's direction $\angle \mEdgeAB$ and the pedestrian's current heading $\gHead$. Furthermore, section \ref{sec:nav} uses $p(\mEdgeAB)$ to incorporate prior path knowledge to favour edges leading towards the pedestrian's desired target $\mVertexDest$. - \commentByFrank{fixed} + %\commentByFrank{fixed} For each single movement on the graph, we calculate $p(\mEdgeAB)$ for all edges connected to a vertex $\mVertexA$, and, hereafter, randomly draw the to-be-walked edge depending on those probabilities. This step is repeated until the sum of the length of all used edges exceeds $d$. The latter depends on the number of detected steps $\mObs_t^{\mObsSteps}$ and the pedestrian's step-size $\mStepSize$. - \commentByFrank{step-size als variable} + %\commentByFrank{step-size als variable} To quantify the improvement prior knowledge is able to provide, we define a simple reference for $p(\mEdgeAB)$ that assigns a probability to each edge @@ -105,7 +105,7 @@ themselves and nearby walls. To calculate paths that resemble this behaviour, an importance-factor is derived for each vertex. Those will be used to scale the distance between two nodes, just like navigation systems use the speed-limit as scaling-factor. - \commentByFrank{so besser? der ganze absatz.} + %\commentByFrank{so besser? der ganze absatz.} To downvote vertices near walls, we need to determine the distance of each vertex from its nearest wall. We therefore derive an inverted version $G' = (V', E')$ of the graph $G$, just describing walls and obstacles. A nearest-neighbour search \cite{Cover1967} $\fNN{\mVertexA}{V'}$ within $V'$ provides the vertex @@ -121,7 +121,7 @@ \enskip . \label{eq:wallAvoidance} \end{equation} - \commentByFrank{fixed. WA war WallAvoidance. hatte statt ll immer $\|$ gelesen und deshalb nicht verstanden} + %\commentByFrank{fixed. WA war WallAvoidance. hatte statt ll immer $\|$ gelesen und deshalb nicht verstanden} % %The parameters of the normal distribution and the scaling-factors were chosen empirically. %While this approach provides good results for most areas, doors are downvoted by @@ -155,7 +155,7 @@ \end{equation} % For $\mat{\Sigma}$, the two largest eigenvalues $\lambda_1, \lambda_2$ with $\lambda_1 > \lambda_2$ - \commentByFrank{fixed} + %\commentByFrank{fixed} are calculated. If their ratio $^{\lambda_1}/_{\lambda_2}$ is above a certain threshold, the neighbourhood describes a flat ellipse and thus either a door or a straight wall. % @@ -180,7 +180,7 @@ the distance of a vertex $\mVertexA$ from its nearest door and a deviation of \SI{1.0}{\meter}: % - %\commentByFrank{distanzrechnung: formel ok?} + %%\commentByFrank{distanzrechnung: formel ok?} \begin{equation} \fDD{\mVertexA} = \mathcal{N}( \| \fPos{\mVertexA} - \vec{c} \| \mid 0.0, 1.0^2 ) \label{eq:doorDetection} @@ -258,12 +258,14 @@ \newcommand{\pathRef}{v_\text{ref}} - Before every transition, the centre-position $\pathCentroid = (x,y,z)^T$ of the current - \commentByFrank{reicht das so schon?} - sample-set, representing the posterior distribution at time $t-1$, is calculated. + Before every transition, the centre-position $\pathCentroid = \fPos{\mStateVec_{t-1}^*}$ of the current sample-set, where +\begin{equation} +\mStateVec_{t-1}^* = \underset{\mStateVec_{t-1}}{\argmax} \enspace p(\mStateVec_{t-1} | \mObsVec_{t-1}) +\end{equation} +represents the most proper state of the posterior distribution at time $t-1$, is calculated. % % - %\commentByFrank{avg-state vom sample-set. frank d. meinte ja hier muessen wir aufpassen. bin noch unschluessig wie.} + %%\commentByFrank{avg-state vom sample-set. frank d. meinte ja hier muessen wir aufpassen. bin noch unschluessig wie.} %\commentByToni{Das ist gar nicht so einfach... wir haben nie ein Sample Set eingefuehrt. Nicht mal einen Sample. Wir haben immer nur diesen State... Man könnte natuerlich einfach sagen das $\Upsilon_t$ an set of random samples representing the posterior distribution ist oder einfach nur ein set von partikeln. habs mal eingefuegt wie ich denke} % This centre serves as the starting point for the shortest-path calculation. @@ -277,7 +279,7 @@ % We thus calculate the standard deviation of the distance of all sample-positions $\fPos{\mStateVec_{t-1}}$ from aforementioned centre $\pathCentroid$. - \commentByFrank{so klarer? platz fuer groese Eq. fehlt und Notation zum ansprechen jedes einzelnen Particles vermeide ich lieber...} + %\commentByFrank{so klarer? platz fuer groese Eq. fehlt und Notation zum ansprechen jedes einzelnen Particles vermeide ich lieber...} %\begin{equation} % d_\text{cen} = \| pos(q_{t-1}) - \pathCentroid \| @@ -309,7 +311,7 @@ \enskip . \label{eq:transShortestPath} \end{equation} - \commentByFrank{$\mUsePath$ als variable} + %\commentByFrank{$\mUsePath$ als variable} % @@ -347,8 +349,8 @@ \caption{Heat-Map showing the number of visits per vertex after $30.000$ walks using \refeq{eq:transMultiPath}. Both possible paths are covered and slight deviations are possible. Additionally shows the shortest-path calculation without (dashed) and with (solid) importance-factors - used for edge-weight-adjustment. - \commentByFrank{so besser?}} + used for edge-weight-adjustment.} + %\commentByFrank{so besser?} \label{fig:multiHeatMap} \end{figure} diff --git a/tex/chapters/sensors.tex b/tex/chapters/sensors.tex index 3b718e4..6f0e411 100644 --- a/tex/chapters/sensors.tex +++ b/tex/chapters/sensors.tex @@ -18,8 +18,8 @@ \include{gfx/baro/baro_setup_issue} \caption{Sometimes the smartphone's barometer (here: Motorola Nexus 6) provides erroneous pressure readings during the first seconds. Those need to be omitted before $\sigma_\text{baro}$ and - $\overline{\mObsPressure}$ are estimated. - \commentByFrank{fixed}} + $\overline{\mObsPressure}$ are estimated.} + %\commentByFrank{fixed} \label{fig:baroSetupError} \end{figure} % @@ -84,17 +84,15 @@ \subsection{Step- \& Turn-Detection} - - Step- and turn-detection use the smartphone's IMU and are implemented as described in \cite{Ebner-15}. % - However, a big disadvantage of using the state transition as proposal distribution is the high possibility of sample + A big disadvantage of using the state transition as proposal distribution is the high possibility of sample impoverishment due to a small measurement noise. This happens since accurate observations result in high peaks of the evaluation density and therefore the proposal density is not able to sample outside that peak \cite{Isard98:CCD}. Additionally, erroneous or delayed measurements from absolute positioning sensors like \docWIFI{} may lead to misplaced turns. - This causes a downvoting of all states $\mStateVec_t$ with increased heading deviation. - \commentByFrank{so besser?: downvoting of states statt particles} - Therefore, we incorporate the turn-detection, as well as the related step-detection, directly into the state transition + This causes a downvoting of the posterior distribution in areas where the heading deviates. + Therefore, we incorporate the pedestrian's heading $\mObsHeading$, as well as the number of steps $\mObsSteps$, directly into the state transition $p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$, which leads to a more directed sampling instead of a truly random one. + Steps and turns are detected using the smartphone's IMU and are implemented as described in \cite{Ebner-15}. diff --git a/tex/chapters/system.tex b/tex/chapters/system.tex index 9d2df8c..4bcc696 100644 --- a/tex/chapters/system.tex +++ b/tex/chapters/system.tex @@ -24,7 +24,7 @@ where $x, y, z$ represent the position in 3D space, $\mStateHeading$ the user's heading and $\mStatePressure$ the relative atmospheric pressure prediction in hectopascal (hPa). The recursive part of the density estimation contains all information up to time $t-1$. - Furthermore, the state transition models the pedestrian's movement as described in section \ref{sec:trans}. + Furthermore, the state transition $p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$ models the pedestrian's movement as described in section \ref{sec:trans}. %It should be noted, that we also include the current observation $\mObsVec_{t}$ in it. As \cite{Koeping14-PSA} has proven, we are able to include the observation $\mObsVec_{t-1}$ into the state transition. @@ -62,7 +62,7 @@ Therefore, numerical solutions like Gaussian filters or the broad class of Monte Carlo methods are deployed \cite{sarkka2013bayesian}. Since we assume indoor localisation to be a time-sequential, non-linear and non-Gaussian process, a particle filter is chosen as approximation of the posterior distribution. - Within this work the state transition $p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t})$ is used as proposal distribution, + Within this work the state transition $p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$ is used as proposal distribution, what is also known as CONDENSATION algorithm \cite{Isard98:CCD}. diff --git a/tex/gfx/eval/path_nexus.gp b/tex/gfx/eval/path_nexus.gp index ec93e31..74059a1 100644 --- a/tex/gfx/eval/path_nexus.gp +++ b/tex/gfx/eval/path_nexus.gp @@ -11,7 +11,7 @@ set ticslevel 0 set view equal xy set zrange [-200:2000] -set key at screen 0.30,0.15 samplen 1.2 box opaque width -19 +set key at screen 0.30,0.15 samplen 1.2 box opaque width -7.1 set view 70,50 #set object 1 polygon from 1000,4200,1060 to 1000,5200,1060 to 1700,5200,1060 to 1700,4200,1060 fs solid noborder fc rgb "#cccccc" behind diff --git a/tex/gfx/eval/path_nexus_detail.eps b/tex/gfx/eval/path_nexus_detail.eps index 8617a38..e113ac4 100644 --- a/tex/gfx/eval/path_nexus_detail.eps +++ b/tex/gfx/eval/path_nexus_detail.eps @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 EPSF-2.0 %%Title: path_nexus_detail.tex %%Creator: gnuplot 5.0 patchlevel 1 -%%CreationDate: Wed Feb 17 14:45:48 2016 +%%CreationDate: Tue Feb 23 15:55:02 2016 %%DocumentFonts: %%BoundingBox: 50 50 302 226 %%EndComments @@ -441,7 +441,7 @@ SDict begin [ /Author (kazu) % /Producer (gnuplot) % /Keywords () - /CreationDate (Wed Feb 17 14:45:48 2016) + /CreationDate (Tue Feb 23 15:55:02 2016) /DOCINFO pdfmark end } ifelse @@ -553,14 +553,14 @@ stroke LTb LCb setrgbcolor LTb -1687 89 N +117 89 N 0 440 V --175 0 V +1395 0 V 0 -440 V -175 0 V +117 89 L Z stroke -1687 529 M --175 0 V +117 529 M +1395 0 V stroke 0.80 0.80 0.80 C 2555 1288 M -50 -15 V @@ -4668,19 +4668,19 @@ LC2 setrgbcolor 221 0 V stroke LCw setrgbcolor -1.000 1687 89 -175 440 BoxColFill +1.000 117 89 1395 440 BoxColFill 1.000 UL LTb LCb setrgbcolor LTb -1687 89 N +117 89 N 0 440 V --175 0 V +1395 0 V 0 -440 V -175 0 V +117 89 L Z stroke -1687 529 M --175 0 V +117 529 M +1395 0 V stroke 0.80 0.80 0.80 C 1.000 UL LTb