During the summer of 2019, I worked as an intern for 3 months in LIMU
research laboratory of Kyūshū University in Fukuoka, Japan. This internship was supervised by associate professor Hideaki Uchiyama
. I mostly worked in the building of a framework for indoor localization.
The main goal of this internship was to participate to one of the tracks of the competition
organized by IPIN 2019. Hence, every work, such as documentation, research or implementation, lead to a framework solving the problem raised by this competition. This competition is divided into five tracks focusing on different indoor localization problems. I participated in the fifth track and won the first prize on the manufacturing part. For the Restaurant part, I only finished second despite my best results because the SOE metric was presented after the end of my internship so I ended up with 0.0 on this category.
The inputs are composed of all PDR information (acceleration and rotation) and Bluetooth Low Energy (BLE) signals received. The framework developed only rely on the latest, BLE.
The framework can be divided into three sub-parts
We firstly localize a maximum number of positions of the person using BLE. I tested various methods (Multilateration, IA, PDR) but the best was Weighted Centroid Localization (WCL) with unity-based normalization and a custom weighting function. The benchmarks were made to search for efficiency and robustness. K is the number of beacons available, being efficient with a low K is proof of robustness.
However, there are many moments where there is no BLE information. It's necessary to estimate properly the position at 10Hz so I made a function computing velocity and interpolating all positions.
The last part of the framework is a particle filter which is based on Bayesian filtering. It smooth the signal with Gaussian noise thanks to the particles. The plausibility of all particles leads to the final updated positions at 10Hz.
All the incorrect particles are removed which also prevent from going inside or toward walls as we can see in the example below.