Hacker News new | ask | show | jobs
by robmcm 4174 days ago
I was suggesting GPS wouldn't work with most rooms having ceilings. Wifi positioning I would imagine is highly inaccurate, which leaves the gyroscope.

Judging by some screenshots and appstore comments I assume its only roughly accurate, and requires you to move your phone slowly between walls in straight lines (not via your pocket or around furniture for example).

I think I would have immediately dismissed an idea like this because I would have perceived the end result to be inaccurate and inadequate. Yet it's a popular app, so I guess I have learnt something.

3 comments

Ceilings usually aren't problematic for GPS. They do better out side, but if you get cell service through the ceiling, you'll get GPS signal through it.

What I'm curious about is that GPS is only accurate to within a few meters. If I turn on my GPS and set it on my desk for an hour, the resulting track will look like it's bouncing around the room.

My guess is this app averages a bunch of readings from each wall to correct for the noise, but I'm still surprised that works well enough to give accurate results.

The cell signal is orders of magnitudes more powerful than the GPS one. In fact, GPS even has a noise floor that's higher than the signal.

As for using GPS, WLAN and others, you can get pretty accurate measurements with sensor fusion, even if the individual sensor values are all noisy or inaccurate.

From past experience I'd also expect GPS to not be available unless you're near a window. But if it's there you can use it to get a more accurate location.

The traditional approach in sensor fusion is to use high accuracy, high drift sensors like the phone's accelerometer to provide accurate short term data and then correct for the drift using less accurate but low drift sensors like GPS. Just integrating the accelerometers will work on short time spans, but you also double integrate the noise of the accelerometer, so that measurement of position blows up quickly unless you correct for it.
> if you get cell service through the ceiling, you'll get GPS signal through it.

Download one of the apps that shows individual GPS satellite signal strengths and tell me if you still believe this. Definitely not true for my phone.

It really depends. I have an older dedicated GPS receiver that absolutely no way will receive a signal indoors. My iPhones all do a pretty good job. (FYI, you can only get signal strength on an Android phone; Apple's CoreLocation API doesn't provide that or some of the other detailed satellite data.)
GPS is based on triangulating (well, trilateralating) between 3-6 fixed points in space located thousands of kilometers away.

Wifi positioning is based on triangulating (trilateralating) between 3-40 fixed points within 100 meters.

Assuming you can get access to the raw data, Wifi should be extremely accurate for calculating the distance between two points in space separated by less than 30 meters. (And probably pretty accurate up to 100 meters or so.)

What about the impact of walls and other objects in between? Signal can drop or jump sharply as you move in and out of shadows.
What about multipath? I measure a 1/2 decrease in signal strength, is it because I got 1/sqrt(2) times farther away, or because someone opened the fridge door next to the router?
In response to the three replies already here. I've never done this, I'm a game programmer. But I would use a big bag'O'tricks to address this. Getting unrealistically long distances out of your wifi data? Have the user enter a square footage and normalize on a logarithmic scale bounded by heuristics. Use the accelerometer not for tracking but detection like going up and down stairs, walking short vs. long distances.
I'd think the problem with wifi is that the exact position of the base stations are hard to collect. The mass proliferation of telcom wifi networks could help if they are willing to sell the location data, but I don't see how Apple could reasonably know where the access points I see with SSID Holly_guest or TS-Dlink are located to use it as a trilateration point.
Four actually. Three for position in 3D space plus one for time.
>Judging by some screenshots and appstore comments I assume its only roughly accurate, and requires you to move your phone slowly between walls in straight lines (not via your pocket or around furniture for example).

The site claims it's accurate to within 6 inches which, based on a quick trial, seems about right.

You don't have to move it in a straight line as far as I can tell. I just moved it around the room and pressed it against the walls.

Like you, I wouldn't have expected this to work. But it pretty much does. I didn't experiment with what radio signals it needs to work. (Though for most uses I'm not sure it's easier than a laser distance meter and some graph paper.)