Hacker News new | ask | show | jobs
by KMnO4 1375 days ago
Cool, so it looks like they take the “raw” GPS location (after the GPS module does processing to spit out a lat/long) and applies statistical methods with a model of the actual 3D geometry. Seems like a smart way to improve the accuracy from “userspace”.

This reminds me of the Comma.ai project, Laika [0]. Since they have access to the raw GPS module data (Ie the actual timings of each received satellite transmitting), they can do things such as correcting for troposphere/ionosphere delays by looking up the relevant astro data as recorded by NASA and others.

[0]: https://github.com/commaai/laika

1 comments

You may be interested in knowing that Android has exposed raw GNSS measurements through public APIs [0,1] so anybody can build their own raw processing engines using techniques like the ones described in the article

[0] https://developer.android.com/guide/topics/sensors/gnss

[1] https://developer.android.com/reference/android/location/Gns...

Is anyone actually doing that? I see a build of RTKLIB but it's not actually using the Android GNSS API, it's just using your Android phone as a processor to handle data coming from an external Ublox receiver. Aww.
The android API exposes basically the same data that would come down the serial link from a 90's era GPS receiver plugged into a PC.

That's the position estimate, information about satellite orbits, signal strengths and pseudoranges.

The data doesn't include the raw baseband information necessary to, for example, do carrier phase locking or to do a fully software implementation of GPS decoding.

It actually exposes carrier information to do carrier-wave positioning as well [0, 1]

There's also an API to specify an antenna pattern [2]

[0] https://developer.android.com/reference/android/location/Gns...()

[1] https://developer.android.com/reference/android/location/Gns...()

[2] https://developer.android.com/reference/android/location/Gns...