Sensus is an end-to-end system for mobile sensing using iOS and Android devices. Sensus is able to monitor a wide range of sensors and data events, and it is designed to interact with the user to solicit additional information via scheduled or sensor-triggered surveys. It coordinates the collection, anonymization, and storage of this information locally on the device and remotely on cloud servers. Sensus has been designed and implemented at the University of Virginia Predictive Technology Laboratory for research in public health and personal safety. However, Sensus is a general-purpose system. Researchers in other fields, industrial companies, and individuals interested in self-monitoring might find it useful.
Sensus's key features include the following:
- Cross-platform with native performance Most apps like Sensus are available for either Android or iOS but not both. This limits the target audience and threatens the validity of any study that requires a representative population of smartphone users. Sensus runs on Android and iOS and emphasizes a uniform user experience.
- Comprehensive sensing A complete list of internal hardware and software sensors, as well as external wearable and beacon-based sensors, can be found here.
- Device-initiated surveys Sensus can prompt users to complete surveys that are scheduled or triggered by sensed data. For example, surveys can be triggered on the basis of GPS location, proximity to points of interest, speed, acceleration, light levels, sound levels, after phone calls or text messages, and so on. Virtually any probed data can be used to trigger surveys, or you can schedule surveys to run during particular time blocks.
- Adaptive sensing Sensus is designed to support research into adaptive data collection, both for passive sensing and survey sensing.
- Fine-grained anonymization controls Each type of sensed data has several fine-grained facets that can be individually anonymized.
- Minimal infrastructure requirements Sensus is entirely self-contained. No external servers are required unless you would like to push data to the cloud (e.g., Amazon) for centralized storage, which is supported with minimal effort through configuration scripts that are provided with Sensus.
- Analytics Sensus is paired with an analytics library written in R (SensusR), making data ingest, display, and analysis straightforward.
- In-app configuration of sensing plans There is only one app to install. You use Sensus to configure a plan for sensors and surveys. This plan can be immediately distributed to participants for execution. No programming experience is needed, and you do not need to release your own version of Sensus to the Android and iOS stores.
- In-app ground truth collection It is easy to configure Sensus to generate labeled data in support of supervised machine learning models (e.g., for activity recognition).
- Randomized controlled trials of sensing plans Multiple sensing plans can be combined into a bundle, which is then delivered to participants. Upon receipt, participants are randomly assigned to one of the plans. This supports randomized controlled trials of plan variations.
Obtaining and Using Sensus
Sensus is available for Android from the Google Play Store and for iOS from iTunes. After installation, browse our articles for next steps.
Google has decided to disallow the use of SMS and phone permissions within Sensus. As a result, the version in the Goolge Play Store will not allow you to run the SMS or phone probes. You may still download a version of Sensus directly from the Sensus team with these permissions enabled. Visit this page for more information.
If you would like to try out the beta (early release) versions of Sensus for Android, you can join the testing program here.
Citing Sensus
If you are using Sensus in your research and would like to cite it, please use the following citation:
Support
Have questions or suggestions? Interested in using Sensus in one of your studies? Try one of the following.
- Post your question to the Sensus Google Group.
- Email us at uva.ptl@gmail.com.
- Log an issue on GitHub.