HOME NETWORK CAPSTONE: LOCATION AWARENESS

Project Details

Initial Findings:

Available Platforms:
1. Windows/Linux/Mac
2. Android
3. WP7

Potential Data Sources:
1. Wi-Fi
2. Bluetooth
3. Accelerometer/Gyroscope
4. Camera
5. HomeOS
6. GSM
7. GPS
8. Light Sensor
9. Internet
10. FM Radio

Data/Sensor per platform

Sensor Windows Linux Mac Android WP7
Wi-Fi Yes Yes Yes Yes ???
Bluetooth X X ??? Partial* No
GSM No No No Yes Yes
Accelerometer ??? ??? ??? Yes Yes
Camera Yes Yes Yes Yes Partial**
HomeOS Yes Yes Yes Yes Yes
Light Sensor ???*** ???*** ???*** Yes No***
FM Radio - - - - Yes

* Android's low level bluetooth functions are only available if you use the NDK and a rooted phone
** Most laptops have ambient light sensors, though I'm not sure if we can access them easily.
*** You can't silently/secretly get camera data on WP7 (according to this page) as an app runs; you have to launch a “CameraCaptureTask” which requires a user to take the snapshot himself.
**** All WP7 devices have a light sensor, but I don't think it's available to developers

Data Sources Pros/Cons:

  • WiFi
    • Pros
      • Everywhere, supported by pretty much every device
      • Can enumerate all nearby APs and check signal strength to estimate proximity
    • Cons
      • Battery drain
      • Accuracy remains in question
  • Bluetooth
    • Pros
      • Limited range = less interference? (compared to WiFi)
      • Low cost of deployment?
    • Cons
      • Lack of APIs for phones (particularly WP7)
      • Can't enumerate beacons or get RSSI easily (on phones)
  • Accelerometer/Gyroscope
    • Pros
      • can probably use it to know when to start checking out other sensors/data sources
    • Cons
      • noisy data
      • unclear as to how we'll match patterns or adjust to different people
      • can't tell us on its own where the phone is, only when we can trust sensors
  • Camera
    • Pros
      • potentially the most powerful way to figure out where we are
    • Cons
      • light in a room usually varies with time of day
      • useless in low light (perhaps ignore cameras if light sensor sees no light)
      • relies on camera being able to see a consistent scene
      • not clear if object/scene recognition libraries exist for phones
  • HomeOS
    • Pros
      • Provides access to sensors off the device, and access to the states of other devices (lights on, shades open, etc.)
    • Cons
      • available data depends on how extensive the HomeOS network is and what devices are plugged into it
      • requires network connectivity (probably not a big deal)
  • GSM (cell frequencies)
    • Cons
      • Only on phones, not very accurate on its own
  • GPS
    • Pros
      • (can be) pretty accurate on its own
    • Cons
      • Doesn't work well indoors
      • Batter drain
      • only available on phones
      • Long acquisition time (it's slow)


Calibration:

  • WiFi
    • Take device to each room's center and take WiFi “snapshot”
    • Learn which controls to present over time by checking sensors every time user navigates to app controls that are associated with a particular room
    • Have beacon in every room, strongest beacon heard tells device what room it's in
  • Bluetooth
    • Pretty much the same as for WiFi
  • Accelerometer
    • We'd need to have a way to measure a person's gait: see what their accelerometer trace looks like while walking and going up/down stairs and stuff
  • Camera
    • Train on unique objects in the room
    • Check room's RGB profile (useful if room has unique wallpaper or something?)
    • Possibility: combine with compass data to help differentiate snapshots
  • HomeOS
  • GSM
    • I don't know how to calibrate this, but I don't think it'll be that useful in the context of the home. The phones have a localization API that uses this as part of their means to figure out where you are.
  • GPS
    • I don't think we can calibrate this one really. The phones have a localization API that uses this.