This commit is contained in:
2020-01-28 17:52:11 +01:00
8 changed files with 78 additions and 32 deletions

View File

@@ -50,6 +50,7 @@ FILE(GLOB SOURCES
main.cpp main.cpp
mainTrilat.cpp mainTrilat.cpp
mainProb.cpp mainProb.cpp
mainPlotting.cpp
Eval.cpp Eval.cpp
FtmKalman.cpp FtmKalman.cpp
trilateration.cpp trilateration.cpp

View File

@@ -16,7 +16,7 @@ namespace Settings {
const bool PlotToPng = false; const bool PlotToPng = false;
const bool UseKalman = false; const bool UseKalman = false;
const bool UseRSSI = false; const bool UseRSSI = true;
/** describes one dataset (map, training, parameter-estimation, ...) */ /** describes one dataset (map, training, parameter-estimation, ...) */

View File

@@ -333,7 +333,6 @@ static CombinedStats<float> run(Settings::DataSetup setup, int walkIdx, std::str
{ {
plot.addCircle(10000 + nucConfig.second.ID, nucConfig.second.position.xy(), 0.1); plot.addCircle(10000 + nucConfig.second.ID, nucConfig.second.position.xy(), 0.1);
} }
plot.plot();
// particle-filter // particle-filter
const int numParticles = 5000; const int numParticles = 5000;
@@ -716,6 +715,11 @@ int main(int argc, char** argv)
std::cout << "Trilateration" << "\n"; std::cout << "Trilateration" << "\n";
return mainTrilat(argc, argv); return mainTrilat(argc, argv);
} }
else if (args.hasFlag("plot"))
{
std::cout << "Plotting" << "\n";
return mainPlotting(argc, argv);
}
CombinedStats<float> statsAVG; CombinedStats<float> statsAVG;
CombinedStats<float> statsMedian; CombinedStats<float> statsMedian;

View File

@@ -3,3 +3,5 @@
int mainTrilat(int argc, char** argv); int mainTrilat(int argc, char** argv);
int mainProp(int argc, char** argv); int mainProp(int argc, char** argv);
int mainPlotting(int argc, char** argv);

View File

@@ -111,15 +111,18 @@ static CombinedStats<float> run(Settings::DataSetup setup, int walkIdx, std::str
for (const Offline::Entry& e : fr.getEntries()) for (const Offline::Entry& e : fr.getEntries())
{ {
if (e.type != Offline::Sensor::WIFI_FTM) { if (e.type != Offline::Sensor::WIFI_FTM && e.type != Offline::Sensor::GROUND_TRUTH) {
continue; continue;
} }
// TIME // TIME
const Timestamp ts = Timestamp::fromMS(e.ts); const Timestamp ts = Timestamp::fromMS(e.ts);
if (e.type == Offline::Sensor::WIFI_FTM)
{
auto wifiFtm = fr.getWifiFtm()[e.idx].data; auto wifiFtm = fr.getWifiFtm()[e.idx].data;
obs.push_back(wifiFtm); obs.push_back(wifiFtm);
}
if (ts - lastTimestamp >= Timestamp::fromMS(500)) if (ts - lastTimestamp >= Timestamp::fromMS(500))
{ {
@@ -212,8 +215,7 @@ static CombinedStats<float> run(Settings::DataSetup setup, int walkIdx, std::str
plot.addLabel(ss.str(), Point3(70, i*5, 0), i); plot.addLabel(ss.str(), Point3(70, i*5, 0), i);
} }
} }
}
// Png Output // Png Output
//if (Settings::PlotToPng) //if (Settings::PlotToPng)
@@ -231,7 +233,6 @@ static CombinedStats<float> run(Settings::DataSetup setup, int walkIdx, std::str
plot.plot(); plot.plot();
std::this_thread::sleep_for(std::chrono::milliseconds(100)); std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
obs.clear(); obs.clear();
lastTimestamp = ts; lastTimestamp = ts;

View File

@@ -16,7 +16,6 @@
\usepackage{color, colortbl} \usepackage{color, colortbl}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{subcaption}
\interdisplaylinepenalty=2500 \interdisplaylinepenalty=2500
@@ -29,6 +28,8 @@
\usepackage{array} \usepackage{array}
\usepackage{multirow} \usepackage{multirow}
\usepackage{xfrac} \usepackage{xfrac}
\usepackage{mwe}
\usepackage{subfig}
%\updates{yes} % If there is an update available, un-comment this line %\updates{yes} % If there is an update available, un-comment this line

View File

@@ -20,3 +20,10 @@
\etal{Ibrahim} lays the required groundwork to use the still experimental FTM standard and verifies the general accuracy \cite{ibrahim2018verification}. \etal{Ibrahim} lays the required groundwork to use the still experimental FTM standard and verifies the general accuracy \cite{ibrahim2018verification}.
\etal{Yu} present a system using FTM measurements and multisensor multi-pattern-based dead reckoning based on a Unscented Kalman filter sensor fusion \cite{yu2019robust}. \etal{Yu} present a system using FTM measurements and multisensor multi-pattern-based dead reckoning based on a Unscented Kalman filter sensor fusion \cite{yu2019robust}.
\etal{Xu} \cite{xu2019locating}. \etal{Xu} \cite{xu2019locating}.
Compared to the above state of the art our work...
\begin{itemize}
\item szenario realistischer und nicht nur quadrate die man läuft
\item direkter vergleich mit RSSI
\item in der praxis erprobte verfahren darauf laufen lassen.
\end{itemize}

View File

@@ -1,6 +1,7 @@
\section{Experiments} \section{Experiments}
\subsection{Setup and Environment} \subsection{Hardware Setup}
%\begin{itemize} %\begin{itemize}
% \item Pixel 2XL Android P liefert RSSI und FTM % \item Pixel 2XL Android P liefert RSSI und FTM
@@ -58,7 +59,7 @@ In contrast to regular stationary access points which are usually mounted on wal
\subsection{Ftm range meas performance} \subsection{Verification FTM Performance in LOS Scenario}
%\begin{itemize} %\begin{itemize}
% \item AP position strategy % \item AP position strategy
% \item DoP plot % \item DoP plot
@@ -97,43 +98,72 @@ The geometry and properties of the internal antenna are unknown.
% Erkenntnis 4: Unterschied zwischen Pixel 2 und 3 ist nicht erkennbar % Erkenntnis 4: Unterschied zwischen Pixel 2 und 3 ist nicht erkennbar
\begin{figure}[ht]
\begin{minipage}{.5\textwidth}
\centering
\subfloat[]{\label{main:a}\includegraphics[width=\textwidth]{DistMeasMean.png}}
\end{minipage}%
\begin{minipage}{.5\textwidth}
\centering
\subfloat[]{\label{main:b}\includegraphics[width=\textwidth]{DistMeasMeanPerPixel.png}}
\end{minipage}\par\medskip
\centering
\subfloat[CDF of error]{\label{main:c}\includegraphics[width=\textwidth]{DistMeasCDF.png}}
\caption{my fig}
\label{fig:main}
\end{figure}
\subsection{Range Measurements in NLOS Scenario}
Während der posionierung ist an gewissen stellen eine systematische abweichung zum gt aufgefallen dies trat immer an zwei stellen auf, daraus folgender die hypthese das es irgendwie an dieser gegebenheit liegen muss. als folge daraus ist dann eben entstanden das wir die brandschutztüren gesehen haben und dann eine experiment aufgebaut haben um die hypthese zu messen, inwiefern sich die türen oder besser gesagt wie sich unterschiedliche wandmateriellien, insbesondere wenn diese so extrem wie hier sind, auf die FTM Messungen auswirken.
rssi grafik lassen wir weg (bst2rssi.png) und schreiben das nur im text. müssen ja nur den sprung von 7 auf 8 beschreiben. interessanter sind die FTM Plots mit der Streuung (bst2ftm.png)
\begin{figure}[ht] \begin{figure}[ht]
\begin{minipage}[t]{0.48\textwidth}
\centering \begin{minipage}{.5\textwidth}
\includegraphics[width=1\textwidth]{DistMeasMean.png} \centering
\caption{Mean distance per WiFi card} \subfloat[]{\label{main:a}\includegraphics[width=\textwidth]{VersuchsaufbauBST1.png}}
\end{minipage} \end{minipage}%
\begin{minipage}[t]{0.48\textwidth} \begin{minipage}{.5\textwidth}
\centering \centering
\includegraphics[width=1\textwidth]{DistMeasMeanPerPixel.png} \subfloat[]{\label{main:b}\includegraphics[width=0.8\textwidth]{VersuchsaufbauBST2.png}}
\caption{Mean distance per Pixel} \end{minipage}\par\medskip
\end{minipage} \centering
\begin{minipage}[t]{1.0\textwidth} \subfloat[CDF of error]{\label{main:c}\includegraphics[width=\textwidth]{bst1ftm.png}}
\centering \par\medskip
\includegraphics[width=1\textwidth]{DistMeasCDF.png} \centering
\caption{Dist. Meas CDF} \subfloat[CDF of error]{\label{main:c}\includegraphics[width=\textwidth]{bst2ftm.png}}
\end{minipage}
\caption{die einzelnen aufbauten können wir in die grafiken der ergebnisse embedden rechts oben ins eck}
\label{fig:main}
\end{figure} \end{figure}
\subsection{Positioning Environment}
\subsection{Localization performance}
\begin{itemize} \begin{itemize}
\item Location error per method (multilateration, prob, particle filter) \item Beschreibe Gebäude - inkl HLS Räume!
\item Wie gut geht der PF? Parameter und Szenarien \item beschreibe ground truth pfade
\item RSSI vs FTM; wo ist FTM besser wo schlechter?; Verhält es sich ähnlich? \item access point positionen mit DOP analyse
\item wie sind wir gelaufen / testbedingungen... wie wurde GT gemessen usw. app etc pp.
\end{itemize} \end{itemize}
\subsection{Results for Multilateration} \subsection{Results for Multilateration}
zunächst wird das einfachste und nahliegendste verfahren untersucht um die performance von ftm und rssi gegenüberzustellen. zunächst wird das einfachste und nahliegendste verfahren untersucht um die performance von ftm und rssi gegenüberzustellen.
Figure 3 rote Bereiche - Heizung Lüftung Sanitär (HLS) Räume schirmen Radio Signale komplett ab! Wenn man dahinter steht, bekommt man gar nichts mehr vom AP mit. Wenn man sich nun die AP positionen ansieht, welche wir gewählt haben, fällt auf das wir Idioten sind. Anhand eine Triangulation Loc + Fehler Plots erklären.
\begin{itemize} \begin{itemize}
\item Parameter einführen und erklären \item Parameter einführen und erklären
\item Unterschied FTM und RSSI bei diesem Verfahren \item Unterschied FTM und RSSI bei diesem Verfahren
\item Positioning Error \item Positioning Error
\item Wie sieht der geschätzte Pfad aus \item Wie sieht der geschätzte Pfad aus
\item FTM ist nicht wie erwartet mega viel besser als RSSI. die simple literation glättet einfach gar nichts, weswegen... (hier begründung einfügen) \item FTM ist nicht wie erwartet mega viel besser als RSSI. die simple literation glättet einfach gar nichts, weswegen... (hier begründung einfügen)
\item DOP Grafik -> später vom particel filter referenzieren.
\end{itemize} \end{itemize}
wir bekommen hier also das gefühl, das ftm irgendwie besser sein muss, aber können es noch nicht wirklich nutzen. weshalb nun der probabilistische approach angesehen wird. wir bekommen hier also das gefühl, das ftm irgendwie besser sein muss, aber können es noch nicht wirklich nutzen. weshalb nun der probabilistische approach angesehen wird.
@@ -167,7 +197,7 @@ der einsatz der probablistischen methode sieht weitaus besser azs als multilater
\begin{figure}[ht] \begin{figure}[ht]
\centering \centering
\includegraphics[width=1\textwidth]{Path2_Walk0_FTM.png} \includegraphics[width=1\textwidth]{Path2_Walk0_FTM.png}
\caption{Path 2 FTM, Pixel 2 mean 4.94778 stdDev 2.49081 median 4.88544 count 249} \caption{Path 2 FTM, Pixel 2 mean 4.94778 stdDev 2.49081 median 4.88544 count 249 }
\end{figure} \end{figure}
\begin{figure}[ht] \begin{figure}[ht]