From e10bd24a4a48a197b428b81f39f38a084b9deb88 Mon Sep 17 00:00:00 2001 From: toni Date: Fri, 9 Nov 2018 13:14:48 +0100 Subject: [PATCH] revision 02 --- tex_review/chapters/experiments.tex | 16 ++++++++++---- tex_review/chapters/introduction.tex | 4 ++-- tex_review/chapters/transition.tex | 9 ++++---- tex_review/egbib.bib | 31 ++++++++++++++++++++++++++- tex_review/review/01_review_02.odt | Bin 24685 -> 24905 bytes 5 files changed, 49 insertions(+), 11 deletions(-) diff --git a/tex_review/chapters/experiments.tex b/tex_review/chapters/experiments.tex index b9616f7..1814bab 100644 --- a/tex_review/chapters/experiments.tex +++ b/tex_review/chapters/experiments.tex @@ -101,13 +101,14 @@ Nevertheless, Android app and offline application are both use the same C++ back %Sensor measurements are recorded using a simple mobile application that implements the standard Android SensorManager. The experiments are separated into five sections: -At first, we discuss the performance of the novel transition model and compare it to a grid-based approach. +At first, we discuss the performance of the novel transition model and compare it to our previous approach using a gridded graph structure. In section \ref{sec:exp:opti} we have a look at \docWIFI{} optimization and how the real \docAPshort{} positions differ from it. Following, we conducted several test walks throughout the building to examine the estimation accuracy (in meter) of the localization system and discuss the here presented solutions for sample impoverishment. \add{In section \ref{sec:eval:act} the threshold-based activity recognition is evaluated, providing a detection rate for the test walks utilized before.} Finally, the respective estimation methods are discussed in section \ref{sec:eval:est}. \subsection{Transition} +\label{sec:exp:transition} \begin{figure}[t] \centering @@ -171,9 +172,9 @@ For example walking through a door, would result in a strong reduction of differ If the state evaluation is then used to assign weights to particles, the crucial problem of sample degeneracy often occurs. With a mesh, on the other hand, walkable destinations can also be located in a room behind a wall. In combination with the continues movement, this allows for a high versatility of particles even in such situations. -Another method to fix the problems shown in fig. \ref{fig:transitionEval:d}, is by adding an activity recognition (walking up, down straight) or to incorporate a barometer. -Nevertheless, in most cases it is an advantage if a sensor model delivers good results on its own, without further dependencies. -For example, if a sensor is currently unavailable or damaged, the system is still able to provide prober results. +Another method to fix the problems shown in fig. \ref{fig:transitionEval:d}, is by adding an activity recognition (walking up, down, straight) or to incorporate a barometer. +Nevertheless, in most cases it is an advantage, if a sensor model delivers good results on its own, without further dependencies. +For example, if a sensor is currently unavailable or damaged, the system is still able to provide proper results. Besides the advantages the mesh offers, it also has a few disadvantages compared to the graph. The computation time has increased due to the calculation of reachable destinations. @@ -299,6 +300,13 @@ In contrast, the $D_\text{KL}$-based method extends the transition and thus uses We set $l_\text{max} =$ \SI{-75}{dBm} and $l_\text{min} =$ \SI{-90}{dBm}. For a better overview, we only used the KDE-based estimation, as the errors compared to the weighted-average estimation differ by only a few centimeter. +\addy{The same applies for an accuracy comparison between the graph-based model and the navigation mesh as part of the overall system. +Both provide very similar localization errors regarding the conducted walks. +This is not a big surprise, as the accuracy of the pedestrian’s position based on the estimated state and thus the complete posterior density (weighted particle set). +It is obvious, that choosing a graph with a grid-size of e.g. \SI{2}{} x \SI{2}{\meter} would worsen the results. +This leads to the statement, that the approximation error of walking alongside the edges of a (reasonable sized) gridded graph is small enough that it has no significant influence on the overall localization accuracy compared to a true continuous motion. +Nevertheless, as shown in section \ref{sec:exp:transition}, the navigation mesh offers several major benefits by highly reducing the memory footprint.} + \begin{table}[t] \centering \begin{tabular}{rrrrcrrrcrrr} diff --git a/tex_review/chapters/introduction.tex b/tex_review/chapters/introduction.tex index 04a606d..a1b6e0c 100644 --- a/tex_review/chapters/introduction.tex +++ b/tex_review/chapters/introduction.tex @@ -49,11 +49,11 @@ In the here presented scenario, the beacons do not establish a wireless network %Im Gegensatz zu vielen anderen Arbeiten -To sum up, \add{this work presents an updated version of the winning localization system of the smartphone-based competition at IPIN 2016 \cite{Ebner-15}, including the improvements and newly developed methods that have been made since then \cite{Ebner-16, Ebner-17, Fetzer-17, Bullmann-18}. +To sum up, \add{this work presents an updated version of the winning localization system of the smartphone-based competition at IPIN 2016 \cite{competitionSpain, Fetzer-16}, including the improvements and newly developed methods that have been made since then \cite{Ebner-16, Ebner-17, Fetzer-17, Bullmann-18}. This is the first time that all these previously acquired findings have been fully combined and applied simultaneously. During the here presented update, the following contributions will be presented and added to the system: \begin{itemize} - \item The pedestrian's movement is modelled in a more realistic way using a navigation mesh, generated from the building's floor plan. This only allows movements that are actually feasible, e.g. no walking through walls. Compared to the gridded-graph structure we used before \cite{Ebner-16}, the mesh allows continuous transitions and reduces the required storage space drastically. + \item The pedestrian's movement is modelled in a more realistic way using a navigation mesh, generated from the building's floor plan. This only allows movements that are actually feasible, e.g. no walking through walls. Compared to the gridded graph structure we used before \cite{Ebner-16}, the mesh allows continuous transitions and reduces the required storage space drastically. \item To enabled more smooth floor changes, a threshold-based activity recognition using barometer and accelerometer readings is added to the state evaluation process of the particle filter. The method is able to distinguish between standing, walking, walking up and walking down. \item To address the problem of sample impoverishment in a wider scope, we present a simplification of our previous method \cite{Fetzer-17}. This reduces the overhead of adapting an existing system to the proposed method and allows to incorporate it directly to the state transition of any approach, using a general particle filter methodology. \end{itemize} diff --git a/tex_review/chapters/transition.tex b/tex_review/chapters/transition.tex index a37390f..278975f 100644 --- a/tex_review/chapters/transition.tex +++ b/tex_review/chapters/transition.tex @@ -108,10 +108,10 @@ \addy{However, while a graph restricts the movement to edges and nodes, the mesh allows for a true continues movement. This is achieved by having the freedom to walk to any position, under the condition that it - resides within a polygon.} + resides within a polygon that is actually walkable from the starting position.} \add{Just as before, the navigation mesh can be \emph{automatically} generated from the building's floor plan, based on - various algorithms \cite{navMeshAlg1, kallmann2010navigation}. + various algorithms \cite{navMeshAlg1, kallmann2010navigation, van2011navigation}. } Using variably shaped/sized elements instead of rigid grid-cells @@ -138,8 +138,9 @@ For the example of the rectangular room, two adjacent triangles are required to form a rectangular shape. However, using triangles, operations such as aforementioned contains-check, can now easily be performed, - \eg{} by using barycentric coordinates, yielding noticeable speedups compared to polygons. - } + \eg{} by using barycentric coordinates, yielding noticeable speedups compared to polygons.} + \addy{This approach has established itself especially in the field of computer game development for solving pathfinding problems. + A popular open-source library for creating navigation meshes in C++ is Recast \cite{Recast}.} \newcommand{\turnNoise}{\mathcal{T}} \newcommand{\stepSize}{\mathcal{S}} diff --git a/tex_review/egbib.bib b/tex_review/egbib.bib index 3dffe2c..204fa54 100644 --- a/tex_review/egbib.bib +++ b/tex_review/egbib.bib @@ -2940,9 +2940,17 @@ address = {{Rothenburg, Germany}}, @misc{Wemos, title = {{WEMOS Electronics}}, note = {\url{https://www.wemos.cc/}, Accessed: 2018-03-22}, -address = {{Rothenburg, Germany}}, +IGNOREaddress = {{Rothenburg, Germany}}, } +@misc{Recast, +title = {{Recast Navigation}}, +author={Mononen, Mikko}, +note = {\url{https://github.com/recastnavigation/}, Accessed: 2018-11-08}, +IGNOREaddress = {{Helsinki, Finland}}, +} + + @article{torres2017smartphone, title={The Smartphone-Based Offline Indoor Location Competition at IPIN 2016: Analysis and Future Work}, author={Torres-Sospedra, Joaqu{\'\i}n and Jim{\'e}nez, Antonio R and Knauth, Stefan and Moreira, Adriano and Beer, Yair and Fetzer, Toni and Ta, Viet-Cuong and Montoliu, Raul and Seco, Fernando and Mendoza-Silva, Germ{\'a}n M and others}, @@ -3662,5 +3670,26 @@ IGNOREmonth={Oct},} publisher={ACM} } +@inproceedings{van2011navigation, + title={{Navigation Meshes for Realistic Multi-Layered Environments}}, + author={Van Toll, Wouter and Cook, Atlas F and Geraerts, Roland}, + booktitle={Intelligent Robots and Systems (IROS), 2011 IEEE/RSJ International Conference on}, + pages={3526--3532}, + year={2011}, + organization={IEEE} +} + + +@Article{competitionSpain, +AUTHOR = {Potortì, Francesco and Park, Sangjoon and Jiménez Ruiz, Antonio Ramón and Barsocchi, Paolo and Girolami, Michele and Crivello, Antonino and Lee, So Yeon and Lim, Jae Hyun and Torres-Sospedra, Joaquín and Seco, Fernando and Montoliu, Raul and Mendoza-Silva, Germán Martin and Pérez Rubio, Maria Del Carmen and Losada-Gutiérrez, Cristina and Espinosa, Felipe and Macias-Guarasa, Javier}, +TITLE = {{Comparing the Performance of Indoor Localization Systems through the EvAAL Framework}}, +JOURNAL = {Sensors}, +VOLUME = {17}, +YEAR = {2017}, +NUMBER = {10}, +ARTICLE-NUMBER = {2327}, +} + + diff --git a/tex_review/review/01_review_02.odt b/tex_review/review/01_review_02.odt index 6fd4e175d617b26c2ad76928c90f79aac459e2c8..c35293756cd12e554c936527d852343464e5c7cd 100644 GIT binary patch delta 11010 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