|
|
||||
|
|
|
|||
| Overview |
Wireless sensor networks consist of many small and cheap computational nodes that can sense the environment, communicate with neighboring nodes, and perform simple computations on sensor data. They may be deployed outdoors in large sensor fields to help detect and control the spread of wild fires, to detect and track enemy vehicles, or for environmental monitoring and precision agriculture. In many such application, each node requires location information to properly interpret its own sensor data and to act according to its placement in the world and in the network. Calamari is a system for providing each node in a sensor field with its own location information. Calamari has been deployed on both small and large scales and is built on the Mica2 wireless sensor platform. It has successfully localized nodes in ad-hoc networks using both ultrasound ranging and radio signal strength (RSS). Using ultrasonic ranging, a 49 node network deployed over a 144 square meter (1600 square foot) area was localized with a median error of .53m (1.7 feet). Using RSS, the system localized 49 nodes spread over half of a football field with a median error of 4.1 meters. Localization in sensor networks differs from localization in other domains in one key aspect: sensor networks have multihop topologies. This implies nodes must localize themselves based on information from neighboring nodes which also do not know their positions. For single-hop localization, where the localizing nodes can communicate directly with previously localized anchor nodes, there are many well known analytical solutions and deployed implementations (GPS,Cricket,RADAR,Active Bats, etc). Multi-hop sensor field localization, however, is still challenging because of the complex interaction between ranging error, the localization algorithm, and the actual network topology. One primary focus of Calamari is to explore these interactions and to predict them using thorough empirical characterizations and trace-based simulations. These simulation techniques have been shown to successfully predict the results discussed above. This web page provides code, simulations, data, hardware schematics, papers, etc that were collected in the process of building Calamari:
|
|||
| Software |
The Silhouette Simulator Silhouette is a Matlab-based simulator for sensor network localization. It uses statistical sampling techniques to employ traces of empirical ranging data in simulations of any size. The mathematical techniques used are described in this paper. Silhouette comes with empirical traces of both ultrasound and radio signal strength data, which are described in the section below as well as the paper. A large number of localization algorithms have already been implemented in the Silhouette simulator, including Bounding Box, Iterative Multilateration, the Ad-hoc Position System's (APS) DV-hop and DV-distance algorithms, MDS-Map, MDS-Map(P), Robust Quads, GPS-free and brute force global grid search. The algorithms, along with the empirical traces, make the Silhouette simulator an ideal foundation for comparative analysis of new algorithms. A comparative analysis of the localization algorithms that have already been implemented is available in this paper. Please reference this paper if you publish results using the silhouette simulator. To use the Silhouette simulator, use the following steps:
This silhouette.m file was designed for Linux, and requires Perl to be installed. If you are using windows or don't have Perl, download this version of the simulator and manually add all top-level subdirectories to your matlab path. Then it should work. (Eventually, your should probably rewrite silhouette.m to execute under windows; all it does is automatically add all top-level subdirectories to the matlab path, and execute a Perl script). Older Matlab Simulations You can find the older Matlab simulation code in the tinyos cvs in /tinyos-1.x/tools/matlab/contrib/kamin/localizationSimulation/. The code has three main parts:
To test the code out, add the enture localizationSimulation/ directory to your matlab path. Then run the lines
The first line loads an array of test cases "t" from the localizationSimulation/testcases/isotropic.mat file. The second command runs the "composition" algorithm from the localizationSimulation/algorithms/ directory on the first test case, and prints output. You should see the following screen appear: The graph at the top shows the distribution of errors normalized to the length of the maximum radio range in the network topology. The bottom graph shows the actual network topology, where dots are nodes, gray lines indicate connectivity, and red X's indicate anchor nodes, nodes that know their own locations. The blue arrow on each mobile node indicates the error vector, ie. it points to the position where the algorithm things the node is. To use the code more generally, use the "generateTestSuite.m" command in the localizationSimulation/testcases/ directory and any of the algorithms in the algorithms/ directory to test each algorithm against different characteristic networks. TinyOS Localization code TinyOS code for calamari has been written using the Neighborhood abstraction and resides in the tinyos code repository in tinyos-1.x/contrib/calamari. The README files in the subdirectories indicate what each test application will do. (NOTE: the rest of these instructions are for running the code in simulation and are out-of-date. The simulation code will still work but is no longer supported.) To compile and run the code, run the following lines from the mentioned directory:
In another shell, type
The first line makes the application for the simulator and the second line starts the simulator in gui mode with 10 nodes in the network. The third line starts the simulator gui, TinyViz. Activate the "Calamari" plugin in the TinyViz window, set the range and noise on the ranging technique and hit the ply button until the simulation starts. You should see a window that looks like this: Each node displays a red ring around itself if it is an anchor node. The mobile nodes display a blue arrow indicating the current error vector and the circle around the arrow's tip indicates the node's own estimate of it's own noise on the location estimate. Note that in the current implementation, the Simulator visualization is controlling the algorithm. To compile for a mica, simply switch the appropriate components such that
Code for Ultrasound and Radio Signal Strength Ranging The NesC drivers for the board described in the Hardware section can be found in tinyos-1.x/contrib/calamari/omnisound. A sample test application can be found in tinyos-1.x/contrib/calamari/ultrasoundBoardApp. The target platform atmega8 was developed for this board, but it can also be used with, for example, CotsBots boards which use the same processor.Early ranging work used the 4.3KHz sounder and the microphone on the standard Mica sensor board because of its relatively good omni-directional properties. The acoustic pulse was synchronized with a radio message and was received by the tone detector unit on the sensor board. Code for this implementation can still be found in the tinyOS code repository, although it only runs with the original Mica radio stack and is only there for reference; it is no longer supported. The main libraries can be found in tinyos-1.x/tos/lib/Ranging and a sample application can be found in tinyos-1.x/contrib/ucb/apps/TestTofRanging. People who want to use the Mica sensor board for localization should investigate the code provided by Vanderbilt in tinyos-1.x/contrib/vu/apps. Code for Ultrasonic Calibration The Joint Calibration method described in this paper is quite simple to implement and is completely contained in the file in the tinyos cvs in /tinyos-1.x/tools/matlab/contrib/kamin/chipconRssi/analysis called "estimateCalibCoefficients.m". To understand the resulting calibration coefficients, look at or use the function "calibrateReading.m". |
|||
| Data |
RF Signal Strength vs. Distance/Radio
-- submitted 5-26-04 by Kamin Whitehouse Ultrasound vs. Distance
-- submitted 4-9-04 by Kamin Whitehouse RF Signal Strength vs. Distance/Radio
-- submitted 5-22-03 by Kamin Whitehouse Acoustic time of flight vs.
Distance/Sounder/Mic
-- submitted 5-22-03 by Kamin Whitehouse RF Signal Strength vs. Distance/Strength
-- submitted 10-15-01 by Rob
Szewczyk RF Connectivity
vs. Distance/Strength-- submitted 10-04-01 by Alec
Woo RF Signal
Strength and Noise Characterizations over Distance -- submitted 10-03-01 by Kamin
Whitehouse RF
Characterization over Distance -- submitted 10-03-01 by Kamin
Whitehouse |
|||
| Hardware |
The latest ultrasound hardware was designed for both the Mica2 and Mica2dot
form factor and uses a reflective cone to provide omni-directionality in a plane
(see images), an approach borrowed from the millibots
project. The ultrasound transducer is connected to an Atmel Atmega8 1MHz
microcontroller which is used for both transmitting and receiving. Both devices
are mounted as a separate board on a mote, which consists of a ChipCon CC1000
FSK 433Mhz radio and an Atmel Atmega128 4MHz microcontroller.
Piezoelectric ultrasonic transducers have been used successfully in several
location-based projects \cite{cricket00, activeBats, savvides01dynamic}.
Generally speaking, higher frequencies achieve higher accuracy but shorter
range. We selected the frequency in \calamari just above audible
frequency at 25KHz for maximum range while minimizing human irritation.
Piezoelectric transmitters and receivers are typically tuned slightly
differently for optimal performance, but we specifically tuned those in
Calamari so that a single transducer could function as both a transmitter and
receiver.
The current Mica2dot form factor board is pictured below on the left with the reflective cone while the Mica2 form factor board is pictured on the right. While the boards are not being sold publicly, the schematics, layout and bill of materials are available. |
|||
| Publications |
Kamin Whitehouse, David Culler. "Macro-calibration in Sensor/Actuator Networks." Mobile Networks and Applications Journal (MONET), Special Issue on Wireless Sensor Networks. June, 2003. ACM Press. Kamin Whitehouse, Chris Karlof, David Culler. "A Practical Evaluation of Radio Signal Strength for Ranging-based Localization". ACM Mobile Computing and Communications Review (MC2R), Special Issue on Localization Technologies and Algorithms. 2007. Kamin Whitehouse, David Culler. "A Robustness Analysis of Multi-hop Ranging-based Localization Approximations". The Fifth International Conference on Information Processing in Sensor Networks (IPSN '06). Nashville, TN, April 19-21, 2006. Kamin Whitehouse, Chris Karlof, Alec Woo, Fred Jiang, David Culler. "The Effects of Ranging Noise on Multihop Localization: an Empirical Study" The Fourth International Conference on Information Processing in Sensor Networks (IPSN '05). Los Angeles, California. April 25-27, 2005. (ppt) Kamin Whitehouse, Fred Jiang, Alec Woo, Chris Karlof, David Culler. "Sensor Field Localization: a deployment and empirical analysis." UC Berkeley Technical Report UCB//CSD-04-1349, April 9, 2004. Kamin Whitehouse, David Culler. "Calibration as Parameter Estimation in Sensor Networks." In Proceedings of ACM International Workshop on Wireless Sensor Networks and Applications (WSNA'02). Atlanta, Georgia, September 28, 2002. ACM Press. (ppt) |
|||
| Contact | ||||
|
|
|
|||
|
Kamin Whitehouse Computer Science Department The University of Virginia 217 Olsson Hall Charlottesville, Virginia 94720 |