Posts Tagged 'N810'

Context-aware system architecture

The main objective of a context-aware system is to translate sensor input into application action and adapted UI. In between, raw sensor information is used to build user context. It is very important to note that not all sensors have high contribution in defining user context. Contexts like “running” will probably only need the data from accelerometers.

One nice overview of a complete context-aware system is available here. The document is rather old, but clearly represents a very interesting high-level architecture. I think that this is the way to follow. In this architecture, DBUS can be used as the bridge between a context information daemon and applications.

Context-aware system high-level architecture

Another challenge is context representation. What data structure should be used to model a user’s ever-changing context? My first guess is an extended finite state machine where contexts are represented by states and sensors inputs are the trigger conditions for state transition.

Context state machine example

Context-aware applications

N810 context-aware

Recently I’ve been looking into some of the technologies (not necessarily new) that should be interesting for mobile/embedded related projects: augmented reality, context-awareness and location-based services (LBS). From the three, context-awareness was chosen as the focus for competence development. Context-awareness seems to be one of the next big things for mobile applications. As noted here, Google and Apple recently submitted patents related to context.

A context-aware application is a piece of software that examines and reacts to the user’s changing situation. It adapts based on inputs such as (a) the location where the user is; (b) the proximity of friends and other people; (c) accessible servers and other nearby devices; and (d) environmental factors like lighting and noise level. Based on the contextual inputs an application can adapt itself by adding, removing or changing its components’ behavior and UI.

Some of the challenges in context-aware computing are related to context representation and storage, update frequency, necessary input (sensor and infrastructure) identification, etc.

From a N810 and Maemo perspective, there is a bunch of inputs that can be used to detect the context: GPS, Bluetooth, wireless network, ambient light sensor, internal temperature sensor, camera and an external microphone.

Starting reference material can be found in the following links:

Context-Aware Computing Applications
Intro to Context-Aware Computing
Is Context-Aware Computing Taking Control Away from the User? Three Levels of Interactivity Examined

Twitter Updates

September 2019
« Jan