The collection of the SHL dataset required the development of a specific Android application, named DataLogger.
The application can collect a wide set of data from:
- Inertial sensors such as accelerometer, gyroscope, magnetometer
- Software sensors for linear acceleration, orientation (quaternions), gravity
- Environmental sensors as temperature, light, pressure and humidity
- Position sources such as GPS and cellular networks
- Wireless connectivity data, as network cells and WiFi networks
- Battery level
- Microphone audio
- Google’s activity recognition
For each sensor, the measurements can be enabled or disabled, the sample rate can be selected, and remote upload of measurements to any HTTP server can be configured. The data are saved in text format, as described here. Each sample is time-stamped with the Unix absolute time and the nanosecond time. The latter is the number of nanoseconds elapsed from the last boot, which may differ among the smartphones.
DataLogger is the first application that can collect data from up to 4 smartphone synchronously, in a master-slave configuration. Master and slaves use the same application but the user interface changes according to the respective role. The phones communicate via Bluetooth. The master uses the connection to synchronize the data collection mode (on/off), the labelling status (on/off) and the current label. Moreover, a keep-alive packet is sent every 30 seconds to detect connectivity loss and to synchronize the nanosecond clocks.
The application is released under MIT License and it is available on github. If you want to the application in your research project and future publications, please make sure to cite the following paper:
M. Ciliberto, F. J. Ordoñez Morales, H. Gjoreski, D. Roggen, S.Mekki, S.Valentin. “High reliability Android application for multidevice multimodal mobile data acquisition and annotation.” In ACM Conference on Embedded Networked Sensor Systems. ACM, 2017.