We have implemented and deployed Sextant in two real world settings. Our first implementation runs natively on platforms capable of running a Java virtual machine. We have deployed this version on laptops as well as HP Jornadas, small handheld devices. We ran experiments at the Cornell arboretum with the Jornadas. Our second implementation is on Mica-2 motes. Since the motes are not capable of supporting a Java virtual machine, the implementation extracts connectivity data from the network and computes location estimates on a coordinator node. We have deployed and tested Sextant on mote networks both indoors and outdoors.
Deployment on Jornadas at the Cornell Arboretum
It turns out that a real deployment is a lot of work, and complicated by various mundane factors beyond one's control. And yet it is absolutely crucial to deploy software in real life - much of the work in the ad hoc systems area could use a dose of reality.
We had 80+ Jornadas that had been donated to us as part of a curriculum grant by Hewlett-Packard. While they were actively used to teach operating systems, they had not yet been handed out to students so we could use them for our deployment. Jornadas are relatively large handheld Windows CE platforms that look like this (they have a PCMCIA port we used to plug an Orinoco 802.11b card):
First, we had to set up the approximately 50 Jornadas that we planned to
use for this experiment. We fit the Jornadas with
backup batteries so they would not constantly complain about how we were
in imminent danger of losing all our data. We also loaded up the Sextant
software onto the Jornadas manually.
Then we had to charge up the main batteries so the machines could
operate without being connected to a power source. Charging 50+ devices
is a mind-numbingly boring task. We raided a cluster and
borrowed its powerstrips so we could charge all Jornadas at the same
time. Here are some pictures from the lab.
We were working towards a paper deadline two weeks
away. Unfortunately, it was late October and a cold weather front
moved in. We had to wait ten days for the weather to improve to the
point where we could spend a few hours outside. So we patiently
waited. Here is a picture of the kind of thing we were dealing with
(courtesy of Frank Adelstein):
Finally, the weather improved, and we headed out to the arboretum
equipped with a super-accurate GPS unit (based on phase measurements)
we borrowed from the ECE folks who work on such devices,
a second commodity GPS unit, four walkie-talkies, and
Getting an initial GPS reading.
The arboretum is a big place. But it wasn't big enough. All of these pictures contain a Jornada running Sextant, sometimes along with a student safeguarding the equipment.
Jornadas in various orientations, and the accurate GPS unit collecting reference data. Tablets are used to gather and store measurements.
Overall, the software worked, but the experiment was a failure for a very odd reason. The driver for the wireless card on the Jornadas uses the card only at its maximum transmission power setting. Given the amount of space at the Cornell arboretum (which is probably one of the biggest arboretums anywhere), we just could not create an interesting enough topology!
We first checked connectivity between a pair of nodes. Saikat then
started walking away from our initial setup area. Every twenty feet or
so he would check connectivity, and sure enough we could receive pings
from his Jornada. He got further and further, disappeared way into the
woods, and we could still receive pings from his Jornada. At the point
where we lost connectivity, he was about 300 meters away from our
starting point and completely invisible. If he left the Jornada where
he was, it could easily be taken by a jogger. A deployment big enough
to create a non-trivial (i.e. not all-pairs connected) topology would
easily go out of the arboretum to the next town over. Meanwhile, we
would somehow have to protect the Jornadas from passersby. Since we
had only four people to run the whole experiment, and we were not
willing to leave Jornadas that cost $1000 each unattended, the maximum size of the
network we could test suddenly dropped to 4 nodes. We could not make a case for
scalability using just four nodes, to say the least.
Saikat is beyond the second row of trees, far far away.
We experimented with radio coverage extensively, however, and did find out some interesting tidbits about the hardware we were using. First, the coverage area of typical 802.11b radios is non-uniform and contains holes, so all work based on a unit-disk assumption will be invalid in the real world. We are convinced that theoretical or simulation-based studies in ad hoc networking that make such simplistic assumptions are academic exercises with limited or no applicability. Second, while the coverage area is non-uniform and contains holes, there is some structure that one can extract. We came away with a conservative characterization involving two radii, r and R. Nodes outside R are always unreachable, and nodes within r are always reachable. By extracting constraints conservatively using these settings, Sextant is able to operate in the presence of non-uniform coverage areas. Finally, it takes a lot of bodies and a lot of cookies to deploy an ad hoc network.
Deployment on MotesFinally, success.
pics to come