Skip to content


Repository files navigation


LIPS (Learning-based Indoor Positioning System)

Paper: (

LIPS is a hybrid fingerprinting-based approach to indoor localization using the sensors available in smartphones. For information about the research done involving this application, see (pdf at

Machine Learning

The models in /assets were built using WEKA (Waikato Environment for Knowledge Analysis WEKA is also used in the code for predicting the user position in the TrackerActivity class. The WEKA website is a great resource for any issues there, as well as the WEKA mailing list. Documentation for the Java resources in WEKA is available at while instructions for using WEKA in Java code can be found at and If there are problems, feel free to open an issue or send me an email.


Building the application and modifying it for usefulness in other buildings or areas of interest should be straightforward. Depending on the intended use of the application, much less code than this may be necessary. For help setting up an Android development environment, the documentation at is excellent. Regarding the code itself, comments are fairly liberal and variable names tend to be descriptive. Again, if you have any trouble, please open an issue here on Github or send me an email.

The main classes to change are and

The MainActivity file contains the code for data collection. The only necessary changes should be adding a new list of WiFi BSSIDs to listen for.

TrackerActivity will need the model built on your new dataset to predict a position.

Adding additional machine learning classifiers

Notice the RBFRegressor jar in libs. This is because RBFRegressor isn't by default installed with WEKA. To add RBFRegressor for use in code:


Click the Tools tab, then Package Manager

Find and install the RBFNetwork package

The jar will be in wekafiles/packages/RBFNetwork/RBFNetwork.jar



LIPS (Learning-based Indoor Positioning System)






No releases published


No packages published