The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
The Cricket Indoor Location System Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab http://nms.lcs.mit.edu/cricket
Cricket • Location for mobile applications – Resource discovery – Human/Robot navigation/tracking – Games • Location-aware sensing – Routing – Data dissemination – Annotating data with location information
Resource Discovery “Print map on a color printer,” and system sends data to the nearest available color printer
Location-Aware Sensing • Ubiquitously deployed networked sensors can Temperature, light, enable new forms of sound sensors, buzzer monitoring and control – Tracking assets (RF-ID tags) – Monitoring conditions – Traffic, facilities, physical plant, leaks, smoke, fire… • Sensor streams usually need to be annotated with location and time for them to be useful • Goal: Cricket-enabled sensors
Functionality: Space, Position, Orientation Corridor (x y z) ● Space: Rooms, parts of rooms Room 7(N) ● Position: Coordinates ● Orientation: Direction vector Room 7(S) Cricket provides all three
Design Goals for Cricket • Must operate well indoors • Must scale to large numbers of devices • Should not violate user location privacy • Must be easy to deploy and administer • Should have low energy consumption
Cricket Architecture info = “a2” Beacon info = “a1” Estimate distances Listener to infer location Passive listeners + active beacons scales well, helps preserve user privacy Decentralized network of autonomous beacons
SPACE = NE43-510 COORD = (146 272 0) Obtain linear distance estimates Pick nearest to infer “space” Solve for device’s (x, y, z) Determine w.r.t. each beacon and deduce orientation vector
Determining Distance Beacon RF data (space name) Ultrasound (pulse) Listener • The A beacon listener transmits measures an the RF time and an gapultrasonic between signal the receipt simultaneously of RF and ultrasonic signals – RF Velocity carries of location ultrasound data,
Multiple Beacons Cause Complications Beacon A Beacon B Incorrect distance Listener t RF B RF A US B US A • Beacon transmissions are uncoordinated • Ultrasonic pulses reflect off walls These make the correlation problem hard and can lead to incorrect distance estimates Solution: Distributed scheduling algorithms
Solution • Distributed beacon scheduling – Carrier-sense + randomized transmission (reduces chances of concurrent beaconing) – Idle time between beacon chirps to allow ultrasound to “die down” – Another possibility is distributed TDMA • Listener inference algorithm – Processing distance samples to estimate location – Key problem is outlier rejection
Example Estimation Algorithm: Windowed MinMode Frequenc A y B 5 Distance 5 10 (feet) A B Actual distance (feet) 6 8 Mode (feet) 6 8 Mean (feet) 7.2 6.4 Majority 9 10
Kalman Filter: For Mobile Listeners ● Min-mode based estimation is “slow” – Needs multiple samples from a beacon – Poor performance with mobile listeners ● Solution: Use a Kalman filter based estimator – Kalman filter uses a “predict and correct” approach to filter outliers
Beacon Autoconfiguration ● For listeners to compute their position, beacons need to transmit their locations ● Problem: How do beacons determine their locations? – Manual configuration (e.g., counting ceiling tiles) is possible but tedious ● Goal: Scalable autoconfiguration
Beacon Autoconfiguration: For a Small Number of Beacons B A dAB dA dB ● Place the listener under each beacon and collect distances to each beacons ● Calculate inter-beacon distances ● Calculate beacon coordinates – Selecet three initial beacons and assign coordiantes – Trangulate the others using these three
Beacon Autoconfiguration: Anchor Free Localization (AFL) ● For large number of beacons ● AFL is a two phase distributed algorithm for node localization – Phase 1: Fold-free initialization' – Phase 2: Optimization ● AFL needs local inter-beacon distances – Cricket beacons cannot measure interbeacon distances ● Listener-assisted AFL – Use a mobile listener to patch-together disconncted beacons
Cricket Hardware Platforms • Two platforms – CF interface – Rs232 interface • Both platforms can be software configured as a Beacon or a Listener – Unused submodules can be powered down to save energy • Can be programmed using a standard Mica programming board (MIB-510CA)
Cricket Hardware
Cricket Block Diagram Host Interface Serial ID RF interface CF or RS 232 CC1000 Temperature Ultrasonic Tx u-controller Sensor Atmega 128L 51-pin mote Ultrasonic Rx interface • Ultrasonic transmitter – 40kHz piezo transmitter – Driven by a 12V square wave • Ultrasonic receiver – 40kHz piezo sensor – Two amplifier stages followed by an envelope detector – Second amp stage has software adjustable gain
Cricket Block Diagram • RF interface – CC1000 based – similar to Mica2 – Additionally, there is a carrier threshold detector • Mote connector – Can interface with a Mica sensor board or a Mica – Communication with Mica through RS232 or I2C interface • Temperature sensor – On-board temperature sensor – Used to offset ultrasonic velocity change with temperature
Ultrasonic Ranging Characteristics • Radiation pattern – Easy to block the signal at the transmitter, but not at the receiver
Cricket Precision ● Distance estimation performance ● Area coverage – Error vs distance ● Beacon density
Distance Estimation Performance
Coverage Area ● Ultrasound range is 10.5 meters ● Radio range must be larger then ultrasound True Distance vs mesured distance 500 450 400 Mesured distance 350 300 250 200 150 100 50 0 0 50 100 150 200 250 300 350 400 450 True distance
TinyOS architecture and implementation ● Application (CricketBeacon and CricketListener) ● Modification to the radio stack ● Ultrasound activation Idle state ● Compensation (800-1200ms) ● Scheduling Receive (30ms + 1-3ms) * If failed Send * The receive while is reset each time a beacon is heard
Cricket API ● Serial/CF port API ASCII Binary (not implemented yet) ● TinyOS API example: module Cricket { command getDistance( int Beaconid) command BeaconRecord getClosestBeacon (int order) event beaconUpdate(BeaconRecord rec) event beaconChanged() }
Cricket Serial API Serial Beacon Listener Command Direction Parameters Type Parameter Description Read Write Read Write ASCII BIN Get Output Put Input ASCII BIN ASCII/BIN Mode Communication protocol to use • • • • MD 0x01 String[1] Char Node ID Unique node id • • ID 0x02 N/A String[16] Long Space Name User specified space id • • • • SN 0x03 String[12] String[12] Distance Distance between the lis- tener and the beacon • • DB 0x04 string[5],string[2] ushort,char Duration Ultrasound time of flight (uncorrected) • DR 0x05 string[5],string[2] ushort,char Coordinates Coordinates of the node (x y z) • • • • PC 0x06 String[1],3*string[6],string[2] Char,3*short,char Sleep Sleep range between beacon chirp • • SL 0x07 2*string[5],string[2] 2*ushort,char Ultrasound lifetime The ultrasound life be- fore the wave attenuate • • • • UL 0x08 string[5],string[2] ushort,char Temperature Temperature on the node • • TP 0x09 string[5],string[2] ushort,char Battery Level Reading of the voltage level from the battery • • BL 0x0A String[5] Short Uptime Time since powered up • • UP 0x0B string[5],string[2] ushort,char Version Software version • • VR 0x0C None String[5] String[5] Filter Event filter • • FL 0x0D String[128] String[128] User defined User defined • • DG 0xFF String[128] Variable
Cricket Demo ● Ranging ● 2D localisation demo ● ASCII serial API demo
You can also read