A Framework for Generic and Energy Efficient Context Recognition for Personal Mobile Devices
The advancements in the field of mobile computing over the last decade have enabled the scientific community to expedite the theoretical and experimental work to achieve the vision of ubiquitous computing. As ubiquitous computing aims to provide seamless and distraction free task support to its users, one of the essential pieces of information required by the ubiquitous computing systems to do so is the context of its users. Context of a user can be defined as the information that describes the task the user is performing and the environment in which the user is currently present. Among various platforms that are commonly used to determine user's context, the personal mobile devices like smart phones stand out as one of the most widely used and widely evaluated ones. However, despite numerous advantages that are provided by modern day personal mobile devices, such as high computational and communication capabilities, variety of on-board sensors to capture raw data related to user's motion and environment, high resolution displays to enable interaction with other services and systems, these devices suffer from limited battery resources. In contrast to the advancements in other domains, the advancements in the battery domain have not been up to the mark. Consequently, the context recognition applications developed for these devices suffer from the trade-off between achieving accuracy and longevity of other device's basic operations. As a result, most of the existing context recognition applications for these devices are fine tuned for specific context types and thereby lacks generality. The situation gets worse when a number of context recognition applications are executed simultaneously, thus competing for limited resources and consuming the device's battery additively. To address the aforementioned issues, this thesis provides a generic and energy efficient context recognition framework for personal mobile devices. The main contribution consists of a generic framework to support development of context recognition applications supported by algorithms to achieve their energy efficient execution. The proposed framework consists of two systems namely the component system and the activation system. The component system allows developers to create context recognition applications using a component abstraction. This enables runtime analysis of applications' structures to adopt our novel energy efficiency mechanism. The activation system uses a state machine abstraction to allow context dependent activation of context recognition configurations pertaining to relevant user's tasks such that only needed configurations are executed to determine only the relevant context characteristics, thereby enabling energy efficiency. The activation system also provides generic applicability of four different energy efficiency techniques, already used in different existing systems but mostly for specific context characteristics. To aid rapid prototyping, both systems are equipped with off-line development tools. The tools include graphical editors and a component tool-kit. The graphical editors allow developers to create component configurations used by the component system and state machines used by the activation system. These editors enable developers to create component configurations and state machines by simply dragging, dropping and connecting different models used in our component and state machine abstractions. These tools also provide validation and code generation utilities. In addition to the graphical editor, the framework provides a component tool-kit which consists of a number of already implemented sensing, preprocessing and classification components which can be re-used in new applications. In order to provide the energy efficient execution of context recognition applications, the thesis introduces a novel energy efficiency technique called configuration folding. Configuration folding analyses structures of simultaneously executing context recognition applications to identify redundant functionalities between them and as an output produces a single redundancy free context recognition configuration which holds the structural integrity of all applications. Consequently, the overall energy expenditure is reduced compared to the original expenditure when redundant functionalities are not removed. The experimental evaluation of configuration folding on test applications shows energy savings between 13 and 48 %. The thesis also investigates optimization possibilities in configuration folding in case the redundant functionalities between the applications differ in parametrization. Towards this end, the thesis identifies commonly used parameters in context recognition applications and defines relations between them. Finally, an extended version of configuration folding is introduced to handle the differences in parametrization. The evaluation of the extended version of configuration folding on test scenarios shows energy saving of up to 45%. The contributions in this thesis have been evaluated extensively. The framework has been used in number of European Commission (EC) projects and in student projects and theses at the University of Duisburg-Essen, Germany. Using the component system and the activation system, a number of applications have been developed in those projects. Some of these applications include crowd density estimation in buses, bus ride detections, navigation application for buses in Madrid, user movement detection, user localization, fall detection application etc. Moreover, the component system, the activation system and the configuration folding technique have been published in different prestigious conferences and workshops.