WSN Projects

NEST: Network of Embedded Systems

The main contribution of this project is the a real-time network coordination and control middleware that abstracts, controls, and ultimately guarantees the desired behavior of large unreliable networks such as those composed of sensors and actuators. Our networks of sensors and actuators differ from the traditional networked systems in that, in aggregate, they must be highly adaptive, must cope with high rates of component failure, mobility, and reconfiguration, and must export a highly configurable set of parameterized services that may involve coordinating a rich set of sensors and actuators in the network core. This functionality will be supported by composable microprotocols that allow behavior specification, perform large-scale component coordination, and export the perception of customized QoS guarantees.

Project Collaborators

The NEST project is funded by DARPA ITO. The members of the real-time computing laboratory at the University of Virginia collaborate closely with the following partners on the NEST project:

Technical Overview

It will soon be possible to develop, economically, large numbers of small smart components that combine computing power, wireless communication capabilities, and specialized sensors and actuators. These components or nodes may be deployed in thousands to achieve a common mission. They may be used to monitor poorly accessible or dangerous environments such as the ocean floor, neighborhoods of volcanic activities, hostile territories (e.g., behind enemy lines), disaster areas, and nuclearly active fields. They may also be deployed to accomplish interactive tasks such as finding and detonating enemy mines, looking for survivors of natural disasters, or containing and isolating oil spills to protect a nearby coastline. The new technology creates a different set of challenges arising from the fact that:

What is needed is a new set of software tools and protocols to enable effective programming and usage of such networked embedded computing systems.

Programming Paradigm

Many of the functions performed by the net will require replication. For example, measuring temperature gradients in a certain neighborhood, monitoring the progression of a moving object, storing a variable amount of information about a monitored activity, etc. In some sense, the coverage or the quality with which the function is performed may depend on the degree of geographic replication of this function. This is somewhat analogous to the way locally-acting microorganisms cooperate to achieve tangible effects on a larger scale.

Our main abstraction exported by the OS to the application programmer is that of Microcells. Microcells are the equivalent of tasks in traditional operating systems. Microcells begin their life-cycle as inactive software components with a specific application-dependent function (implemented by microcell code). They may initially reside on randomly selected host nodes until activated. Microcells are activated by stimuli in the environment, as well as by events in the computing system (such as specific changes in resource utilization). Once a microcell is activated, the stimulus of interest can cause it to perform self-replication, migration, or grouping. The mechanisms for microcell replication, migration, and coordination are supplied by the underlying software infrastructure. The description of activating stimulae are a part of microcell specification. Control-theoretical techniques will be used to control microcell replication (i.e., growth). For example, growth may be controlled to reach the required computing capacity or geographic coverage for different functions performed in the vicinity of an event of interest. The right code and data repositories will thus populate the right geographic neighborhoods to minimize internode communication and maximize the utility of the network (e.g., maximize its capacity to collect and process information from the physical environment).

The programmer needs only to supply the microcell and a description of its stimulae. The rest (including which microcells to execute, when to execute them, where, and on how many nodes) is undertaken by the operating system in response to environmental state. The system implements its own microcells which are called system services. Such services implement fundamental activities in the infrastructure, such as information storage (caching).

Node Architecture

architecture diagram

Local Services

One of the main thrusts of the project is the development of middleware services for coordination in deeply embedded device networks to bridge the gap between sensors and actuation.

Software Release: VigilNet

A robust, self-organizing, wireless sensor network system for long-term, persistent surveillance, involving detection, tracking, classification, and identification of vehicle and personnel targets over various types of terrain (Consists of 40,000 lines of code running on XSM, MICA2 devices and fully integrated with other sophisticated sensors and backend systems).

More Information

More information about the sensor network project can be obtained from our publications and slide presentations.