Project

The sensor net lab is located in Gates B38.

The class requires two projects. A "warm-up" project involves using a number of wirelessly communicating iPAQ PDAs as sensor nodes, for simple acoustic localization. A final project will be chosen individually by student teams. This normally will be an implementation project on iPAQ nodes, but in some cases it may be a theoretical exploration, or a literature survey/synthesis.

Some useful facts and links about programming the IPAqs are here.

1. The warm-up project — due Thursday, April 24, 2003

The overall goal of the warm up project is to get you familiar with programming on iPAQs and provide some hands-on experiences with the major components of sensor networks, namely, sensing, networking and computation. We hope that this will give you the chance to experiment with the iPAQs and get ideas for your final project (whether that uses the iPAQs or not).

You will program a simple sensor network to track a sound source (target). Sensor readings will be the average acoustic signal power input at the microphones of the iPAQs. In this simplified network, each sensor node (iPAQ) will be able to communicate with all the other nodes. In a simple scenario where exactly one sound source is moving around in such a network, each node will be able to run a leader election algorithm and decide if it is a leader node based on its reading and readings from the other nodes. A good system should guarantee that the same node is elected to be the leader, though computations are done distributedly. With a slowly moving sound source, the network should be able to elect new leaders as the target moves, without misses.

You will be given code (in Python) on Leland to retrieve acoustic signal strength at the microphone (sensing), as well as to exchange packets over the wireless network (networking). Look in the directory /usr/class/cs428/proj1 on the Leland cluster and its README file. Your task for this project is to write an a local algorithm to elect a leader node. As sound signal strength attenuates with distance from the source, the sensor with the highest signal reading will be considered closest to the target, hence elected to be the leader. This task is very straightforward since nodes can talk to everyone else. Each node simply needs to broadcast its reading, collect readings from all other nodes through networking, and determine which node is the leader.

Broadcasting every time can be quite wasteful. One possible way to save energy is to broadcast only when necessary. The simplest way to decide if a node is far away from the target is by comparing its reading with readings from the other nodes. If the sensor reading at node X is an order of magnitude smaller than the maximum readings from other nodes, it is safe to say that node X is not near the target. Hence node X does not need to broadcast its measurement.

You are expected to work in groups of 2 to 3 people for the project. You can choose to collaborate on the programming, so that each iPAQ will be loaded with the same code. You can also choose to work independently. As the networking interface is already defined and your task is only for local processing, one team member's buggy implementation need not affect the rest of the team.  You will give a demo for your project. Your project will be tested on whether:

  1. Each node can track the leaders correctly as the target moves;
  2. The power saving is done correctly, i.e. a node far away from the target does not broadcast its readings.

You will be writing no more than some tens of lines of code. If you think otherwise, talk to the TAs. This project is simple and straightforward. It aims to get you started with some sensor net concepts and introduce you to programming on a resource limited platform. The sensing and networking part of this project may also be useful for your second project, if you choose to do use the iPAQs.

Arrangements for access to the iPAQs can be made with the TAs. On the project due date, please hand in a write-up of how your implementation works.

2. The final project — due Thursday, May 29, 2003

Ths is an open-ended project. It may, but need not, use the lab iPAQs. Algorithmic projects with an evaluation by simulation, or with thoretical analysis, are also welcome.

Project suggestions will be discussed in class on April 17. 2003. A project proposal will be due on Thursday, May 1, 2003.