current TeX
This commit is contained in:
13
main.cpp
13
main.cpp
@@ -514,15 +514,19 @@ void plotEstAndRealApPosDistance(Floorplan::IndoorMap* map) {
|
||||
K::Statistics<float> statsExp;
|
||||
K::Statistics<float> statsWaf;
|
||||
K::Statistics<float> statsPosErr;
|
||||
int numAPs = 0;
|
||||
int numWrongZ = 0;
|
||||
|
||||
|
||||
for (const AccessPoint& ap : mdl.getAllAPs()) {
|
||||
|
||||
// param range
|
||||
const WiFiModelLogDistCeiling::APEntry params = mdl.getAP(ap.getMAC());
|
||||
statsTxp.add(params.txp);
|
||||
statsExp.add(params.exp);
|
||||
statsWaf.add(params.waf);
|
||||
|
||||
// position error
|
||||
const Point3 mdlPos = params.position_m;
|
||||
|
||||
const auto& it = FloorplanHelper::getAP(map, ap.getMAC());
|
||||
@@ -531,9 +535,17 @@ void plotEstAndRealApPosDistance(Floorplan::IndoorMap* map) {
|
||||
|
||||
const Point3 realPos = fap->getPos(floor);
|
||||
|
||||
|
||||
const float posErr = mdlPos.getDistance(realPos);
|
||||
statsPosErr.add(posErr);
|
||||
|
||||
// wrong z?
|
||||
if (mdlPos.z < floor->atHeight || mdlPos.z > (floor->atHeight+floor->height)) {
|
||||
++numWrongZ;
|
||||
}
|
||||
|
||||
++numAPs;
|
||||
|
||||
}
|
||||
|
||||
PlotErrFunc pef("", "\\docAP{}s (%)");
|
||||
@@ -553,6 +565,7 @@ void plotEstAndRealApPosDistance(Floorplan::IndoorMap* map) {
|
||||
std::cout << "EXP:\t" << statsExp.asString() << std::endl;
|
||||
std::cout << "WAF:\t" << statsWaf.asString() << std::endl;
|
||||
std::cout << "Pos:\t" << statsPosErr.asString() << std::endl;
|
||||
std::cout << "WrongZ:\t" << numWrongZ << " (" << (numWrongZ*100.0f/numAPs) << "%) "<< std::endl;
|
||||
|
||||
int i = 0; (void) i;
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
|
||||
% -------------------------------- optimization -------------------------------- %
|
||||
|
||||
\subsection{Model optimization}
|
||||
|
||||
As the signal strength prediction model is the heart of the absolute positioning component
|
||||
described in \ref{sec:system} we start with the model parameter estimation (see \ref{sec:optimization}) for
|
||||
\mTXP, \mPLE and \mWAF based on some reference measurements and compare the results
|
||||
@@ -51,55 +53,7 @@
|
||||
% visible APs:
|
||||
% cnt(121) min(2.000000) max(22.000000) range(20.000000) med(8.000000) avg(9.322314) stdDev(4.386709)
|
||||
|
||||
As mentioned in section \ref{sec:optimization}, we will look at various optimization strategies:
|
||||
|
||||
{\bf\noOptEmpiric{}} uses the same three empiric parameters \mTXP{}, \mPLE{}, \mWAF{} for each \docAPshort{} in combination
|
||||
with its position, which is well known from the floorplan.
|
||||
|
||||
{\bf\optParamsAllAP{}} is the same as above, except that the three parameters are optimized
|
||||
using the reference measurements.
|
||||
|
||||
{\bf\optParamsEachAP{}} optimizes the three parameters per \docAP{} instead of using the same
|
||||
parameters for all.
|
||||
|
||||
{\bf\optParamsPosEachAP{}} does not need any prior knowledge and will optimize all six parameters
|
||||
(3D position, \mTXP, \mPLE, \mWAF) based on the reference measurements.
|
||||
|
||||
{\bf\optPerFloor{}} and {\bf\optPerRegion{}} are just like \optParamsPosEachAP{} except that
|
||||
there are several sub-models that are optimized for one floor / region instead of the whole building.
|
||||
|
||||
Figure \ref{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, even with \optPerRegion{} the maximal error is relatively high due to some locations that do
|
||||
not fit the model at all. Looking at the optimization results for \mTXP{}, \mPLE{} and \mWAF{} supports
|
||||
this finding. While the median for those values based on all optimized transmitters is totally sane
|
||||
(-42, 2.4, 6.0), the minimum and maximum values are clearly outside of the physically possible range.
|
||||
|
||||
|
||||
\begin{figure}
|
||||
\input{gfx/wifi_model_error_0_95.tex}
|
||||
\input{gfx/wifi_model_error_95_100.tex}
|
||||
\label{fig:wifiModelError}
|
||||
\caption{
|
||||
Comparison between different optimization strategies by examining the error (in \decibel) at each reference measurement.
|
||||
The higher the number of variable parameters, the better the model resembles real world conditions.
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
|
||||
%TXP: cnt(34) min(-67.698959) max(4.299183) range(71.998146) med(-41.961170) avg(-41.659286) stdDev(17.742294)
|
||||
%EXP: cnt(34) min(0.932817) max(4.699000) range(3.766183) med(2.380410) avg(2.546959) stdDev(1.074687)
|
||||
%WAF: cnt(34) min(-27.764957) max(5.217187) range(32.982143) med(-5.921916) avg(-7.579522) stdDev(5.840527)
|
||||
%Pos: cnt(34) min(3.032438) max(26.767128) range(23.734690) med(7.342710) avg(8.571227) stdDev(4.801449)
|
||||
|
||||
Looking at figure \ref{fig:wifiIndoorOutdoor} indicates the strong attenuation imposed by the metallised
|
||||
windows installed within our building. Even though the transmitter is only \SI{5}{\meter} away from the reference
|
||||
measurement, the windows attenuate the signal as much as \SI{50}{\meter} of corridor.
|
||||
While \optPerRegion{} is able to overcome some of those situations, it requires a profound prior knowledge
|
||||
when selecting the regions that model should work with.
|
||||
%Such issues can only be fixed using more appropriate models that consider walls and other obstacles.
|
||||
|
||||
\begin{figure}
|
||||
\begin{figure}[b]
|
||||
\centering
|
||||
\input{gfx/compare-wifi-in-out.tex}
|
||||
\label{fig:wifiIndoorOutdoor}
|
||||
@@ -109,31 +63,81 @@
|
||||
the metallised windows (dashed outline) attenuate the signal by over \SI{30}{\decibel} (lower rectangle).
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
|
||||
BESCHREIBEN
|
||||
Figure \ref{fig:wifiIndoorOutdoor} depicts the to-be-expected issues by examining the signal strength
|
||||
values of the reference measurements for one \docAP{}.
|
||||
Even though the transmitter is only \SI{5}{\meter} away from the reference
|
||||
measurement (small box), the metallised windows attenuate the signal as much as \SI{50}{\meter}
|
||||
of corridor (wide box). The model described in section \ref{sec:sigStrengthModel} will not be able
|
||||
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:
|
||||
|
||||
{\em\noOptEmpiric{}} uses the same three empiric parameters \mTXP{}, \mPLE{}, \mWAF{} for each \docAPshort{} in combination
|
||||
with its position, which is well known from the floorplan.
|
||||
|
||||
{\em\optParamsAllAP{}} is the same as above, except that the three parameters are optimized
|
||||
using the reference measurements.
|
||||
|
||||
{\em\optParamsEachAP{}} optimizes the three parameters per \docAP{} instead of using the same
|
||||
parameters for all.
|
||||
|
||||
{\em\optParamsPosEachAP{}} does not need any prior knowledge and will optimize all six parameters
|
||||
(3D position, \mTXP, \mPLE, \mWAF) based on the reference measurements.
|
||||
|
||||
{\em\optPerFloor{}} and {\em\optPerRegion{}} are just like \optParamsPosEachAP{} except that
|
||||
there are several sub-models that are optimized for one floor / region instead of the whole building.
|
||||
|
||||
Figure \ref{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, even with {\em \optPerRegion{}} the maximal error is relatively high due to some locations that do
|
||||
not fit the model at all. Looking at the optimization results for \mTXP{}, \mPLE{} and \mWAF{} supports
|
||||
this finding. While the median for those values based on all optimized transmitters is totally sane
|
||||
(\SI{-42}{\decibel{}m}, \SI{2.4}, \SI{-6.0}{\decibel}), the minimum and maximum values are clearly outside of the physically possible range.
|
||||
|
||||
The same holds for the estimated transmitter position when using {\em \optParamsPosEachAP{}}: The median
|
||||
distance between estimated and real position is $\sim$\SI{8}{\meter} and the maximum $\sim$\SI{27}{\meter}.
|
||||
For \SI{68}{\percent} of all installed transmitters, the estimated floor-number matched the real location.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\input{gfx/wifiOptApPosDifference.tex}
|
||||
\caption{UNNÖTIG?}
|
||||
\input{gfx/wifi_model_error_0_95.tex}
|
||||
%\input{gfx/wifi_model_error_95_100.tex}
|
||||
\label{fig:wifiModelError}
|
||||
\caption{
|
||||
Comparison between different optimization strategies by examining the error (in \decibel) at each reference measurement.
|
||||
The higher the number of variable parameters, the better the model resembles real world conditions.
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
|
||||
% statds:
|
||||
%TXP: cnt(34) min(-67.698959) max(4.299183) range(71.998146) med(-41.961170) avg(-41.659286) stdDev(17.742294)
|
||||
%EXP: cnt(34) min(0.932817) max(4.699000) range(3.766183) med(2.380410) avg(2.546959) stdDev(1.074687)
|
||||
%WAF: cnt(34) min(-27.764957) max(5.217187) range(32.982143) med(-5.921916) avg(-7.579522) stdDev(5.840527)
|
||||
%Pos: cnt(34) min(3.032438) max(26.767128) range(23.734690) med(7.342710) avg(8.571227) stdDev(4.801449)
|
||||
|
||||
While {\em \optPerRegion{}} is able to overcome the indoor vs. outdoor issues depicted in
|
||||
figure \ref{fig:wifiIndoorOutdoor} e.g. by using a separate bounding box just for the outdoor area,
|
||||
it obviously requires a profound prior knowledge when selecting the individual regions for the sub-model.
|
||||
%Such issues can only be fixed using more appropriate models that consider walls and other obstacles.
|
||||
|
||||
% das ist wohl zu viel
|
||||
%\begin{figure}
|
||||
% \centering
|
||||
% \input{gfx/wifiOptApPosDifference.tex}
|
||||
% \caption{zu viel, oder?}
|
||||
%\end{figure}
|
||||
|
||||
|
||||
% -------------------------------- number of fingerprints -------------------------------- %
|
||||
|
||||
wie viele fingerprints sind genug?
|
||||
|
||||
As we try to minimize the system's setup time as much as possible, we need to determine
|
||||
the amount of necessary reference measurements for the optimization to produce viable model parameters.
|
||||
Depending on the number of to-be-optimized model parameters, more measurements are required.
|
||||
This especially holds true for {\em \optPerRegion{}} where each region needs at least some measurements
|
||||
to determine transmitter positions and parameters.
|
||||
|
||||
Haengt vom modell ab
|
||||
|
||||
bei den einfachen modellen aendert sich erstmal nicht viel. man hat ja viele testdaten für ein modell mit wenigen parametern.
|
||||
je mehr variable wird, z.B. position, und das ganze pro AP und nicht füer alle, desto wichtiger wird, dass die fingerprints passen.
|
||||
|
||||
neuralgische schwachpunkte wie betonierte treppenhäuser kann man weglassen, dadurch wird der rest etwas besser,
|
||||
die treppenhäuser ansich aber natürlich nochmal schlechter. siehe \ref{fig:wifiNumFingerprints}
|
||||
|
||||
\begin{figure}
|
||||
\begin{figure}[b]
|
||||
\input{gfx/wifi_model_error_num_fingerprints_method_5_0_90.tex}
|
||||
\input{gfx/wifi_model_error_num_fingerprints_method_5_90_100.tex}
|
||||
\label{fig:wifiNumFingerprints}%
|
||||
@@ -141,13 +145,27 @@
|
||||
number of fingerprints
|
||||
}%
|
||||
\end{figure}
|
||||
|
||||
|
||||
|
||||
Figure \ref{fig:wifiNumFingerprints} depicts the impact of reducing the number of fingerprints
|
||||
for the {\em \optPerRegion{}} strategy. Only using 60 of the 121 fingerprints yields only a slightly
|
||||
increasing model error and still provides good results. While using only \SI{25}{\percent} of the reference
|
||||
measurements increases the error rapidly, \SI{75}{\percent} of all considered errors are still better
|
||||
than using just empiric values without any reference measurements.
|
||||
|
||||
Additionally we examined the impact of skipping reference measurements for difficult locations
|
||||
like aforementioned staircases, surrounded by concrete. While this slightly decreases the
|
||||
estimation error for all other positions, the error within those locations is dramatically
|
||||
increasing (see lower half of figure \ref{fig:wifiNumFingerprints}). It is thus highly recommended
|
||||
to include such locations.
|
||||
|
||||
|
||||
|
||||
|
||||
% -------------------------------- wifi walk error -------------------------------- %
|
||||
|
||||
Using aforementioned model setups and the measurements $\mRssiVec$ determined by scanning for nearby \docAPshort{}s,
|
||||
\subsection{Location estimation error}
|
||||
|
||||
Using the optimized model setups and the measurements $\mRssiVec$ determined by scanning for nearby \docAPshort{}s,
|
||||
we can directly perform a location estimation by rewriting \refeq{eq:wifiProb}:
|
||||
|
||||
\begin{equation}
|
||||
@@ -180,7 +198,7 @@
|
||||
using linear interpolation between adjacent markers.
|
||||
|
||||
% walked paths
|
||||
\begin{figure}
|
||||
\begin{figure}[t]
|
||||
{
|
||||
\centering
|
||||
\input{gfx/all_walks.tex}
|
||||
@@ -196,7 +214,7 @@
|
||||
for each \docWIFI{} measurement within the recorded paths (3756 \docAPshort{} scans in total)
|
||||
against the corresponding ground-truth, which indicates the absolute 3D error in meter.
|
||||
|
||||
\begin{figure}
|
||||
\begin{figure}[b]
|
||||
\input{gfx/modelPerformance_meter.tex}
|
||||
\label{fig:modelPerformance}
|
||||
\caption{
|
||||
@@ -217,7 +235,7 @@
|
||||
|
||||
% -------------------------------- plots indicating walk issues -------------------------------- %
|
||||
|
||||
\begin{figure}
|
||||
\begin{figure}[t]
|
||||
\input{gfx/wifiMultimodality.tex}
|
||||
\label{fig:wifiMultimodality}
|
||||
\caption{
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
|
||||
\subsection{Signal Strength Prediction Model}
|
||||
\label{sec:sigStrengthModel}
|
||||
|
||||
\begin{equation}
|
||||
\mRssi = \mTXP{} + 10 \mPLE{} + \log_{10} \frac{d}{d_0} + \mGaussNoise{}
|
||||
@@ -97,6 +98,16 @@
|
||||
|
||||
\subsection{Model Parameter Optimization}
|
||||
|
||||
\begin{figure}[t!]
|
||||
\input{gfx/wifiop_show_optfunc_params}
|
||||
\label{fig:wifiOptFuncTXPEXP}
|
||||
\caption{
|
||||
The average error (in \SI{}{\decibel}) between all reference measurements and corresponding model predictions
|
||||
for one \docAPshort{} dependent on \docTXP{} \mTXP{} and \docEXP{} \mPLE{}
|
||||
[known position $\mPosAPVec{}$, fixed \mWAF{}] denotes a convex function.
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
For systems that demand a higher accuracy, one can choose a compromise between fingerprinting and
|
||||
pure empiric model parameters where (some) model parameters are optimized,
|
||||
based on a few reference measurements throughout the building.
|
||||
@@ -115,15 +126,7 @@
|
||||
TODO TODO TODO
|
||||
\end{equation}
|
||||
|
||||
\begin{figure}
|
||||
\input{gfx/wifiop_show_optfunc_params}
|
||||
\label{fig:wifiOptFuncTXPEXP}
|
||||
\caption{
|
||||
The average error (in \SI{}{\decibel}) between all reference measurements and corresponding model predictions
|
||||
for one \docAPshort{} dependent on \docTXP{} \mTXP{} and \docEXP{} \mPLE{}
|
||||
[known position $\mPosAPVec{}$, fixed \mWAF{}] denotes a convex function.
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
|
||||
However, optimizing an unknown transmitter position usually means optimizing a non-convex, discontinuous
|
||||
function, especially when the $z$-coordinate, that influences the number of attenuating floors/ceilings,
|
||||
@@ -133,7 +136,7 @@
|
||||
As can be seen in figure \ref{fig:wifiOptFuncPosYZ}, there are two local minima and only one of
|
||||
both also is a global one.
|
||||
|
||||
\begin{figure}
|
||||
\begin{figure}[t!]
|
||||
\input{gfx/wifiop_show_optfunc_pos_yz}
|
||||
\label{fig:wifiOptFuncPosYZ}
|
||||
\caption{
|
||||
|
||||
Reference in New Issue
Block a user