Sensors aboard the International Space Station (ISS), including personal CO2 monitors, require location tracking in order to correlate their time-stamped data with positional information. Labeling of data based on visual inspection is expensive and impractical for tracking many sensors. A cheap and efficient solution is to utilize the one additional measurement device these sensors have; namely, their WiFi or Bluetooth signal strength readings.
Using these signal strength readings, this software aims to provide approximate location information in time for individual sensor units. The purpose of the Module-level ISS Sensor Tracker (MIST) project is to set a standard data format and protocol for recording WiFi signal strength information so that it could later be used to locate sensors onboard the ISS. Google and Apple have proprietary solutions for location services that combine GPS data with WiFi strength readings to give an accurate estimate of a cellphone’s position; however, no such method exists for tracking WiFi-enabled devices on the ISS.
Support-vector machines (SVM) were chosen as the algorithm to pursue. The main motivation is the high accuracy relative to the number of samples required for training, as training data is the main cost aboard the ISS. A Python application and library for both logging WiFi information and predicting positions was developed. A pipeline of techniques was constructed that gives highly accurate performance for the data sets collected. With a simple moving-window filter, the predictor can correctly identify which module a sensor is in with >95% accuracy. Further improvements will be able to bring this much closer to 100%.
The software program consists of two operating modes: training and runtime. For training, WiFi RSSI data is collected using standard Linux command line utilities and is stored in a csv format. The RSSI readings at each time step are correlated to a numbered location; in this case, the ISS module. This data is run through a set of preprocessing functions that strips away bad/sparse readings and arranges the data into a format ready for the SVM algorithm. The SVM is then trained against the training data set in accordance with a hand-tuned set of parameters.
In the runtime operating mode, data is collected much like in the training mode but serially. This data is run through the same preprocessor as the training data, so that both training and runtime data are scaled to the same mean and variance. The SVM then takes this preprocessed data and makes a best guess based on its tuned parameters as to which module/location the sample was collected in. By using a moving window average over five to ten samples, upwards of 95% tracking accuracy can be achieved.
None of the individual aspects of the algorithm are known to be fully novel, although the specific pipeline of subroutines may be. Other similar commercial projects exist but none that clearly provide the flexibility to work without GPS information.
The developers are looking to test the system with training data collected on the ISS, allowing them to tune the system parameters and ascertain the value of SVM WiFi tracking in a truly high-reflection environment.