/wifi-localization

Wireless signal strength based localization using Gaussian processes and path loss models

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

WifiLocalization

Wireless signal strength based localization

Installation

clone this git repository and add it to your path:

git clone https://github.com/RMiyagusuku/wifi-localization.git ~/WifiLocalization
echo 'export PYTHONPATH=$PYTHONPATH:~/WifiLocalization' >> ~/.bashrc

install levmar as a shared object

From: https://jaredmales.github.io/mxlib/group__levmar.html

Download the latest levmar from the above link. Currently on 2.6.

Edit the following lines in the Makefile, like so:

CFLAGS=$(CONFIGFLAGS) $(ARCHFLAGS) -O3 -ffast-math -funroll-loops -Wall -fPIC
AR=ar -r
RANLIB=ar -s

once the build is complete, turn liblevmar.a into a shared libary like so:

gcc -shared -Wl,-soname,liblevmar.so -o liblevmar.so *.o -rdynamic

The location of liblevmar.so and levmar.h should be accessible to your compiler.

I put them in usr/lib and usr/include respectively (you need sudo).

install levmarmodule optimization for python

cd ~/WifiLocalization/Localization/sensormodel/pathloss/levmarmodule
sudo python setup.py build     # to compile
sudo python setup.py install   # to install 

Wrappers for ROS available at

https://github.com/RMiyagusuku/ros-wifi-localization

Tested Platform

Ubuntu 14.04.5, 18.04.4
Python 2.7

Libraries dependencies

GPy at https://github.com/SheffieldML/GPy
Numpy 1.11.1
Scipy 0.18.0

Related publications:

Renato Miyagusuku, Atsushi Yamashita and Hajime Asama: "Data Information Fusion from Multiple Access Points for WiFi-based Self-localization", IEEE Robotics and Automation Letters, Vol. 4, No. 2, pp. 269-276, April 2019. [doi:10.1109/LRA.2018.2885583]
Renato Miyagusuku, Atsushi Yamashita and Hajime Asama:"Precise and accurate wireless signal strength mappings using Gaussian processes and path loss models", Robotics and Autonomous Systems, February 2018. [doi:10.1016/j.robot.2018.02.011]
Renato Miyagusuku, Atsushi Yamashita and Hajime Asama: "Gaussian Processes Mappings Improvements Using Path Loss Models for Wireless Signals-based Localization", in: IEEE/RSJ International Conference on Intelligent Robots and Systems, 2016, pp. 4610-4615. [doi:10.1109/IROS.2016.7759678]
* This work employs a previous python implementation available here

Maybe also of interest

WLRF: WiFi and range data fusion
Main implementations for fusing WiFi and range data: Modified amcl, wlrf ROS package
How to generate additional rosbags for testing global localization and the kidnapped robot problem can be found here

Renato Miyagusuku, Yiploon Seow, Atsushi Yamashita and Hajime Asama: "Fast and Robust Localization using Laser Rangefinder and WiFi Data", in: IEEE International Conference on Multisensor Fusion and Integration for Intelligent Systems, 2017, pp. 111-117. [doi:10.1109/MFI.2017.8170415]

Questions

Please mail directly to miyagusuku at cc.utsunomiya-u.ac.jp