GNSS Measurements Android – GNSS Raw Measurements on Android: Real Time and Post Processing Differential Techniques

androidassisted-gpsdgpsgps

In the recent months we all saw kind of breakthrough in Android Smartphone GNSS receivers: GNSS raw measurements are now accessible, and this is significant since those are the most common form of widely used GNSS receivers.

https://developer.android.com/guide/topics/sensors/gnss

https://www.gsa.europa.eu/system/files/reports/gnss_raw_measurement_web_0.pdf

After reading the materials, there is one important thing that is still unclear for me: We all know that really precise location can be obtained only by using various differential techniques.

My question is about whether or not the raw data capturing relevant fields used for DGPS (I'm not so familiar with what fields exactly in the GNSS raw data usually used for DGPS):

Does those Android devices can receive real time DGPS messages from existing sources?

And if not, is it possible to construct such service?

For example a simple solution: Place a transportable DGPS reference station near the users, and transmit correction messages as a web service/radio to dedicated client application on Android?

Also, does the raw measurement data available on Android, can be stored for later post processing (offline) DGPS correction?

This is relevant in case different raw measurements used for real time/offline, and maybe the available fields in the raw data on Android are only those used in offline.

Best Answer

In short, yes - differential GNSS is now possible on Android, and, as of Android P (on supported devices), real-time kinematic (RTK), or carrier-phase measurements, are also possible.

The May 2018 Google I/O video "How to get one-meter location-accuracy from Android devices (Google I/O '18)" has a really good high-level explanation of the current state on Android as of Oreo, and what's coming that's new in Android P.

The GPS World article Positioning with Android: GNSS observables has a good overview of this topic as well.

The various pieces of data you get from the Android APIs are discussed at 30 min 38 sec: https://youtu.be/vywGgSrGODU?t=30m58s

They are also detailed in the Android GnssMeasurement documentation: https://developer.android.com/reference/android/location/GnssMeasurement.html

...including:

The discussion of using reference networks for carrier frequency positioning setup starts at 32 min 31 sec: https://youtu.be/vywGgSrGODU?t=32m31s

The article version of this presentation can be see in the GPS World July 3, 2018 article "How to achieve 1-meter accuracy in Android": http://gpsworld.com/how-to-achieve-1-meter-accuracy-in-android/

If you want a super-deep dive, check out the EU GSA Whitepaper "Using GNSS Raw Measurements on Android Devices" Section 3.4 "Taking It Beyond The Phone - Differential Observations".

All this is possible with single frequency GNSS, although dual-frequency GNSS is now emerging on commercial devices.

And yes, all the necessary data can be save and processed offline. Here are two apps that allow you to log this type of data: