Monday, August 6, 2012

[android-developers] Re: how to achieve the accuracy of google navigation

I would'nt be surprised if they are incorporating accelerometer readings into their extrapolation algorithm.

On Monday, August 6, 2012 9:47:41 AM UTC-4, Jef De Busser wrote:
I can see how extrapolating would yield good results if you have a small delay between reported position & real position, e.g. the 1s update rate of most GPS receivers.
What I can't see however, is how you could make that work with larger delays, especially for large accelerations.

Say for example you drive on a straight road at 3m/s, accelerate with 2m/s2, and we exampime multiple delays.
We can extrapolate from the last known location at constant speed over that delay and compare position to where we really are.

1s delay:
const speed: 3m
reality: 4m
error: 33%

2s delay
const speed: 6m
reality: 10m
error: 66%

4s delay:
const speed: 12m
reality: 28m
error: 133%

I've measured delays varying from 1 to 4 seconds several times, and yet Google Nav manages to position the car at the exact location.
It can't use map data to correct its position, since we're on a straight road.

So that must mean that it uses sensor data, right? Or am I missing something?



On 08/03/2012 08:47 PM, Nadeem Hasan wrote:
That would be extrapolation. And that is actually the exact reason why the GPS lags on exits if they are off-route because it has extrapolated your position based on your route till the next actual GPS location update arrives. I have seen this behaviour with my Garmin device too when I decide not to follow the route.

On Friday, August 3, 2012 11:46:45 AM UTC-4, Nobu Games wrote:
I'd go for interpolation and take the current average speed and the "structure" of the streets into account. That of course only works when you have something like a graph / vector representation of the streets and know how they are connected and what orientation they have.

It is also pretty common that even Google Navigation is off, especially on highways with exits. Sometimes the navigation draws the car following the highway even though you are already leaving on an exit.


On Wednesday, August 1, 2012 9:18:33 AM UTC-5, bushido wrote:
Hi all,

I'm writing an application for android for which I need good position
accuracy, I use a Galaxy Nexus as test device.

My test application subscribes to location updates and draws a car
symbol in a map, the map is centered to the location of the car &
rotates according to the bearing of the location (exactly like google
maps on android does). I noticed that when up to speed, the positions
don't match with reality, they lag behind considerably.
When I cross a street at 90km/h for example, it will take a few
seconds before the car on the map is also crossing that street. It
isn't an error in the map data, because when I'm standing still, the
car gets drawn on the correct location. Google maps for android shows
exactly the same behavior.

The position of the car in Google Navigate on the other hand matches
reality rather closely. I've noticed that the position updates are a
lot smoother as well. (10Hz rather than the 1Hz updates which you get
from GPS)

My question is: how do they do it? What I can think of is:
- using the phone's sensors (gyro & accelero) together with a kalman
filter or similar. But I can't see how you could make that work for
every phone, since not all phones have these sensors.
- interpolating, but in that case I would expect overshooting when
there is a sudden stop or a sharp corner

Thanks in advance.
Bushido

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment