Inspiration
Current research in using extra router information for location purposes inspired this project. Open source machine learning libraries make the implementation of this idea feasible if implemented correctly.
What it does
A k-means algorithm was trained on collected WiFi router RSS data. K-means is an unsupervised learning model, meaning that the data points don't require to be labeled -- the computer figures out the data trends on its own. By feeding it data collected at distinct locations, it has learned the relationships between unique routers and can distinguish your location based on these received signal levels.
How I built it
We used an open source library called NetworkManager to collect the RSS data from all nearby routers, printers, and other wireless devices. This data was stored as .csv files. The .csvs were loaded into a training program with pandas. The data was pre-processed by converting router MAC addresses to unique identifiers that are easier to feed into a learning model. The k-means algorithm provided by scikit-learn found trends in the data and provided predictions. Real-time measurements were then taken and fed into the predictor. The resulting approximate location was output.
Challenges I ran into
Creating a user interface for this application proved to be very difficult. We are all new to building apps and the learning curve was steep.
The accuracy of this program was also lacking. Many improvements can be made.
Accomplishments that I'm proud of
We have a program that almost works! That's always exciting, especially when completed in less than 24 hours.
What I learned
Making apps is difficult
What's next for Wayfinding with WiFi
We would like to clean up the app a bit. Mainly by making the GUI useable. Also, taking more measurements and experimenting with different learning methods may improve our accuracy.
Built With
- csv
- matplotlib
- pandas
- python
- scikit-learn
Log in or sign up for Devpost to join the conversation.