added tex
This commit is contained in:
@@ -58,7 +58,7 @@ ADD_DEFINITIONS(
|
|||||||
-fstack-protector-all
|
-fstack-protector-all
|
||||||
|
|
||||||
-g3
|
-g3
|
||||||
#-O2
|
-O2
|
||||||
-march=native
|
-march=native
|
||||||
|
|
||||||
-DWITH_TESTS
|
-DWITH_TESTS
|
||||||
|
|||||||
@@ -74,6 +74,8 @@ struct ModeProbabilityTransition : public K::MarkovTransitionProbability<MyState
|
|||||||
std::vector<double> probsWifiV;
|
std::vector<double> probsWifiV;
|
||||||
std::vector<double> probsParticleV;
|
std::vector<double> probsParticleV;
|
||||||
|
|
||||||
|
WiFiQualityAnalyzer analyzer;
|
||||||
|
|
||||||
// mode[0] -> Posterior & mode[1] -> Wifi ---- i know what im doing :)
|
// mode[0] -> Posterior & mode[1] -> Wifi ---- i know what im doing :)
|
||||||
for(MyNode node : grid.getNodes()){
|
for(MyNode node : grid.getNodes()){
|
||||||
double probParzenPosterior = calcKernelDensity(node, modes[0].getParticles());
|
double probParzenPosterior = calcKernelDensity(node, modes[0].getParticles());
|
||||||
@@ -87,6 +89,21 @@ struct ModeProbabilityTransition : public K::MarkovTransitionProbability<MyState
|
|||||||
Eigen::Map<Eigen::VectorXd> probsWifi(&probsWifiV[0], probsWifiV.size());
|
Eigen::Map<Eigen::VectorXd> probsWifi(&probsWifiV[0], probsWifiV.size());
|
||||||
Eigen::Map<Eigen::VectorXd> probsParticle(&probsParticleV[0], probsParticleV.size());
|
Eigen::Map<Eigen::VectorXd> probsParticle(&probsParticleV[0], probsParticleV.size());
|
||||||
|
|
||||||
|
//calc wi-fi metrik
|
||||||
|
const WiFiMeasurements wifiObs = Settings::WiFiModel::vg_eval.group(obs.wifi);
|
||||||
|
if(!wifiObs.entries.empty()){
|
||||||
|
analyzer.add(wifiObs);
|
||||||
|
}
|
||||||
|
float qualityWifi = analyzer.getQuality();
|
||||||
|
if(std::isnan(qualityWifi)){
|
||||||
|
qualityWifi = 1.0;
|
||||||
|
} else if(qualityWifi == 0) {
|
||||||
|
qualityWifi = 0.00000001;
|
||||||
|
}
|
||||||
|
|
||||||
|
// debugging global variable
|
||||||
|
__QUALITY = qualityWifi;
|
||||||
|
|
||||||
// get kld
|
// get kld
|
||||||
double kld = Divergence::KullbackLeibler<double>::getGeneralFromSamples(probsParticle, probsWifi, Divergence::LOGMODE::NATURALIS);
|
double kld = Divergence::KullbackLeibler<double>::getGeneralFromSamples(probsParticle, probsWifi, Divergence::LOGMODE::NATURALIS);
|
||||||
|
|
||||||
@@ -94,11 +111,13 @@ struct ModeProbabilityTransition : public K::MarkovTransitionProbability<MyState
|
|||||||
__KLD = kld;
|
__KLD = kld;
|
||||||
|
|
||||||
//exp. distribution
|
//exp. distribution
|
||||||
double expKld = std::exp(-lambda * kld);
|
double expKld = std::exp(-lambda * (kld * qualityWifi));
|
||||||
|
|
||||||
|
Assert::isTrue(expKld < 1.0, "exp. distribution greater 1!");
|
||||||
|
|
||||||
//create the matrix
|
//create the matrix
|
||||||
Eigen::MatrixXd m(2,2);
|
Eigen::MatrixXd m(2,2);
|
||||||
m << 1-expKld, expKld, 0, 1;
|
m << expKld, 1.0 - expKld, 1 - qualityWifi, qualityWifi;
|
||||||
|
|
||||||
return m;
|
return m;
|
||||||
|
|
||||||
|
|||||||
@@ -201,8 +201,8 @@ void run(DataSetup setup, int numFile, std::string folder, std::vector<int> gtPa
|
|||||||
K::InteractingMultipleModelParticleFilter<MyState, MyControl, MyObs> IMMAPF(modes, transitionProbabilityMatrix);
|
K::InteractingMultipleModelParticleFilter<MyState, MyControl, MyObs> IMMAPF(modes, transitionProbabilityMatrix);
|
||||||
IMMAPF.setMixingSampler(std::unique_ptr<K::MixingSamplerDivergency<MyState, MyControl, MyObs>>(new K::MixingSamplerDivergency<MyState, MyControl, MyObs>()));
|
IMMAPF.setMixingSampler(std::unique_ptr<K::MixingSamplerDivergency<MyState, MyControl, MyObs>>(new K::MixingSamplerDivergency<MyState, MyControl, MyObs>()));
|
||||||
IMMAPF.setJointEstimation(std::unique_ptr<K::JointEstimationPosteriorOnly<MyState, MyControl, MyObs>>(new K::JointEstimationPosteriorOnly<MyState, MyControl, MyObs>()));
|
IMMAPF.setJointEstimation(std::unique_ptr<K::JointEstimationPosteriorOnly<MyState, MyControl, MyObs>>(new K::JointEstimationPosteriorOnly<MyState, MyControl, MyObs>()));
|
||||||
//IMMAPF.setMarkovTransitionProbability(std::unique_ptr<ModeProbabilityTransition>(new ModeProbabilityTransition(grid, Settings::Mixing::lambda)));
|
IMMAPF.setMarkovTransitionProbability(std::unique_ptr<ModeProbabilityTransition>(new ModeProbabilityTransition(grid, Settings::Mixing::lambda)));
|
||||||
IMMAPF.setMarkovTransitionProbability(std::unique_ptr<ModeProbabilityTransitionNormal>(new ModeProbabilityTransitionNormal(Settings::Mixing::lambda)));
|
//IMMAPF.setMarkovTransitionProbability(std::unique_ptr<ModeProbabilityTransitionNormal>(new ModeProbabilityTransitionNormal(Settings::Mixing::lambda)));
|
||||||
|
|
||||||
|
|
||||||
Timestamp lastTimestamp = Timestamp::fromMS(0);
|
Timestamp lastTimestamp = Timestamp::fromMS(0);
|
||||||
|
|||||||
2417
tex/IEEEtran.bst
Normal file
2417
tex/IEEEtran.bst
Normal file
File diff suppressed because it is too large
Load Diff
6347
tex/IEEEtran.cls
Normal file
6347
tex/IEEEtran.cls
Normal file
File diff suppressed because it is too large
Load Diff
230
tex/bare_conf.tex
Normal file
230
tex/bare_conf.tex
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
|
||||||
|
%% bare_conf.tex
|
||||||
|
%% V1.4b
|
||||||
|
%% 2015/08/26
|
||||||
|
%% by Michael Shell
|
||||||
|
%% See:
|
||||||
|
%% http://www.michaelshell.org/
|
||||||
|
%% for current contact information.
|
||||||
|
%%
|
||||||
|
%% This is a skeleton file demonstrating the use of IEEEtran.cls
|
||||||
|
%% (requires IEEEtran.cls version 1.8b or later) with an IEEE
|
||||||
|
%% conference paper.
|
||||||
|
%%
|
||||||
|
%% Support sites:
|
||||||
|
%% http://www.michaelshell.org/tex/ieeetran/
|
||||||
|
%% http://www.ctan.org/pkg/ieeetran
|
||||||
|
%% and
|
||||||
|
%% http://www.ieee.org/
|
||||||
|
|
||||||
|
%%*************************************************************************
|
||||||
|
%% Legal Notice:
|
||||||
|
%% This code is offered as-is without any warranty either expressed or
|
||||||
|
%% implied; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
%% FITNESS FOR A PARTICULAR PURPOSE!
|
||||||
|
%% User assumes all risk.
|
||||||
|
%% In no event shall the IEEE or any contributor to this code be liable for
|
||||||
|
%% any damages or losses, including, but not limited to, incidental,
|
||||||
|
%% consequential, or any other damages, resulting from the use or misuse
|
||||||
|
%% of any information contained here.
|
||||||
|
%%
|
||||||
|
%% All comments are the opinions of their respective authors and are not
|
||||||
|
%% necessarily endorsed by the IEEE.
|
||||||
|
%%
|
||||||
|
%% This work is distributed under the LaTeX Project Public License (LPPL)
|
||||||
|
%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
|
||||||
|
%% distributed and modified. A copy of the LPPL, version 1.3, is included
|
||||||
|
%% in the base LaTeX documentation of all distributions of LaTeX released
|
||||||
|
%% 2003/12/01 or later.
|
||||||
|
%% Retain all contribution notices and credits.
|
||||||
|
%% ** Modified files should be clearly indicated as such, including **
|
||||||
|
%% ** renaming them and changing author support contact information. **
|
||||||
|
%%*************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
% *** Authors should verify (and, if needed, correct) their LaTeX system ***
|
||||||
|
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
|
||||||
|
% *** with production work. The IEEE's font choices and paper sizes can ***
|
||||||
|
% *** trigger bugs that do not appear when using other class files. *** ***
|
||||||
|
% The testflow support page is at:
|
||||||
|
% http://www.michaelshell.org/tex/testflow/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\documentclass[conference]{IEEEtran}
|
||||||
|
% Some Computer Society conferences also require the compsoc mode option,
|
||||||
|
% but others use the standard conference format.
|
||||||
|
%
|
||||||
|
% If IEEEtran.cls has not been installed into the LaTeX system files,
|
||||||
|
% manually specify the path to it like:
|
||||||
|
% \documentclass[conference]{../sty/IEEEtran}
|
||||||
|
|
||||||
|
|
||||||
|
% needed packages
|
||||||
|
|
||||||
|
\usepackage{color, colortbl}
|
||||||
|
%\usepackage[table]{xcolor}
|
||||||
|
\usepackage{cite}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{amsfonts}
|
||||||
|
|
||||||
|
\usepackage[cmex10]{amsmath}
|
||||||
|
|
||||||
|
\interdisplaylinepenalty=2500
|
||||||
|
\usepackage{array}
|
||||||
|
\usepackage{mdwmath}
|
||||||
|
\usepackage{mdwtab}
|
||||||
|
\usepackage{eqparbox}
|
||||||
|
|
||||||
|
\usepackage{epstopdf}
|
||||||
|
%\usepackage{ulem}
|
||||||
|
|
||||||
|
\usepackage{algorithm}
|
||||||
|
\usepackage{algpseudocode}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% replacement for the SI package
|
||||||
|
\newcommand{\SI}[2]{\ensuremath{#1}\text{\,#2}}
|
||||||
|
\newcommand{\SIrange}[3]{\ensuremath{#1} to \ensuremath{#2}\text{\,#3}}
|
||||||
|
|
||||||
|
% units for the SI package
|
||||||
|
\newcommand{\centimeter}{cm}
|
||||||
|
\newcommand{\meter}{m}
|
||||||
|
\newcommand{\per}{/}
|
||||||
|
\newcommand{\milli}{m}
|
||||||
|
\newcommand{\second}{s}
|
||||||
|
\newcommand{\giga}{G}
|
||||||
|
\newcommand{\hertz}{Hz}
|
||||||
|
\newcommand{\dBm}{dBm}
|
||||||
|
\newcommand{\percent}{\%}
|
||||||
|
\newcommand{\decibel}{dB}
|
||||||
|
\newcommand{\dB}{dB}
|
||||||
|
\newcommand{\hpa}{hPa}
|
||||||
|
\newcommand{\degree}{\ensuremath{^{\circ}}}
|
||||||
|
|
||||||
|
% missing math operators
|
||||||
|
\DeclareMathOperator*{\argmin}{arg\,min}
|
||||||
|
\DeclareMathOperator*{\argmax}{arg\,max}
|
||||||
|
|
||||||
|
|
||||||
|
% vector and matrix typesetting
|
||||||
|
\renewcommand{\vec}[1]{\boldsymbol{#1}} % italic and greek symbols
|
||||||
|
\newcommand{\mat}[1]{\vec{#1}} % the same as vec
|
||||||
|
|
||||||
|
|
||||||
|
%other macros
|
||||||
|
\newcommand{\noStep}{\overline{\text{step}}}
|
||||||
|
|
||||||
|
|
||||||
|
% gfx include folder
|
||||||
|
\graphicspath{ {gfx/} }
|
||||||
|
|
||||||
|
|
||||||
|
% correct bad hyphenation here
|
||||||
|
\hyphenation{op-tical net-works semi-conduc-tor}
|
||||||
|
|
||||||
|
|
||||||
|
% input stuff
|
||||||
|
\input{misc/keywords}
|
||||||
|
\input{misc/functions}
|
||||||
|
|
||||||
|
\IEEEoverridecommandlockouts
|
||||||
|
\IEEEpubid{\makebox[\columnwidth]{\hfill 978-1-5090-2425-4/16/\$31.00~\copyright~2016 IEEE}
|
||||||
|
\hspace{\columnsep}\makebox[\columnwidth]{ }}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
%
|
||||||
|
% paper title
|
||||||
|
% Titles are generally capitalized except for words such as a, an, and, as,
|
||||||
|
% at, but, by, for, in, nor, of, on, or, the, to and up, which are usually
|
||||||
|
% not capitalized unless they are the first or last word of the title.
|
||||||
|
% Linebreaks \\ can be used within to get better formatting as desired.
|
||||||
|
% Do not put math or special symbols in the title.
|
||||||
|
\title{Recovering from Particle Depletion in Context of Indoor Localisation}
|
||||||
|
|
||||||
|
|
||||||
|
% author names and affiliations
|
||||||
|
% use a multiple column layout for up to three different
|
||||||
|
% affiliations
|
||||||
|
\author{
|
||||||
|
|
||||||
|
\IEEEauthorblockN{Toni Fetzer, Frank Ebner, and Frank Deinzer}%
|
||||||
|
\IEEEauthorblockA{%
|
||||||
|
Faculty of Computer Science and Business Information Systems\\
|
||||||
|
University of Applied Sciences W\"urzburg-Schweinfurt\\
|
||||||
|
W\"urzburg, Germany\\
|
||||||
|
\{toni.fetzer, frank.ebner, frank.deinzer\}@fhws.de\\
|
||||||
|
}
|
||||||
|
\and
|
||||||
|
|
||||||
|
\IEEEauthorblockN{Marcin Grzegorzek}
|
||||||
|
\IEEEauthorblockA{%
|
||||||
|
Pattern Recognition Group \\
|
||||||
|
University of Siegen\\
|
||||||
|
Siegen, Germany\\
|
||||||
|
\{marcin.grzegorzek\}@uni-siegen.de
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% conference papers do not typically use \thanks and this command
|
||||||
|
% is locked out in conference mode. If really needed, such as for
|
||||||
|
% the acknowledgment of grants, issue a \IEEEoverridecommandlockouts
|
||||||
|
% after \documentclass
|
||||||
|
|
||||||
|
% use for special paper notices
|
||||||
|
%\IEEEspecialpapernotice{(Invited Paper)}
|
||||||
|
|
||||||
|
|
||||||
|
% make the title area
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
% As a general rule, do not put math, special symbols or citations
|
||||||
|
% in the abstract
|
||||||
|
\input{chapters/abstract}
|
||||||
|
|
||||||
|
|
||||||
|
% For peer review papers, you can put extra information on the cover
|
||||||
|
% page as needed:
|
||||||
|
% \ifCLASSOPTIONpeerreview
|
||||||
|
% \begin{center} \bfseries EDICS Category: 3-BBND \end{center}
|
||||||
|
% \fi
|
||||||
|
%
|
||||||
|
% For peerreview papers, this IEEEtran command inserts a page break and
|
||||||
|
% creates the second title. It will be ignored for other modes.
|
||||||
|
\IEEEpeerreviewmaketitle
|
||||||
|
|
||||||
|
|
||||||
|
\input{chapters/introduction}
|
||||||
|
|
||||||
|
\input{chapters/relatedwork}
|
||||||
|
|
||||||
|
\input{chapters/system}
|
||||||
|
|
||||||
|
\input{chapters/method}
|
||||||
|
|
||||||
|
\input{chapters/experiments}
|
||||||
|
|
||||||
|
\input{chapters/conclusion}
|
||||||
|
|
||||||
|
|
||||||
|
% conference papers do not normally have an appendix
|
||||||
|
|
||||||
|
% use section* for acknowledgment
|
||||||
|
%\section*{Acknowledgment}
|
||||||
|
|
||||||
|
%The authors would like to thank...
|
||||||
|
|
||||||
|
% balancing
|
||||||
|
%\IEEEtriggeratref{8}
|
||||||
|
% The "triggered" command can be changed if desired:
|
||||||
|
%\IEEEtriggercmd{\enlargethispage{-5in}}
|
||||||
|
|
||||||
|
|
||||||
|
% references section
|
||||||
|
\bibliographystyle{IEEEtran}
|
||||||
|
\bibliography{IEEEabrv,egbib}
|
||||||
|
|
||||||
|
\end{document}
|
||||||
|
|
||||||
|
|
||||||
4
tex/chapters/abstract.tex
Normal file
4
tex/chapters/abstract.tex
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
\begin{abstract}
|
||||||
|
Noch nichts. Hier kommt aber bald was.
|
||||||
|
\end{abstract}
|
||||||
|
%\begin{IEEEkeywords} indoor positioning, Monte Carlo smoothing, particle smoothing, sequential Monte Carlo\end{IEEEkeywords}
|
||||||
2
tex/chapters/conclusion.tex
Normal file
2
tex/chapters/conclusion.tex
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
\section{Conclusion}
|
||||||
|
Kommt schon noch.
|
||||||
5
tex/chapters/experiments.tex
Normal file
5
tex/chapters/experiments.tex
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
\section{Experiments}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
44
tex/chapters/introduction.tex
Normal file
44
tex/chapters/introduction.tex
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
\section{Introduction}
|
||||||
|
|
||||||
|
Localising pedestrians inside buildings can be considered as a time-sequential, non-linear and non-Gaussian state estimation problem.
|
||||||
|
Such problems are often solved by using Bayesian filter, which update the state estimation recursively with every new incoming measurement.
|
||||||
|
A powerful method to obtain numerical results for this approach are particle filter.
|
||||||
|
|
||||||
|
Especially in indoor localisation, particle filter can lately be considered as the standard method for solving complex non-linear problems \cite{}.
|
||||||
|
By using a set of weighted random samples, they approximate a probability distribution describing the pedestrian's possible whereabouts and therefore the uncertainty of the system.
|
||||||
|
In its most basic form, the particle filter operates three main steps:
|
||||||
|
At first, new samples are drawn according to some importance distribution, those samples are then weighted by an incremental importance weight distribution and finally a resampling step is deployed to prevent that only a small number of samples have a signifcant weight and all the other will have negligible small weights instead \cite{orhan2012particle}.
|
||||||
|
|
||||||
|
In practice imprtance dis and weight dist are .... blabal
|
||||||
|
|
||||||
|
most localisation distribution differ how the transition and evaluation are blub \cite{}.
|
||||||
|
|
||||||
|
However, as \cite{Li2014} already mentioned, particle filter (and nearly all of its modifications) continue to suffer from two notorious problems: sample degeneracy and impoverishment.
|
||||||
|
|
||||||
|
sample degenerecy due to resampling, this again causes impoverishment ... teufelkreis
|
||||||
|
|
||||||
|
Besides the normal bootstrap or condensation particle filter, their are many different abformen, welche aber grundsätzlich aus den oben gennanten schritten bestehen.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Consider a standard filtering problem.. kurz nochmal particle filter einführen. und beispiel indoor
|
||||||
|
|
||||||
|
sample impoverishment or particle depletion is.. allgemein etwas darüber .. is often explained as problem solely caused by the resampling step. Especially by using restrictive transition models, this is not true.
|
||||||
|
|
||||||
|
in the context of indoor localization particle deplation is a allgegenwärtiges problem due to restricting maps. within the transition step they are used to prevent walking through walls and provide a natural and realistic movement. however, this often causes particles to get stuck within a room and standard filtering methods are not able to recover.
|
||||||
|
|
||||||
|
we solve this problems in context of indoor localization by using a multiple model particle filter. ... the transition matrix is set updated every timestep depending upon the kullback leibler divergence between the modes..
|
||||||
|
|
||||||
|
this not only solves the problem of stucking, but also open a lot possibilietes for future work.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
paar notizen:
|
||||||
|
|
||||||
|
jennsen shannon divergence ist zwar symmetrisch und die wurzel davon zählt als metrik, ist aber in unserem kontext eher inpraktikabel da der upperbound bei ln(2) liegt.. das sorgt für ... deshalb nehmen wir die einfach kld! diese ist nach oben hin offen und somit erlaubt diese eine bessere aussage nicht nur darüber wie unterschiedlich die beiden verteilungen sind, sondern auch wie weit sie sich im wahrscheinlichkeitsraum voneinander entfernt befinden. "direct divergence measure"
|
||||||
|
|
||||||
|
aus gründen der simplicity haben wir alle modelle so einfach wie möglich gehalten um nur den vorzug der neuen methode zu erhalten. für weitere informationen, optimale parameter ... siehe paper, paper paper von uns.
|
||||||
7
tex/chapters/method.tex
Normal file
7
tex/chapters/method.tex
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
\section{Similarity Resampling}
|
||||||
|
\label{sec:res}
|
||||||
|
|
||||||
|
Hier kommt die tolle neue Methode.
|
||||||
|
|
||||||
|
|
||||||
19
tex/chapters/relatedwork.tex
Normal file
19
tex/chapters/relatedwork.tex
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
\section{Related Work}
|
||||||
|
\label{sec:relatedWork}
|
||||||
|
% 3/4 Seite ca.
|
||||||
|
|
||||||
|
andere arbeiten die particle depletion verhindern wollte -> was haben die so gemacht?
|
||||||
|
|
||||||
|
basic idea of this work is to combine two different filters. on depending upon realistic movement and the other observing absolut positions to prefent particle depletion due to relative measurements.
|
||||||
|
|
||||||
|
combining different filters.
|
||||||
|
|
||||||
|
jump markov non linear system.
|
||||||
|
|
||||||
|
interacting multiple model
|
||||||
|
|
||||||
|
particle filter
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
63
tex/chapters/system.tex
Normal file
63
tex/chapters/system.tex
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
\section{Recursive State Estimation}
|
||||||
|
\label{sec:rse}
|
||||||
|
|
||||||
|
Wie immer. bisschen umschreiben halt.
|
||||||
|
|
||||||
|
|
||||||
|
As mentioned before, most smoothing methods require a preceding filtering.
|
||||||
|
Similar to our previous works, we consider indoor localisation as a time-sequential, non-linear and non-Gaussian state estimation problem.
|
||||||
|
Therefore, a Bayes filter that satisfies the Markov property is used to calculate the posterior:
|
||||||
|
%
|
||||||
|
\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-1})}_{\text{transition}}
|
||||||
|
\underbrace{p(\mStateVec_{t-1} \mid \mObsVec_{1:t-1})d\vec{q}_{t-1}}_{\text{recursion}}
|
||||||
|
\end{array}
|
||||||
|
\label{equ:bayesInt}
|
||||||
|
\end{equation}
|
||||||
|
%
|
||||||
|
Here, the previous observation $\mObsVec_{t-1}$ is included into the state transition \cite{Ebner-15}.
|
||||||
|
For approximating eq. \eqref{equ:bayesInt} by means of MC methods, the transition is used as proposal distribution, also known as CONDENSATION algorithm \cite{isard1998smoothing}.
|
||||||
|
This algorithm also performs a resampling step to handle the phenomenon of weight degeneracy.
|
||||||
|
|
||||||
|
In the context of indoor localisation, the hidden state $\mStateVec$ is defined as follows:
|
||||||
|
\begin{equation}
|
||||||
|
\mStateVec = (x, y, z, \mStateHeading, \mStatePressure),\enskip
|
||||||
|
x, y, z, \mStateHeading, \mStatePressure \in \R \enspace,
|
||||||
|
\end{equation}
|
||||||
|
%
|
||||||
|
where $x, y, z$ represent the position in 3D space, $\mStateHeading$ the user's heading and $\mStatePressure$ the relative atmospheric pressure prediction in hectopascal (hPa). Further, the observation is given by
|
||||||
|
%
|
||||||
|
\begin{equation}
|
||||||
|
\mObsVec = (\mRssiVec_\text{wifi}, \mRssiVec_\text{ib}, \mObsHeading, \mObsSteps, \mObsPressure, \mObsActivity) \enspace,
|
||||||
|
\end{equation}
|
||||||
|
%
|
||||||
|
covering all relevant sensor measurements.
|
||||||
|
Here, $\mRssiVec_\text{wifi}$ and $\mRssiVec_\text{ib}$ contain the measurements of all nearby \docAP{}s (\docAPshort{}) and \docIBeacon{}s, respectively.
|
||||||
|
$\mObsHeading$ and $\mObsSteps$ describe the relative angular change and the number of steps detected for the pedestrian.
|
||||||
|
$\mObsPressure$ is the relative barometric pressure with respect to a fixed reference.
|
||||||
|
Finally, $\mObsActivity$ contains the activity currently estimated for the pedestrian, which is one of:
|
||||||
|
unknown, standing, walking, walking up the stairs or walking down the stairs.
|
||||||
|
|
||||||
|
The probability density of the state evaluation is given by
|
||||||
|
%
|
||||||
|
\begin{equation}
|
||||||
|
%\begin{split}
|
||||||
|
p(\vec{o}_t \mid \vec{q}_t) =
|
||||||
|
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}
|
||||||
|
\enspace
|
||||||
|
%\end{split}
|
||||||
|
\label{eq:evalBayes}
|
||||||
|
\end{equation}
|
||||||
|
%
|
||||||
|
and therefore similar to \cite{Ebner-16}.
|
||||||
|
Here, we assume a statistical independence of all sensors and every single component refers to a probabilistic sensor model.
|
||||||
|
The barometer information is evaluated using $p(\vec{o}_t \mid \vec{q}_t)_\text{baro}$, whereby absolute position information
|
||||||
|
is given by $p(\vec{o}_t \mid \vec{q}_t)_\text{ib}$ for \docIBeacon{}s and by $p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}$ for \docWIFI{}.
|
||||||
|
|
||||||
|
|
||||||
2755
tex/egbib.bib
Normal file
2755
tex/egbib.bib
Normal file
File diff suppressed because it is too large
Load Diff
143
tex/misc/functions.tex
Normal file
143
tex/misc/functions.tex
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
|
||||||
|
\newcommand{\mAvgSquaredError}{\ensuremath{\overline{e}}}
|
||||||
|
|
||||||
|
\newcommand{\mLogDistGamma}{\ensuremath{\gamma}}
|
||||||
|
\newcommand{\mLogDistTX}{TX}
|
||||||
|
|
||||||
|
\newcommand{\mDongle}[1]{\ensuremath{D_{#1}}}
|
||||||
|
%\newcommand{\mDongle}{d} % dongle
|
||||||
|
\newcommand{\mBeacon}[1]{\ensuremath{B_{#1}}} % beacon
|
||||||
|
|
||||||
|
\newcommand{\mRssi}{\ensuremath{s}} % client's signal-strength measurement
|
||||||
|
\newcommand{\mMdlRSSI}{\ensuremath{\varsigma}} % model's signal-strength
|
||||||
|
|
||||||
|
\newcommand{\mPosAP}{\varrho} % char for access point position vector
|
||||||
|
\newcommand{\mPos}{\rho} % char for positions
|
||||||
|
|
||||||
|
|
||||||
|
\newcommand{\mPosVec}{\vec{\mPos}} % position vector
|
||||||
|
\newcommand{\mRssiVec}{\vec{s}} % client signal strength measurements
|
||||||
|
|
||||||
|
\newcommand{\mState}{q} % state variable
|
||||||
|
\newcommand{\mStateVec}{\vec{q}} % state vector variable
|
||||||
|
\newcommand{\mObs}{o} % observation variable
|
||||||
|
\newcommand{\mObsVec}{\vec{o}} % observation vector variable
|
||||||
|
\newcommand{\mObsWifi}{\vec{o}_{\text{wifi}}} % wifi observation
|
||||||
|
|
||||||
|
\newcommand{\mProb}{p} % char for probability
|
||||||
|
|
||||||
|
\newcommand{\mMovingAvgWithSize}[1]{\ensuremath{\text{avg}_{#1}}}
|
||||||
|
|
||||||
|
\newcommand{\mPressure}{\rho}
|
||||||
|
\newcommand{\mObsPressure}{\mPressure_\text{rel}} % symbol for observation pressure
|
||||||
|
\newcommand{\mStatePressure}{\hat{\mPressure}_\text{rel}} % symbol for state pressure
|
||||||
|
|
||||||
|
\newcommand{\mHeading}{\theta}
|
||||||
|
\newcommand{\mObsHeading}{\Delta\mHeading} % symbol used for the observation heading
|
||||||
|
\newcommand{\mStateHeading}{\mHeading} % symbol used for the state heading
|
||||||
|
|
||||||
|
\newcommand{\mSteps}{n_\text{steps}}
|
||||||
|
\newcommand{\mObsSteps}{\mSteps}
|
||||||
|
|
||||||
|
\newcommand{\mActivity}{\Omega}
|
||||||
|
\newcommand{\mObsActivity}{\mActivity}
|
||||||
|
|
||||||
|
\newcommand{\mNN}{\text{nn}}
|
||||||
|
\newcommand{\mKNN}{\text{knn}}
|
||||||
|
\newcommand{\fPos}[1]{\textbf{pos}(#1)}
|
||||||
|
\newcommand{\fDistance}[2]{\delta(#1, #2)}
|
||||||
|
\newcommand{\fWA}[1]{\text{wall}(#1)}
|
||||||
|
\newcommand{\fDD}[1]{\text{door}(#1)}
|
||||||
|
\newcommand{\fImp}[1]{\text{imp}(#1)}
|
||||||
|
\newcommand{\fNN}[2]{\text{nn}(#1, #2)}
|
||||||
|
\newcommand{\fLength}[2]{\text{d}(#1, #2)}
|
||||||
|
|
||||||
|
%\newcommand{\mTarget}{\dot{v}}
|
||||||
|
\newcommand{\mVertexA}{v_i}
|
||||||
|
\newcommand{\mVertexB}{v_j}
|
||||||
|
\newcommand{\mEdgeAB}{e_{i,j}}
|
||||||
|
\newcommand{\mVertexDest}{v_\text{dest}}
|
||||||
|
\newcommand{\gDist}{d_\text{step}}
|
||||||
|
\newcommand{\gHead}{\theta_\text{walk}}
|
||||||
|
|
||||||
|
|
||||||
|
\newcommand{\mUsePath}{\kappa}
|
||||||
|
|
||||||
|
\newcommand{\mStepSize}{s_\text{step}}
|
||||||
|
|
||||||
|
%\newcommand{\docIBeacon}{iBeacon}
|
||||||
|
|
||||||
|
% for equation references
|
||||||
|
\newcommand{\refeq}[1]{eq. \eqref{#1}}
|
||||||
|
|
||||||
|
% add todo notes
|
||||||
|
\newcommand{\todo}[1]{%
|
||||||
|
\noindent%
|
||||||
|
\fcolorbox{black}{yellow}{%
|
||||||
|
\parbox[position]{0.45\textwidth}{%
|
||||||
|
\footnotesize%
|
||||||
|
{\bf TODO} #1%
|
||||||
|
}%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
|
||||||
|
%\newcommand{\commentByFrank}[1]{}
|
||||||
|
%\newcommand{\commentByToni}[1]{}
|
||||||
|
|
||||||
|
%comments
|
||||||
|
\newcommand{\commentByFrank}[1]{%
|
||||||
|
\noindent%
|
||||||
|
\fcolorbox{black}{cyan}{%
|
||||||
|
\parbox[position]{0.45\textwidth}{%
|
||||||
|
\footnotesize%
|
||||||
|
{\bf Frank:} #1%
|
||||||
|
}%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
\newcommand{\commentByLukas}[1]{%
|
||||||
|
\noindent%
|
||||||
|
\fcolorbox{black}{green}{%
|
||||||
|
\parbox[position]{0.45\textwidth}{%
|
||||||
|
\footnotesize%
|
||||||
|
{\bf Lukas:} #1%
|
||||||
|
}%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
\newcommand{\commentByToni}[1]{%
|
||||||
|
\noindent%
|
||||||
|
\fcolorbox{black}{red}{%
|
||||||
|
\parbox[position]{0.45\textwidth}{%
|
||||||
|
\footnotesize%
|
||||||
|
{\bf Toni:} #1%
|
||||||
|
}%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand{\docRSSI}{RSSI}
|
||||||
|
\newcommand{\docTX}{TX}
|
||||||
|
\newcommand{\docLogDist}{log-distance}
|
||||||
|
|
||||||
|
%\newcommand{\docAP}{access-point}
|
||||||
|
%\newcommand{\docAPs}{access-points}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\newcommand{\R}{\mathbb{R}}
|
||||||
|
\newcommand{\N}{\mathbb{N}}
|
||||||
|
|
||||||
|
\newcommand{\mPLE}{\ensuremath{\gamma}} % path-loss exponent
|
||||||
|
\newcommand{\mTXP}{\ensuremath{P_0}} % tx-power
|
||||||
|
\newcommand{\mWAF}{\ensuremath{\beta}} % wall attenuation factor
|
||||||
|
|
||||||
|
\newcommand{\mMdlDist}{\ensuremath{d}} % distance used within propagation models
|
||||||
|
|
||||||
|
%\newcommand{\mGraph}{\ensuremath{G}}
|
||||||
|
%\newcommand{\mVertices}{\ensuremath{V}}
|
||||||
|
%\newcommand{\mVertex}{\ensuremath{v}}
|
||||||
|
%\newcommand{\mVertexB}{\ensuremath{w}}
|
||||||
|
%\newcommand{\mEdges}{\ensuremath{E}}
|
||||||
|
%\newcommand{\mEdge}{\ensuremath{e}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
33
tex/misc/keywords.tex
Normal file
33
tex/misc/keywords.tex
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
% keyword macros
|
||||||
|
\newcommand{\docIBeacon}{iBeacon}
|
||||||
|
|
||||||
|
% wifi naming
|
||||||
|
\newcommand{\wifiRSSI}{RSSI}
|
||||||
|
\newcommand{\wifiTxPower}{TX-Power}
|
||||||
|
\newcommand{\wifiPathLossExp}{PathLoss}
|
||||||
|
|
||||||
|
\newcommand{\wifiPropLogScale}{Log-Scale}
|
||||||
|
\newcommand{\wifiPropLogScaleWalls}{Log-Scale-Walls}
|
||||||
|
\newcommand{\docLogDistance}{log-distance}
|
||||||
|
\newcommand{\docLogDistanceWalls}{wall-attenuation-factor}
|
||||||
|
|
||||||
|
|
||||||
|
% misc
|
||||||
|
\newcommand{\docTxPower}{TX-Power}
|
||||||
|
\newcommand{\docPathLossExp}{PathLoss}
|
||||||
|
\newcommand{\docPathLoss}{Pathloss}
|
||||||
|
|
||||||
|
\newcommand{\docsAP}{AP}
|
||||||
|
\newcommand{\docAPshort}{AP}
|
||||||
|
\newcommand{\docAP}{access-point}
|
||||||
|
\newcommand{\docAPs}{access-points}
|
||||||
|
|
||||||
|
\newcommand{\docWIFI}{Wi\hbox{-}Fi}
|
||||||
|
\newcommand{\docBeacon}{\Gls{Beacon}}
|
||||||
|
\newcommand{\docBeacons}{\Glspl{Beacon}}
|
||||||
|
|
||||||
|
\newcommand{\docsRSSI}{RSSI}
|
||||||
|
|
||||||
|
\newcommand{\docDSimplex}{downhill-simplex}
|
||||||
|
|
||||||
|
\DeclareMathOperator{\atan}{atan2}
|
||||||
Reference in New Issue
Block a user