Opportunities and practical use of Android GNSS Raw Measurements
This article presents information on opportunities and practical use of GNSS raw measurements. It also presents preliminary results of several testing activities
In May 2016, Google announced the availability of GNSS raw measurements from Android 7. Since then, the developers can access carrier and code measurements and decoded navigation messages from mass-market devices.
There are several advantages of using GNSS raw measurements. Their use can lead to increased GNSS performance, as it opens the door to more advanced GNSS processing techniques that, until now, have been restricted to more professional GNSS receivers. These benefits have been demonstrated through Code Based Positioning, Code Aided Positioning, Differential Positioning and Precise Point Positioning. Although in normal conditions, the position calculated from GNSS raw measurements may not be as optimal as a typical chipset output, in certain cases, when applying external corrections, using GNSS raw data may lead to improved accuracy of the solution. Several application areas stand to profit from this increased accuracy, such as augmented reality, location-based advertising, mobile health and asset management.
The raw measurement also allows to optimise the multi-GNSS solutions, and to select the satellites based on their performances or differentiators. This is particularly relevant for Galileo, which already today offers excellent performances and signal advantages, such as the second frequency E5, and will soon be offering differentiators such as the authentication on the Open Signal E1 and the Precise Point Positioning (PPP).
The availability of raw measurements is interesting also from a technological innovation point of view. GNSS raw measurements may support internal smartphone integrity by providing additional sources of information and allowing for the exploitation of receiver autonomous integrity monitoring algorithms.
This article presents information on opportunities and practical use of GNSS raw measurements. It also presents preliminary results of several testing activities, which showcase working solutions based on GNSS raw measurements and in particular for Galileo. The content is based on “White Paper on using GNSS Raw Measurements on Android Devices” (3) where more details on raw data extraction and its processing are described.
Android Raw measurements within the GNSS receiver architecture
A GNSS receiver processes signals and provides the user with an estimated Position, Velocity and Time (PVT) solution. This PVT is based on the measured pseudoranges, information delivered through the navigation message, and optional assistance and augmentation provided by third parties. A generic block diagram of a GNSS receiver is shown in Figure 1.
The Radio Frequency (RF) block (the left side of the diagram) includes the antenna and front-end, which are required for analogue signal processing. It can also include a low noise amplifier, filters and an intermediate-frequency down conversion. The final element in the block is the Analogue-to-Digital Converter (ADC).
In a smartphone, the base-band and PVT processing blocks (right side of the diagram) are software-based signal processing units that are designed to operate on a general-purpose hardware. The baseband processing is responsible for acquiring and tracking of the GNSS signals and decoding the navigation messages. Assisted data (external information) can be provided to reduce the time to fix.
The baseband processing block provides the raw data to the PVT block, which then computes the receiver’s PVT. This process benefits from augmentation data (e.g. EGNOS) or accelerometers (sensors fusion), improving the accuracy and availability in harsh environments.
Android 7 users can use android.location Application Programming Interface (API) to access the raw data required to calculate pseudoranges and decode navigation message (indicated by the red arrow on Figure 1). This data can be used to explore new algorithms and applications for mass-market devices.
The smartphone GNSS/navigation chip acts as a black box and outputs only the PVT and basic information from the tracked satellites (satellite ID and SNR). In high end models, those chipsets use tight integration with cellular, WiFi and Bluetooth to improve the accuracy and availability of the final position. Some even use motion/orientation sensors for cross aiding. In most cases, if you want to use RAW measurements, it is recommended to feed your algorithm starting position from the chipset PVT, periodically testing your solution against it.
Raw data architecture
Before Android 7.0, only limited GNSS data was accessible through the framework API Location. In this sense, this API acted as a black box, with PVT position provided as it is, without ability to access pseudoranges, phase, navigation message and time information.
The new API (android.location) provides direct access to both the raw GNSS observations and the PVT solution. Figure 2 shows an unassisted receiver architecture and the main differences between new and old API. For clarity, only newly accessible parameters (white boxes) are depicted. Other parameters, such as C/No or satellite position, are omitted. Pseudoranges are not provided by the new API directly, but the parameters needed to generate them are.
The importance of Time/ Navigation message and pseudorange generation
While GNSS is best known for its positioning capabilities, it is also one of the most available and reliable sources of precise time. Each GNSS system uses its own time system and usually, receivers provide only one GNSS time.
Internally, the biases between all the GNSS systems must be taken into account. Some systems provide the time differences to GPS time, for example the Galileo/GPS Time Offset (GGTO) provided in the Galileo navigation message. However, the offsets can be also estimated in the navigation solution.
This precise GNSS constellation’s time reference is also referenced to Temps Atomique International (TAI) and Coordinated Universal Time (UTC).
Pseudorange is a well-known measurement in the GNSS community, provided as a measurement of distance. However, GNSS receivers derive pseudoranges through time differences. Pseudoranges can be defined as
where tTx is the transmitted time, tRx is the received time, c is the speed of light in vacuum and indicates the epoch in which the pseudorange is computed (usually known as the measurement time).
The transmitted time (tTx) can be decoded from the navigation message. Each satellite transmits a time stamp (e.g. Time of Week for GPS and Galileo) at specific rate. Before it is decoded, the transmitted time is ambiguous. The ambiguity depends on the stage of the navigation message decoding process (e.g. primary code or page synchronization).
and the received time can be expressed as
Since the bias has been roughly estimated, the residual error is introduced in the clock bias of the PVT solution. The deviation due to the clock precision is also absorbed in the PVT. It should be noted that when multi-constellation PVT solution is computed, the biases between the constellations must be taken into account.
Opportunities and practical use of GNSS Raw Measurements
The architecture of GNSS mobile chipsets prioritises the user experience by minimalizing TTFF (time to first fix) to seconds and by improving position availability and continuity. Recently enabled raw measurements, available via android.location API, allow us to use the advanced positioning techniques summarised in Figure 3, which reduce GNSS error and can improve positioning accuracy. Raw measurements also support integration with the other sensors found inside the mobile phone and, with additional observables (such as Doppler and SNR), can provide better accuracy estimation, navigation robustness and an additional layer of security.
Mobile A-GNSS Chipsets overview
Mobile phone designs focus on battery optimisation and user experience, which impact both the selection of hardware components and software algorithms. Two different kind of oscillators are typically used in mobile phones: the TCXO that compensates the temperature variations and a low-power computation crystal oscillator (OX) that maintains the time with an accuracy degradation of 6 seconds per week (5).
A-GNSS chipsets are designed to reduce the TTFF within a few seconds using built-in access to the communication device (such as a 4G modem or WiFi connection) in order to retrieve time satellite information.
The mobile device will improve the reference frequency by calibrating the local oscillator in the phone (5) and it will obtain the approximate estimation of the smartphone position and the assistance data (5) (6) (7).
The typical antenna used in mobile phones is an inexpensive, PIFA (Planar Inverted-F Antenna). Its linear polarization (instead of circular) and the directivity of the radiation pattern leads to several dBs of signal loss. The relative loss, with respect to a standard patch antenna, is estimated to be around 11dB with highly irregular gain pattern (8) (9).
Hardware design choices impact the quality of the GNSS raw data, especially carrier phase measurements, thus directly affecting the performance of the positioning. Due to increased levels of multipath and a higher probability of fading, this effect will be even worse in the urban environment, where most phones are used.
Baseline performance – Code positioning
Several tests have been conducted in order to assess the performances of Android smartphones using raw data.
First, a dynamic scenario has been considered. The main characteristics of this test are:
▪ The receiver is placed on the dashboard of a moving car.
▪ A Nexus 9 tablet has been used, with GPS and GLONASS constellations used.
The results of kinematic trials are shown in Figure 5, where:
▪ The thick yellow line is the truth provided by the tactical grade Inertial Measurement Unit (IMU).
▪ The blue line represents the Android solution obtained from the Nexus 9 tablet.
▪ The green line is a code-only solution obtained using a low-cost single-frequency receiver with multipath-resistant geodetic antenna.
The main contributor to the difference between blue and green lines is mainly the linearly polarised antenna, which is poor at removing multipath in the urban environment (left side image). In the clear rural environment (right side), Android can maintain comparable performance with a low-cost GNSS receiver if no multipath is present and it is being visibly affected by the stray signals from the building on the left.
Figure 6 compares 3D instantaneous position error of the PVT solution calculated first using GPS only (black dots) with the PVT from using three constellations (GPS, GLONASS, Galileo). For simplicity, accuracy increase (error decrease) is visualized by a green dot and accuracy decrease by a red one. While the minimum satellite requirement is four, to obtain a reliable positioning, especially in the presence of noise and obstruction, 8-10 satellites are needed.
In case of limited sky visibility, common in urban areas, this can only be achieved using a multi-GNSS solution. This is visualised by the green circles that cover the top part of the graph – the area of poor GPS performance. In open sky conditions, when 8-10 satellites can be obtained from a single constellation, just increasing their number will not lead to better accuracy. This is mostly due to the build-up of noise and multipath effect, as demonstrated by the cluster of red circles at the bottom of the graph.
In this case, pre-selection of the best satellites for PVT would be recommended over increasing the overall number above 10. It should also be noted that the Inter-System Biases (ISB) between the systems needs to be properly estimated.
Table 1 quantifies the accuracy and availability of the position for all the constellation combinations, demonstrating the benefit of using multi-GNSS. All data was processed in the open source RTKLib software (1), using kinematic data collected on Android device.
Using information inside chipsets – Doppler smoothing of the code observables
To improve static positioning accuracy, the Hatch Filter to smooth code observation can be used (2). Traditionally, we use carrier phase, but duty cycle introduces repeatable cycle slips that require filter reset. Instead, we can use Doppler measurements that are more resistant to a duty cycle. Figure 7 shows a comparison of a static PVT obtained from raw measurement data using code only and Doppler smoothing, with different integration times. By using a smoothing window of 20 seconds, the 3D error (at 68% confidence level) is reduced by almost a factor of three, from 19.7 metres to 7.6 metres.
To assess this method in the kinematic scenario, let`s once again consider the motorway scenario with the 20 seconds smoothing window, which was selected based on the good results achieved with the static scenario. Smoothing increased accuracy, albeit smaller than in the static scenario, leading to a much smoother path, even in the highly dynamic motorway scenario (Figure 8). The reference trajectory (green) has been calculated with a high-end GNSS receiver.
Taking it beyond the phone – differential observations
Primary GNSS error sources are satellitebased (orbits and clock), atmosphere (ionospheric and tropospheric delays), noise and local effects (including multipath). Differential observation improves positioning accuracy by providing external corrections to those errors, but usually does not correct local effects such as multipath or interference. There are several techniques for doing so, with the most commonly used being DGNSS (or DGPS, Differential GNSS/ GPS) for code solution and the Real Time Kinematics (RTK), Network RTK and Precise Point Positioning (PPP) for the carrier phase solutions.
The most accurate results can be obtained when using carrier phase in RTK and PPP. Both require a good quality carrier phase and, ideally, a static convergence time to solve the ambiguities and increase the accuracy. Convergence time is considerably longer with PPP, but its data requirement is more ﬂexible. Corrections are transmitted via radio or the internet, but do not provide integrity information. Instead, this is provided by the large area SBAS services such as EGNOS, which also provide a Klobuchar-like ionospheric correction model tailored for Europe and Africa.
This model can be improved by a more localised model like, for example, the bespoke ionospheric correction model for Northern Adriatic for quiet space weather conditions in the summer time (10). Table 3 and Figure 9 show the difference between processing the static raw observables using a PPP algorithm (blue) and a device based code-based positioning solution (red). Reference location is indicated by a black cross.
This performance can be improved by dual frequency chipsets, which just recently became available for the mobile platform. They provide both L1/E1 and GPS L5 and Galileo E5 signals that are much more resistant to multipath. Initial trials show improved performance and the cycle slip detection and correction (11).
The duty cycle, deployed by the phone to reduce power consumption, affects the oscillator and introduces the carrier phase tracking discontinuity. Figure 10 shows the static data, collected without the active cycle (function was turned off). More than 90% of the phase measurement is valid, allowing for the use of an RTK or PPP algorithm. Three satellites (5, 21, 27) show an unusually high number of cycle slips, which could be due to a combination of low elevation and noise. These have been removed from the calculations.
The results shows that disabling duty cycle would improve the performance and, as such, is recommended for high precision applications, even at the cost of increased power consumption.
Educational and scientific applications
Raw measurements are also very exciting from a scientific perspective. Android devices can be deployed as a grid of sensors, given the reasonably low hardware cost and no need for dedicated firmware development.
One of the scientific uses of GNSS raw measurements is the provision of detailed atmosphere monitoring using only one frequency. Other applications and uses includes base station deployment, interference detection and as a part of a smart city’s sensors.
Secondly, android devices are an excellent teaching tool, allowing one to understand how GNSS measurements are obtained and calculated. Observations can also be used to compare solutions from single constellations (e.g. Galileoonly positioning in Figure 12), eliminate specific satellites or visualise worstscenario performance. Apart from education, the same approach can also be used to test hardware and software solutions, observe performance level and compare this performance with the benchmark solution provided by the chipset itself. An example of this is the GNSS Analysis tool provided by Google (12).
High Integrity Solutions
Access to raw measurements, in the form of individual pseudoranges and C/ No, as well as Automatic Gain Control (AGC) values, will offer the opportunity to generate new ways to detect RF interferences using the device itself. Furthermore, through the combination of measurement data from multiple Android devices within a region, there will also be the potential to locate the source of the interference. Currently, this may be a niche application, yet access to such capabilities will create opportunities to develop novel services to assist GNSS users, service providers, infrastructure operators and national frequency authorities in protecting the GNSS spectrum.
Receiver Autonomous Integrity Monitoring (RAIM) is an algorithmic assessment of GNSS signal integrity, providing confidence level assessment of navigation performance that can warn a user if performance is below the set threshold and another solution is required. These are intended for the safety-critical GNSS applications, but it can be extended to the Android platform, providing users with better positional confidence, additional verification and warning.
The need for higher accuracy in the mass market
Currently, over 6 billion GNSS devices are in use around the world, vast majority of which are smartphones. More than 50% of applications in the Google Play and Apple stores use location information. Smartphones are increasingly used in applications that are at the border of safety-critical or high precision ones, from navigating a glade or leisure boat to mapping trees for city park management. The higher location accuracy that can be obtained in the mass market will further increase the use of smartphones and wearables in semi-professional applications and enable a new range of consumer applications that are still not possible today.
The typical performance of today’s mass market mobile devices is in the range of metres to even tens of metres in difficult conditions, such as urban canyons. However, the use of multiconstellation, dual-frequency chipsets and the provision of external information promise to increase this accuracy to sub-metre levels in the near future.
Android raw measurements will provide additional layers of integrity and robust position, enabling the development of robust, reliable and interferenceresilient position-based services.
Existing applications and devices providing the raw measurements
A couple of Android applications are already utilising GNSS raw measurements. The main purpose of these applications is either to convert Android measurements in standardized formats to be eventually used (RTCM, RINEX…) or to allow the user to calculate higher accuracy position by receiving and using augmentation data. Some of these applications are PPP Wizlite, RTCM Converter, Geo++ Rinex Logger, Airbus GNSS Data Collector, Android GNSS Logger, G-RitZ Logger, GNSS Data Recorder, rinex ON.
A list of devices capable of providing raw measurements is maintained at (4). Information also includes constellations availability and the availability of the phase measurements. All devices need to run Android 7 or later.
GNSS raw measurements task force
Soon after the Google`s announcement, the European GNSS Agency (GSA) has launched the GNSS Raw Measurements Task Force to engage with leading experts in navigation and positioning, and boost innovation around this new feature (https://www.gsa.europa.eu/ gnss-raw-measurements-task-force).
The Task Force aims to share knowledge and expertise on GNSS raw measurements and its use, including its potential for high accuracy positioning techniques. The Task Force includes GNSS experts, scientists and GNSS market players from around the world.
GSA is also directly supporting the mobile developers to put the theory into practise. Still this year, GSA is organizing a special tutorial on raw measurements during the Indoor Positioning and Indoor Navigation (IPIN) conference in Nantes in September as well as the “Space for your App” hackathon, taking place in Padua in October. In the first quarter of 2019, GSA in cooperation with GNSS. asia project is planning to organize two regionals hackathons in India, exact dates are still to be confirmed. All upcoming events are announced at GSA website: www. gsa.europa.eu.
 http://www. navipedia.net/index.php/ Carrier-smoothing_of_ code_pseudoranges
 European GNSS Agency (2017), White Paper on using GNSS Raw Measurements on AndroidDevices (https://www.gsa.europa.eu/ system/files/reports/gnss_raw_ measurement_web_0.pdf)
 https://developer.android.com/ guide/topics/sensors/gnss.html
 Van Diggelen, Frank Stephen Tromp. 2009. A-GPS: assisted GPS, GNSS, and SBAS. Boston: Artech House
 Nicolas Couronneau (2013) Performance analysis of assisted-GNSS receivers, PhD, University of Cambridge
 http://rxnetworks.com/locationio/ predicted–gnss-ephemeris/
 Pesyna, K. M.; Heath, R. W. & Humphreys, T. E. Centimeter Positioning with a Smartphone- Quality GNSS Antenna Proceedings of the 2014 ION GNSS Conference, 2014
 Humphreys, T. E.; Murrian, M.; van Diggelen, F.; Podshivalov, S. & Kenneth M. Pesyna, J. On the Feasibility of cm-Accurate Positioning via a Smartphone’s Antenna and GNSS Chip Proceedings of the 2016 IEEE/ ION PLANS Conference, 2016
 Brcic, D. (2015). A model of non-specific daily pattern of the satellite positioning signal ionospheric delay (PhD thesis). Faculty of Maritime Studies, University of Rijeka. Rijeka, Croatia.
 Riley, S.; Lentz, W. & Clare, A. (2017) On the Path to Precision – Observations with Android GNSS Observable of the 2017 ION GNSS Conference
 GPS Measurement Tools, google. Available at: https://github.com/ google/gps-measurement-tools