Skip to content

EDAyele/ptunes

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pTunes

pTunes is a framework for runtime adaptation of low-power MAC protocol parameters. It is designed for sensor network data collection applications with soft requirements on network lifetime, end-to-end latency, and end-to-end reliability. pTunes automatically determines optimized MAC parameters at a central controller (e.g., a laptop serving as the gateway between the sensor network and the Internet) to satisfy given application requirements in the face of transient wireless links, topology changes, and traffic dynamics. To close the loop, pTunes uses a novel approach based on Glossy network floods to periodically (1) collect accurate, consistent information about the current network conditions, and (2) disseminate optimized MAC parameters to all nodes in the network. In this way, pTunes greatly aids in meeting the requirements of real-world sensor network applications by eliminating the need for time-consuming, yet error-prone manual MAC configuration as the network conditions change. In particular, pTunes outperforms static MAC parameters optimized for specific workloads and application scenarios, achieving severalfold improvements in network lifetime while satisfying end-to-end latency and reliability requirements under heavy wireless interference, sudden traffic peaks, and node failures.

Check out our IPSN'12 paper and tech report (both are available here) to read more about the pTunes runtime support, MAC protocol models, and performance in real-world experiments.

System and Implementation Overview

The pTunes framework consists currently of four main components:

  • Sensor nodes run the default data collection protocol in Contiki v2.3 on top of the X-MAC or LPP link layer. Both link layers expose an interface that allows to change selected operational parameters at runtime. pTunes periodically interrupts the normal application operation for a very short time simultaneously on all nodes. During these short phases, pTunes uses sequential Glossy floods to collect information about the current network conditions and to disseminate optimized MAC parameters.

  • The collection sink connects (e.g., via USB) to the base station (e.g., a laptop computer), passing the collected information on to the base station and receiving optimized MAC parameters from the base station.

  • The base station runs the pTunes controller, which is implemented in Java. The controller communicates with the collection sink, decides when to determine new MAC parameters, and triggers the optimization.

  • The MAC parameter optimization problem is modeled as a constraint program and solved on the base station using a branch-and-bound algorithm coupled with a complete search routine, both of which are provided by the Interval Constraint (IC) solver of the ECLiPSe constraint programming system.

Code Layout

/ptunes/contiki (full Contiki v2.3 source tree from early 2011)

/ptunes/contiki/apps/adaptive-mac (pTunes test application running on the sensor nodes and the sink)

/ptunes/controller (pTunes controller running on the base station, including build scripts and config files)

/ptunes/controller/src (Java code of the pTunes controller)

/ptunes/controller/eclipse (ECLiPSe constraint programming system)

/ptunes/cp (optimization code, including the implementation of the X-MAC and LPP models)

Getting pTunes to Work

pTunes is a research prototype and, as such, not ready for a real deployment. You should be able to built and run pTunes, however, on TelosB-compliant devices, such as the Tmote Sky, using mspgcc v4.6.3. Depending on the operating system used on the base station, you may need to update to the corresponding ECLiPSe and Java libraries in order to run the pTunes controller and parameter optimization.

To simulate the Contiki part of pTunes in the Cooja sensor network simulator, you should first get a recent version of Cooja from here and make sure to select the multi-path ray-tracer medium (MRM) radio model when setting up your simulation environment.

Read more here on how to configure the pTunes system.

Research

pTunes was developed at the Computer Engineering and Networks Laboratory at ETH Zurich and at the Networked Embedded Systems Group at SICS Swedish ICT. The pTunes team consists of Marco Zimmerling, Federico Ferrari, Luca Mottola, Thiemo Voigt, and Lothar Thiele. Please contact us for more information.

About

pTunes runtime parameter adaptation framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Prolog 40.1%
  • C 36.7%
  • Java 9.5%
  • Tcl 5.8%
  • C++ 3.7%
  • Python 1.2%
  • Other 3.0%