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}