Ubiquitous Computing

Context Management System


One of the major challenges of ubiquitous computing is the context - What is being used? Who is using it? Where is it being used? When was it last used? How is it being used?

Getting answers to these questions will enable innovative applications and formidable use cases for this data. Everything from finding your keys to locating an unused workspace in a shared environment relies on this kind of data, adding tracking and inventorying capabilities that do not exist yet.


The What and the When are relatively easier problems to solve - former being a reference to self, and the latter being a timestamp pulled from the Internet. However, the Who is a relatively harder problem - with NFC or RFID that are more power-hungry and size-heavy protocols. The Where is an even harder problem - reliable indoor localization does not adapt well and is time consuming to configure. The How, of course, is up to the device, and will be an optional metadata field that a smart device will fill in.

We want to build such a system, keeping track of all these fields for different objects. We want to create an embeddable system that can provide context awareness to the device it is attached to, that stores the history of whenever an object is moved, and logs this data into a data store, opening it up for use by other applications in multi-modal interfaces.

An RFID reader
An RFID reader from Datalogic, similar in shape to what we hope to implement

Type Class, Team project Role Architecture, Component Sourcing, Hardware Design, Use Case Demonstration Duration 4 months (Jan 2018 - Apr 2018) Tools Arduino, Raspberry Pi, RF Protocols, Audio Interfacing, Conversational UIs, Databases Objectives System and Solution Architecture, Context Gathering, Ubiquitous Computing, Signal Processing, Indoor Localization, Power Optimization


Anticipated Results

Context-sensing, in architecture terminology, is a "cross-cutting" concern within and across most, if not all, IoT applications. Hence the solution can be designed as a generalized component that will serve all such applications, perhaps with some configuration capability.

For example, a VR program could use this data to place things in a virtual world as it is in the real world. A store can keep track of who picked what, similar to Amazon Go. We will add more details as we progress through the project.