3 ms·
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 mod
by KMnO4 4y 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 https://github.com/commaai/laika
- skzv 4y agoYou 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 https://developer.android.com/guide/topics/sensors/gnss [1] https://developer.android.com/reference/android/location/GnssMeasurement https://developer.android.com/reference/android/location/Gns...
- myself248 4y agoIs 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.
- londons_explore 4y agoThe 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.
- skzv 4y agoIt 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/GnssMeasurement#getCarrierCycles https://developer.android.com/reference/android/location/Gns...() [1] https://developer.android.com/reference/android/location/GnssMeasurement#getCarrierPhase https://developer.android.com/reference/android/location/Gns...() [2] https://developer.android.com/reference/android/location/GnssAntennaInfo https://developer.android.com/reference/android/location/Gns...