This Instructable teaches you how to build a system to track indoor positioning of cats. The purpose of this project is to get insight into pet positioning and see their interactions.
The system incorporates RSSI (Received Signal Strength Indicator) to estimate cat position. A bluetooth device is put on the cat, and other bluetooth devices are used as device scanners ("beacons"). These beacons scan the area for the Bluetooth device attached on the cat. The scanning process results in a RSSI for the discovered device. The stronger the RSSI, the closer the cat is to the beacon. In order for the localization to work, we collected "fingerprints" of the RSSIs to multiple beacons to be used as training data for a classifier to predict the location of the cat. After collecting fingerprint data, we ran the live system with the cats to collect test data. We used Machine Learning on the actual test data to predict the location of the cats using the fingerprint data.
The system is based on http://www.kptang.com/pubs/gsmlocalization-hotmob...
List of Materials
This instructable was made as part of the CS graduate course "Tangible Interactive Computing" at the University of Maryland, College Park taught by Professor Jon Froehlich. Please see http://cmsc838f-s14.wikispaces.com/ for more details. This project was done by Hitesh Maidasani and Sana Malik.
The server should be able to accept and store data in a database. The code for the server is available at https://github.com/sana-malik/CatGear.
The server receives and stores training fingerprint data. The process for collecting the fingerprint data is explained in Steps 3-4.
The server also receives and stores the actual testing data once the whole system is live. This process is explained in Steps 5-7.
The server can be hosted on a local machine or on any cloud service such as Heroku. We used a node.js server hosted on Heroku in order to avoid running a local server for the entire experiment which was run for over 36 hours.
The database and tables should be setup. Attached is a dump of the PostgreSQL database with sample data (b012.dump). The dump also consists of the schemas of the tables.