latest TeX
many new gfx and data worked on eval
This commit is contained in:
@@ -4,5 +4,5 @@
|
||||
\commentByFrank{balance zwischen den einzelnen wahrscheinlichkeiten ist oft ein schmaler grad. wieviel turn erlauben, wieviel auf den pfad zwingen. das verbesern}
|
||||
\commentByFrank{position der APs wissen ist viel arbeit. vereinfachen durch test-walks auf vorgegebenen pfaden -> numerisch optimieren wo APs sind}
|
||||
\commentByToni{quadtress. stellen die groesse der zellen variable ein. je nach bedarf.}
|
||||
|
||||
\commentByFrank{multimodalitaeten (z.B. treppenhaeuser). fixen durch andere estimations}
|
||||
|
||||
|
||||
@@ -1,4 +1,118 @@
|
||||
\section{Experiments}
|
||||
|
||||
% introduction
|
||||
Evaluation took place within all floors (0 to 3) of the
|
||||
faculty building, each of which about \SI{77}{\meter} x \SI{55}{\meter} in size.
|
||||
We conducted 4 distinct walks, for testing short distances, long distances, critical sections
|
||||
and ignoring the shortest-path suggested by the system. Each path is backed by ground truth information
|
||||
to enable error calculation. This ground truth is measured by recording a timestamp at a marked spot
|
||||
on the walking route. During the walk, the pedestrian has to click a button on the smartphone
|
||||
application when passing a marker. Between two consecutive points, a constant movement speed is assumed.
|
||||
Thus, the ground truth might not be \SI{100}{\percent} accurate, but good enough to conduct error measurements.
|
||||
All walks were conducted using a Google Nexus 6 and a Samsung Galaxy S5.
|
||||
|
||||
As the Samsung Galaxy S5's \docWIFI{} can not be limited to the \SI{2.4}{\giga\hertz} band only, its scans take much
|
||||
longer than those of the Google Nexus 6: \SI{3500}{\milli\second} vs. \SI{600}{\milli\second}. Also, the Nexus' barometer sensor
|
||||
provides readings more frequent and far more accurate than the Galaxy does. This results in a much better
|
||||
localisation for the Nexus smartphone.
|
||||
|
||||
Despite being fast enough to run in realtime on the smartphone itself, computation was done offline using
|
||||
the condensation algorithm with \SI{7500}{} particles as realization of the recursive density estimation \cite{todo}
|
||||
and the weighted arithmetic mean of those for the state estimation.
|
||||
|
||||
As mentioned earlier, the position of all \docAP{}s (about 5 per floor) is known beforhand.
|
||||
Due to legal terms, we are not allowed to depict their positions and therefore omit this information within the figures.
|
||||
Additionally we used three \docIBeacon{}s for slight enhancements in some areas.
|
||||
The empirically chosen values for \docWIFI{} were $P_{0_{\text{wifi}}} = \SI{-46}{\dBm}, \mPLE_{\text{wifi}} = \SI{2.7}{}$,
|
||||
and $\mPLE_{\text{ib}} = \SI{1.5}{}$ for the \docIBeacon{}s, respectively. Due to omitting a time-consuming calibration
|
||||
process for those values, the sensor readings are considered somewhat faulty.
|
||||
|
||||
As uncertainties we used $\sigma_\text{wifi} = \sigma_\text{ib} = 8.0$, both growing with each measurement's age.
|
||||
While the pressure change was assumed to be \SI{0.105}{$\frac{\text{\hpa}}{\text{\meter}}$}, all other barometer-parameters
|
||||
are determined automatically (see \ref{sec:sensBaro}). The step size for the transition was configured to be \SI{70}{\centimeter}
|
||||
with an allowed derivation of \SI{10}{\percent}. The heading deviation in \refeq{eq:transSimple} was \SI{25}{\degree}.
|
||||
|
||||
|
||||
|
||||
\commentByFrank{describe what was evaluated: 2 phones (differences), 4 paths, building, several floors, ibeacons, access points}
|
||||
|
||||
\commentByFrank{bergwerk\_path3\_galaxy}
|
||||
|
||||
As we start with a uniformation distribution for $\mStateVec_0$, the first few estimations
|
||||
are omitted from the error calculation to allow the system to settle its initial state.
|
||||
|
||||
Adding the 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 minor, if any, improvements
|
||||
and is therefore not fruther evaluated.
|
||||
|
||||
\commentByFrank{verlassen vom shortest path fuehrt zu weniger verbesserung, aber es wird nach wie vor besser als ohne!}
|
||||
|
||||
\commentByFrank{in den ersten paar sec ist die pfad-info teils hinderlich, da die genaue position noch sehr unklar ist und sich erst einstellen muss.
|
||||
deshalb geht der fehler hier oft leicht hoch}
|
||||
|
||||
\begin{figure}
|
||||
%\includegraphics{eval/bergwerk_path2_nexus_shortest}
|
||||
\end{figure}
|
||||
|
||||
% 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 Google Nexus 6.
|
||||
Path 4 shows increasing errors for our methods when leaving the shortest path and when facing multimodalities between two
|
||||
staircases at the end.}
|
||||
\label{fig:errorTimedNexus}
|
||||
\end{figure}
|
||||
|
||||
% overall error-distribution for nexus and galaxy
|
||||
\begin{figure}
|
||||
\input{gfx/eval/error_dist_nexus}
|
||||
\caption{Error distribution for all walks conducted with the Google Nexus 6. Our proposed methods
|
||||
clearly provide an enhancement for the overall localization process.}
|
||||
\label{fig:errorDistNexus}
|
||||
\end{figure}
|
||||
\begin{figure}
|
||||
\input{gfx/eval/error_dist_galaxy}
|
||||
\caption{Nicht so markant beim galaxy, denke aber der platz reicht eh nicht, also einfach kurz erwaehnen}
|
||||
\end{figure}
|
||||
|
||||
\begin{table}
|
||||
\centering
|
||||
\begin{tabular}{|l|c|c|c|c|}
|
||||
\hline
|
||||
& Path1 & Path2 & Path3 & Path4 \\\hline
|
||||
Simple (\refeq{eq:transSimple}) & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} \\\hline
|
||||
Shortest (\refeq{eq:transShortestPath}) & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} \\\hline
|
||||
Multipath (\refeq{eq:transMultiPath}) & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} \\\hline
|
||||
\end{tabular}
|
||||
\caption{Median error for walks conducted with the Nexus 6.}
|
||||
\end{table}
|
||||
|
||||
\begin{table}
|
||||
\centering
|
||||
\begin{tabular}{|l|c|c|c|c|}
|
||||
\hline
|
||||
& Path1 & Path2 & Path3 & Path4 \\\hline
|
||||
Simple (\refeq{eq:transSimple}) & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} \\\hline
|
||||
Shortest (\refeq{eq:transShortestPath}) & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} \\\hline
|
||||
Multipath (\refeq{eq:transMultiPath}) & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} & \SI{}{\meter} \\\hline
|
||||
\end{tabular}
|
||||
\caption{Median error for walks conducted with the Galaxy S5.}
|
||||
\end{table}
|
||||
|
||||
\begin{figure}
|
||||
\includegraphics{gfx/eval/bergwerk_path1_galaxy}
|
||||
\caption{Path 1 recorded with the Galaxy S5. Using prior knowledge improves the staircase (left) and the target area (right) where
|
||||
both the barometer and \docWIFI{} provided bad readings.}
|
||||
\label{fig:bergwerkPath1Galaxy}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}
|
||||
\includegraphics{gfx/eval/bergwerk_path3_galaxy}
|
||||
\caption{Path 3 recorded with the Galaxy S5. Even though both paths look similar, the version with prior knowledge ended
|
||||
much closer to the real destination due to reduced delays.}
|
||||
\label{fig:bergwerkPath3Galaxy}
|
||||
\end{figure}
|
||||
|
||||
\begin{itemize}
|
||||
\item Nochmal kurz auf die Probleme des letzten Systems eingehen (schon teil der introduction)
|
||||
@@ -12,7 +126,12 @@
|
||||
\commentByFrank{we start with a uniform distribution $\mStateVec_0$}
|
||||
|
||||
\commentByFrank{hinweis auf die verschiedenen geraete (smartphones) und unterschiede, wlan/baro}
|
||||
|
||||
\commentByFrank{
|
||||
PATH4 HAELT SICH NICHT AN DEN SHORTEST PATH.
|
||||
GUTES BEISPIEL.
|
||||
der pfad wechselt sogar 2x! (3. stock)
|
||||
der shortest wird am ende etwas ungenau bei der treppe
|
||||
}
|
||||
|
||||
\commentByFrank{sensorausfall simulieren, z.b. in der mitte, oder auf einer treppe}
|
||||
\commentByFrank{zwischendrin mal stehenbleiben und schauen ob auch das klappt}
|
||||
|
||||
111
tex/chapters/experiments.txt
Normal file
111
tex/chapters/experiments.txt
Normal file
@@ -0,0 +1,111 @@
|
||||
bergwerk_nexus4
|
||||
path1_simple
|
||||
cnt(170) min(124.621) max(1211.95) range(1087.33) med(494.071) avg(572.633) stdDev(290.127)
|
||||
path1_importance
|
||||
cnt(170) min(110.992) max(1223.18) range(1112.18) med(482.417) avg(545.237) stdDev(281.696)
|
||||
cnt(170) min(90.0697) max(1231.7) range(1141.63) med(447.12) avg(539.853) stdDev(291.265)
|
||||
path1_multi
|
||||
cnt(170) min(19.3289) max(1323.02) range(1303.69) med(293.464) avg(401.001) stdDev(348.936)
|
||||
path1_shortest
|
||||
cnt(170) min(51.5347) max(1303.31) range(1251.78) med(296.367) avg(410.459) stdDev(356.167)
|
||||
|
||||
|
||||
path2_simple
|
||||
cnt(205) min(32.1503) max(1154.48) range(1122.33) med(379.831) avg(440.884) stdDev(316.976)
|
||||
path2_importance
|
||||
cnt(205) min(29.756) max(1182.57) range(1152.81) med(338.978) avg(446.471) stdDev(326.851)
|
||||
path2_multi
|
||||
cnt(205) min(26.3266) max(903.358) range(877.031) med(264.985) avg(334.287) stdDev(246.188)
|
||||
path2_shortest
|
||||
cnt(205) min(3.15803) max(1003.9) range(1000.74) med(261.279) avg(355.759) stdDev(280.638)
|
||||
|
||||
|
||||
path3_simple
|
||||
cnt(177) min(27.9775) max(1023.35) range(995.376) med(396.515) avg(461.918) stdDev(292.705)
|
||||
path3_importance
|
||||
cnt(177) min(22.4515) max(1044.03) range(1021.58) med(374.274) avg(461.38) stdDev(309.641)
|
||||
path3_multi
|
||||
cnt(177) min(7.19039) max(1057.11) range(1049.92) med(327.144) avg(445.415) stdDev(311.683)
|
||||
path3_shortest
|
||||
cnt(177) min(19.0567) max(1063.02) range(1043.96) med(274.569) avg(409.897) stdDev(346.419)
|
||||
|
||||
|
||||
path4_simple
|
||||
cnt(291) min(24.7635) max(1299.99) range(1275.23) med(401.258) avg(446.048) stdDev(311.301)
|
||||
path4_importance
|
||||
cnt(291) min(5.35469) max(1299.99) range(1294.63) med(412.518) avg(451.873) stdDev(323.578) // treppe gegen ende erhoeht fehler
|
||||
path4_multi
|
||||
cnt(291) min(24.8386) max(1306.86) range(1282.02) med(372.959) avg(457.002) stdDev(319.193)
|
||||
path4_single
|
||||
cnt(291) min(43.2627) max(1307.2) range(1263.94) med(328.561) avg(439.296) stdDev(323.685)
|
||||
|
||||
|
||||
bergwerk_nexus_no_offset (ohne das fake 750 ms offset)
|
||||
|
||||
path1_simple
|
||||
cnt(170) min(169.656) max(1262.86) range(1093.2) med(608.042) avg(651.252) stdDev(280.247)
|
||||
path1_importance
|
||||
cnt(170) min(152.098) max(1261.35) range(1109.26) med(583.717) avg(608.73) stdDev(284.415)
|
||||
path1_multi
|
||||
cnt(170) min(17.3608) max(1297.59) range(1280.23) med(315.801) avg(408.499) stdDev(342.586)
|
||||
path1_shortest
|
||||
cnt(170) min(9.42833) max(1341.19) range(1331.76) med(283.329) avg(387.529) stdDev(360.54)
|
||||
|
||||
path2_simple
|
||||
cnt(205) min(15.7351) max(1180.82) range(1165.09) med(385.005) avg(465.017) stdDev(338.186)
|
||||
path2_importance
|
||||
cnt(205) min(10.5153) max(1144.36) range(1133.85) med(389.13) avg(455.443) stdDev(327.471)
|
||||
path2_multi
|
||||
cnt(205) min(16.1751) max(962.944) range(946.769) med(232.685) avg(343.799) stdDev(270.153)
|
||||
path2_shortest
|
||||
cnt(205) min(3.725) max(984.496) range(980.771) med(276.364) avg(374.586) stdDev(300.294)
|
||||
|
||||
path3_simple
|
||||
cnt(177) min(27.9435) max(996.607) range(968.664) med(458.031) avg(475.898) stdDev(284.424)
|
||||
path3_importance
|
||||
cnt(177) min(23.7427) max(975.215) range(951.472) med(462.579) avg(484.764) stdDev(289.334)
|
||||
path3_multi
|
||||
cnt(177) min(23.928) max(1092.71) range(1068.79) med(278.461) avg(444.438) stdDev(329.607)
|
||||
path3_shortest
|
||||
cnt(177) min(9.26234) max(1068.06) range(1058.8) med(266.055) avg(404.565) stdDev(346.63)
|
||||
|
||||
path4_simple
|
||||
cnt(291) min(13.683) max(1298.77) range(1285.09) med(417.002) avg(468.686) stdDev(330.651)
|
||||
path4_importance
|
||||
cnt(291) min(13.759) max(1347.91) range(1334.15) med(467.665) avg(498.666) stdDev(313.775)
|
||||
path4_multi
|
||||
cnt(291) min(8.56751) max(1315.14) range(1306.57) med(347.575) avg(428.311) stdDev(342.233)
|
||||
path4_shortest
|
||||
cnt(291) min(19.3812) max(1358.26) range(1338.88) med(358.279) avg(426.838) stdDev(321.88)
|
||||
|
||||
|
||||
bergwerk_galaxy_no_offset (ohne das fake 750 ms offset)
|
||||
|
||||
|
||||
path1_simple
|
||||
cnt(171) min(44.5758) max(2008.8) range(1964.22) med(1023.35) avg(961.773) stdDev(370.492) // huge wifi and barometer issues
|
||||
path1_multi
|
||||
cnt(171) min(85.9269) max(2157.4) range(2071.47) med(613.383) avg(705.732) stdDev(467.525) // much better, high initial error -> even better
|
||||
path1_shortest
|
||||
cnt(171) min(64.679) max(2185.99) range(2121.31) med(639.352) avg(746.264) stdDev(462.957) // similar: much better
|
||||
|
||||
path2_simple
|
||||
cnt(193) min(31.4961) max(1596.12) range(1564.62) med(671.196) avg(714.763) stdDev(447.28)
|
||||
path2_multi
|
||||
cnt(193) min(2.47806) max(1447.66) range(1445.18) med(440.189) avg(500.696) stdDev(381.872)
|
||||
path2_shortest
|
||||
cnt(193) min(13.2449) max(1453.03) range(1439.78) med(449.287) avg(532.14) stdDev(402.977)
|
||||
|
||||
path3_simple
|
||||
cnt(158) min(36.0375) max(1863.92) range(1827.88) med(615.248) avg(678.632) stdDev(428.826) // short, stairs only, bad baromter, nothing to optimize
|
||||
path3_multi
|
||||
cnt(158) min(26.7108) max(1610.37) range(1583.66) med(562.175) avg(582.494) stdDev(382.947) // only slightly better
|
||||
path3_shortest
|
||||
cnt(158) min(39.0438) max(1778.07) range(1739.03) med(587.44) avg(648.729) stdDev(374.347) // only slightly better
|
||||
|
||||
path4_simple
|
||||
cnt(293) min(32.1262) max(1875.25) range(1843.13) med(889.001) avg(836.58) stdDev(484.112)
|
||||
path4_multi
|
||||
cnt(293) min(17.1514) max(1686.81) range(1669.66) med(620.385) avg(702.897) stdDev(446.311)
|
||||
path4_shortest
|
||||
cnt(293) min(17.6632) max(1740.36) range(1722.7) med(732.178) avg(778.587) stdDev(438.974) // die treppe am ende ist problematisch
|
||||
@@ -228,7 +228,7 @@
|
||||
\alpha =
|
||||
\begin{cases}
|
||||
1.0 & \| v_{x',y',z'} - \pathRef \| < \| v_{x,y,z} - \pathRef \| \\
|
||||
0.2 & \text{else}
|
||||
0.1 & \text{else}
|
||||
\end{cases}
|
||||
\end{split}
|
||||
\label{eq:transShortestPath}
|
||||
@@ -254,7 +254,7 @@
|
||||
\alpha =
|
||||
\begin{cases}
|
||||
1.0 & \text{cdst}_{x',y',z'} < \text{cdst}_{x,y,z} \\
|
||||
0.2 & \text{else}
|
||||
0.1 & \text{else}
|
||||
\end{cases}
|
||||
\end{split}
|
||||
\label{eq:transMultiPath}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
\section{Sensors}
|
||||
|
||||
\subsection{Barometer}
|
||||
\label{sec:sensBaro}
|
||||
|
||||
As stated by \cite{ipin2015} \todo{and the other paper directly}, ambient pressure readings are highly influenced
|
||||
by environmental conditions like the weather, time-of-day and others. Thus, relative pressure readings are
|
||||
preferred over absolute ones. However, due to noisy sensors \todo{cite oder grafik? je nach platz}, one
|
||||
|
||||
@@ -2,16 +2,18 @@
|
||||
|
||||
We consider indoor localisation as a time-sequential, non-linear and non-Gaussian state estimation problem.
|
||||
Using a recursive Bayes filter that satisfies the Markov property, the posterior distribution at time $t$ can be written as
|
||||
%
|
||||
\begin{equation}
|
||||
\arraycolsep=1.2pt
|
||||
\begin{array}{ll}
|
||||
&p(\mStateVec_{t} \mid \mObsVec_{1:t}) \propto\\
|
||||
&\underbrace{p(\mObsVec_{t} \mid \mStateVec_{t})}_{\text{evaluation}}
|
||||
\int \underbrace{p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t})}_{\text{transition}}
|
||||
\underbrace{p(\mStateVec_{t-1} \mid \mObsVec_{1:t-1})d\vec{q}_{t-1}}_{\text{recursion}} \enspace,
|
||||
\end{array}
|
||||
\label{equ:bayesInt}
|
||||
\arraycolsep=1.2pt
|
||||
\begin{array}{ll}
|
||||
&p(\mStateVec_{t} \mid \mObsVec_{1:t}) \propto\\
|
||||
&\underbrace{p(\mObsVec_{t} \mid \mStateVec_{t})}_{\text{evaluation}}
|
||||
\int \underbrace{p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t})}_{\text{transition}}
|
||||
\underbrace{p(\mStateVec_{t-1} \mid \mObsVec_{1:t-1})d\vec{q}_{t-1}}_{\text{recursion}} \enspace,
|
||||
\end{array}
|
||||
\label{equ:bayesInt}
|
||||
\end{equation}
|
||||
%
|
||||
where $\mObsVec_{1:t} = \mObsVec_{1}, \mObsVec_{1}, ..., \mObsVec_{t}$ is a series of observations up to time $t$.
|
||||
The hidden state $\mStateVec$ is given by
|
||||
\begin{equation}
|
||||
@@ -24,26 +26,32 @@ Further, the state transition models the pedestrian’s movement based upon rand
|
||||
It should be noted, that we also include the current observation $\mObsVec_{t}$ in it.
|
||||
|
||||
Containing all relevant sensor measurements to evaluate the current state, the observation vector is defined as follows:
|
||||
%
|
||||
\begin{equation}
|
||||
\mObsVec = (\mRssiVec_\text{wifi}, \mRssiVec_\text{ib}, \mObsHeading, \mObsPressure) \enspace,
|
||||
\end{equation}
|
||||
%
|
||||
where $\mRssiVec_\text{wifi}$ is the Wi-Fi and $\mRssiVec_\text{ib}$ the iBeacon signal strength vector.
|
||||
The information, if a step or turn was detected, is given as a Boolean value.
|
||||
\commentByToni{Wie sieht die Observation nun genau aus? Fehlt da nicht Step und Turn?}
|
||||
Finally, $\mObsPressure$ is the relative barometric pressure referring to some fixed point in time.
|
||||
For incorporating the highly different sensor types, one should refer to the process of probabilistic sensor fusion \cite{}.
|
||||
By assuming statistical independence of all sensor models, the probability density of the state evaluation is given by
|
||||
%
|
||||
\begin{equation}
|
||||
\begin{split}
|
||||
&p(\vec{o}_t \mid \vec{q}_t, \vec{q}_{t-1}) = \\
|
||||
&p(\vec{o}_t \mid \vec{q}_t, \vec{q}_{t-1})_\text{turn}
|
||||
\,p(\vec{o}_t \mid \vec{q}_t, \vec{q}_{t-1})_\text{step} \\
|
||||
&p(\vec{o}_t \mid \vec{q}_t)_\text{baro}
|
||||
\,p(\vec{o}_t \mid \vec{q}_t)_\text{ib}
|
||||
\,p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}
|
||||
\end{split} \enspace.
|
||||
\label{eq:evalBayes}
|
||||
\begin{split}
|
||||
&p(\vec{o}_t \mid \vec{q}_t, \vec{q}_{t-1}) = \\
|
||||
&p(\vec{o}_t \mid \vec{q}_t, \vec{q}_{t-1})_\text{turn}
|
||||
\,p(\vec{o}_t \mid \vec{q}_t, \vec{q}_{t-1})_\text{step} \\
|
||||
&p(\vec{o}_t \mid \vec{q}_t)_\text{baro}
|
||||
\,p(\vec{o}_t \mid \vec{q}_t)_\text{ib}
|
||||
\,p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}
|
||||
\end{split} \enspace.
|
||||
\label{eq:evalBayes}
|
||||
\end{equation}
|
||||
%
|
||||
\commentByFrank{die zeile in der mitte (step/turn) faellt ganz weg. also generell kein $q_{t-1}$ mehr}
|
||||
%
|
||||
Here, every single component refers to a probabilistic sensor model.
|
||||
The heading information is evaluated using $p(\vec{o}_t \mid \vec{q}_t, \vec{q}_{t-1})_\text{turn}$, the step length using a step detection process by $p(\vec{o}_t \mid \vec{q}_t, \vec{q}_{t-1})_\text{step}$, using $p(\vec{o}_t \mid \vec{q}_t)_\text{baro}$ the barometer evaluates the current floor, whereby absolute position information is given by $p(\vec{o}_t \mid \vec{q}_t)_\text{ib}$ for iBeacons and by $p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}$ for Wi-Fi.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user