diff --git a/tex/chapters/abstract.tex b/tex/chapters/abstract.tex index 8aa78a1..25f947a 100644 --- a/tex/chapters/abstract.tex +++ b/tex/chapters/abstract.tex @@ -2,10 +2,10 @@ \begin{abstract} Navigating to a desired destination is a key aspect of indoor localisation. Up to this point many different systems using present or past information for estimating the pedestrian's position were presented. Our work proposes a novel approach that incorporates prior navigation knowledge by using realistic human walking paths. -In order to create such paths, we present a method that assigns an importance factor to every node of a regular tessellated graph by avoiding walls and detecting doors. +In order to create such paths, we present a method that assigns an importance-factor to every node of a regularly tessellated graph by avoiding walls and detecting doors. The human movement is then modelled by moving along adjacent nodes into the most proper walking-direction. -To be able of going into the 3rd dimension, realistically shaped stairs for step-wise floor changes are used. -The position is estimated over multiple floors integrating different sensor modalities, namely Wi-Fi, iBeacons, barometer, step-detection and turn-detection. +To enable 3D localisation, realistically shaped stairs for step-wise floor changes are used. +The position is estimated over multiple floors integrating different sensor modalities, namely Wi-Fi, iBeacons, barometer, step- and turn-detection. The system was tested by omitting any time-consuming calibration process and starts with a uniform distribution instead of a well known pedestrian location. -The evaluation shows that adding prior knowledge is able to improve the localisation, even for unpredictable behaviour, faulty measurements and for poorly chosen system parameters. +The evaluation shows that adding prior knowledge is able to improve the localisation, even under unpredictable behaviour, faulty measurements and poorly chosen system parameters. \end{abstract} diff --git a/tex/chapters/experiments.tex b/tex/chapters/experiments.tex index b44240e..b40db0b 100644 --- a/tex/chapters/experiments.tex +++ b/tex/chapters/experiments.tex @@ -22,7 +22,7 @@ the Galaxy does. This results in a better localisation using the Nexus smartphone. Despite being fast enough to run in realtime on the smartphone itself, computation was done offline using - the CONDENSATION particle filter with \SI{7500}{} particles as realization. + the \mbox{CONDENSATION} particle filter with \SI{7500}{} particles as realization. The weighted arithmetic mean of the particles was used as state estimation. As mentioned earlier, the position of all \docAP{}s (about 5 per floor) is known beforehand. @@ -49,7 +49,7 @@ The following evaluations will depict the improvements that the prior path knowledge is able to provide, even when other system parameters are badly chosen. - Just adding importance-factors described in \ref{sec:wallAvoidance} and \ref{sec:doorDetection} + Just adding importance-factors (described in \ref{sec:wallAvoidance} and \ref{sec:doorDetection}) to the simple transition \refeq{eq:transSimple} addresses only minor local errors % like not sticking too close to walls. In most cases this lead only to slight improvements and is therefore not further evaluated. @@ -57,8 +57,6 @@ at a long walk with many stairs, intentionally leaving the shortest path several times, named path 4 (see fig. \ref{fig:paths}). % - - % all paths we evaluated \begin{figure} \input{gfx/eval/paths} @@ -67,8 +65,6 @@ For a better visualisation they were slightly shifted to avoid overlapping.} \label{fig:paths} \end{figure} - - % error development over time while walking along a path \begin{figure} \input{gfx/eval/error_timed_nexus} @@ -79,7 +75,6 @@ staircases just before the destination (9).} \label{fig:errorTimedNexus} \end{figure} - % detailed analysis of path 4 \begin{figure} \input{gfx/eval/path_nexus_detail} @@ -90,6 +85,7 @@ \end{figure} % \newcommand{\refSeg}[1]{$(#1)$} + Fig. \ref{fig:errorTimedNexus} depicts the error for path 4 recorded with the Motorola Nexus 6. For a better understanding of the following discussion, the path was divided into $10$ individual segments. Remember that we start with a uniform distribution instead of a well known pedestrian location. @@ -145,15 +141,13 @@ %\end{figure} The median error values for all other paths and the other smartphone are listed in table - \ref{tbl:errGalaxy} and \ref{tbl:errNexus}. As can be seen, adding prior knowledge + \ref{tbl:errNexus} and \ref{tbl:errGalaxy}. As can be seen, adding prior knowledge is able to improve the localisation for all examined situations, even when leaving the suggested path or when facing bad/slow sensor readings. % error values \begin{table} \centering - \label{tbl:errNexus} - \caption{Median error for walks conducted with the Nexus 6.} \begin{tabular}{|l|c|c|c|c|} \hline & Path1 & Path2 & Path3 & Path4 \\\hline @@ -161,12 +155,12 @@ Shortest (\refeq{eq:transShortestPath}) & \SI{2.72}{\meter} & \SI{2.98}{\meter} & \SI{2.48}{\meter} & \SI{3.06}{\meter} \\\hline Multipath (\refeq{eq:transMultiPath}) & \SI{2.62}{\meter} & \SI{2.14}{\meter} & \SI{2.46}{\meter} & \SI{2.75}{\meter} \\\hline \end{tabular} + \caption{Median error for walks conducted with the Nexus 6.} + \label{tbl:errNexus} \end{table} \begin{table} \centering - \label{tbl:errGalaxy} - \caption{Median error for walks conducted with the Galaxy S5.} \begin{tabular}{|l|c|c|c|c|} \hline & Path1 & Path2 & Path3 & Path4 \\\hline @@ -174,6 +168,8 @@ Shortest (\refeq{eq:transShortestPath}) & \SI{ 5.86}{\meter} & \SI{4.14}{\meter} & \SI{5.14}{\meter} & \SI{5.20}{\meter} \\\hline Multipath (\refeq{eq:transMultiPath}) & \SI{ 6.35}{\meter} & \SI{4.21}{\meter} & \SI{5.03}{\meter} & \SI{6.79}{\meter} \\\hline \end{tabular} + \caption{Median error for walks conducted with the Galaxy S5.} + \label{tbl:errGalaxy} \end{table} %\begin{figure} diff --git a/tex/chapters/grid.tex b/tex/chapters/grid.tex index 4d0f181..219e158 100644 --- a/tex/chapters/grid.tex +++ b/tex/chapters/grid.tex @@ -2,8 +2,8 @@ \label{sec:trans} \newcommand{\spoint}{l} - \newcommand{\gHead}{\theta} - \newcommand{\gDist}{d} + \newcommand{\gHead}{\theta_\text{walk}} + \newcommand{\gDist}{d_\text{walk}} To sample only transitions that are actually feasible within the environment, we utilize a \SI{20}{\centimeter}-gridded graph @@ -26,8 +26,8 @@ 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 bounding-box for each vertex. - \commentByToni{Welche Bounding-box? hab ich was ueberlesen?} + the segment $[ \vec{\spoint}_1 \vec{\spoint}_2 ]$ with the \SI{20}{\centimeter} bounding-box around each vertex. + 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. @@ -44,17 +44,17 @@ . \end{align} % - During a walk, each edge has an assigned probability $p(e)$ which depends on a chosen implementation. - This probability describes aspects such as the likelihood for walking into the edge's direction $\angle e$ - given the current heading $\gHead$. Furthermore, we will incorporate additional prior knowledge to - favour some vertices/edges. For each single step on the graph, we calculate $p(e)$ for all available 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. The latter depends on the number of detected steps - $\mObsSteps$ and assumes an average step-size of \SI{0.7}{\meter}. - \commentByToni{steps steps... Allgemein finde ich den Absatz etwas komisch. erst wird p(e) eingefuehrt, dann kommt auf einmal prior knowledge und dann wie wir p(e) berechnen? reihenfolge passt da nicht so und macht es undeutlch. Hier soll doch eigentlich nur erklaert werden wie wir ueber den graphen laufen. egal ob prior oder nicht. laufen muessen wir ja} - + 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}. + 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$: + 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.} @@ -82,9 +82,8 @@ 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 weight between two vertices, needed by the shortest-path algorithm. - \commentByToni{The edge's weight?? vielleicht?} + 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. 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. @@ -144,7 +143,7 @@ Like before, we apply a distribution based on the distance from the nearest door to determine an importance-factor for each node: % - \commentByFrank{distanzrechnung: formel} + \commentByFrank{distanzrechnung: formel ok?} \begin{equation} \text{dd}_{x,y,z} = 0.8 \cdot \mathcal{N}( \| \vec{c} - v_{x,y,z} \| \mid 0.0, 1.0 ) \end{equation} @@ -271,7 +270,7 @@ \subsubsection{Multipath} - The Dijkstra calculation mentioned in \ref{sec:pathEstimation} already calculated the + 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: diff --git a/tex/chapters/introduction.tex b/tex/chapters/introduction.tex index 8a371c1..feb9076 100644 --- a/tex/chapters/introduction.tex +++ b/tex/chapters/introduction.tex @@ -1,8 +1,8 @@ \section{Introduction} Since the advent of smartphones, location aware apps and services are ubiquitous and have become a natural part of our everyday life. -Whether driving a car, jogging or shopping in the streets, GNSS-based applications are making orientation easier, -point the way and even track our fitness achievements. But as soon as we drive into an underground car park or visit a shopping mall, most of them do not work at all. +Whether driving a car, jogging or shopping in the streets, GNSS-based applications simplify orientation, +guide the way and even track our fitness achievements. But as soon as we drive into an underground car park or visit a shopping mall, most of them do not work at all. That is because satellite signals are too weak to pass through obstacles like ceilings. Moreover, their accuracy is not sufficient for individual parking spaces or office rooms. Therefore, many different solutions for localising a moving object within buildings have been developed in @@ -26,12 +26,12 @@ In pedestrian navigation, the human movement is subject to the characteristics o Additionally, environmental restrictions need to be considered as well, for example, walking through walls is impossible. Therefore, incorporating environmental knowledge is a necessary and gainful step. Like other systems, we are using a graph-based approach to sample only valid movements. -The unique feature of our approach is the way how we model the human movement. +The unique feature of our approach is the way how human movement is modelled. This is done by using random walks on a graph, which are based on the heading of the pedestrian. Despite very good results, the system presented in \cite{Ebner-15} suffers from two drawbacks, we want to solve within this work. First, the transition model of our previous approach uses discrete floor-changes. -Although the overall systems provides viable results, it does not resemble real-world floor changes. +Although the overall system provides viable results, it does not resemble real-world floor changes. Especially the barometric sensor is affected due to its continuous pressure measurements. The discrete model prevents the barometer's full potential. It could further be shown that a correct estimation strongly depends on the quality of $z$-transitions. @@ -40,8 +40,8 @@ To address this problem we extended the graph by adding realistic stairs, allowi Second, the heading for modelling the pedestrian's walking behaviour is calculated between two adjacent nodes and restricts the transition to perform only discrete \SI{45}{\degree} turns. While this is sufficient for most cases, minor heading changes are often ignored and the posterior distribution (after walking) -is not smoothly spread. -\commentByToni{Und was machen wir dagegen?} +is not smoothly spread. The heading-change of our new approach is solely controlled by the smartphone's turn detection. +During the random walk, matching edges are sampled according to their deviation from this change. To improve the complex problem of localising a person indoors, prior knowledge given by a navigation system can be used. Such applications are used to navigate a user to his desired destination. @@ -49,15 +49,16 @@ This limits the unpredictability of human movement to a certain degree. So, based on this assumption, the destination is known beforehand and the starting point is the pedestrian's currently estimated position. Regarding a graph-based transition model, one could suggest to use the shortest route between start and destination as the user's most-likely-to-walk path. By incorporating this prior knowledge into the state transition step, a new state can be sampled in a more targeted manner. -However, for regular tessellated (grid) graphs, as used in \cite{Ebner-15}, this often leads to paths running very unnatural alongside walls. -Therefore, we present a novel approach that detects walls using the inverted graph (representing walls and obstacles) and a nearest-neighbour search. +However, for regularly tessellated (grid) graphs, as used in \cite{Ebner-15}, this would lead to unnatural paths e.g. +directly adhering to walls. +Therefore, we present a novel approach that detects walls using an inverted graph (representing walls and obstacles) and a nearest-neighbour search. %\commentByFrank{hier kann man, wenn platz fehlt, vlt noch etwas details weglassen (inverted-graph, knn, etc)} Since areas near walls are less likely to be chosen for walking, a probabilistic weight is assigned to every node of the graph. This allows a variety of options for integrating additional knowledge about the environment and enables us to address another problem: Entering or leaving rooms is very unlikely as only a few nodes are representing doors and allow doing so. This can be tackled by making such areas more likely. -Therefore, a novel approach for detecting doors using again the inverted graph and a principal component analysis (PCA) \cite{Hotelling1933} is presented within this work. +Therefore, a novel approach for detecting doors using the inverted graph and a principal component analysis (PCA) \cite{Hotelling1933} is presented within this work. %\commentByFrank{auch hier vlt das inverted erstmal noch weg lassen wegen platz} Finally, it is now possible to calculate more natural and realistic paths using the weighted graph. diff --git a/tex/chapters/relatedwork.tex b/tex/chapters/relatedwork.tex index ef79836..8f644fd 100644 --- a/tex/chapters/relatedwork.tex +++ b/tex/chapters/relatedwork.tex @@ -7,7 +7,7 @@ They differ mainly by the used sensors, their probabilistic models and how envir For example \cite{Li2015} recently presented an approach combining methods of pedestrian dead reckoning (PDR), \docWIFI{} fingerprinting and magnetic matching using a Kalman filter. While providing good results, fingerprinting methods require an extensive offline calibration phase. Therefore, many other systems like \cite{Fang09} or \cite{Ebner-15} -are using signal strength prediction models like the log-distance model or wall-attenuation-factor model. +use signal strength prediction models like the log-distance model or wall-attenuation-factor model. Additionally, the sensors noise is not always Gaussian or satisfies the central limit theorem, what makes the usage of Kalman filters problematic \cite{sarkka2013bayesian, Nurminen2014}. All this shows, that sensor models differ in many ways and are a subject in itself. @@ -31,7 +31,7 @@ Here, two main classes can be distinguished: symbolic and geometric spatial mode Especially geometric spatial models (coordinate-based approaches) are very popular, since they integrate metric properties to provide highly accurate location and distance information. One of the most common environmental representations in indoor localization literature is the Voronoi diagram \cite{Liao2003}. It represents the topological skeleton of the building's floorplan as an irregular tessellation of space. -This drastically removes degrees of freedom from the map, what results in a low complexity. +This drastically removes degrees of freedom from the map, and results in a low complexity. In the work of \cite{Nurminen2014} a Voronoi diagram is used to approximate the human movement. It is assumed that the pedestrian can be anywhere on the topological links. @@ -58,7 +58,7 @@ or the behaviour of a pedestrian at this particular position (e.g. jumping or ru A similar approach is presented in \cite{Li2010}, \cite{Ebner-15} and is also used within this work. By assuming that the floorplan is given beforehand, the occupied cells can be removed. -The remaining cells are described by its centre and represent all free spaces in the indoor environment. +The remaining cells are described by their centre/bounding-box and represent all free spaces in the indoor environment. A graph is defined by using the centres as nodes and connecting direct neighbours with edges. In order to enable floor changes, some approaches suggest to simply connect the nodes at staircases \cite{Ebner-15, Hilsenbeck2014}. @@ -73,9 +73,9 @@ For example, \cite{Bandi2000} uses an A* algorithm to search a 3D gridded enviro An additional smoothing procedure is performed to make the path more natural. They are considering foot span, body dimensions and obstacle dimensions when determining whether an obstacle is surmountable. However, many of this information is difficult to ascertain in real-time or imply additional effort in real-world environments. -Therefore, more realistic simulation models, mainly for evacuation simulation, are just using a simple shortest path on regular +Therefore, more realistic simulation models, mainly for evacuation simulation, are just using a simple shortest path on regularly tessellated graphs \cite{Sun2011, tan2014agent}. A more costly, yet promising approach is shown by \cite{Brogan2003}. They use a -data set of previous recorded walks to create a model of realistic human walking paths. +data set of previously recorded walks to create a model of realistic human walking paths. Finally, it seems that currently none of the localisation system approaches are using realistic walking paths as additional source of information to provide a more targeted and robust movement. Most common systems are sampling a new state only in diff --git a/tex/chapters/sensors.tex b/tex/chapters/sensors.tex index 20fc9ef..05d1200 100644 --- a/tex/chapters/sensors.tex +++ b/tex/chapters/sensors.tex @@ -36,10 +36,10 @@ % In \refeq{eq:baroTransition}, $b$ denotes the usual pressure change in $\frac{\text{hPa}}{\text{m}}$. The evaluation, following the transition, compares the predicted relative pressure with the observed - one using a normal distribution utilizing the previously estimated $\sigma_\text{baro}$: + one using a normal distribution with the previously estimated $\sigma_\text{baro}$: \begin{equation} - p(\mObsVec_t \mid \mStateVec_t)_\text{baro} = \mathcal{N}(\mObs_t^{\mObsPressure} \mid \mState_t^{\mStatePressure}, \sigma_\text{baro}). + p(\mObsVec_t \mid \mStateVec_t)_\text{baro} = \mathcal{N}(\mObs_t^{\mObsPressure} \mid \mState_t^{\mStatePressure}, \sigma_\text{baro}^2). \label{eq:baroEval} \end{equation} @@ -59,7 +59,8 @@ P_r(d, \Delta f) = \mTXP - 10 \mPLE \log_{10}{\frac{\mMdlDist}{\mMdlDist_0}} + \Delta{f} \mWAF, \end{equation} % - The probability to measure this prediction given a location is: + Assuming statistical independence of all \docAPshort{}s, + the probability to measure their predictions at a given location is: % \begin{equation} \mProb(\mObsVec_t \mid \mStateVec_t)_\text{wifi} = @@ -82,7 +83,7 @@ \subsection{Step- \& Turn-Detection} - Step- and turn-detection uses the smartphone's IMU and is implemented as described in \cite{Ebner-15}. + Step- and turn-detection use the smartphone's IMU and are implemented as described in \cite{Ebner-15}. % However, a big disadvantage of using the state transition as proposal distribution is the high possibility of sample impoverishment due to a small measurement noise. This happens since accurate observations result in high peaks diff --git a/tex/gfx/eval/error_timed_nexus.eps b/tex/gfx/eval/error_timed_nexus.eps index f74e717..4f7bdd9 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: Sat Feb 13 11:31:04 2016 +%%CreationDate: Mon Feb 15 17:01:39 2016 %%DocumentFonts: %%BoundingBox: 50 50 294 150 %%EndComments @@ -441,7 +441,7 @@ SDict begin [ /Author (kazu) % /Producer (gnuplot) % /Keywords () - /CreationDate (Sat Feb 13 11:31:04 2016) + /CreationDate (Mon Feb 15 17:01:39 2016) /DOCINFO pdfmark end } ifelse @@ -576,6 +576,14 @@ Z stroke LTb 1.000 UL LTb +2277 1771 N +0 176 V +2565 0 V +0 -176 V +-2565 0 V +Z stroke +1.000 UL +LTb 0.00 0.00 0.00 C 748 1947 M 13 -42 V 14 -52 V @@ -1461,6 +1469,44 @@ stroke 3636 588 M 14 4 V 14 5 V stroke +LCw setrgbcolor +1.000 2277 1771 2565 176 BoxColFill +1.000 UL +LTb +LCb setrgbcolor +LTb +2277 1771 N +0 176 V +2565 0 V +0 -176 V +-2565 0 V +Z stroke +1.000 UL +LTb +0.00 0.00 0.00 C LCb setrgbcolor +1.000 UL +LTb +0.00 0.00 0.00 C 2805 1859 M +195 0 V +stroke +LTb +LCb setrgbcolor +LTb +0.00 0.00 0.80 C LCb setrgbcolor +1.000 UL +LTb +0.00 0.00 0.80 C 3660 1859 M +195 0 V +stroke +LTb +LCb setrgbcolor +LTb +0.80 0.00 0.00 C LCb setrgbcolor +1.000 UL +LTb +0.80 0.00 0.00 C 4515 1859 M +195 0 V +stroke 2.000 UL LTb LCb setrgbcolor diff --git a/tex/gfx/eval/error_timed_nexus.gp b/tex/gfx/eval/error_timed_nexus.gp index bce8cac..dd7c255 100644 --- a/tex/gfx/eval/error_timed_nexus.gp +++ b/tex/gfx/eval/error_timed_nexus.gp @@ -10,7 +10,7 @@ set yrange[0:17] set xrange[0:91] set xtics nomirror set ytics nomirror -set key opaque box samplen 1.0 spacing 0.8 width -13 +set key at graph 1,1 opaque box samplen 1.0 spacing 0.8 width -13 set lmargin 4.6 set tmargin 0.3 @@ -56,33 +56,33 @@ set object 1 rectangle from 0,0 to 14,15 fs solid noborder fc rgb "#eeeeee" behi set label 1 "\\footnotesize{1}" at 7,2 center rotate by 0 front set object 2 rectangle from 14,0 to 40,15 fs solid noborder fc rgb "#dddddd" behind # walking down the way -set label 2 "\\footnotesize{2}" at 27,11 center rotate by 0 front +set label 2 "\\footnotesize{2}" at 27,10 center rotate by 0 front set object 3 rectangle from 40,0 to 51,15 fs solid noborder fc rgb "#eeeeee" behind # ignoring the shortest path -set label 3 "\\footnotesize{3}" at 45.5,11 center rotate by 0 front +set label 3 "\\footnotesize{3}" at 45.5,10 center rotate by 0 front set object 4 rectangle from 51,0 to 65,15 fs solid noborder fc rgb "#dddddd" behind # stairwell -set label 4 "\\footnotesize{4}" at 58,11 center rotate by 0 front +set label 4 "\\footnotesize{4}" at 58,10 center rotate by 0 front set object 5 rectangle from 65,0 to 74,15 fs solid noborder fc rgb "#eeeeee" behind # exit stairwell -set label 5 "\\footnotesize{5}" at 69.5,11 center rotate by 0 front +set label 5 "\\footnotesize{5}" at 69.5,10 center rotate by 0 front set object 6 rectangle from 74,0 to 105,15 fs solid noborder fc rgb "#dddddd" behind # floor -set label 6 "\\footnotesize{6}" at 89.5,11 center rotate by 0 front +set label 6 "\\footnotesize{6}" at 89.5,10 center rotate by 0 front set object 7 rectangle from 105,0 to 116,15 fs solid noborder fc rgb "#eeeeee" behind # stair down to f1 -set label 7 "\\footnotesize{7}" at 110.5,11 center rotate by 0 front +set label 7 "\\footnotesize{7}" at 110.5,10 center rotate by 0 front set object 8 rectangle from 116,0 to 130,15 fs solid noborder fc rgb "#dddddd" behind # floor -set label 8 "\\footnotesize{8}" at 123,11 center rotate by 0 front +set label 8 "\\footnotesize{8}" at 123,10 center rotate by 0 front set object 9 rectangle from 130,0 to 142,15 fs solid noborder fc rgb "#eeeeee" behind # stair down to f0 -set label 9 "\\footnotesize{9}" at 136,11 center rotate by 0 front +set label 9 "\\footnotesize{9}" at 136,10 center rotate by 0 front set object 10 rectangle from 142,0 to 150,15 fs solid noborder fc rgb "#dddddd" behind # end -set label 10 "\\footnotesize{10}" at 146,11 center rotate by 0 front +set label 10 "\\footnotesize{10}" at 146,10 center rotate by 0 front -unset key +#unset key set yrange[0:13] set xrange[0:151] plot \ diff --git a/tex/gfx/eval/error_timed_nexus.tex b/tex/gfx/eval/error_timed_nexus.tex index 785379d..0277f66 100644 --- a/tex/gfx/eval/error_timed_nexus.tex +++ b/tex/gfx/eval/error_timed_nexus.tex @@ -99,17 +99,23 @@ \put(4533,44){\makebox(0,0){\strut{}\footnotesize{140 s}}}% }% \gplgaddtomacro\gplfronttext{% + \csname LTb\endcsname% + \put(2673,1859){\makebox(0,0)[r]{\strut{}\footnotesize{simple}\hspace{-1.5mm}}}% + \csname LTb\endcsname% + \put(3528,1859){\makebox(0,0)[r]{\strut{}\footnotesize{multi}\hspace{-1.5mm}}}% + \csname LTb\endcsname% + \put(4383,1859){\makebox(0,0)[r]{\strut{}\footnotesize{shortest}\hspace{-1.5mm}}}% \csname LTb\endcsname% \put(803,523){\makebox(0,0){\strut{}\footnotesize{1}}}% - \put(1364,1688){\makebox(0,0){\strut{}\footnotesize{2}}}% - \put(1883,1688){\makebox(0,0){\strut{}\footnotesize{3}}}% - \put(2234,1688){\makebox(0,0){\strut{}\footnotesize{4}}}% - \put(2556,1688){\makebox(0,0){\strut{}\footnotesize{5}}}% - \put(3117,1688){\makebox(0,0){\strut{}\footnotesize{6}}}% - \put(3706,1688){\makebox(0,0){\strut{}\footnotesize{7}}}% - \put(4057,1688){\makebox(0,0){\strut{}\footnotesize{8}}}% - \put(4421,1688){\makebox(0,0){\strut{}\footnotesize{9}}}% - \put(4702,1688){\makebox(0,0){\strut{}\footnotesize{10}}}% + \put(1364,1559){\makebox(0,0){\strut{}\footnotesize{2}}}% + \put(1883,1559){\makebox(0,0){\strut{}\footnotesize{3}}}% + \put(2234,1559){\makebox(0,0){\strut{}\footnotesize{4}}}% + \put(2556,1559){\makebox(0,0){\strut{}\footnotesize{5}}}% + \put(3117,1559){\makebox(0,0){\strut{}\footnotesize{6}}}% + \put(3706,1559){\makebox(0,0){\strut{}\footnotesize{7}}}% + \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}}}% }% \gplbacktext \put(0,0){\includegraphics{error_timed_nexus}}%