Wednesday, August 1, 2012

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

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