B. Smartphone Sensing
The smartphone has become the most ubiquitous [7] type of wearable computing. Its worldwide uptake has prompted many advances in micro-electro mechanical sensors (MEMS) technologies. Modern smartphones embed a variety of sensors: optical cameras, gyroscopes, accelerometers, magnetometers, pressure sensors, thermometers and light sensors. These com- ponents are designed to be robust and withstand everyday use for the lifespan of the device. The smartphones innate ability to sense while sustaining an Internet connection has encouraged new application areas focused around aggregating sensor data in online repositories. Multiple smartphones connected to the Internet can form large sensor networks [8] that generate big data in accordance to the Internet of Things model. For ex- ample, networks of smartphones can be used to conclude road condition maps from accelerometer data [9]. Another popular use is activity tracking whereby sensor data is amalgamated to deduce the overall comportment of smartphone users [10] [11]. Smartphones have the ability to stimulate physical activity and improve the overall health of their operators [12] [13].
application, rotations are stored as quaternions (for per- formance reasons) while vectors and matrixes are used primarily by the OpenGL ES renderer.
2) The kinematic package generates virtual bone objects based on BVH hierarchies. Each bone object is assigned a rotational and positional constraint to form an articu- lated skeletal hierarchy.
3) The animation package is a temporary storehouse for recorded data. Its primary functionality is to feed data to the skeleton during animation playback. Additionally, it provides the basic functionality for the animation controls.
4) The recorder package is used to extract data from the device’s gyroscope, accelerometer and magnetometer. The three sets of data are fused to produce a result that has little drift or noise. The recorder checks the data for errors and applies post-processing filters.
5) The connectivity package allows the application to func- tion as a node in a BSN by establishing a connection to the cloud server. The authenticator identifies the phone while the uploader and downloader transfer data between the smartphone and an online database. The trigger listener awaits server events so that the device can be controlled remotely by other smartphones or by the server.