diff --git a/tex/chapters/experiments.tex b/tex/chapters/experiments.tex
index b40db0b..829acf0 100644
--- a/tex/chapters/experiments.tex
+++ b/tex/chapters/experiments.tex
@@ -68,19 +68,19 @@
% error development over time while walking along a path
\begin{figure}
\input{gfx/eval/error_timed_nexus}
- \caption{Development of the error while walking along
- %path 1 (upper) and
- path 4 (lower) using the Motorola Nexus 6.
- Path 4 shows increasing errors for our methods when leaving the shortest path (3) and when facing multimodalities between two
- staircases just before the destination (9).}
+ \caption{Development of the error while walking along Path 4 using the Motorola Nexus 6.
+ When leaving the suggested route (3), the error of shortest path \refeq{eq:transShortestPath}
+ and multipath \refeq{eq:transMultiPath} increases.
+ The same issues arise when facing multimodalities between two staircases just before the destination (9).}
\label{fig:errorTimedNexus}
\end{figure}
% detailed analysis of path 4
\begin{figure}
\input{gfx/eval/path_nexus_detail}
- \caption{Detailed path analysis depicting the individual segments of path 4. Their corresponding error contribution can
- be seen in fig. \ref{fig:errorTimedNexus}. Even though the shortest path suggested by the system is ignored multiple
- times ($3'$ and $3''$) our approach is still able to improve the overall localisation error.}
+ \caption{Detailed path analysis depicting the individual segments of path 4 using \refeq{eq:transMultiPath}.
+ Their corresponding error can be seen in fig. \ref{fig:errorTimedNexus}. Even though the shortest path
+ suggested by the system is ignored multiple times ($3'$ and $3''$) our approach is still able to improve
+ the overall localisation error.}
\label{fig:nexusPathDetails}
\end{figure}
%
diff --git a/tex/chapters/grid.tex b/tex/chapters/grid.tex
index fcc6f08..e0dc424 100644
--- a/tex/chapters/grid.tex
+++ b/tex/chapters/grid.tex
@@ -7,11 +7,11 @@
To sample only transitions that are actually feasible
within the environment, we utilize a \SI{20}{\centimeter}-gridded graph
- $G = (V,E)$, $v_{x,y,z} \in V$, $e_{v_{x,y,z}}^{v_{x',y',z'}} \in E$
+ $G = (V,E)$ with vertices $v \in V$ and undirected edges $e \in E$
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}.
- %
+
\begin{figure}
\centering
\input{gfx/grid/grid}
@@ -24,40 +24,45 @@
\end{figure}
%
Stairs are defined using three points $\vec{\spoint}_1, \vec{\spoint}_2, \vec{\spoint}_3 \in \R^3$ whereby the segment
- $[ \vec{\spoint}_1 \vec{\spoint}_2 ]$ describes the starting-edge, and $[ \vec{\spoint}_2 \vec{\spoint}_3 ]$ the stair's direction
- (see fig. \ref{fig:gridStairs}). The grid-vertices corresponding to the starting-edge are determined using an intersection of
- the segment $[ \vec{\spoint}_1 \vec{\spoint}_2 ]$ with the \SI{20}{\centimeter} bounding-box around each vertex.
+ $[ \vec{\spoint}_1 \vec{\spoint}_2 ]$ describes the starting-edge, and $[ \vec{\spoint}_2 \vec{\spoint}_3 ]$ the stair's
+ direction (see fig. \ref{fig:gridStairs}). The grid-vertices corresponding to the starting-edge are determined using an
+ intersection of the segment $[ \vec{\spoint}_1 \vec{\spoint}_2 ]$ with the \SI{20}{\centimeter} bounding-box around each
+ node's centre $\fPos{v} = (x,y,z)^T$.
To reduce the system's memory footprint, we search for the largest connected region within the graph and
remove all nodes and edges that are not connected to this region.
- Walking the grid is now possible by moving along adjacent nodes into a given walking-direction
- until a desired distance $\gDist$ is reached \cite{Ebner-15}.
- In order to use meaningful headings $\gHead$ and distances $\gDist$
- (matching the pedestrian's real heading and walking speed) for each transition,
- we use the current sensor-readings $\mObsVec_{t}$ for hinted instead of randomized adjustments:
- %
+ New states $\mStateVec_{t}$ may now be sampled by starting at the vertex for $\fPos{\mStateVec_{t-1}}$ 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}$
+ and thus reflect the pedestrian's real heading and walking speed including uncertainty.
+ Working with relative sensor readings, the state's heading is updated during each transition:
+ %
\begin{align}
- \mState_{t}^{\mStateHeading} = \gHead &= \mState_{t-1}^{\mStateHeading} + \mObs_t^{\mObsHeading} + \mathcal{N}(0, \sigma_{\gHead}^2) \\
- \gDist &= \mObs_t^{\mObsSteps} \cdot \SI{0.7}{\meter} + \mathcal{N}(0, \sigma_{\gDist}^2)
+ \gHead &= \mState_{t}^{\mStateHeading} = \mState_{t-1}^{\mStateHeading} + \mObs_t^{\mObsHeading} + \mathcal{N}(0, \sigma_{\gHead}^2) \\
+ \gDist &= \mObs_t^{\mObsSteps} \cdot \SI{0.7}{\meter} + \mathcal{N}(0, \sigma_{\gDist}^2)
.
\end{align}
%
- During a walk, each edge has an assigned probability $p(e)$ which depends on
- the its direction $\angle e$ and the current heading $\gHead$.
- We will use $p(e)$ to incorporate prior path knowledge to
- favour some vertices/edges. For each single movement on the graph,
- we calculate $p(e)$ for all adjacent edges, and, hereafter, randomly draw the
- to-be-walked edge depending on those probabilities. The random walk ends,
- as soon as the distance $d$ is reached. $d$ depends on the number of detected steps
- $\mObsVec_t^{\mObsSteps}$ and assumes an average step-size of \SI{0.7}{\meter}.
+ During the random walk, each edge has its own probability $p(e)$
+ which e.g. depends on the edge's direction $\angle e$ and the
+ pedestrian's current heading $\gHead$.
+ Furthermore, $p(e)$ is used to incorporate prior path knowledge to
+ favour edges leading towards the pedestrian's desired target.
- For comparison purpose we define a simple weighting method that assigns a probability to each edge
- just based on the deviation from the currently estimated heading $\gHead$ omitting additional prior knowledge:
-
- \commentByFrank{das erste $=$ ist komisch. ideen?}
- \commentByToni{Find ich jetzt nicht tragisch. Eher notwendig fuers Verstaendnis.}
+ For each single movement on the graph, we calculate $p(e)$ for all edges
+ connected to a vertex $v$, 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 assumes an average
+ step-size of \SI{0.7}{\meter}.
+
+ To quantify the improvement prior knowledge is able to provide,
+ we define a simple reference for $p(e)$ that assigns a probability to each edge
+ just based on its deviation from the currently estimated heading $\gHead$:
+ %
\begin{equation}
p(e) = p(e \mid \gHead) = \mathcal{N} (\angle e \mid \gHead, \sigma_\text{dev}^2).
\label{eq:transSimple}
@@ -79,34 +84,24 @@
\label{sec:wallAvoidance}
As discussed in section \ref{sec:relatedWork}, simply applying a shortest-path algorithm such as Dijkstra or
- A* using the previously created graph would obviously lead to non-realistic paths sticking to the walls and
- walking many diagonals. Pedestrian's however, walk either somewhere near (but not close to) a wall or, for
- larger open spaces, somewhere far from the walls. In order to calculate paths that resemble such a walking
- behaviour, an importance-factor is derived for each vertex within the graph. Those will be used to
- adjust the distance-weight between two vertices, needed by the shortest-path algorithm.
+ A* using the previously created graph would obviously lead to non-realistic paths sticking to walls and
+ walking many diagonals. Pedestrian's however, will probably keep a small gap between themselves and
+ nearby walls. To calculate paths that resemble this behaviour, an importance-factor is derived for
+ each vertex. Those will be used to modify the euclidean distance $\fDistance{u}{v}$ between two vertices
+ $u,v$, examined by the shortest-path algorithm.
- To downvote vertices near walls, we need to get the distance of each vertex from its nearest wall.
- We therefore build an inverted version $G' = (V', E')$ of the graph $G$, just containing walls and other obstacles.
- A nearest-neighbour search \cite{Cover1967}
- %$\mNN(v_{x,y,z}, G')$
- will then provide the nearest wall-vertex
- $v'_{x,y,z} \in V'$ from the inverted graph. To get a smooth gradient, the wall avoidance
- is calculated using a normal distribution with the distance from the nearest wall
- and a deviation of \SI{0.5}{\meter}:
- %
- %\begin{equation}
- % d_{v, v'} = \| v_{x,y,z}, v'_{x,y,z}, \enskip 0.0 < d_{v, v'} < 2.2 \\
- %\end{equation}
- %\begin{equation}
- %\begin{array}{ll}
- % \text{wa}_{x,y,z} = & - 0.30 \cdot \mathcal{N}(d_{v, v'} \mid 0.0, 0.5^2) \\
- % & + 0.15 \cdot \mathcal{N}(d_{v, v'} \mid 0.9, 0.5^2) \\
- % & + 0.15 \cdot \mathcal{N}(d_{v, v'} \mid 2.2, 0.5^2)
- %\end{array}
- %\label{eq:wallAvoidance}
- %\end{equation}
+ 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 other
+ obstacles. A nearest-neighbour search \cite{Cover1967} within $V'$ provides the vertex $v'$
+ nearest to $v$:
\begin{equation}
- \text{wa}_{x,y,z} = \mathcal{N}( \| v_{x,y,z} - v'_{x,y,z} \| \mid 0.0, 0.5^2) \\
+ v' = \fNN{v}{V'} \enskip .
+ \end{equation}
+ To get a smooth gradient around walls, the avoidance-factor
+ is derived using a normal distribution with a deviation of \SI{0.5}{\meter}:
+ %
+ \begin{equation}
+ \fWA{v} = \mathcal{N}( \fDistance{v}{\fNN{v}{V'}} \mid 0.0, 0.5^2) \\
\label{eq:wallAvoidance}
\end{equation}
%
@@ -114,9 +109,9 @@
%While this approach provides good results for most areas, doors are downvoted by
%\refeq{eq:wallAvoidance}, as they have only vertices that are close to walls.
%Door detection and upvoting thus is the next conducted step.
- While effectively rendering wall-regions less likely, \refeq{eq:wallAvoidance}
- will obviously have the same effect on all doors located within the building.
- Therefore, a door-detection is necessary, to upvote them again.
+ While rendering wall-regions less likely, \refeq{eq:wallAvoidance}
+ will obviously have the same effect on doors as they are just a small gap between
+ consecutive walls. Therefore, a door-detection is necessary, to upvote them again.
@@ -124,90 +119,103 @@
\label{sec:doorDetection}
To automatically detect doors within the floorplan, we utilize the fact that doors are usually
- anchored between two (straight) walls and have a normed width. Examining the region directly
- around it, the door and its surrounding walls describe a flat ellipse with the door as its
- centre.
+ anchored between two straight walls and have a normed width. Examining the region directly
+ around it, the door and its surrounding walls thus describe a flat ellipse with the door as its centre.
%It is thus possible to detect doors within the floorplan using a PCA.
- To decide whether a vertex $v_{x,y,z}$ within the (non-inverted) grid $G$ belongs to a door,
- we use $k$-NN to fetch its $k$ nearest neighbours $\hat{V}$ within the inverted grid $G'$,
- describing the walls nearby. Hereafter we determine the centroid $\vec{c} \in \R^3$
- and 2D covariance $(x,y)$ for those vertices.
+ To decide whether a vertex $v$ belongs to a door, we use \mbox{$k$-NN} to fetch its $k$ nearest neighbours
+ $\{v'_1, v'_2, \dots, v'_k\} \in V'$ within the inverted grid $G'$, denoting nearby walls.
+ %Hereafter we determine the centroid $\vec{c} \in \R^3$
+ %and 2D covariance $(x,y)$ for those vertices.
+ Hereafter we determine their centroid $\vec{c}$ and covariance $\mat{\Sigma}$:
+ \begin{equation}
+ \vec{c} = \frac{1}{k}\sum_{i=1}^{k} \fPos{v_i}
+ ,\smallskip
+ \mat{\Sigma} = \frac{1}{k} \sum_{i=1}^{k} \varphi \cdot \varphi^T
+ ,\smallskip
+ \varphi = \fPos{v_i}-\vec{c} \enskip.
+ \end{equation}
%
- Using the PCA, we examine the two eigenvalues $\{\lambda_1, \lambda_2 \mid \lambda_1 > \lambda_2\}$,
- for the covariance matrix. If their ratio $\frac{\lambda_1}{\lambda_2}$ is above a certain
- threshold, the neighbourhood describes a flat ellipse and thus either a straight wall or door.
+ For $\mat{\Sigma}$, the two largest eigenvalues $\{\lambda_1, \lambda_2 \mid \lambda_1 > \lambda_2\}$
+ 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
%
- To prevent a vertex $v_{x,y,z}$ adjacent to such straight walls from also being detected,
- we ensure the distance $\| \vec{c} - v_{x,y,z} \|$ between the centroid and the vertex is
- below a certain threshold. Hereafter, only vertices located within the door itself remain.
+ To filter the latter, we enforce the euclidean distance \mbox{$\| \fPos{v} - \vec{c} \|$} between
+ the centroid and the vertex to be very small. Hereafter, only vertices located directly within a
+ door itself remain.
%
\begin{figure}
\includegraphics[width=\columnwidth]{door_pca}
- \caption{Detect doors within the floorplan using $k$-NN and PCA.
- While the white nodes are walkable, the black ones represent walls. The grey node is the one in question.}
+ \caption{Detect doors within the floorplan using $k$-NN to get the centroid $\vec{c}$ and covariance $\mat{\Sigma}$
+ of the wall-vertices (black) near $v$. While the left version is fine, the $v$ in the middle is too far
+ from $\vec{c}$ and the right one has an invalid eigenvalue-ratio.}
\label{fig:doorPCA}
\end{figure}
%
Fig. \ref{fig:doorPCA} depicts all three cases where
(left) the vertex is part of a door,
(middle) the distance between node and centroid is above the threshold and
- (right) the ration between $\lambda_1$ and $\lambda_2$ is below the threshold.
+ (right) the ratio between $\lambda_1$ and $\lambda_2$ is below the threshold.
- For smooth importance-gradients around doors, we again use a distribution based on
- the distance of a vertex $v_{x,y,z}$ from its nearest door and a deviation
- of \SI{1.0}{\meter} to determine its importance-factor:
+ For smooth gradients around doors, we again use a distribution based on
+ the distance of a vertex $v$ from its nearest door and a deviation
+ of \SI{1.0}{\meter}:
%
%\commentByFrank{distanzrechnung: formel ok?}
\begin{equation}
- \text{dd}_{x,y,z} = \mathcal{N}( \| \vec{c} - v_{x,y,z} \| \mid 0.0, 1.0^2 )
+ \fDD{v} = \mathcal{N}( \| \fPos{v} - \vec{c} \| \mid 0.0, 1.0^2 )
\label{eq:doorDetection}
\end{equation}
-
- The final importance for each node is now calculated using \refeq{eq:wallAvoidance}
+ %
+ The final importance combines \refeq{eq:wallAvoidance}
and \refeq{eq:doorDetection}:
%
\begin{equation}
- \text{imp}_{x,y,z} = 1.0 - \text{wa}_{x,y,z} + \text{dd}_{x,y,z} \enspace .
+ \fImp{v} = 1.0 - \fWA{v} + \fDD{v} \enspace .
+ \label{eq:finalImp}
\end{equation}
%
- While most vertices receive a factor of $1.0$, wall-regions get lower and
+ While most nodes receive a neutral factor of $1.0$, wall-regions get lower and
door-regions higher values, depicted in fig. \ref{fig:importance}.
%
\begin{figure}
\includegraphics[width=\columnwidth]{floorplan_importance}
- \caption{The calculated importance-factor for each vertex. While the black wall-elements denote
- a small importance, the yellow door-regions receive much higher values.}
+ \caption{The calculated importance-factor \refeq{eq:finalImp} for each vertex.
+ While the dark wall-elements denote a small importance, the yellow areas around doors and narrow
+ passages depict a high importance.}
\label{fig:importance}
\end{figure}
\subsection{Path Estimation}
\label{sec:pathEstimation}
-
- \commentByFrank{ueberleitung}
- To estimate the shortest path to the pedestrian's desired target, we use a modified version
- of Dijkstra's algorithm. Instead of calculating the shortest path from the start to the end,
- we swap start/end and do not terminate the calculation until every single node was evaluated.
- Thus, every node in the grid knows the shortest path to the pedestrian's target.
+ For routing the pedestrian towards his desired target, a modified version
+ of Dijkstra's algorithm is used. Instead of calculating the shortest path from the start to the end,
+ the direction is inverted and the calculated terminates as soon as every single node was evaluated.
+ Hereafter, every node in the grid knows the distance and shortest path to the pedestrian's target.
- As weighting-function we use
+ To get realistic path suggestions, we use the importance-factors to adjust the edge-weight
+ $\delta(v_1, v_2)$ for the Dijkstra:
%
\begin{equation}
\begin{split}
- \text{weight}(v_{x,y,z}, v_{x',y',z'}) =
+ \delta(v_1, v_2) =
\frac
- { \| v_{x,y,z} - v_{x',y',z'} \| }
- { \text{imp}_{x',y',z'} }
- .
+ { \| v_1 - v_2 \| }
+ { \fImp{v_2} }
+ \enskip.
\end{split}
+ \label{eq:edgeWeight}
\end{equation}
%
+ Eq. \eqref{eq:edgeWeight} artificially increases the euclidean distance between $v_1, v_2$ when
+ $v_2$ approaches a wall and decreases it when encountering a door.
+ %
%whereby $\text{stretch}(\cdots)$ is a scaling function (linear or non-linear) used to adjust
%the impact of the previously calculated importance-factors.
%
Fig. \ref{fig:multiHeatMap} depicts the difference between the shortest path calculated without (dashed) and
- with importance-factors (solid), where the latter version is clearly more realistic.
+ with importance-factors (solid), where the latter is clearly more realistic.
%\begin{figure}
% \includegraphics[angle=-90, width=\columnwidth, trim=20 19 17 9, clip]{floorplan_paths}
@@ -219,101 +227,89 @@
\subsection{Guidance}
- Based on the previous calculations, we propose two approaches to utilize the prior
- knowledge within the transition model.
+ Based on the previous considerations, we propose two approaches to utilize prior
+ knowledge within the transition.
\subsubsection{Shortest Path}
- Before every transition, the centroid $\vec{c}$ of the current sample-set $\Upsilon_{t-1}$,
- representing the posterior distribution at time $t-1$, is calculated:
- %
- \begin{equation}
- \vec{c} = \frac
- %{ \sum_{\mStateVec_{t-1}} (\mState_{t-1}^x, \mState_{t-1}^y, \mState_{t-1}^z)^T }
- { \sum_{i=1}^N \Upsilon_{t-1}^{x,y,z} }
- {N}
- \end{equation}
+ \newcommand{\pathCentroid}{{\vec{\overline{c}}_{t-1}}}
+ \newcommand{\pathDev}{\sigma_{t-1}}
+ \newcommand{\pathRef}{\hat{v}}
+
+ Before every transition, the centroid $\pathCentroid$ of the current
+ sample-set, representing the posterior distribution at time $t-1$, is calculated.
%
- oder
%
- \begin{equation}
- \vec{c} = \frac
- { \sum_{i=1}^N \{(\mState_{t-1}^x, \mState_{t-1}^y, \mState_{t-1}^z)^T\}^i }
- {N}
- \end{equation}
+ %\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}
%
- oder: the centroid $\vec{c}$ of the current sample-set's 3D positions $\Upsilon_{t-1}^i = \{(\mState_{t-1}^x, \mState_{t-1}^y, \mState_{t-1}^z)^T\}_{i=0}^N$ is calculated:
+ This centre serves as the starting point for the shortest-path calculation.
+ As it is not necessarily part of the grid, its nearest-grid-neighbour is determined and used instead.
+ This vertex is located somewhere within the sample-set and already knows the way to the pedestrian's destination.
%
- \begin{equation}
- \vec{c} = \frac
- %{ \sum_{\mStateVec_{t-1}} (\mState_{t-1}^x, \mState_{t-1}^y, \mState_{t-1}^z)^T }
- { \sum_{i=1}^N \Upsilon_{t-1}^{i} }
- {N}
- \end{equation}
-
- \newcommand{\pathRef}{v_{\hat{x},\hat{y},\hat{z}}}
- \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 center is used as starting-point for the shortest path. As it is not necessarily part of
- the grid, its nearest-grid-neighbor is determined and used instead.
- The resulting vertex already knows its way to the pedestrian's destination, but is located somewhere
- within the sample-set. We thus calculate the standard deviation for the distance
- of all samples from the centre. After advancing the starting-vertex by three times this deviation
- we get a new point that is: part of the shortest path, outside of the sample-set and closer to the
- desired destination.
- This new reference node $\pathRef$ serves as a comparison base:
- \commentByToni{Allgemein mal zur Schreibweise der Vertices. Irgendwie finde ich dieses $v_{x,y,z}$ nicht so gut. Ich denke jeder sieht das wir 3D haben und deswegen könntem man doch schlicht $v$, $v'$, $\hat{v}$ ... nutzen, oder was denkst du?}
- \commentByFrank{war der vorschlag von frank d. letztes mal, weil man an vertices nicht einfach attribute (x,y,z) anhaengen kann wie wir es bei $\mObsVec$, $\mStateVec$ haben.}
+ As new states $\mStateVec_{t}$ should approach the pedestrian's destination
+ we use a reference $\pathRef$ all states try to reach. This references must
+ both, part of the shortest path and located somewhere outside of the sample-set.
+ %
+ We thus calculate the standard deviation of the distance of all samples from the centre
+ $\pathCentroid$. After advancing the starting-vertex by three times this deviation
+ we get a new point $\pathRef$ that is: part of the shortest path, outside of the sample-set
+ and closer (but not too close) to the desired destination.
+ %
+ Hereafter, the simple transition \refeq{eq:transSimple} is combined with a second probability,
+ downvoting all grid-steps that depart from $\pathRef$.
+ Finally, \refeq{eq:transShortestPath} provides a metric tending towards the reference while
+ still allowing the pedestrian to leave the shortest path:
%
\begin{equation}
\begin{split}
p(e) &=
- p(v_{x',y',z'} \mid v_{x,y,z})\\
- &= \mathcal{N} (\angle [ v_{x,y,z} v_{x',y',z'} ] \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
+ p(v' \mid v) =
+ \mathcal{N} (\angle e \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
\alpha &=
\begin{cases}
- 0.9 & \| v_{x',y',z'} - \pathRef \| < \| v_{x,y,z} - \pathRef \| \\
+ 0.9 & \| v' - \pathRef \| < \| v - \pathRef \| \\
0.1 & \text{else}
\end{cases}
\end{split}
+ .
\label{eq:transShortestPath}
\end{equation}
%
- Eq. \eqref{eq:transShortestPath} combines the simple transition \refeq{eq:transSimple} with
- a second probability, downvoting all nodes that are farther away from the reference $\pathRef$
- than the previous step. Put another way: grid-steps increasing the distance to the reference
- are unlikely but not impossible.
+
\subsubsection{Multipath}
The shortest-path algorithm mentioned in \ref{sec:pathEstimation} already calculated the
- cumulative distance $\text{cdist}_{x,y,z}$ to the pedestrian's target for each vertex.
- We thus apply the same assumption as above and downvote grid-steps not decreasing
- the distance to the destination:
-
+ $\fLength{v}{\dot{v}}$ % = \sum_{i=s}^{e-1} \| v_{i} - v_{i+1} \| $
+ for the path from $v$ to the pedestrian's destination $\dot{v}$.
+ We thus apply the same assumption as \refeq{eq:transShortestPath} and downvote edges
+ not decreasing the distance to the destination:
+ %
\begin{equation}
\begin{split}
p(e) &=
- p(v_{x',y',z'} \mid v_{x,y,z})\\
- & = \mathcal{N} (\angle [ v_{x,y,z} v_{x',y',z'} ] \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
+ p(v' \mid v) =
+ \mathcal{N} (\angle e \mid \gHead, \sigma_\text{dev}^2) \cdot \alpha \\
\alpha &=
\begin{cases}
- 0.9 & \text{cdist}_{x',y',z'} < \text{cdist}_{x,y,z} \\
+ 0.9 & \fLength{v'}{\dot{v}} < \fLength{v}{\dot{v}} \\
0.1 & \text{else}
\end{cases}
\end{split}
\label{eq:transMultiPath}
\end{equation}
-
- Fig. \ref{fig:multiHeatMap} shows the heat-map of visited vertices after several \SI{125}{\meter}
- walks simulating slight, random heading changes.
-
+ %
+ Fig. \ref{fig:multiHeatMap} shows a heat-map of how often vertices were visited after several
+ \SI{125}{\meter} walks. The colours from cold to hot indicate that both possible paths
+ are covered and slight deviations from the shortest version are possible.
+ %
\begin{figure}
- \includegraphics[width=\columnwidth]{floorplan_dijkstra_heatmap}
- \caption{Heat-Map of visited vertices after several walks using \refeq{eq:transMultiPath}.
- Additionally shows the shortest path calculation without (dashed) and with (solid) importance-factors
+ \includegraphics[width=\columnwidth, trim=4 8 4 4]{floorplan_dijkstra_heatmap}
+ \caption{Heat-Map of visited vertices after several walks using \refeq{eq:transMultiPath} with colours
+ from cold to hot. 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.}
\label{fig:multiHeatMap}
\end{figure}
diff --git a/tex/gfx/door_pca.eps b/tex/gfx/door_pca.eps
index 4437840..3a5d61a 100644
--- a/tex/gfx/door_pca.eps
+++ b/tex/gfx/door_pca.eps
@@ -1,10 +1,10 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.14.4 (http://cairographics.org)
-%%CreationDate: Wed Feb 3 18:26:16 2016
+%%CreationDate: Wed Feb 17 20:50:33 2016
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
-%%BoundingBox: 3 2 356 37
+%%BoundingBox: 0 -1 359 39
%%EndComments
%%BeginProlog
save
@@ -60,53 +60,283 @@ save
/d1 { setcachedevice } bind def
%%EndProlog
%%BeginSetup
+%%BeginResource: font LiberationSerif-BoldItalic
+11 dict begin
+/FontType 42 def
+/FontName /LiberationSerif-BoldItalic def
+/PaintType 0 def
+/FontMatrix [ 1 0 0 1 0 0 ] def
+/FontBBox [ 0 0 0 0 ] def
+/Encoding 256 array def
+0 1 255 { Encoding exch /.notdef put } for
+Encoding 99 /c put
+/CharStrings 2 dict dup begin
+/.notdef 0 def
+/c 1 def
+end readonly def
+/sfnts [
+<000100000009008000030010637674205a045c31000001b8000002406670676d73d323b00000
+03f800000705676c79667f4da6240000009c0000011c6865616405f2afde00000b0000000036
+686865610f5f063300000b3800000024686d74780679006200000b5c000000086c6f6361008e
+002c00000b64000000066d6178700422074f00000b6c00000020707265705992daf000000b8c
+000004520002004400000264055500030007002eb101002f3cb207041ded32b10605dc3cb203
+021ded3200b103002f3cb205041ded32b207061efc3cb201021ded3233112111252111214402
+20fe240198fe680555faab4404cd00000001001effec036f03c50027004d40197707011a032a
+03020a020111101023200f600f700f800f040fb8ffc04014161c480f291a4705154f4011800a
+10221f500016003ffdc63f1acc1aed012fed10d62b5dce33113331305d5d5d05222e0235343e
+0233321e02170323272e0123220e0215141e0233323637170e0301875a885a2d619dc7662854
+4f441731480e1947323a6c54321b2e40244b7b392c1b4e617214335d804e9ceea051080d1008
+fee0ab1c204d8ac0743f5a391a36283f18362e1f0000058d00150051053d000f006f053d054c
+000000000000000000000000000003ac001900a20000ffec00000000ffec00000000ffecfee3
+fe4cfffa00000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000800000000000000010a00da00fa0133000000000000005a0064007c009400860133
+00000000000000000000000001290137005a007d01000064006e008d01040000000000000000
+0000000000000000000000000000010d00fc005a00f2009e0064006e007d00cd005500000000
+0000000000000000000000000000000000560109013300f0004c00d500630079007100c50131
+013300f000a4014600ad00c00071005501bc014c015a00cd00ee0054014c0066006f008c010e
+00000000000000000000000000000000026a012d008f004b010c008f007b0068010c00000000
+02ef00c1029d005e02e3000000ae005e006a010a023900ee006a01a200ec018b005a00be00b4
+0000000000540048000000000000000000000000ff10ff0100c200fa01060070009000a40000
+000000000000054002160546020a00a000b40000000000490052007b008e0000000000000064
+00ea01840000000000ea00fcfeee0000000000560068007c000000000748036a02b60202fd93
+0000009100670091006101d90000028d034101ce030e030100bafe51fe67056e000000d20088
+00d40102019400d8007800e8fe8c02140136009e00e90044051101b440455958555453525150
+4f4e4d4c4b4a494847464544434241403f3e3d3c3b3a393837363531302f2e2d2c2827262524
+2322211f181411100f0e0d0b0a090807060504030201002c4523466020b02660b00426234848
+2d2c452346236120b02661b004262348482d2c45234660b0206120b04660b004262348482d2c
+4523462361b0206020b02661b02061b004262348482d2c45234660b0406120b06660b0042623
+48482d2c4523462361b0406020b02661b04061b004262348482d2c0110203c003c2d2c204523
+20b0cd442320b8015a51582320b08d44235920b0ed51582320b04d44235920b0042651582320
+b00d44235921212d2c20204518684420b001602045b04676688a4560442d2c01b10b0a432343
+650a2d2c00b10a0b4323430b2d2c00b0282370b101283e01b0282370b10228453ab10200080d
+2d2c2045b00325456164b050515845441b2121592d2c49b00e23442d2c2045b0004360442d2c
+01b00643b00743650a2d2c2069b04061b0008b20b12cc08a8cb8100062602b0c642364615c58
+b00361592d2c8a03458a8a87b0112bb0292344b0297ae4182d2c4565b02c234445b02b23442d
+2c4b525845441b2121592d2c4b515845441b2121592d2c01b005251023208af500b0016023ed
+ec2d2c01b005251023208af500b0016123edec2d2c01b0062510f500edec2d2c462346608a8a
+462320468a608a61b8ff8062232010238ab10c0c8a70456020b0005058b00161b8ffba8b1bb0
+468c59b0106068013a2d2c2045b0032546524bb013515b58b0022546206861b00325b003253f
+2321381b2111592d2c2045b00325465058b0022546206861b00325b003253f2321381b211159
+2d2c00b00743b006430b2d2c21210c6423648bb84000622d2c21b08051580c6423648bb82000
+621bb200402f2b59b002602d2c21b0c051580c6423648bb81555621bb200802f2b59b002602d
+2c0c6423648bb84000626023212d2c4b53588ab004254964234569b0408b61b08062b020616a
+b00e23442310b00ef61b21238a121120392f592d2c4b535820b0032549646920b00526b00625
+49642361b08062b020616ab00e2344b0042610b00ef68a10b00e2344b00ef6b00e2344b00eed
+1b8ab00426111220392320392f2f592d2c4523456023456023456023766818b08062202d2cb0
+482b2d2c2045b0005458b040442045b04061441b2121592d2c45b1302f4523456160b0016069
+442d2c4b5158b02f2370b01423421b2121592d2c4b515820b0032545695358441b2121591b21
+21592d2c45b01443b0006063b0016069442d2cb02f45442d2c452320458a60442d2c45234560
+442d2c4b235158b90033ffe0b134201bb3330034005944442d2cb0164358b00326458a586466
+b01f601b64b020606620581b21b04059b001615923586559b02923442310b029e01b21212121
+21592d2cb0024354584b53234b515a58381b2121591b21212121592d2cb0164358b004254564
+b020606620581b21b04059b0016123581b6559b0292344b00525b00825082058021b0359b004
+2510b005252046b0042523423cb00425b0072508b0072510b006252046b00425b0016023423c
+2058011b0059b0042510b00525b029e0b02920456544b0072510b00625b029e0b00525b00825
+082058021b0359b00525b003254348b00425b0072508b00625b00325b0016043481b21592121
+21212121212d2c02b00425202046b004252342b0052508b003254548212121212d2c02b00325
+20b0042508b0022543482121212d2c452320451820b00050205823652359236820b040505821
+b04059235865598a60442d2c4b53234b515a5820458a60441b2121592d2c4b545820458a6044
+1b2121592d2c4b53234b515a58381b2121592d2cb000214b5458381b2121592d2cb002435458
+b0462b1b21212121592d2cb002435458b0472b1b212121592d2cb002435458b0482b1b212121
+21592d2cb002435458b0492b1b212121592d2c208a08234b538a4b515a5823381b2121592d2c
+00b0022549b000535820b04038111b21592d2c014623466023466123201020468a61b8ff8062
+8ab140408a704560683a2d2c208a2349648a2353583c1b21592d2c4b52587d1b7a592d2cb012
+004b014b54422d2cb1020042b123018851b1400188535a58b910000020885458b20201024360
+4259b12401885158b920000040885458b2020202436042b12401885458b2022002436042004b
+014b5258b2020802436042591bb940000080885458b202040243604259b94000008063b80100
+885458b202080243604259b94000010063b80200885458b202100243604259b94000020063b8
+0400885458b202400243604259595959592d2c451868234b51582320452064b04050587c5968
+8a6059442d2cb00016b00225b0022501b001233e00b002233eb10102060cb00a236542b00b23
+4201b001233f00b002233fb10102060cb006236542b0072342b00116012d2c7a8a104523f518
+2d00000000010000000111eb6e6c067c5f0f3cf5001f080000000000cf7aa9c500000000cf7a
+a9c5fe93fd93093407d9000300080002000000000000000100000721fe4500570902fe93fe86
+09340064001d000000000000000000000000000202ec0044038d001e0000002c008e00000001
+0000000201520054006f000500020010002f005a00000359055b00030002bf00500107000100
+2f0107000100af0104404601d0fd01bffd0110fd016ffb0140fb01f21ac81ff75f331ff65fff
+1ff54eff1ff1f0331f3ff04ff002e7e6331f0fe60100e610e602e5e4ff1fe4ab331fe1e0321f
+9fe0afe002b9010a0109400b331fdfdd331fde03331f1f41190109002f010900020000010900
+100109003001090060010900d0010900050010010900300109004001090060010900b0010940
+3705bfdd010fdd3fdd4fdd7fdd8fddafddbfddcfddffdd09dc03331fd7d61f1fd55fff1fd4d4
+ff1fc9c8ff1fc8c3fe1fc5c4ff1fd1d0331fb8ffc0406fd0090c4640c001c1472b1fbc47ff1f
+be472b1fafbdbfbd02bfbdcfbd025fbd6fbd7fbdafbd0440bd090c46ba5fff1fb9adff1f0fb7
+3fb702b64eff1f7fb5afb5022fb33fb3bfb3030fb33fb35fb3efb30490b001a0b001b0b0c0b0
+02afad1f1faead341f90ac01a0ac01b0acc0ac02b8010eb203181fb8010d401f1bff1fa0a9b0
+a902a99b331f9d5fff1f9c5fff1f309b409b02d09b010f9b01b8011ab2961c1fb80113402099
+331f9f47ff1f3f99010098109820980360980197961c1f3096409602d09601b8010cb31bff1f
+60410d0115000100800114000100400114005001140060011400e0011440290494931f1f7092
+8092909203918f331f908c331f8e85ff1f8d84ff1f2f8c015f8c010f8c1f8c7f8c03b8010b40
+0a8b331f308a408a508a03b8ffc0400c891a1e468882331f8682ff1fb8ffc0404d84090c4677
+4e3c1f00761076a0760360767076807603755f201f7460ff1f735fff1f6f727f72029f72af72
+0271471e1f6f6e341f6e47321f001a101a021a01185519331855073303550603ff1fb9ffc001
+1bb2141c46b80117b262341fb80116b35f341f00410a0110001001100020011000a001100004
+ffc00110b20f1346b8ffc0409362143446615f341f605f341f5f4f1f1f0f5e1f5e2f5e9f5eaf
+5e055b5a2b1f605ad05a020f5a1f5a02140112551333125505010355043303550f032f033f03
+5f037f03af0306005310538053038051016f4e7f4e8f4e03804a014a470a1f4947331f4f485f
+48020f471f47020f471f472f479f47af47051d011b551c481b551633155511010f5510330f55
+0201005501330055b8011840191b331f2f0fff0f020f0f5f0f7f0f030f003f00028016010501
+b80190b154532b2b4bb807ff524bb007505bb00188b02553b00188b040515ab00688b000555a
+5b58b101018e59858d8d00421d4bb0325358b0601d594bb0645358b0401d594bb0805358b010
+1db1160042597373742b2b2b2b2b2b2b2b017374732b2b7300747573732b2b2b2b0173742b73
+002b2b2b2b2b742b2b2b2b2b2b2b73012b2b2b7374002b2b2b73742b012b2b2b2b742b007374
+752b2b2b2b732b7374732b0173742b7374732b2b2b007373742b2b2b752b2b01737475002b2b
+73747573740173002b732b2b2b737475012b2b002b0173002b2b012b002b2b012b002b2b2b73
+747374752b2b2b01732b002b2b74752b01732b002b2b2b2b73737373730173737318000000>
+] def
+/f-0-0 currentdict end definefont pop
+%%EndResource
+%%BeginResource: font LiberationSerif-Italic
+11 dict begin
+/FontType 42 def
+/FontName /LiberationSerif-Italic def
+/PaintType 0 def
+/FontMatrix [ 1 0 0 1 0 0 ] def
+/FontBBox [ 0 0 0 0 ] def
+/Encoding 256 array def
+0 1 255 { Encoding exch /.notdef put } for
+Encoding 118 /v put
+/CharStrings 2 dict dup begin
+/.notdef 0 def
+/v 1 def
+end readonly def
+/sfnts [
+<00010000000900800003001063767420516347b6000001d0000002406670676d73d323b00000
+041000000705676c79660817154b0000009c00000134686561640574afde00000b1800000036
+686865610ee205ae00000b5000000024686d74780679006000000b74000000086c6f6361009a
+002c00000b7c000000066d617870049a069d00000b840000002070726570c8e9076c00000ba4
+000003e40002004400000264055500030007002eb101002f3cb20704e6ed32b10605dc3cb203
+02e6ed3200b103002f3cb20504e6ed32b207061efc3cb20102e6ed3233112111252111214402
+20fe240198fe680555faab4404cd00000001001cffec038d03ac0015008b405e061201090f01
+290f010f100152141514471110141111105415011515110baf03cf03020303173f175f177f17
+03d411e41102bb11cb1102af11019b110100111011021114114f07130f401550150214152415
+341503801501741501151016003f335d5d71713f33ed33012f5d5d5d5d5d5d11332f5dcd1139
+192f5d8718102b872bc401325d31305d5d013e013534262737331e0115140607012303273721
+1302af231d2a1808be09112033fe5949bd71090100910266396226252c072d082215206b51fd
+5b037a192dfd2400058d00150000053d000f006f053d054c0000000000000000000000000000
+03ac001900000000ffec00000000ffec00000000ffecfee3fe4cfffa00000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000080000000000000000a6
+00af009300d900c6000000000000004600500069007d00d900000000000000000000000000c1
+00c800af007700500050005a00aa000000000000000000000000000000000000000000000000
+00ac00b8005a0000000000500060008200990000000000000000000000000000000000000000
+000000cb003700d70050009b00b4000000000000000000c9007b006d008d00d9005000460058
+0132014600f200b2006a00da00c500f2004d000000000000ffe3009c00d4020e00fe00000000
+0000053d0000006600000000006600c002db0000000000000000009802a0004a02e400000099
+00660050000000000042004201a8009c019f0046008e0000000000000046003c000000000000
+00000000000000000000007d008900000052006800760087000000000000054202170552020a
+007e008e006c0000003a0056004400670070030e0301000000a9017f018b000000b000a50000
+000000000056002efe4cfeee00000748036a02b60202fd930000009100670091006101d90000
+028d034100000000022fff10009c00c40030ff00fe67fe5801c901d60082004600e8017200b4
+006e008dfe9c006a01aa051101b4404559585554535251504f4e4d4c4b4a4948474645444342
+41403f3e3d3c3b3a393837363531302f2e2d2c28272625242322211f181411100f0e0d0b0a09
+0807060504030201002c4523466020b02660b004262348482d2c452346236120b02661b00426
+2348482d2c45234660b0206120b04660b004262348482d2c4523462361b0206020b02661b020
+61b004262348482d2c45234660b0406120b06660b004262348482d2c4523462361b0406020b0
+2661b04061b004262348482d2c0110203c003c2d2c20452320b0cd442320b8015a51582320b0
+8d44235920b0ed51582320b04d44235920b0042651582320b00d44235921212d2c2020451868
+4420b001602045b04676688a4560442d2c01b10b0a432343650a2d2c00b10a0b4323430b2d2c
+00b0282370b101283e01b0282370b10228453ab10200080d2d2c2045b00325456164b0505158
+45441b2121592d2c49b00e23442d2c2045b0004360442d2c01b00643b00743650a2d2c2069b0
+4061b0008b20b12cc08a8cb8100062602b0c642364615c58b00361592d2c8a03458a8a87b011
+2bb0292344b0297ae4182d2c4565b02c234445b02b23442d2c4b525845441b2121592d2c4b51
+5845441b2121592d2c01b005251023208af500b0016023edec2d2c01b005251023208af500b0
+016123edec2d2c01b0062510f500edec2d2c462346608a8a462320468a608a61b8ff80622320
+10238ab10c0c8a70456020b0005058b00161b8ffba8b1bb0468c59b0106068013a2d2c2045b0
+032546524bb013515b58b0022546206861b00325b003253f2321381b2111592d2c2045b00325
+465058b0022546206861b00325b003253f2321381b2111592d2c00b00743b006430b2d2c2121
+0c6423648bb84000622d2c21b08051580c6423648bb82000621bb200402f2b59b002602d2c21
+b0c051580c6423648bb81555621bb200802f2b59b002602d2c0c6423648bb84000626023212d
+2c4b53588ab004254964234569b0408b61b08062b020616ab00e23442310b00ef61b21238a12
+1120392f592d2c4b535820b0032549646920b00526b0062549642361b08062b020616ab00e23
+44b0042610b00ef68a10b00e2344b00ef6b00e2344b00eed1b8ab00426111220392320392f2f
+592d2c4523456023456023456023766818b08062202d2cb0482b2d2c2045b0005458b0404420
+45b04061441b2121592d2c45b1302f4523456160b0016069442d2c4b5158b02f2370b0142342
+1b2121592d2c4b515820b0032545695358441b2121591b2121592d2c45b01443b0006063b001
+6069442d2cb02f45442d2c452320458a60442d2c45234560442d2c4b235158b90033ffe0b134
+201bb3330034005944442d2cb0164358b00326458a586466b01f601b64b020606620581b21b0
+4059b001615923586559b02923442310b029e01b2121212121592d2cb0024354584b53234b51
+5a58381b2121591b21212121592d2cb0164358b004254564b020606620581b21b04059b00161
+23581b6559b0292344b00525b00825082058021b0359b0042510b005252046b0042523423cb0
+0425b0072508b0072510b006252046b00425b0016023423c2058011b0059b0042510b00525b0
+29e0b02920456544b0072510b00625b029e0b00525b00825082058021b0359b00525b0032543
+48b00425b0072508b00625b00325b0016043481b2159212121212121212d2c02b00425202046
+b004252342b0052508b003254548212121212d2c02b0032520b0042508b0022543482121212d
+2c452320451820b00050205823652359236820b040505821b04059235865598a60442d2c4b53
+234b515a5820458a60441b2121592d2c4b545820458a60441b2121592d2c4b53234b515a5838
+1b2121592d2cb000214b5458381b2121592d2cb002435458b0462b1b21212121592d2cb00243
+5458b0472b1b212121592d2cb002435458b0482b1b21212121592d2cb002435458b0492b1b21
+2121592d2c208a08234b538a4b515a5823381b2121592d2c00b0022549b000535820b0403811
+1b21592d2c014623466023466123201020468a61b8ff80628ab140408a704560683a2d2c208a
+2349648a2353583c1b21592d2c4b52587d1b7a592d2cb012004b014b54422d2cb1020042b123
+018851b1400188535a58b910000020885458b202010243604259b12401885158b92000004088
+5458b2020202436042b12401885458b2022002436042004b014b5258b2020802436042591bb9
+40000080885458b202040243604259b94000008063b80100885458b202080243604259b94000
+010063b80200885458b202100243604259b94000020063b80400885458b20240024360425959
+5959592d2c451868234b51582320452064b04050587c59688a6059442d2cb00016b00225b002
+2501b001233e00b002233eb10102060cb00a236542b00b234201b001233f00b002233fb10102
+060cb006236542b0072342b00116012d2c7a8a104523f5182d00000000010000000111eb905c
+fa345f0f3cf5001f080000000000cf7aa9c500000000cf7aa9c5fe96fd9308b407d900020008
+0002000000000000000100000721fe450057086bfe96fe9808b40064001d0000000000000000
+00000000000202ec0044038d001c0000002c009a000000010000000201520054007900050002
+0010002f005a000003d1049f00030002bf005001070001002f0107000100af0104401101d0fd
+01bffd0110fd016ffb0140fb01f8b8010f4012291ff71bff1ff650281ff5503c1ff1f03c1fb9
+0113011240843c1feeed3c1fec47ff1fe850291fe750291fe6e43c1fe550351fe450351fe1b4
+331fe0b41a1feae9331fdfdd331fde03331f2fe95fe97fe9afe9040fe95fe9afe9ffe9040900
+dd013c2fdd3fdd7fddbfdd042fdd3fdd4fddafddbfddcfddffdd070fdd01dc03331fd8501c1f
+d7501c1fd6501c1fd550ff1fc9c83d1fc84f3c1fc34f291fb9010b010f4012291f2fc2013fc2
+8fc202c1a1ff1fbf50291fb8010db247121fb8010cb7a1ff1fbe5e291f0fb8010a400901bbad
+341fbaadff1fb8ffc04033b9242846b950241f3fb701b650291fbfb4010faf5faf6faf9faf04
+70ae80ae90ae0320ae30ae40aed0aee0aef0ae06ad50291fbc0111003d011000550110b21b3c
+1fb8010e402e2903550fa3012fa2018fa201ffa20160a270a280a203a912ff1fa803ff1fa033
+12559c50291f9b533c1fa44a3c1fb8ffc04015a12124469fa1afa1029a47121f994aff1f964a
+3c1fbc011d01170029001f0118b353291f3fba0117004f0117404a0295943c1f0f947f940209
+93503d1f92503d1f9150ff1f908c3d1f8f8d291f8e8d3d1f008d013b0f8d018c533c1f878229
+1f84823c1f708280820276753c1ff0750174732a1f7350291fb80115401b70291f6f6e2b1f6e
+472a1f1a0b1b5519331855073303550603ff1fbc011a01140029001f0119b35f331f40b80114
+b2242746b8ffc0b3612b3046b8ffc0400c611f2346605f401f5f50291fb8ffc0409a5d1a1e46
+5c47201f5b5a301f5a47291f140112551333125505010355043303550f032f033f035f037f03
+af03066053705380530352512f1f5150291fe050f050020f4f1f4f2f4f034b47331f4a47121f
+49473c1f4847381f0f471f472f47cf47df47ef47069f47011d011b551c481b55163315551101
+0f5510330f5502010055013300552f0fff0f020f0f5f0f7f0f030f003f00028016010501b801
+90b154532b2b4bb807ff524bb009505bb00188b02553b00188b040515ab00688b000555a5b58
+b101018e59858d8d00421d4bb0325358b0601d594bb0645358b0401d594bb0805358b0101db1
+160042597373742b2b2b2b2b2b2b0173752b2b2b2b0075742b2b73732b2b2b2b012b2b2b2b00
+2b2b2b2b2b2b2b2b2b2b2b012b2b2b002b2b742b01732b2b002b755e732b2b2b2b2b2b5e732b
+732b2b012b2b2b732b2b002b2b2b2b2b73737475732b2b2b2b7475730173002b732b2b2b2b73
+012b2b2b002b2b73742b012b002b2b2b2b2b2b2b7373745e735e73742b2b2b012b2b002b2b2b
+2b2b012b002b2b012b002b2b2b2b7373737373017373731800>
+] def
+/f-1-0 currentdict end definefont pop
+%%EndResource
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
-%%PageBoundingBox: 3 2 356 37
+%%PageBoundingBox: 0 -1 359 39
%%EndPageSetup
-q 3 2 353 35 rectclip q
-1 0.501961 0.501961 rg
-281.602 19.201 m 281.602 10.365 273.004 3.201 262.398 3.201 c 251.797 3.201
- 243.199 10.365 243.199 19.201 c 243.199 28.037 251.797 35.201 262.398 35.201
- c 273.004 35.201 281.602 28.037 281.602 19.201 c h
-281.602 19.201 m f
+q 0 -1 359 40 rectclip q
+0.501961 g
+0 0.002 m 12.801 0.002 l 12.801 12.798 l 38.398 12.798 l 38.398 25.599
+l 12.801 25.599 l 12.801 38.4 l 0 38.4 l h
+0 0.002 m f*
+89.602 25.599 25.598 -12.801 re f*
+121.602 38.4 m 121.602 0.002 l 134.398 0.002 l 134.398 12.798 l 160 12.798
+ l 160 25.599 l 134.398 25.599 l 134.398 38.4 l h
+121.602 38.4 m f*
+211.199 25.599 25.602 -12.801 re f*
+243.199 38.4 m 243.199 0.002 l 256 0.002 l 256 12.798 l 281.602 12.798
+l 281.602 25.599 l 256 25.599 l 256 38.4 l h
+243.199 38.4 m f*
+332.801 25.599 25.598 -12.801 re f*
0 g
0.8 w
0 J
0 j
-[ 0.8 0.8] 0 d
-4 M q 1 0 0 -1 0 38.400002 cm
-281.602 19.199 m 281.602 28.035 273.004 35.199 262.398 35.199 c 251.797
- 35.199 243.199 28.035 243.199 19.199 c 243.199 10.363 251.797 3.199 262.398
- 3.199 c 273.004 3.199 281.602 10.363 281.602 19.199 c h
-281.602 19.199 m S Q
-0.501961 1 0.501961 rg
-115.199 19.201 m 115.199 15.666 92.277 12.798 64 12.798 c 35.723 12.798
- 12.801 15.666 12.801 19.201 c 12.801 22.736 35.723 25.599 64 25.599 c 92.277
- 25.599 115.199 22.736 115.199 19.201 c h
-115.199 19.201 m f
-0 g
-[ 0.8 0.8] 0 d
-q 1 0 0 -1 0 38.400002 cm
-115.199 19.199 m 115.199 22.734 92.277 25.602 64 25.602 c 35.723 25.602
- 12.801 22.734 12.801 19.199 c 12.801 15.664 35.723 12.801 64 12.801 c 92.277
- 12.801 115.199 15.664 115.199 19.199 c h
-115.199 19.199 m S Q
-1 0.501961 0.501961 rg
-236.801 19.201 m 236.801 15.666 216.742 12.798 192 12.798 c 167.258 12.798
- 147.199 15.666 147.199 19.201 c 147.199 22.736 167.258 25.599 192 25.599
- c 216.742 25.599 236.801 22.736 236.801 19.201 c h
-236.801 19.201 m f
-0 g
-[ 0.8 0.8] 0 d
-q 1 0 0 -1 0 38.400002 cm
-236.801 19.199 m 236.801 22.734 216.742 25.602 192 25.602 c 167.258 25.602
- 147.199 22.734 147.199 19.199 c 147.199 15.664 167.258 12.801 192 12.801
- c 216.742 12.801 236.801 15.664 236.801 19.199 c h
-236.801 19.199 m S Q
-0.501961 g
[] 0.0 d
+4 M q 1 0 0 -1 0 38.400002 cm
+118.398 0 m 118.398 38.398 l S Q
+q 1 0 0 -1 0 38.400002 cm
+240 0 m 240 38.398 l S Q
+0.501961 g
q 1 0 0 -1 0 38.400002 cm
48 19.199 m 48 20.969 46.566 22.398 44.801 22.398 c 43.031 22.398 41.602
20.969 41.602 19.199 c 41.602 17.434 43.031 16 44.801 16 c 46.566 16 48
@@ -251,14 +481,17 @@ q 1 0 0 -1 0 38.400002 cm
30.232 3.199 32.002 c 3.199 33.767 4.633 35.201 6.398 35.201 c 8.168 35.201
9.602 33.767 9.602 32.002 c h
9.602 32.002 m f
+0 0 1 rg
q 1 0 0 -1 0 38.400002 cm
64 19.199 m 64 12.801 l S Q
q 1 0 0 -1 0 38.400002 cm
64 19.199 m 12.801 19.199 l S Q
0 0 0.752941 rg
+[ 0.8 0.8] 0 d
q 1 0 0 -1 0 38.400002 cm
64 19.199 m 70.398 6.398 l S Q
0.501961 g
+[] 0.0 d
q 1 0 0 -1 0 38.400002 cm
169.602 19.199 m 169.602 20.969 168.168 22.398 166.398 22.398 c 164.633
22.398 163.199 20.969 163.199 19.199 c 163.199 17.434 164.633 16 166.398
@@ -391,14 +624,17 @@ q 1 0 0 -1 0 38.400002 cm
227.199 8.168 227.199 6.398 c 227.199 4.633 228.633 3.199 230.398 3.199
c 232.168 3.199 233.602 4.633 233.602 6.398 c h
233.602 6.398 m S Q
+0 0 1 rg
q 1 0 0 -1 0 38.400002 cm
192 19.199 m 192 12.801 l S Q
q 1 0 0 -1 0 38.400002 cm
192 19.199 m 147.199 19.199 l S Q
0 0 0.752941 rg
+[ 0.8 0.8] 0 d
q 1 0 0 -1 0 38.400002 cm
192 19.199 m 230.398 6.398 l S Q
0.501961 g
+[] 0.0 d
q 1 0 0 -1 0 38.400002 cm
291.199 19.199 m 291.199 20.969 289.766 22.398 288 22.398 c 286.234 22.398
284.801 20.969 284.801 19.199 c 284.801 17.434 286.234 16 288 16 c 289.766
@@ -537,14 +773,52 @@ q 1 0 0 -1 0 38.400002 cm
8.168 284.801 6.398 c 284.801 4.633 286.234 3.199 288 3.199 c 289.766 3.199
291.199 4.633 291.199 6.398 c h
291.199 6.398 m S Q
-0 g
+0 0 1 rg
q 1 0 0 -1 0 38.400002 cm
262.398 19.199 m 243.199 19.199 l S Q
q 1 0 0 -1 0 38.400002 cm
262.398 19.199 m 262.398 3.199 l S Q
0 0 0.752941 rg
+[ 0.8 0.8] 0 d
q 1 0 0 -1 0 38.400002 cm
262.398 19.199 m 275.199 6.398 l S Q
+1 0 0 rg
+2.4 w
+[] 0.0 d
+q 1 0 0 -1 0 38.400002 cm
+281.602 19.199 m 281.602 28.035 273.004 35.199 262.398 35.199 c 251.797
+ 35.199 243.199 28.035 243.199 19.199 c 243.199 10.363 251.797 3.199 262.398
+ 3.199 c 273.004 3.199 281.602 10.363 281.602 19.199 c h
+281.602 19.199 m S Q
+0 0.768627 0 rg
+q 1 0 0 -1 0 38.400002 cm
+115.199 19.199 m 115.199 22.734 92.277 25.602 64 25.602 c 35.723 25.602
+ 12.801 22.734 12.801 19.199 c 12.801 15.664 35.723 12.801 64 12.801 c 92.277
+ 12.801 115.199 15.664 115.199 19.199 c h
+115.199 19.199 m S Q
+1 0 0 rg
+q 1 0 0 -1 0 38.400002 cm
+236.801 19.199 m 236.801 22.734 216.742 25.602 192 25.602 c 167.258 25.602
+ 147.199 22.734 147.199 19.199 c 147.199 15.664 167.258 12.801 192 12.801
+ c 216.742 12.801 236.801 15.664 236.801 19.199 c h
+236.801 19.199 m S Q
+0 g
+BT
+8 0 0 8 260.60459 11.289333 Tm
+/f-0-0 1 Tf
+(c)Tj
+-24.839723 0.312057 Td
+(c)Tj
+16.477159 0.142513 Td
+(c)Tj
+/f-1-0 1 Tf
+-16.332804 2.339562 Td
+(v)Tj
+20.127616 0.00947022 Td
+(v)Tj
+6.908234 -0.0220971 Td
+(v)Tj
+ET
Q Q
showpage
%%Trailer
diff --git a/tex/gfx/door_pca.svg b/tex/gfx/door_pca.svg
index e62e057..f9439a3 100644
--- a/tex/gfx/door_pca.svg
+++ b/tex/gfx/door_pca.svg
@@ -206,11 +206,11 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="1.979899"
- inkscape:cx="232.59995"
- inkscape:cy="65.182272"
+ inkscape:zoom="2.8284271"
+ inkscape:cx="265.88479"
+ inkscape:cy="23.442037"
inkscape:document-units="px"
- inkscape:current-layer="layer4"
+ inkscape:current-layer="layer5"
showgrid="true"
units="px"
inkscape:window-width="1600"
@@ -241,30 +241,48 @@
-
-
-
+ id="layer7"
+ inkscape:label="lines">
+
+
+
+
+
+
+
+
+
+
+
+
+ c
+
+
+ c
+ c
+ v
+ v
+ v
+
diff --git a/tex/gfx/eval/error_timed_nexus.eps b/tex/gfx/eval/error_timed_nexus.eps
index e511ff1..fb2de16 100644
--- a/tex/gfx/eval/error_timed_nexus.eps
+++ b/tex/gfx/eval/error_timed_nexus.eps
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: error_timed_nexus.tex
%%Creator: gnuplot 5.0 patchlevel 1
-%%CreationDate: Tue Feb 16 19:06:27 2016
+%%CreationDate: Wed Feb 17 14:47:42 2016
%%DocumentFonts:
%%BoundingBox: 50 50 294 150
%%EndComments
@@ -441,7 +441,7 @@ SDict begin [
/Author (kazu)
% /Producer (gnuplot)
% /Keywords ()
- /CreationDate (Tue Feb 16 19:06:27 2016)
+ /CreationDate (Wed Feb 17 14:47:42 2016)
/DOCINFO pdfmark
end
} ifelse
diff --git a/tex/gfx/eval/error_timed_nexus.gp b/tex/gfx/eval/error_timed_nexus.gp
index 5818091..27e3d0d 100644
--- a/tex/gfx/eval/error_timed_nexus.gp
+++ b/tex/gfx/eval/error_timed_nexus.gp
@@ -83,9 +83,9 @@ set object 10 rectangle from 142,0 to 150,15 fs solid noborder fc rgb "#dddddd"
set label 10 "\\footnotesize{10}" at 146,10 center rotate by 0 front
set object 900 rectangle at graph 0.5, 0.94 size graph 0.65,0.12 fs solid fc rgb "#ffffff" lc rgb "#000000"
-set label 901 "\\textcolor[rgb]{0,0,0}{\\footnotesize{simple \\eqref{eq:transSimple}}}" at graph 0.28, 0.94 center front
-set label 902 "\\textcolor[rgb]{0,0,0.8}{\\footnotesize{multi \\eqref{eq:transMultiPath}}}" at graph 0.49, 0.94 center front
-set label 903 "\\textcolor[rgb]{0.8,0,0}{\\footnotesize{shortest \\eqref{eq:transShortestPath}}}" at graph 0.71, 0.94 center front
+set label 901 "\\textcolor[rgb]{0,0,0}{\\footnotesize{simple}}" at graph 0.28, 0.94 center front
+set label 902 "\\textcolor[rgb]{0,0,0.8}{\\footnotesize{multi}}" at graph 0.49, 0.94 center front
+set label 903 "\\textcolor[rgb]{0.8,0,0}{\\footnotesize{shortest}}" at graph 0.71, 0.94 center front
unset key
set yrange[0:13]
diff --git a/tex/gfx/eval/error_timed_nexus.tex b/tex/gfx/eval/error_timed_nexus.tex
index 1c72390..0f54425 100644
--- a/tex/gfx/eval/error_timed_nexus.tex
+++ b/tex/gfx/eval/error_timed_nexus.tex
@@ -110,9 +110,9 @@
\put(4057,1559){\makebox(0,0){\strut{}\footnotesize{8}}}%
\put(4421,1559){\makebox(0,0){\strut{}\footnotesize{9}}}%
\put(4702,1559){\makebox(0,0){\strut{}\footnotesize{10}}}%
- \put(1793,1846){\makebox(0,0){\strut{}\textcolor[rgb]{0,0,0}{\footnotesize{simple \eqref{eq:transSimple}}}}}%
- \put(2682,1846){\makebox(0,0){\strut{}\textcolor[rgb]{0,0,0.8}{\footnotesize{multi \eqref{eq:transMultiPath}}}}}%
- \put(3614,1846){\makebox(0,0){\strut{}\textcolor[rgb]{0.8,0,0}{\footnotesize{shortest \eqref{eq:transShortestPath}}}}}%
+ \put(1793,1846){\makebox(0,0){\strut{}\textcolor[rgb]{0,0,0}{\footnotesize{simple}}}}%
+ \put(2682,1846){\makebox(0,0){\strut{}\textcolor[rgb]{0,0,0.8}{\footnotesize{multi}}}}%
+ \put(3614,1846){\makebox(0,0){\strut{}\textcolor[rgb]{0.8,0,0}{\footnotesize{shortest}}}}%
}%
\gplbacktext
\put(0,0){\includegraphics{error_timed_nexus}}%
diff --git a/tex/gfx/eval/path_nexus.gp b/tex/gfx/eval/path_nexus.gp
index aa75f90..ec93e31 100644
--- a/tex/gfx/eval/path_nexus.gp
+++ b/tex/gfx/eval/path_nexus.gp
@@ -70,7 +70,7 @@ set multiplot layout 1,1 scale 2.4,2.4 offset 0,0.1
splot \
"data/floors.dat" with lines lc rgb "#cccccc" notitle,\
"data/est_bergwerk_path4_nexus_multi.dat" using 1:2:3:(f4(column(0))) with lines lw 8 palette notitle,\
- "data/est_bergwerk_path4_nexus_multi.dat" with lines lw 2 lc rgb "#000099" title "\\footnotesize{multi \\eqref{eq:transMultiPath}}",\
+ "data/est_bergwerk_path4_nexus_multi.dat" with lines lw 2 lc rgb "#000099" title "\\footnotesize{multi}",\
"data/path4.dat" with lines title "\\footnotesize{ground truth}" dashtype 3 lw 2 lc rgb "#000000"
unset multiplot
diff --git a/tex/gfx/eval/path_nexus_detail.eps b/tex/gfx/eval/path_nexus_detail.eps
index 91d84b0..8617a38 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: Tue Feb 16 19:12:37 2016
+%%CreationDate: Wed Feb 17 14:45:48 2016
%%DocumentFonts:
%%BoundingBox: 50 50 302 226
%%EndComments
@@ -441,7 +441,7 @@ SDict begin [
/Author (kazu)
% /Producer (gnuplot)
% /Keywords ()
- /CreationDate (Tue Feb 16 19:12:37 2016)
+ /CreationDate (Wed Feb 17 14:45:48 2016)
/DOCINFO pdfmark
end
} ifelse
@@ -553,14 +553,14 @@ stroke
LTb
LCb setrgbcolor
LTb
-103 89 N
+1687 89 N
0 440 V
-1409 0 V
+-175 0 V
0 -440 V
-103 89 L
+175 0 V
Z stroke
-103 529 M
-1409 0 V
+1687 529 M
+-175 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 103 89 1409 440 BoxColFill
+1.000 1687 89 -175 440 BoxColFill
1.000 UL
LTb
LCb setrgbcolor
LTb
-103 89 N
+1687 89 N
0 440 V
-1409 0 V
+-175 0 V
0 -440 V
-103 89 L
+175 0 V
Z stroke
-103 529 M
-1409 0 V
+1687 529 M
+-175 0 V
stroke
0.80 0.80 0.80 C 1.000 UL
LTb
diff --git a/tex/gfx/eval/path_nexus_detail.tex b/tex/gfx/eval/path_nexus_detail.tex
index 0665219..f3580ad 100644
--- a/tex/gfx/eval/path_nexus_detail.tex
+++ b/tex/gfx/eval/path_nexus_detail.tex
@@ -84,11 +84,11 @@
}%
\gplgaddtomacro\gplfronttext{%
\csname LTb\endcsname%
- \put(1027,419){\makebox(0,0)[r]{\strut{}\footnotesize{multi \eqref{eq:transMultiPath}}}}%
+ \put(1027,419){\makebox(0,0)[r]{\strut{}\footnotesize{multi}}}%
\csname LTb\endcsname%
\put(1027,199){\makebox(0,0)[r]{\strut{}\footnotesize{ground truth}}}%
\csname LTb\endcsname%
- \put(1027,419){\makebox(0,0)[r]{\strut{}\footnotesize{multi \eqref{eq:transMultiPath}}}}%
+ \put(1027,419){\makebox(0,0)[r]{\strut{}\footnotesize{multi}}}%
\csname LTb\endcsname%
\put(1027,199){\makebox(0,0)[r]{\strut{}\footnotesize{ground truth}}}%
\csname LTb\endcsname%
diff --git a/tex/misc/functions.tex b/tex/misc/functions.tex
index 036c707..767dca0 100644
--- a/tex/misc/functions.tex
+++ b/tex/misc/functions.tex
@@ -41,6 +41,13 @@
\newcommand{\mNN}{\text{nn}}
\newcommand{\mKNN}{\text{knn}}
+\newcommand{\fPos}[1]{\textbf{pos}(#1)}
+\newcommand{\fDistance}[2]{\delta(#1, #2)}
+\newcommand{\fWA}[1]{\text{wa}(#1)}
+\newcommand{\fDD}[1]{\text{dd}(#1)}
+\newcommand{\fImp}[1]{\text{imp}(#1)}
+\newcommand{\fNN}[2]{\text{nn}(#1, #2)}
+\newcommand{\fLength}[2]{\text{length}(#1, #2)}
%\newcommand{\docIBeacon}{iBeacon}