The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...

Page created by Bill Mcbride
 
CONTINUE READING
The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...
The Cricket Indoor Location
          System

           Nissanka Bodhi Priyantha
                     and
               Michel Goraczko

MIT Computer Science and Artificial Intelligence
                    Lab
         http://nms.lcs.mit.edu/cricket
The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...
Cricket

• Location for mobile applications
  – Resource discovery
  – Human/Robot navigation/tracking
  – Games
• Location-aware sensing
  – Routing
  – Data dissemination
  – Annotating data with location information
The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...
Resource Discovery

          “Print map on a color printer,”
          and system sends data to the
          nearest available color printer
The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...
Virtual/Physical Games
The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...
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
The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...
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
The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...
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
The Cricket Indoor Location System - Nissanka Bodhi Priyantha and Michel Goraczko MIT Computer Science and Artificial Intelligence Lab ...
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