current TeX and code
This commit is contained in:
37
main.cpp
37
main.cpp
@@ -443,10 +443,26 @@ void plotAllFingerprints(Floorplan::IndoorMap* map) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
using Walk = std::vector<Point3>;
|
||||||
|
|
||||||
|
float getLength(const Walk& walk) {
|
||||||
|
|
||||||
|
float len = 0;
|
||||||
|
for (size_t i = 0; i < walk.size()-1; ++i) {
|
||||||
|
const Point3 p1 = walk[i+0];
|
||||||
|
const Point3 p2 = walk[i+1];
|
||||||
|
const float dist = p1.getDistance(p2);
|
||||||
|
len += dist;
|
||||||
|
}
|
||||||
|
return len;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/** show all walked paths */
|
/** show all walked paths */
|
||||||
void plotAllWalks(Floorplan::IndoorMap* map) {
|
void plotAllWalks(Floorplan::IndoorMap* map) {
|
||||||
|
|
||||||
using Walk = std::vector<Point3>;
|
|
||||||
|
|
||||||
Walk path1 = FloorplanHelper::getGroundTruth(map, Settings::GroundTruth::path1);
|
Walk path1 = FloorplanHelper::getGroundTruth(map, Settings::GroundTruth::path1);
|
||||||
Walk path2 = FloorplanHelper::getGroundTruth(map, Settings::GroundTruth::path2);
|
Walk path2 = FloorplanHelper::getGroundTruth(map, Settings::GroundTruth::path2);
|
||||||
@@ -456,6 +472,12 @@ void plotAllWalks(Floorplan::IndoorMap* map) {
|
|||||||
Walk path_toni_inst_2 = FloorplanHelper::getGroundTruth(map, Settings::GroundTruth::path_toni_inst_2);
|
Walk path_toni_inst_2 = FloorplanHelper::getGroundTruth(map, Settings::GroundTruth::path_toni_inst_2);
|
||||||
Walk path_toni_inst_3 = FloorplanHelper::getGroundTruth(map, Settings::GroundTruth::path_toni_inst_3);
|
Walk path_toni_inst_3 = FloorplanHelper::getGroundTruth(map, Settings::GroundTruth::path_toni_inst_3);
|
||||||
|
|
||||||
|
std::cout << "path1: " << getLength(path1) << std::endl;
|
||||||
|
std::cout << "path2: " << getLength(path2) << std::endl;
|
||||||
|
std::cout << "inst_1: " << getLength(path_toni_inst_1) << std::endl;
|
||||||
|
std::cout << "inst_2: " << getLength(path_toni_inst_2) << std::endl;
|
||||||
|
std::cout << "inst_3: " << getLength(path_toni_inst_3) << std::endl;
|
||||||
|
|
||||||
const std::vector<Walk> walks = {
|
const std::vector<Walk> walks = {
|
||||||
path1,
|
path1,
|
||||||
path2,
|
path2,
|
||||||
@@ -481,9 +503,14 @@ void plotAllWalks(Floorplan::IndoorMap* map) {
|
|||||||
p->addStartIndicator(walk[0], colors[i]);
|
p->addStartIndicator(walk[0], colors[i]);
|
||||||
|
|
||||||
K::GnuplotSplotElementLines* line = new K::GnuplotSplotElementLines();
|
K::GnuplotSplotElementLines* line = new K::GnuplotSplotElementLines();
|
||||||
line->getStroke().setWidth(2);
|
line->getStroke().setWidth(4);
|
||||||
line->getStroke().getColor().setHexStr(colors[i]);
|
line->getStroke().getColor().setHexStr(colors[i]);
|
||||||
line->setTitle(titles[i]);
|
line->setTitle(titles[i]);
|
||||||
|
|
||||||
|
if (i == 4) {
|
||||||
|
line->getStroke().setType(K::GnuplotDashtype::DOTTED);
|
||||||
|
}
|
||||||
|
|
||||||
//line->getStroke().setType( (i > 3) ? K::GnuplotDashtype::DASHED : K::GnuplotDashtype::SOLID );
|
//line->getStroke().setType( (i > 3) ? K::GnuplotDashtype::DASHED : K::GnuplotDashtype::SOLID );
|
||||||
|
|
||||||
float oy = 0;
|
float oy = 0;
|
||||||
@@ -500,7 +527,7 @@ void plotAllWalks(Floorplan::IndoorMap* map) {
|
|||||||
p->splot.getKey().setVisible(true);
|
p->splot.getKey().setVisible(true);
|
||||||
//p->splot.getKey().setPosition(K::GnuplotKey::Hor::RIGHT, K::GnuplotKey::Ver::TOP);
|
//p->splot.getKey().setPosition(K::GnuplotKey::Hor::RIGHT, K::GnuplotKey::Ver::TOP);
|
||||||
p->splot.getKey().setPosition(K::GnuplotCoordinate2(0.99, 0.99, K::GnuplotCoordinateSystem::SCREEN));
|
p->splot.getKey().setPosition(K::GnuplotCoordinate2(0.99, 0.99, K::GnuplotCoordinateSystem::SCREEN));
|
||||||
p->splot.getKey().setSampleLength(0.5);
|
p->splot.getKey().setSampleLength(1.0);
|
||||||
//p->splot.getKey().setWidthIncrement(-4);
|
//p->splot.getKey().setWidthIncrement(-4);
|
||||||
p->splot.setStringMod(new K::GnuplotStringModLaTeX());
|
p->splot.setStringMod(new K::GnuplotStringModLaTeX());
|
||||||
|
|
||||||
@@ -1227,9 +1254,9 @@ int main(void) {
|
|||||||
Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile(Settings::fMap);
|
Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile(Settings::fMap);
|
||||||
|
|
||||||
|
|
||||||
//plotAllWalks(map);
|
plotAllWalks(map);
|
||||||
|
|
||||||
compareAll();
|
//compareAll();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,14 @@
|
|||||||
|
|
||||||
% intro
|
% intro
|
||||||
|
|
||||||
\commentByFrank{reihenfolge so jetzt klar?}
|
Within our experiments we will first have a look at model optimizations to reduce the error (in \decibel)
|
||||||
Within our experiments we will first have a look at model optimizations to reduce the error
|
between model predictions and real-world conditions in section \ref{sec:evalModelOpt}.
|
||||||
between model predictions and real-world conditions.
|
%
|
||||||
Hereafter we examine the resulting accuracy when using the optimized models for localization
|
Hereafter, in section \ref{sec:evalWifiMeter} we examine the resulting accuracy (in \meter)
|
||||||
using just the \docWIFI{} component without additional sensors or assumptions.
|
when using the optimized models for localization solely by the \docWIFI{} component without additional sensors, assumptions or filtering.
|
||||||
|
%
|
||||||
Finally, all models are evaluated in the context of our indoor localization system \refeq{eq:recursiveDensity},
|
Finally, all models are evaluated in the context of our indoor localization system \refeq{eq:recursiveDensity},
|
||||||
using additional smartphone sensors and the building's floorplan.
|
using additional smartphone sensors and the building's floorplan in section \ref{sec:evalFiltered}.
|
||||||
|
|
||||||
All optimizations and evaluations took place within two adjacent buildings (4 and 2 floors, respectively)
|
All optimizations and evaluations took place within two adjacent buildings (4 and 2 floors, respectively)
|
||||||
and two connected outdoor regions (entrance and inner courtyard),
|
and two connected outdoor regions (entrance and inner courtyard),
|
||||||
@@ -35,9 +36,10 @@
|
|||||||
% -------------------------------- optimization -------------------------------- %
|
% -------------------------------- optimization -------------------------------- %
|
||||||
|
|
||||||
\subsection{Model optimization}
|
\subsection{Model optimization}
|
||||||
|
\label{sec:evalModelOpt}
|
||||||
|
|
||||||
As the signal strength prediction model is the core of the absolute positioning component
|
As the signal strength prediction model is the core of the absolute positioning component
|
||||||
described in section \ref{sec:system}, we start with the model parameter optimization (see \ref{sec:optimization}).
|
described in section \ref{sec:system}, we start with the model parameter optimization (see section \ref{sec:optimization}).
|
||||||
\mTXP{}, \mPLE{} and \mWAF{} will be estimated based on some reference measurements using
|
\mTXP{}, \mPLE{} and \mWAF{} will be estimated based on some reference measurements using
|
||||||
various optimization strategies. The results of those optimization strategies are compared
|
various optimization strategies. The results of those optimization strategies are compared
|
||||||
with each other and an empiric parameter choice:
|
with each other and an empiric parameter choice:
|
||||||
@@ -48,7 +50,7 @@
|
|||||||
|
|
||||||
\reffig{fig:referenceMeasurements} depicts the location of the used 121 reference measurements.
|
\reffig{fig:referenceMeasurements} depicts the location of the used 121 reference measurements.
|
||||||
Each location was scanned 30 times ($\approx$ \SI{25}{\second} scan time),
|
Each location was scanned 30 times ($\approx$ \SI{25}{\second} scan time),
|
||||||
non-permanent \docAP{}s were removed, the values were grouped per physical transmitter (see \ref{sec:vap})
|
non-permanent \docAP{}s were removed, the values were grouped per physical transmitter (see section \ref{sec:vap})
|
||||||
and aggregated to form the average signal strength per transmitter.
|
and aggregated to form the average signal strength per transmitter.
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
@@ -64,8 +66,8 @@
|
|||||||
\begin{subfigure}[t!]{0.48\textwidth}
|
\begin{subfigure}[t!]{0.48\textwidth}
|
||||||
\input{gfx2/model-bboxes.tex}
|
\input{gfx2/model-bboxes.tex}
|
||||||
\caption{
|
\caption{
|
||||||
Each distinct floor-color denotes one model (7 in total) for {\em \optPerRegion{}}.
|
Each distinct floor-color denotes a region (6 indoors, 1 outdoors) 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 describe the region's shape.
|
||||||
}
|
}
|
||||||
\label{fig:modelBBoxes}
|
\label{fig:modelBBoxes}
|
||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
@@ -120,17 +122,17 @@
|
|||||||
|
|
||||||
\item{
|
\item{
|
||||||
{\em\optParamsAllAP{}} is the same as above, except that the three parameters are optimized
|
{\em\optParamsAllAP{}} is the same as above, except that the three parameters are optimized
|
||||||
using the reference measurements. However, all transmitters share the same three parameters.
|
using the reference measurements (convex function). All transmitters share the same three parameters.
|
||||||
}
|
}
|
||||||
|
|
||||||
\item{
|
\item{
|
||||||
{\em\optParamsEachAP{}} optimizes the three parameters per \docAP{} instead of using the same
|
{\em\optParamsEachAP{}} optimizes the three parameters per \docAP{} instead of using the same
|
||||||
parameters for all.
|
parameters for all. This still denotes a convex function per transmitter.
|
||||||
}
|
}
|
||||||
|
|
||||||
\item{
|
\item{
|
||||||
{\em\optParamsPosEachAP{}} does not need any prior knowledge and will optimize all six parameters
|
{\em\optParamsPosEachAP{}} does not need any prior knowledge and will optimize all six parameters
|
||||||
(3D position, \mTXP, \mPLE, \mWAF) based on the reference measurements.
|
(3D position, \mTXP, \mPLE, \mWAF) based on the reference measurements (non-convex function).
|
||||||
}
|
}
|
||||||
|
|
||||||
\item{
|
\item{
|
||||||
@@ -345,11 +347,11 @@
|
|||||||
% -------------------------------- wifi walk error -------------------------------- %
|
% -------------------------------- wifi walk error -------------------------------- %
|
||||||
|
|
||||||
\subsection{\docWIFI{} location estimation error}
|
\subsection{\docWIFI{} location estimation error}
|
||||||
|
\label{sec:evalWifiMeter}
|
||||||
|
|
||||||
\todo{uebergang jetzt besser?}
|
|
||||||
Having optimized several signal strength prediction models, we can now examine the resulting localization
|
Having optimized several signal strength prediction models, we can now examine the resulting localization
|
||||||
accuracy for each. For now, this will just cover the \docWIFI{} component itself.
|
accuracy (in \meter) 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.
|
The impact of fusing additional sensors and a adding prior knowledge provided by a transition model will be evaluated later.
|
||||||
|
|
||||||
|
|
||||||
%Using the optimized model setups and the measurements $\mRssiVec$ determined by scanning for nearby \docAPshort{}s,
|
%Using the optimized model setups and the measurements $\mRssiVec$ determined by scanning for nearby \docAPshort{}s,
|
||||||
@@ -381,7 +383,8 @@
|
|||||||
|
|
||||||
In \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.
|
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}$,
|
||||||
|
which is an empirical choice based on prior experiments.
|
||||||
|
|
||||||
The quality of the estimated location is determined by using the Euclidean distance between estimation
|
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$
|
$\mPosVec^*$ and the pedestrian's ground truth position at the time the scan $\mRssiVec$
|
||||||
@@ -403,6 +406,9 @@
|
|||||||
\caption{
|
\caption{
|
||||||
Overview of all conducted paths, each starting at the denoted rectangle.
|
Overview of all conducted paths, each starting at the denoted rectangle.
|
||||||
Outdoor areas are marked in green.
|
Outdoor areas are marked in green.
|
||||||
|
The length of the paths is as follows:
|
||||||
|
path 1: \SI{207}{\meter}, path 2: \SI{138}{\meter}, path 3: \SI{86}{\meter}, path 4: \SI{140}{\meter},
|
||||||
|
and path 5: \SI{97}{\meter}.
|
||||||
}
|
}
|
||||||
\label{fig:allWalks}
|
\label{fig:allWalks}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
@@ -491,10 +497,10 @@
|
|||||||
as likely as the pedestrian's actual location, we examined various approaches.
|
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.
|
Unfortunately, most of which did not provide a viable enhancement under all conditions for the performed walks.
|
||||||
|
|
||||||
\commentByFrank{ja, eig gehoert das vor in die theorie, aber da es so kurz ist und vorne immer die ueberleitung kaputt macht
|
%\commentByFrank{ja, eig gehoert das vor in die theorie, aber da es so kurz ist und vorne immer die ueberleitung kaputt macht
|
||||||
oder anderen dingen vorgreifen wuerde, steht es hier}
|
%oder anderen dingen vorgreifen wuerde, steht es hier}
|
||||||
The misclassification-rate is determined by counting the amount of (random) locations within
|
The misclassification-rate is determined by counting the amount of (random) locations within
|
||||||
the building that produce a similar probability \refeq{eq:wifiProb} as the actual ground-truth
|
the building that produce a similar probability \refeq{eq:wifiProb} compared to the actual ground-truth
|
||||||
position.
|
position.
|
||||||
|
|
||||||
One possibility to dissolve such an equal \docWIFI{}-likelihood between two (or more) locations is,
|
One possibility to dissolve such an equal \docWIFI{}-likelihood between two (or more) locations is,
|
||||||
@@ -574,6 +580,7 @@
|
|||||||
% -------------------------------- final system -------------------------------- %
|
% -------------------------------- final system -------------------------------- %
|
||||||
|
|
||||||
\subsection{Filtered location estimation error}
|
\subsection{Filtered location estimation error}
|
||||||
|
\label{sec:evalFiltered}
|
||||||
|
|
||||||
After examining the \docWIFI{} component on its own, we will now analyze the impact of previously discussed model
|
After examining the \docWIFI{} component on its own, we will now analyze the impact of previously discussed model
|
||||||
optimizations on our smartphone-based indoor localization system described in section \ref{sec:system}, based on
|
optimizations on our smartphone-based indoor localization system described in section \ref{sec:system}, based on
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
knowledge to work. To infer the probability of the pedestrian currently
|
knowledge to work. To infer the probability of the pedestrian currently
|
||||||
residing at an arbitrary location, the signal strengths received
|
residing at an arbitrary location, the signal strengths received
|
||||||
by the smartphone are compared with the signal strengths which should be received at this
|
by the smartphone are compared with the signal strengths which should be received at this
|
||||||
location (prior knowledge). As RF-signals are highly dependent
|
location (prior knowledge). As radio frequency (RF) signals are highly dependent
|
||||||
on the surroundings, those values can change rapidly within meters.
|
on the surroundings, those values can change rapidly within meters.
|
||||||
%
|
%
|
||||||
That is why fingerprinting became popular, where the required prior knowledge
|
That is why fingerprinting became popular, where the required prior knowledge
|
||||||
|
|||||||
@@ -47,7 +47,8 @@
|
|||||||
%This induces both, the need for more complex prediction models and the need for filtering approaches
|
%This induces both, the need for more complex prediction models and the need for filtering approaches
|
||||||
%to limit the impact of potentially erroneous readings.
|
%to limit the impact of potentially erroneous readings.
|
||||||
%
|
%
|
||||||
Approaches based on timing like TOA and TDOA, as used within the GPS, or methods estimating the signal's angle-of-arrival (AOA)
|
Approaches based on timing like time of arrival (TOA) and time difference of arrival (TDOA),
|
||||||
|
as used within the GPS, or methods estimating the signal's angle of arrival (AOA)
|
||||||
are more accurate, and mostly invariant to architectural obstacles \cite{TimeDifferenceOfArrival1, TOAAOA}.
|
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
|
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
|
support measuring time-delays down to a few picoseconds. This is why those techniques often need special (measurement) hardware
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
The corresponding observation vector, given by the smartphone's sensors, is defined as
|
The corresponding observation vector, given by the smartphone's sensors, is defined as
|
||||||
%
|
%
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\mObsVec = (\mRssiVecWiFi{}, \mObsSteps, \mObsHeadingRel, \mObsHeadingAbs, \mPressure, \mObsGPS) \enspace.
|
\mObsVec = (\mRssiVecWiFi{}, \mObsSteps, \mObsHeadingRel, \mObsHeadingAbs, \mPressure, \mObsGPSVec) \enspace.
|
||||||
\end{equation}
|
\end{equation}
|
||||||
%
|
%
|
||||||
$\mRssiVecWiFi$ contains the signal strength measurements of all \docAP{}s (\docAPshort{}s) currently visible to the phone,
|
$\mRssiVecWiFi$ contains the signal strength measurements of all \docAP{}s (\docAPshort{}s) currently visible to the phone,
|
||||||
@@ -34,7 +34,9 @@
|
|||||||
$\mObsHeadingRel$ the (relative) angular change since the last filter-step,
|
$\mObsHeadingRel$ the (relative) angular change since the last filter-step,
|
||||||
$\mObsHeadingAbs$ the vague absolute heading as provided by the magnetometer,
|
$\mObsHeadingAbs$ the vague absolute heading as provided by the magnetometer,
|
||||||
$\mPressure$ the ambient pressure in hPa and
|
$\mPressure$ the ambient pressure in hPa and
|
||||||
$\mObsGPS = ( \mObsGPSlat, \mObsGPSlon, \mObsGPSaccuracy)$ the current location (if available) given by the GPS.
|
$\mObsGPSVec = ( \mObsGPSlat, \mObsGPSlon, \mObsGPSaccuracy)$ the current location given by the GPS.
|
||||||
|
If the latter is currently not available, this is indicated by a special value combination, which
|
||||||
|
is checked within the evaluation.
|
||||||
|
|
||||||
|
|
||||||
Assuming statistical independence, the state-evaluation density from \refeq{eq:recursiveDensity} can be written as
|
Assuming statistical independence, the state-evaluation density from \refeq{eq:recursiveDensity} can be written as
|
||||||
@@ -60,7 +62,8 @@
|
|||||||
|
|
||||||
|
|
||||||
Absolute location information is provided by $p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}$ and
|
Absolute location information is provided by $p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}$ and
|
||||||
$p(\vec{o}_t \mid \vec{q}_t)_\text{gps}$, if available.
|
$p(\vec{o}_t \mid \vec{q}_t)_\text{gps}$, if available. Otherwise, their probability
|
||||||
|
is uniformly distributed (same likelihood for any location).
|
||||||
The vague absolute heading provided by
|
The vague absolute heading provided by
|
||||||
the smartphone's magnetometer is included using a simple heuristic for
|
the smartphone's magnetometer is included using a simple heuristic for
|
||||||
$p(\vec{o}_t \mid \vec{q}_t)_\text{abshead}$. Finally, the barometer is used
|
$p(\vec{o}_t \mid \vec{q}_t)_\text{abshead}$. Finally, the barometer is used
|
||||||
@@ -70,7 +73,8 @@
|
|||||||
Furthermore, the smartphone's IMU is used to infer the number of steps
|
Furthermore, the smartphone's IMU is used to infer the number of steps
|
||||||
and the relative turn angle the pedestrian has taken since the last filter-update.
|
and the relative turn angle the pedestrian has taken since the last filter-update.
|
||||||
While those values could be used within the evaluation \refeq{eq:evalDensity}
|
While those values could be used within the evaluation \refeq{eq:evalDensity}
|
||||||
we apply them within the transition model to estimate the pedestrian's potential
|
we apply them within the transition model (see \cite{Koeping14-PSA, Ebner2016OPN})
|
||||||
|
to estimate the pedestrian's potential
|
||||||
movement $p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$ within the building.
|
movement $p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$ within the building.
|
||||||
Using real values to perform this movement-update instead of just scattering randomly
|
Using real values to perform this movement-update instead of just scattering randomly
|
||||||
along the floorplan followed by downvoting within the evaluation \refeq{eq:evalDensity}
|
along the floorplan followed by downvoting within the evaluation \refeq{eq:evalDensity}
|
||||||
@@ -82,15 +86,20 @@
|
|||||||
%
|
%
|
||||||
Compared to this reference, absolute heading and GPS have been added as additional sensors
|
Compared to this reference, absolute heading and GPS have been added as additional sensors
|
||||||
to further enhance the localization. As can be seen in \refeq{eq:evalAbsHead} and \refeq{eq:evalGPS},
|
to further enhance the localization. As can be seen in \refeq{eq:evalAbsHead} and \refeq{eq:evalGPS},
|
||||||
their values are incorporated using a simple distribution that models each sensor's uncertainty.
|
their values are incorporated using a distribution (normalized by $\xi$) that matches each sensor's uncertainty.
|
||||||
|
The difference between the GPS' estimation and potential state $\mStateVec$ is given by the
|
||||||
|
Euclidean 2D $\text{distance}(\dots)$ in \refeq{eq:evalGPS}.
|
||||||
|
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
p(\vec{o}_t \mid \vec{q}_t)_\text{abshead}
|
p(\vec{o}_t \mid \vec{q}_t)_\text{abshead}
|
||||||
=
|
= \xi
|
||||||
\begin{cases}
|
\begin{cases}
|
||||||
0.7 & | \mObsVec_{\mObsHeadingAbs} - \mStateVec_{\mStateHeading} | < \SI{120}{\degree} \\
|
0.7 & | \mObs_t^{\mObsHeadingAbs} - \mState_t^{\mStateHeading} | < \SI{120}{\degree} \\
|
||||||
0.3 & \text{else}
|
0.3 & \text{else}
|
||||||
\end{cases}
|
\end{cases}
|
||||||
|
,\enskip
|
||||||
|
\xi = \text{const}
|
||||||
\label{eq:evalAbsHead}
|
\label{eq:evalAbsHead}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
@@ -104,7 +113,7 @@
|
|||||||
), \enskip
|
), \enskip
|
||||||
d = \text{distance}(
|
d = \text{distance}(
|
||||||
(\mObsGPS_\text{lat}, \mObsGPS_\text{lon}),
|
(\mObsGPS_\text{lat}, \mObsGPS_\text{lon}),
|
||||||
(\mStateVec_x, \mStateVec_y)
|
(\mState_t^x, \mState_t^y)
|
||||||
), \enskip
|
), \enskip
|
||||||
\sigma = \mObsGPS_\text{accuracy}
|
\sigma = \mObsGPS_\text{accuracy}
|
||||||
\label{eq:evalGPS}
|
\label{eq:evalGPS}
|
||||||
@@ -116,8 +125,8 @@
|
|||||||
and the pedestrian is required to move outdoors to enter the next facility.
|
and the pedestrian is required to move outdoors to enter the next facility.
|
||||||
Indoors the GPS will usually not provide viable location estimations and the system has to
|
Indoors the GPS will usually not provide viable location estimations and the system has to
|
||||||
solely rely on the smartphone's \docWIFI{} observations.
|
solely rely on the smartphone's \docWIFI{} observations.
|
||||||
Therefore its crucial for this component to supply location
|
Therefore its crucial for the \docWIFI{} component to supply location
|
||||||
estimations that are as accurate as possible,
|
estimations that are as accurate as possible,
|
||||||
while the component itself must be easy to set-up and maintain.
|
while the component itself must be easy to set-up and maintain.
|
||||||
|
|
||||||
\todo{ueberleitung besser?}
|
%\todo{ueberleitung besser?}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
\label{eq:wifiObs}
|
\label{eq:wifiObs}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
where matching a single signal strength observation against the reference is given by
|
\noindent where matching a single signal strength observation against the reference is given by
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
p(\mRssi_i \mid \mPosVec) =
|
p(\mRssi_i \mid \mPosVec) =
|
||||||
@@ -127,6 +127,8 @@
|
|||||||
The target function \refeq{eq:optTarget} optimizes the model-parameters for one \docAP{} by reducing the squared error between
|
The target function \refeq{eq:optTarget} optimizes the model-parameters for one \docAP{} by reducing the squared error between
|
||||||
reference measurements $s_{\mPosVec} \in \vec{s}$ with well-known location $\mPosVec$ and corresponding
|
reference measurements $s_{\mPosVec} \in \vec{s}$ with well-known location $\mPosVec$ and corresponding
|
||||||
model predictions $\mu_{\mPosVec}$.
|
model predictions $\mu_{\mPosVec}$.
|
||||||
|
The number of floors between $\mPosVec$ and the transmitter's location $\mPosAPVec$ is
|
||||||
|
$\text{floors}(\mPosVec,\mPosAPVec)$.
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\epsilon^* =
|
\epsilon^* =
|
||||||
@@ -189,7 +191,7 @@
|
|||||||
%\end{figure}
|
%\end{figure}
|
||||||
|
|
||||||
Such functions demand for optimization algorithms, that are able to deal with non-convex functions.
|
Such functions demand for optimization algorithms, that are able to deal with non-convex functions.
|
||||||
We thus used a genetic algorithm to perform this task.
|
We thus used a genetic algorithm to perform this task \cite{goldberg89}.
|
||||||
However, initial tests indicated that while being superior to simplex
|
However, initial tests indicated that while being superior to simplex
|
||||||
and similar algorithms, the results were not yet satisfying as the optimization often did not converge.
|
and similar algorithms, the results were not yet satisfying as the optimization often did not converge.
|
||||||
|
|
||||||
@@ -198,9 +200,11 @@
|
|||||||
genetic algorithm: The initial population is now uniformly sampled from the known range. During each iteration,
|
genetic algorithm: The initial population is now uniformly sampled from the known range. During each iteration,
|
||||||
the best \SI{25}{\percent} of the population are kept and the remaining entries are
|
the best \SI{25}{\percent} of the population are kept and the remaining entries are
|
||||||
re-created by modifying the best entries with uniform random values within
|
re-created by modifying the best entries with uniform random values within
|
||||||
$\pm$\SI{10}{\percent} of the known range. The result is stabilized by narrowing the allowed modification range
|
$\pm$\SI{10}{\percent} of the known range.
|
||||||
|
Inspired by {\em cooling} known from simulated annealing \cite{Kirkpatrick83optimizationby},
|
||||||
|
the result is stabilized by narrowing the allowed modification range
|
||||||
%(starting at \SI{10}{\percent})
|
%(starting at \SI{10}{\percent})
|
||||||
over time, often referred to as {\em cooling} \cite{Kirkpatrick83optimizationby}.
|
over time.
|
||||||
|
|
||||||
|
|
||||||
\subsection{Modified Signal Strength Model}
|
\subsection{Modified Signal Strength Model}
|
||||||
@@ -300,7 +304,7 @@
|
|||||||
\label{eq:wifiQuality}
|
\label{eq:wifiQuality}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
\subsection {Virtual \docAP{}s}
|
\subsection {Virtual \docAP{}s (VAP)}
|
||||||
\label{sec:vap}
|
\label{sec:vap}
|
||||||
|
|
||||||
Assuming normal conditions, the received signal strength at one location will also (strongly) vary over time
|
Assuming normal conditions, the received signal strength at one location will also (strongly) vary over time
|
||||||
|
|||||||
@@ -2761,3 +2761,18 @@ year = {1967}
|
|||||||
number = {4598},
|
number = {4598},
|
||||||
pages = {671--680}
|
pages = {671--680}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@book{goldberg89,
|
||||||
|
added-at = {2017-04-11T02:23:13.000+0200},
|
||||||
|
author = {Goldberg, D. E.},
|
||||||
|
biburl = {https://www.bibsonomy.org/bibtex/2af6ec8ef88eb576d7ecc8ac3a84126a3/geovani},
|
||||||
|
interhash = {79bb58f1d9d57b042cf0f771784d4adb},
|
||||||
|
intrahash = {af6ec8ef88eb576d7ecc8ac3a84126a3},
|
||||||
|
keywords = {},
|
||||||
|
owner = {gregor},
|
||||||
|
publisher = {Addison-Wesley},
|
||||||
|
timestamp = {2017-04-11T02:23:13.000+0200},
|
||||||
|
title = {Genetic Algorithms in Search, Optimization, and Machine Learning},
|
||||||
|
year = 1989
|
||||||
|
}
|
||||||
|
|||||||
@@ -42,7 +42,8 @@
|
|||||||
\newcommand{\mSteps}{n_\text{steps}}
|
\newcommand{\mSteps}{n_\text{steps}}
|
||||||
\newcommand{\mObsSteps}{\mSteps}
|
\newcommand{\mObsSteps}{\mSteps}
|
||||||
|
|
||||||
\newcommand{\mObsGPS}{\vec{g}}
|
\newcommand{\mObsGPS}{g}
|
||||||
|
\newcommand{\mObsGPSVec}{\vec{g}}
|
||||||
\newcommand{\mObsGPSlat}{\text{lat}}
|
\newcommand{\mObsGPSlat}{\text{lat}}
|
||||||
\newcommand{\mObsGPSlon}{\text{lon}}
|
\newcommand{\mObsGPSlon}{\text{lon}}
|
||||||
\newcommand{\mObsGPSaccuracy}{\text{accuracy}}
|
\newcommand{\mObsGPSaccuracy}{\text{accuracy}}
|
||||||
|
|||||||
Reference in New Issue
Block a user