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.