- Saved searches
- Use saved searches to filter your results more quickly
- License
- ryanmclark/Localization_via_WiFi_Fingerprinting
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Saved searches
- Use saved searches to filter your results more quickly
- License
- RMiyagusuku/wifi-localization
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Multi-Floor Indoor Localization based on Wi-Fi Fingerprinting using various Machine Learning models on the UJIIndoorLoc dataset.
License
ryanmclark/Localization_via_WiFi_Fingerprinting
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Multi-Floor Indoor Localization based on Wi-Fi Fingerprinting using various supervised machine learning models on the UJIIndoorLoc dataset. This dataset covers a 110m^2 area at the Universitat Jaume I and can be used for classification among 3 buildings and 4 floors as well as regression for latitude and longitude measurements in meters. There are 21,048 samples in this dataset that contain 529 features. Of the 529 features, there are 520 WAPs with intensity values and 9 types of labels. The 9 types of labels include latitude, longitude, building ID, floor ID, space ID, relative position ID, user ID, phone ID, and timestamp. The classification and regression models used here are K-Nearest Neighbors, Random Forrest, Decision Tree, and Support Vector Machine. Feature selection is also done via Variance Thresholding or Principle Component Analysis. All models and feature selection are implemented through the sklearn Python Package.
Building Error: sum of all missclassified building samples over the total sample count * 100 (percent)
Floor Error: sum of all missclassified floor samples over the total sample count * 100 (percent)
Mean Coordinate Error: mean euclidean error from estimated latitude and longitude against the true latitude and longitude.
Standard Error: sum of BuildingPenaltyBuildingError + FloorPenaltyFloorError + Coordinate Error where the BuildingPenalty is 50 and the FloorPenalty is 4.
Note that is possible to have a correct floor but an incorrect building.
There are also plots for each phone id for latitude vs. timestamp, longitude vs. timestamp, and latitude vs. longitude for prediction against ground truth.
K-Nearest Neighbors
Model Timer: 29.35 seconds
Mean Coordinate Error: 1.28 +/- 7.95 meters
Standard Error: 5307.65 meters
Building Percent Error: 0.21%
Floor Percent Error: 0.24%
Prob that Coordinate Error Less than 10m: 97.30%
Random Forest Regressor
Model Timer: 106.05 seconds
Mean Coordinate Error: 4.09 +/- 8.52 meters
Standard Error: 16242.91 meters
Building Percent Error: 0.29%
Floor Percent Error: 0.52%
Prob that Coordinate Error Less than 10m: 92.72%
Decision Tree
Model Timer: 3.70 seconds
Mean Coordinate Error: 4.65 +/- 11.55 meters
Standard Error: 18969.19 meters
Building Percent Error: 0.34%
Floor Percent Error: 3.69%
Prob that Coordinate Error Less than 10m: 87.36%
Support Vector Machine
Model Timer: 7.58 seconds
Mean Coordinate Error: 45.03 +/- 24.09 meters
Standard Error: 172698.51 meters
Building Percent Error: 0.29%
Floor Percent Error: 0.81%
Prob that Coordinate Error Less than 10m: 3.61%
This is just a brief overview. A more detailed explination is provided in each of the file’s descriptions in the header.
Runs the dataset through the models in the main function and saves the output to the output directory.
Contains the data for the provided trainingData.csv and validationData.csv/
All of the helper functions and models are located here.
Contains the loading scripts for K-Nearest Neighbor, Random Forest, Decision Tree, and Support Vector Machine classifiers and regressors. PCA and Variance Thresholding functions are also provided here as well. All models are from the sklearn Python Package.
Functions for the four types of errror functions — Building Missclassification, Floor Missclassification, Localization Error, and Standard Error.
Functions to plot latitude vs. longitude and position vs. timestamp for prediction against ground truth.
Helper functions used to load and preprocess data, format the output, and save output.
All outputs for each model are in their own subdirectory within here.
In here are a few plots generated during the parameter estimation process. They provide a few insides on the prior probabilities, data integrity, average intensities, WAP prevelence, and the relationship between intensity and floor for a couple of WAP IDs. The scripts used to generate these are not provided due to being messing one off scripts.
matplotlib==2.2.3
numpy==1.15.4
pandas==0.23.4
scikit-learn==0.19.2
The dataset was created by:
Joaquín Torres-Sospedra, Raul Montoliu, Adolfo Martínez-Usó, Tomar J. Arnau, Joan P. Avariento, Mauri Benedito-Bordonau, Joaquín Huerta, Yasmina Andreu, óscar Belmonte, Vicent Castelló, Irene Garcia-Martí, Diego Gargallo, Carlos Gonzalez, Nadal Francisco, Josep López, Ruben Martínez, Roberto Mediero, Javier Ortells, Nacho Piqueras, Ianisse Quizán, David Rambla, Luis E. Rodríguez, Eva Salvador Balaguer, Ana Sanchís, Carlos Serra, and Sergi Trilles.
About
Multi-Floor Indoor Localization based on Wi-Fi Fingerprinting using various Machine Learning models on the UJIIndoorLoc dataset.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Wireless signal strength based localization using Gaussian processes and path loss models
License
RMiyagusuku/wifi-localization
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Wireless signal strength based localization
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
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
Ubuntu 14.04.5, 18.04.4 Python 2.7
GPy at https://github.com/SheffieldML/GPy Numpy 1.11.1 Scipy 0.18.0
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
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]
Please mail directly to miyagusuku at cc.utsunomiya-u.ac.jp