current TeX
minor code changes
This commit is contained in:
30
main.cpp
30
main.cpp
@@ -477,6 +477,9 @@ void plotAllWalks(Floorplan::IndoorMap* map) {
|
||||
|
||||
int i = 0;
|
||||
for (const Walk& walk : walks) {
|
||||
|
||||
p->addStartIndicator(walk[0], colors[i]);
|
||||
|
||||
K::GnuplotSplotElementLines* line = new K::GnuplotSplotElementLines();
|
||||
line->getStroke().setWidth(2);
|
||||
line->getStroke().getColor().setHexStr(colors[i]);
|
||||
@@ -510,11 +513,17 @@ void plotAllWalks(Floorplan::IndoorMap* map) {
|
||||
p->splot.getAxisZ().setRange(K::GnuplotAxis::Range(-8, 19.5));
|
||||
p->splot.getView().setCamera(74,30);
|
||||
p->splot.getView().setScaleAll(3.8);
|
||||
|
||||
p->splot.getObjects().reOrderByZIndex();
|
||||
p->plot();
|
||||
|
||||
p->gp.setTerminal("epslatex", K::GnuplotSize(8.6, 5.0));
|
||||
|
||||
// modified paper
|
||||
p->splot.getView().setCamera(79,30);
|
||||
p->splot.getView().setScaleAll(5.5);
|
||||
p->splot.getAxisZ().setRange(K::GnuplotAxis::Range(-14, 26.0));
|
||||
p->gp.setTerminal("epslatex", K::GnuplotSize(15.24, 5.08));
|
||||
//p->splot.getObjects().reOrderByZIndex();
|
||||
//p->plot();
|
||||
|
||||
|
||||
p->gp.setOutput(Settings::fPathGFX + "/all_walks.tex");
|
||||
p->gp.writePlotToFile(Settings::fPathGFX + "/all_walks.gp");
|
||||
p->plot();
|
||||
@@ -1193,7 +1202,8 @@ void compareAll() {
|
||||
line3.setTitle("");
|
||||
|
||||
p2.splot.getKey().setVisible(true);
|
||||
p2.splot.getKey().setPosition(K::GnuplotCoordinate2(0.71, 0.35, K::GnuplotCoordinateSystem::SCREEN));
|
||||
p2.splot.getKey().setPosition(K::GnuplotCoordinate2(0.53, 1.0, K::GnuplotCoordinateSystem::SCREEN));
|
||||
//p2.splot.getKey().setPosition(K::GnuplotCoordinate2(0.71, 0.35, K::GnuplotCoordinateSystem::SCREEN));
|
||||
p2.splot.getView().setCamera(0,0);
|
||||
p2.splot.getView().setScaleAll(4.0);
|
||||
p2.gp.setTerminal("epslatex", K::GnuplotSize(8.3, 4.8));
|
||||
@@ -1210,13 +1220,19 @@ void compareAll() {
|
||||
int main(void) {
|
||||
|
||||
|
||||
compareAll();
|
||||
|
||||
//Toni::run();
|
||||
return 0;
|
||||
|
||||
|
||||
Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile(Settings::fMap);
|
||||
|
||||
|
||||
//plotAllWalks(map);
|
||||
|
||||
compareAll();
|
||||
|
||||
return 0;
|
||||
|
||||
//testWAF();
|
||||
//sleep(1);
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
\begin{document}
|
||||
|
||||
\title{\docWIFI{} Optimization for Smartphone-based Indoor Localization??}
|
||||
\title{On \docWIFI{} Optimizations for Smartphone-based Indoor Localization}
|
||||
|
||||
\author{Frank Ebner}
|
||||
\author{Toni Fetzer}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
with increasing attention.
|
||||
%
|
||||
As of today, many systems will run on commodity smartphones but most of them still rely on
|
||||
fingerprinting, which demands for high setup- and maintenance-times.
|
||||
fingerprinting which demands for high setup- and maintenance-times.
|
||||
Alternatives, such as simple signal strength prediction models, provide fast setup times,
|
||||
but often do not provide the accuracy required for use-cases like indoor navigation or
|
||||
location-based services.
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
For the best accuracy, more complex signal strength propagation models
|
||||
are required, which in turn demand for more reference measurements.
|
||||
%
|
||||
However, while using a several instances of a simple propagation model
|
||||
However, while using several instances of a simple propagation model
|
||||
for different regions within a building is able to decrease the estimation
|
||||
error, this approach might require prior guessing of where to place those regions.
|
||||
As indicated by the error plots, just using one model for every floor within the building
|
||||
seems to be a viable alternative.
|
||||
|
||||
More complex models, that include information about walls and other obstacles, should
|
||||
be able to reduce the remaining maximum error, which remains for some locations, at the cost of additional computations.
|
||||
be able to reduce the maximum error, which remains for some locations, at the cost of additional computations.
|
||||
Special data-structures for pre-computation combined with online interpolation might
|
||||
be a viable choice for utmost accuracy that is still able to run on
|
||||
a commodity smartphone in real-time.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
% intro
|
||||
|
||||
\todo{reihenfolge so jetzt klar?}
|
||||
\commentByFrank{reihenfolge so jetzt klar?}
|
||||
Within our experiments we will first have a look at model optimizations to reduce the error
|
||||
between model predictions and real-world conditions.
|
||||
Hereafter we examine the resulting accuracy when using the optimized models for localization
|
||||
@@ -14,7 +14,7 @@
|
||||
and two connected outdoor regions (entrance and inner courtyard),
|
||||
\SI{110}{\meter} x \SI{60}{\meter} in size.
|
||||
|
||||
Within all \docWIFI{} observations we only consider the \docAP{}s that are permanently installed,
|
||||
Within all \docWIFI{} observations, we only consider the \docAP{}s that are permanently installed
|
||||
and can be identified by their well-known MAC address.
|
||||
Temporal and movable transmitters like smart TVs or smartphone hotspots are ignored as they might cause estimation errors.
|
||||
%
|
||||
@@ -65,7 +65,7 @@
|
||||
\input{gfx2/model-bboxes.tex}
|
||||
\caption{
|
||||
Each distinct floor-color denotes one model (7 in total) for {\em \optPerRegion{}}.
|
||||
Often, more than one bounding box is needed to approximate the region's shape.
|
||||
Often more than one bounding box is needed to approximate the region's shape.
|
||||
}
|
||||
\label{fig:modelBBoxes}
|
||||
\end{subfigure}
|
||||
@@ -106,7 +106,7 @@
|
||||
Even though the transmitter is only \SI{5}{\meter} away from the reference
|
||||
measurement (small box), the metallized windows attenuate the signal as much as \SI{50}{\meter}
|
||||
of corridor (wide rectangle). The model described in section \ref{sec:sigStrengthModel} will not be able
|
||||
to match such situations, due to the lack of obstacle information.
|
||||
to match such situations due to the lack of obstacle information.
|
||||
%
|
||||
We will thus look at various optimization strategies and the error between
|
||||
the resulting estimation model and our reference measurements:
|
||||
@@ -141,10 +141,10 @@
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\reffig{fig:wifiModelError} shows the optimization results for all strategies, which are as expected:
|
||||
\reffig{fig:wifiModelError} shows the optimization results for all strategies which are as expected:
|
||||
The estimation error is indirectly proportional to the number of optimized parameters.
|
||||
However, while median- and average-errors are fine, maximal errors sometimes are relatively high.
|
||||
As depicted in \reffig{fig:wifiModelErrorMax}, even with {\em \optPerRegion{}} some locations simply do not fit the model,
|
||||
As depicted in \reffig{fig:wifiModelErrorMax}, even with {\em \optPerRegion{}}, some locations simply do not fit the model,
|
||||
and thus lead to high (local) errors.
|
||||
%
|
||||
Looking at the optimization results for \mTXP{}, \mPLE{} and \mWAF{} supports
|
||||
@@ -300,8 +300,8 @@
|
||||
%sub-model with only one assigned reference measurement, where the optimized result is unable to predict values
|
||||
%for the rest of the sub-model's region. \todo{versteht man das?}
|
||||
|
||||
Additionally we examined the impact of skipping reference measurements for difficult locations
|
||||
like staircases, surrounded by steel-enforced concrete. While this slightly decreases the
|
||||
Additionally we examined the impact of skipping reference measurements for difficult locations,
|
||||
like staircases surrounded by steel-enforced concrete. While this slightly decreases the
|
||||
estimation error for all other positions (hallway, etc.) as expected, the error within the skipped locations is dramatically
|
||||
increasing (see right half of \reffig{fig:wifiNumFingerprints}). It is thus highly recommended
|
||||
to also perform reference measurements for locations, that are expected to strongly deviate (signal strength)
|
||||
@@ -348,7 +348,7 @@
|
||||
|
||||
\todo{uebergang jetzt besser?}
|
||||
Having optimized several signal strength prediction models, we can now examine the resulting localization
|
||||
accuracy for each one. For now, this will just cover the \docWIFI{} component itself.
|
||||
accuracy for each. For now, this will just cover the \docWIFI{} component itself.
|
||||
The impact of adding additional sensors and a transition model will be evaluated later.
|
||||
|
||||
|
||||
@@ -379,9 +379,9 @@
|
||||
\label{eq:bestWiFiPos}
|
||||
\end{equation}
|
||||
|
||||
Within \refeq{eq:bestWiFiPos} $\mu_{i,\mPosVec}$ is the signal strength for \docAP{} $i$,
|
||||
In \refeq{eq:bestWiFiPos} $\mu_{i,\mPosVec}$ is the signal strength for \docAP{} $i$,
|
||||
installed at location $\mPosVec$, returned from the to-be-examined prediction model.
|
||||
For all comparisons we use a constant uncertainty of $\sigma = \SI{8}{\decibel}$.
|
||||
For all comparisons, we use a constant uncertainty of $\sigma = \SI{8}{\decibel}$.
|
||||
|
||||
The quality of the estimated location is determined by using the Euclidean distance between estimation
|
||||
$\mPosVec^*$ and the pedestrian's ground truth position at the time the scan $\mRssiVec$
|
||||
@@ -401,7 +401,7 @@
|
||||
\centering
|
||||
\input{gfx2/all_walks.tex}
|
||||
\caption{
|
||||
Overview of all conducted paths.
|
||||
Overview of all conducted paths, each starting at the denoted rectangle.
|
||||
Outdoor areas are marked in green.
|
||||
}
|
||||
\label{fig:allWalks}
|
||||
@@ -455,7 +455,7 @@
|
||||
The quality of the location estimation directly scales with the quality of the signal strength prediction model.
|
||||
However, as discussed earlier, the maximal estimation error might increase for some setups.
|
||||
%
|
||||
This is either due to multimodalities, where more than one area matches the recent
|
||||
Either due to multimodalities, where more than one area matches the recent
|
||||
\docWIFI{} observation, or optimization yielded an overadaption where the average signal
|
||||
strength prediction error is small, but the maximum error is dramatically increased for some regions.
|
||||
|
||||
@@ -487,7 +487,7 @@
|
||||
|
||||
\hspace{3mm}%hack
|
||||
|
||||
To reduce the amount such of misclassifications, where other locations within the building are
|
||||
To reduce the amount of such misclassifications, where other locations within the building are
|
||||
as likely as the pedestrian's actual location, we examined various approaches.
|
||||
Unfortunately, most of which did not provide a viable enhancement under all conditions for the performed walks.
|
||||
|
||||
@@ -525,18 +525,18 @@
|
||||
|
||||
\end{itemize}
|
||||
|
||||
To sum up, while some situations, e.g. outdoors, could be improved,
|
||||
To sum up, while some situations e.g. outdoors could be improved,
|
||||
many other situations are deteriorated, especially when some transmitters are (temporarily)
|
||||
attenuated by ambient conditions like concrete walls.
|
||||
|
||||
We therefore examined variations of the probability calculation from \refeq{eq:wifiProb}.
|
||||
Despite the results show in \cite{PotentialRisks}, removing weak \docAPshort{}s from $\mRssiVec{}$
|
||||
yielded similar results. While some estimations were improved, the overall error increased
|
||||
Contrary to the results shown in \cite{PotentialRisks}, removing weak \docAPshort{}s from $\mRssiVec{}$
|
||||
did not work out. While some estimations were improved, the overall error increased
|
||||
for our walks, as there are many situations where only a handful \docAP{}s can be seen.
|
||||
Removing this (valid) information will highly increase the error for such situations.
|
||||
Removing this (valid) information will increase the error for such situations.
|
||||
|
||||
Incorporating additional knowledge provided by virtual \docAP{}s (see section \ref{sec:vap}) mitigated this issues.
|
||||
If only one out of six virtual networks is observed, this observation is likely to be erroneous, no matter
|
||||
However, incorporating additional knowledge provided by virtual \docAP{}s (see section \ref{sec:vap}) mitigated this issues.
|
||||
If only one out of six virtual networks is seen, this observation is likely to be erroneous, no matter
|
||||
what the corresponding signal strength indicates. This approach improved the location estimation especially
|
||||
for areas where a transmitter was hardly seen within the reference measurements and its optimization is thus
|
||||
expected to be inaccurate.
|
||||
@@ -546,7 +546,7 @@
|
||||
%(see figure \ref{fig:normalVsExponential}).
|
||||
Due to those negative side-effects, the final localization system (\refeq{eq:recursiveDensity}) is unlikely to profit from such changes.
|
||||
|
||||
\todo{ueberleitung OK?}
|
||||
%\todo{ueberleitung OK?}
|
||||
|
||||
% braucht zu viel platz
|
||||
%\begin{figure}
|
||||
@@ -597,7 +597,7 @@
|
||||
25 times, using 5000, 7500 and 10000 particles resulting in 75 runs per walk, 975 per strategy and 5850 in total.
|
||||
%
|
||||
\reffig{fig:overallSystemError} depicts the cumulative error distribution per optimization strategy,
|
||||
resulting from all executions for each walk conducted with the smartphone.
|
||||
resulting from all executions for each conducted walk.
|
||||
|
||||
While most values represent the expected results (more optimization yields better results),
|
||||
the values for {\em \optParamsAllAP{}} and {\em \optPerRegion{}} do not.
|
||||
@@ -622,15 +622,15 @@
|
||||
(metal-framed doors) the error is slightly increased and retained for some time until the density stabilizes itself.
|
||||
|
||||
Especially for {\em path 1}, the particle-filter often got stuck within the upper right outdoor area between both buildings
|
||||
(see \reffig{fig:allWalks}). Using the empirical parameters, \SI{40}{\percent} of all runs for this path got stuck at this location.
|
||||
(see \reffig{fig:final}). Using the empirical parameters, \SI{40}{\percent} of all runs for this path got stuck at this location.
|
||||
{\em \optParamsAllAP{}} already reduced the risk to \SI{20}{\percent} and all other optimization strategies did not get stuck at all.
|
||||
Additionally increasing the number of particles from 5000 to 10000 indicated only a minor increase in accuracy and slightly decreased
|
||||
the risk of getting stuck. For battery- and performance-constrained use-cases on the smartphone 5000 thus seems to be a sufficient.
|
||||
Increasing the number of particles from 5000 to 10000 indicated only a minor increase in accuracy and slightly decreased
|
||||
the risk of getting stuck. For battery- and performance-constrained use-cases on the smartphone 5000 thus seems to be sufficient.
|
||||
|
||||
Issues while moving from the inside out, or vice versa, should also be mitigated by incorporating the smartphone's GPS sensor.
|
||||
Issues while moving from the inside out or vice versa, should also be mitigated by incorporating the smartphone's GPS sensor.
|
||||
However, within our testing walks, the GPS did rarely provide accurate measurements, as the outdoor-time often was too short
|
||||
for the sensor to receive a valid fix. The accuracy indicated by the GPS usually was $\ge \SI{50}{\meter}$ and thus
|
||||
did not provide usefull information.
|
||||
did not provide useful information.
|
||||
|
||||
However, comparing the error results within \reffig{fig:modelPerformance} and \reffig{fig:overallSystemError}, one can
|
||||
denote the positive impact of fusing multiple sensors with a transition model based on the building's
|
||||
@@ -672,7 +672,7 @@
|
||||
\caption{
|
||||
Cumulative error distribution for each model when used within the final localization system from \refeq{eq:recursiveDensity}.
|
||||
Especially {\em \optParamsAllAP{}} suffered from overadaption and thus provided worse results. Compared to just using \docWIFI{}
|
||||
(\reffig{fig:modelPerformance}) the error difference between the models now is much more pronounced.
|
||||
(\reffig{fig:modelPerformance}) the error difference between the models now is much more distinct.
|
||||
Starting from {\em \optParamsEachAP{}} the system rarely gets stuck and provides a viable accuracy.
|
||||
}
|
||||
\label{fig:overallSystemError}
|
||||
@@ -681,16 +681,16 @@
|
||||
|
||||
Finally, \reffig{fig:final} depicts all of the previously discussed improvements and issues by examining {\em path 1}
|
||||
from \reffig{fig:allWalks}.
|
||||
For better visibility within path- and error-plots, the non filtered estimations were smoothed using a moving average of
|
||||
For better visibility within path- and error-plots, the unfiltered estimations were smoothed, using a moving average of
|
||||
ten consecutive values ($\approx \SI{7}{\second}$). As can be seen, optimizing the \docWIFI{} model yields an improvement
|
||||
for indoor situations, as the estimation is closer to the ground truth, and the starting position (indicated by the rectangle)
|
||||
is more accurate.
|
||||
For the depicted walk, the error outdoors is increased, as the likeliest position is shifted. Adding
|
||||
the particle filter (\refeq{eq:recursiveDensity}) on top of the optimized model fixes this issue. What cannot be seen
|
||||
within the images: while the likeliest position is deteriorated by the optimization, the likelihood of the region around
|
||||
the pedestrian's ground truth actually is increased. Thus, combined with transition model and other sensors, the system
|
||||
the particle filter (\refeq{eq:recursiveDensity}) on top of the optimized model, fixes this issue. What cannot be seen
|
||||
within the figure: while the likeliest position is deteriorated by the optimization, the likelihood of the region around
|
||||
the pedestrian's ground truth is actually increased. Thus, combined with transition model and other sensors, the system
|
||||
is able to stay right on track. The filter fails for {\em \noOptEmpiric}, as one \docAPshort{} near the entry of the second
|
||||
building prevents the density from entering due to a very high difference between model and real-world conditions.
|
||||
building prevents the density from entering, due to a very high difference between model and real-world conditions.
|
||||
|
||||
\begin{figure}
|
||||
\begin{subfigure}{0.49\textwidth}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
entering the building. Additionally, the sensor's error will sum up over
|
||||
time \cite{Koeping14}.
|
||||
|
||||
Depending on the used fusion-method, the latter can be addressed
|
||||
Depending on the used fusion-method, latter can be addressed
|
||||
using a movement model for the pedestrian, that prevents unlikely movements
|
||||
and locations. However, this will obviously work only to some extent and still
|
||||
requires the initial position to be at least vaguely known.
|
||||
@@ -36,7 +36,7 @@
|
||||
using cells of $\approx \SI{2}{\meter}$ in size. This usually leads to
|
||||
a very high accuracy due to actual measurements of the real situation.
|
||||
However, the amount of work for the initial
|
||||
setup and the maintenance when transmitters are changed or renovations take
|
||||
setup and the maintenance, when transmitters are changed or renovations take
|
||||
place, is very high.
|
||||
|
||||
Setup- and maintenance effort can be prevented by using models to predict
|
||||
@@ -67,7 +67,7 @@
|
||||
just empirical parameters (no setup time when transmitter positions are known) to optimized
|
||||
parameters, where no prior knowledge is necessary and a few reference measurements suffice.
|
||||
|
||||
Despite analyzing the \docWIFI{} performance on its own, we will also have
|
||||
Besides analyzing the \docWIFI{} performance on its own, we will also have
|
||||
a closer look at the resulting performance-changes within a fully featured smartphone-based
|
||||
indoor localization system using a movement model based on the building's floorplan,
|
||||
together with various other sensors and recursive state estimation based on a particle filter.
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
are more accurate, and mostly invariant to architectural obstacles \cite{TimeDifferenceOfArrival1, TOAAOA}.
|
||||
Especially signal runtimes are unaffected by walls and thus allow for stable distance estimations, if the used components
|
||||
support measuring time-delays down to a few picoseconds. This is why those techniques often need special (measurement) hardware
|
||||
to estimate parameters like signal-runtime or signal-phase-shifts. Those requirements usually allow only for some use-cases.
|
||||
to estimate parameters like signal-runtime or signal-phase-shifts. Those requirements only allow for a limited number of use-cases.
|
||||
|
||||
|
||||
We therefore focus on the RSSI, that is available on each commodity smartphone, and use a
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
to also serve for indoor purposes.
|
||||
%
|
||||
It predicts an \docAP{}'s signal strength
|
||||
for an arbitrary location
|
||||
for an arbitrary location,
|
||||
%$\mPosVec{}$
|
||||
given the distance $d$ between both and two environmental parameters:
|
||||
The \docAPshort{}'s signal strength \mTXP{} measurable at a known distance $d_0$ (usually \SI{1}{\meter}) and
|
||||
@@ -97,7 +97,7 @@
|
||||
\mTXP{}, \mPLE{} and \mWAF{}.
|
||||
While it is possible to use empiric values for those environmental parameters \cite{Ebner-15}, the positions are mandatory.
|
||||
|
||||
For many buildings, there should be floorplans that include the locations of all installed transmitters.
|
||||
For many buildings there should be floorplans that include the locations of all installed transmitters.
|
||||
If so, a model setup takes only several minutes to (vaguely) position the \docAPshort{}s within a virtual
|
||||
map and assign some fixed, empirically chosen parameters for \mTXP{}, \mPLE{} and \mWAF{}.
|
||||
Depending on the building's architecture this might already provide enough accuracy for some use-cases,
|
||||
@@ -261,7 +261,7 @@
|
||||
|
||||
Evaluations within previous works showed, that there are many situations where the overall \docWIFI{} location estimation
|
||||
is highly erroneous. Either when the signal strength prediction model does not match real-world
|
||||
conditions or the received measurements are ambiguous and there is more than one location
|
||||
conditions, or the received measurements are ambiguous and there is more than one location
|
||||
within the building that matches those readings. Both cases can occur e.g. in areas surrounded by
|
||||
concrete walls, where the model does not match the real-world conditions as those walls are not considered,
|
||||
and the smartphone barely receives \docAPshort{}s due to the high attenuation.
|
||||
@@ -307,12 +307,12 @@
|
||||
due to environmental conditions like temperature, humidity, open/closed doors and RF interference.
|
||||
Fast variations can be addressed by averaging several consecutive measurements at the expense
|
||||
of a delay in time.
|
||||
To prevent this delay we use the fact, that many buildings use so called virtual access points
|
||||
To prevent this delay, we use the fact, that many buildings use so called virtual access points
|
||||
where one physical hardware \docAP{} provides more than one virtual network to connect to.
|
||||
They can usually be identified, as only the last digit of the MAC address is altered among the virtual networks.
|
||||
%
|
||||
As those normally share the same frequency, they are unable to transmit at the same instant in time.
|
||||
When scanning for \docAPshort{}s one will thus receive several responses from the same hardware, all with
|
||||
When scanning for \docAPshort{}s, one will thus receive several responses from the same hardware, all with
|
||||
a very small delay (micro- to milliseconds). Such measurements may be grouped using some aggregate
|
||||
function like average, median or maximum instead of using each single measurement.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user