Introduction

Starting from the release of version 7.0 of the Android operating system for tablets and smartphones, it is possible to access global navigation satellite system (GNSS) raw measurements from the application programming interface (API) on the application layer in the Android operating system (Malkos 2016). This means that App developers can access now GNSS data that earlier only was accessible by the operating system itself.

This enables new applications for smartphone and tablet users that take advantage of positioning techniques, which were earlier only possible with geodetic receivers. With the accessibility of GNSS raw data, it is possible to utilize externally produced GNSS corrections in the positioning solution. This allows, at least in theory, to achieve position, navigation, and timing (PNT) with a higher level of accuracy than before with this type of devices.

One of the greatest differences in how the GNSS observables are accessed, compared to how it is traditionally achieved for geodetic receivers, is the extraction of pseudoranges. These are not directly available from the Android API. Due to the need for fast positions for some smartphone users, the synchronization process that traditionally includes waiting for and decoding the time of week (TOW) field of the broadcast ephemeris is here avoided. This means that only various time tags related to the time of reception and transmission of the GNSS signals are available from the API, and the responsibility to determine the true pseudoranges falls on the App developer. A thorough description of how this can be achieved is given in a newly released white paper (European GNSS Agency 2017).

Accessible raw measurements, besides time tags for determination of pseudoranges, are Doppler shifts, signal strength, and carrier phases from the satellites tracked. It is, however, only a subset of all Android devices that will support all the measurement types. Carrier phases, for instance, are optional.

Even though it is now possible to include external corrections into the positioning solutions, this does not necessarily mean that smart devices can achieve the same level of accuracy as geodetic receivers. It has earlier been demonstrated that one of the main weaknesses with smart devices, in comparison with geodetic receivers, is the inferior GNSS antennas of the former. In Pesyna Jr. et al. (2015), the author fed GNSS measurements collected by a smartphone antenna into a software-defined receiver. The GNSS measurements were heavily affected by multipath errors, which made integer resolution of the phase ambiguities more difficult to achieve. It also affected the overall quality of the determined positions. The poor handling of multipath is partly because only very small linearly polarized patch antennas are employed for the reception of GNSS signals in these kinds of devices due to the space limitations imposed by their sizes.

Another limitation regarding precise positioning on Android devices is the battery saving mode for the GNSS chip that is used by most of the devices today, commonly referred to as duty cycling. The duty cycling, repeatedly every second, turns on and off the power for the GNSS chip in the device to limit the drain on the battery. This introduces cycle slips in the carrier-phase measurements on devices that support this observation type. Clock discontinuities might also affect the measurements for some devices.

Since the release of GNSS raw measurements in the Android API, a number of studies have been performed trying to assess the precise positioning capabilities of various Android devices. Banville and Van Diggelen (2016) studied a 3-min data set of GNSS raw measurements from a Samsung Galaxy S7, collected at the Googleplex in Mountain View, California. It was demonstrated that positions with centimeter precision are possible when both Doppler and carrier-phase measurements are included in addition to the pseudoranges in the solution. However, it was emphasized that although centimeter-level repeatability was achieved, the corresponding accuracies of the positions were probably at the meter level due to the short data interval. Actual accuracies could not be determined as the true position of the device was unknown.

Riley et al. (2017) at Trimble assessed precise positioning for several Android devices, including Samsung Galaxy S7 and the Nexus 9 tablet. Precise positions were determined both with real-time kinematic (RTK) positioning and with pseudorange and Doppler only. Both cases demonstrated accuracies of between 1 and 2 m. The positions were generated by unmodified existing position, velocity, and time (PVT) engines at Trimble.

Realini et al. (2017) suggested that precise positions would be estimated by rapid static surveys, with float phase only solutions of 15 min. The quality of the positions estimated from Nexus 9 and u-blox observations was assessed against a 1.5-h solution. The precise positions of the Nexus 9 demonstrated position uncertainties of about 1 dm for 15-min static solutions.

Precise positioning with Android devices has also been assessed by Gill et al. (2017), Navarro-Gallardo et al. (2017), Pirazzi et al. (2017), and Zhang et al. (2018). These studies draw similar conclusions about positioning performance and raw data characteristics as the above-mentioned studies.

Even though the poor antennas of these devices are a known limitation, no earlier studies have assessed the positioning qualities under various multipath conditions. The objective of this study is to characterize GNSS raw data from a Nexus 9 tablet in two experimental setups with different multipath signatures. As a part of the objective, assessment of various biases of the Nexus 9 tablet is included. To the author’s knowledge, no similar investigation has been performed before for GNSS observations from smartphones or tablets. In addition, the position quality of both differential GNSS (DGNSS) and carrier-phase-based positioning will be assessed from the two multipath setups. The Nexus 9 tablet was chosen as it is one of a few devices on the market today that supports carrier phase observations and simultaneously has the duty cycling feature disabled. This means that uninterrupted carrier-phase measurements can be collected, which enables precise carrier-phase-based positioning. The Nexus 9 tablet has the capability of single-frequency positioning with both GPS and GLONASS, and this study will, thus, cover those cases. In summary, the contribution of this study is better characterization of GPS and GLONASS raw data and related biases of the Nexus 9 or similar devices.

Experimental setup

GNSS measurements were collected on day of year (DOY) 79 and 80 (year 2018) for two different experimental setups with a Nexus 9 tablet and a geodetic receiver and antenna, henceforth referred to as reference (A) In both setups, depicted in left-hand and right-hand sides of Fig. 1, a Nexus 9 and the geodetic antenna of reference A were mounted on pillars with known pre-calculated coordinates, which allows for the determination of positioning accuracies and not only precisions as determined in the previously mentioned studies. In addition, GNSS observations from the geodetic receiver of the station Gävle of SWEPOS were used. SWEPOS is the Swedish continuously operating reference station (CORS) network with nationwide coverage (Lilje et al. 2014). This reference station played the role of a base station for the generation of correction data used in this study. The Gävle station’s receiver and corresponding antenna are henceforth referred to as reference (B) The baselines between the Nexus 9 tablet/reference A and reference B have lengths of approximately 40 m. Both reference A and B employ Trimble NetR9 receivers connected to choke-ring antennas of type JAVRINGANT_DM. The exact location of the Nexus 9 GNSS antenna is a factor of uncertainty, but can, nevertheless, not vary more than the size of the device itself. As the device was centered on the pillar, the possible deviation will have a maximum of about 1 dm.

Fig. 1
figure 1

Experimental setups on the roof of the headquarter building of Lantmäteriet

The antenna pillars on which the Nexus 9 and reference A were mounted are usually used for the calibration of antennas employed in the operation of SWEPOS. Their location has favorable conditions: no obstacles and no reflecting surfaces. We might say that these conditions are ideal for geodetic antennas with a hemispherical antenna gain pattern, where signals from below the horizon are attenuated. However, this is not necessarily true for the antenna used by the Nexus 9 tablet, as it probably has more of a spherical gain pattern with similar gain in all the directions. This is because the smartphone user requires GNSS position estimates regardless of the orientation of the device. The Nexus 9 tablet might, therefore, still be susceptible to multipath errors caused by signal reflections from below the antenna.

To determine the potential influence of this kind of multipath, two experimental setups were established. In the first setup, depicted in the left-hand side of Fig. 1, no measures were taken against multipath reflections. In the second setup, depicted on the right-hand side in Fig. 1, an Eccosorb microwave absorber was installed underneath the Nexus 9 tablet to absorb reflected incoming signals from below the antenna In both setups, the Nexus 9 receiver was wrapped in a plastic bag for weather protection. A comparison with observations collected without plastic bag yielded negligible differences in the measurements.

GNSS raw measurement characteristics

One of the more apparent features of Nexus 9 GNSS raw observations is the limited number of channels available for tracking. This is mirrored in the number of tracked satellites (Fig. 2), which never exceeds 16. It is obvious that the device prioritizes the tracking of GPS satellites before GLONASS, as this number is significantly closer to the number of visible satellites derived from the ephemeris. This means that, besides the small number of tracked GLONASS satellites, also high elevation GLONASS satellites are often omitted. It is, thereby, evident that GLONASS is intended as augmentation for the GPS positioning in the Nexus 9 tablet, with the limited possibilities for standalone GLONASS positioning.

Fig. 2
figure 2

Number of satellites tracked by the Nexus 9 tablet on a 5-h time span on DOY 079 (2018)

Multipath, together with the antenna gain pattern and the satellite elevation angles, affects the strengths of the received signals. However, the dependence on the elevation angle has been demonstrated to be weaker for smart devices employing linearly polarized antennas with spherical antenna gain pattern, as these antennas are more susceptible to poor-quality signals (Zhang et al. 2018). Figure 3 presents skyplots for the setups without and with Eccosorb on the top and bottom, respectively. The signal strength represents observations collected during the same time interval of 5 h for 2 consecutive days for both setups. Besides the slightly more irregular signal strength variations in the skyplot for the setup without Eccosorb, these skyplots also reveal an unexpected irregularity of the antenna gain pattern, as the maximum signal strengths are not achieved for the satellites with the highest elevation angles. This maximum is instead slightly displaced to the south-west, corresponding to the lower left corner of the device. Irregularities of the antenna gain pattern could, in theory, mean higher signals strengths for the reflected signals than the direct signals for certain orientations of the device. This could affect some multipath mitigation measures, such as smoothing, as multipath in these instances would not necessarily average out.

Fig. 3
figure 3

Skyplots of signal strengths with Eccosorb (bottom) and without Eccosorb (top)

Code-phase differences

In the first part of our analysis of raw GNSS observation characteristics, we looked at the code-phase differences from our two multipath setups. These differences give an idea about the noise levels of the code observations in the different setups, thereby determining the influence of multipath on the noise level.

Code-phase differences from 5 h of Nexus 9 observations from the setups without and with the use of an Eccosorb are depicted in Figs. 4 and 5, respectively. Even though only a sample of two GPS satellites and two GLONASS satellites is shown in the diagrams, they demonstrate patterns that are representative for all GPS and GLONASS satellites. The first diagram is, as can be expected, considerably noisier than the second, even though quite high noise levels remain in the second diagram after most of the multipath related errors have been removed. Patterns that are characteristic for multipath, with periodic variations of the signal strength and total fadeouts when the signal strength gets too low, can, furthermore, be observed in Fig. 4 (Hofmann-Wellenhof et al. 2008), while these characteristics are reduced in Fig. 5. Small trends, which are more apparent in the second figure, might also be observed for both GPS and GLONASS. These trends will be further investigated in the following. After removal of the trends, the standard deviations of the code noise were estimated to 6.6 and 11 m for GPS and GLONASS, respectively, for the setup with an Eccosorb installed.

Fig. 4
figure 4

Code-phase difference without Eccosorb for four selected satellites

Fig. 5
figure 5

Code-phase difference with Eccosorb for four selected satellites

Due to the opposite sign for the ionospheric delay on code and carrier-phase observations of a given carrier frequency, it is expected that they will diverge over time, which will manifest itself as a trend in the code-phase difference. The trend presents in Figs. 4 and 5 could thus possibly be explained by the sign difference of the ionospheric delay. To verify this, the observed trends were compared to trends that were derived from the actual ionospheric delays.

According to Hofmann-Wellenhof et al. (2008), the observation equations for code and carrier phase are given by the following:

$$R_{{\text{r}}}^{{\text{s}}}=\rho _{{\text{r}}}^{{\text{s}}}+c({\delta _{\text{r}}} - {\delta _{\text{s}}}+{B_{\text{r}}} - {B^{\text{s}}})+T_{{\text{r}}}^{{\text{s}}}+I_{{\text{r}}}^{{\text{s}}}+M_{{\text{r}}}^{{\text{s}}}+{\varepsilon _{\text{R}}}$$
(1)
$$\phi _{{\text{r}}}^{{\text{s}}}=\rho _{{\text{r}}}^{{\text{s}}}+c({\delta _{\text{r}}} - {\delta _{\text{s}}}+{b_{\text{r}}} - {b^{\text{s}}})+T_{{\text{r}}}^{{\text{s}}} - I_{{\text{r}}}^{{\text{s}}}+m_{{\text{r}}}^{{\text{s}}}+\lambda N_{{\text{r}}}^{{\text{s}}}+{\varepsilon _\phi },$$
(2)

where \(\rho\) is the geometric range; \({\delta _{\text{r}}}\) and \({\delta _{\text{s}}}\) are clock errors of the receiver and satellite; \({B_{\text{r}}}\), \({B^{\text{s}}}\), \({b_{\text{r}}}\), and \({b^{\text{s}}}\) are code and phase biases for the receiver and satellite; \(T\) is the tropospheric delay; \(I\) is the ionospheric delay; \(M\) and \(m\) are code and phase multipath; \(N\) is the phase ambiguity; \({\varepsilon _{\text{R}}}\) and \({\varepsilon _\phi }\) are code and phase noise. These equations have been slightly modified to include also code and phase bias terms. A more-extensive description of biases in various positioning cases can be found in Håkansson et al. (2017).

Formation of code-phase differences will then cancel out the common terms according to the following:

$$R_{{\text{r}}}^{{\text{s}}} - \phi _{{\text{r}}}^{{\text{s}}}=c({B_{\text{r}}} - {B^{\text{s}}} - {b_{\text{r}}}+{b^{\text{s}}})+2I_{{\text{r}}}^{{\text{s}}}+M_{{\text{r}}}^{{\text{s}}} - m_{{\text{r}}}^{{\text{s}}} - \lambda N_{{\text{r}}}^{{\text{s}}}+{\varepsilon _{\text{R}}} - {\varepsilon _\phi }.$$
(3)

This means that the code-phase difference in relation to its value at a specific epoch \({t_0}\) then becomes

$${\Delta _{{t_0},t}}(R_{{\text{r}}}^{{\text{s}}} - \phi _{{\text{r}}}^{{\text{s}}})={\Delta _{{t_0},t}}(2I_{{\text{r}}}^{{\text{s}}}+M_{{\text{r}}}^{{\text{s}}}+HW - m_{{\text{r}}}^{{\text{s}}}+{\varepsilon _{\text{R}}} - {\varepsilon _\phi }),$$
(4)

where the operator \({\Delta _{{t_0},t}}={( \cdot )_t} - {( \cdot )_{{t_0}}}\) refers to the difference over time with regard to an epoch \({t_0}\), and \(HW=c({B_{\text{r}}} - {B^{\text{s}}} - {b_{\text{r}}}+{b^{\text{s}}})\). The phase ambiguity term \(N\) is constant over time for continuously tracked signals if no cycle slips occur. It will, thus, cancel when forming the time differences in (4). Although several studies have recognized hardware biases as constant over time for high-grade geodetic receivers, no such assumptions are made in (4) for the Nexus 9 tablet. The major contributing terms of (4) are the ionospheric delay, the code multipath, the code noise, and potential variations of the hardware biases, as the phase multipath never exceeds one quarter of a wavelength, and the phase noise is considerably smaller than the other terms (Hofmann-Wellenhof et al. 2008). Of the main contributing terms, only the ionosphere and potential bias variations will have a systematic influence over the whole time-period considered.

The ionospheric delay can be estimated from dual-frequency observations if also the DCBs are known. According to Jensen et al. (2007), this can be achieved from

$$R_{{{\text{1,r}}}}^{{\text{s}}} - R_{{{\text{2,r}}}}^{{\text{s}}}=(1 - \gamma )I_{{{\text{1,r}}}}^{{\text{s}}}+c({\text{DC}}{{\text{B}}_{\text{r}}}+{\text{DC}}{{\text{B}}^{\text{s}}})+M_{{{\text{1,r}}}}^{{\text{s}}} - M_{{{\text{2,r}}}}^{{\text{s}}}+{\varepsilon _{{R_1}}} - {\varepsilon _{{R_2}}},$$
(5)

where the subscript refers to the frequency band and

$${\text{DC}}{{\text{B}}_{\text{r}}}={B_{{\text{1,r}}}} - {B_{{\text{2,r}}}}$$
(6)
$${\text{DC}}{{\text{B}}_{\text{s}}}=B_{{\text{2}}}^{{\text{s}}} - B_{{\text{1}}}^{{\text{s}}},$$
(7)

in accordance with the sign conventions for biases in (3). \(I_{{{\text{1,r}}}}^{{\,{\text{s}}}}\) is the slant ionospheric delay, which is to be estimated from the observations, normalized to the L1 frequency band by the following:

$$\gamma =\frac{{f_{1}^{2}}}{{f_{2}^{2}}},$$
(8)

with the carrier frequencies \({f_1}\) and \({f_2}\) for the L1 and L2 frequency bands, respectively.

Figure 6 shows the code-phase difference changes over time for one GPS and one GLONASS satellite, in comparison with the slant ionospheric delay, for the Nexus 9 tablet and the geodetic receiver of reference A. The slant ionospheric delay was calculated from observation from the geodetic receiver at reference B, located nearby both the Nexus 9 tablet and reference A. The trend of the code-phase difference of the geodetic receiver is quite well explained by the ionospheric delay change for both GPS and GLONASS, while the Nexus 9 receiver shows much larger trends, almost one order of magnitude larger than the ionospheric delay change. It is obvious that the hardware bias combination \({\text{HW}}\) of (4) cannot be considered as constant, since the GNSS observations from the Nexus 9 tablet include an extra drift term between the code and carrier-phase observables that cannot be explained by the ionospheric delay.

Fig. 6
figure 6

Code-phase difference for GPS satellite PRN 15 and GLONASS satellite OSN 15 (blue) compared with ionospheric delay (red) over time for both Nexus 9 and reference A

To further investigate this trend, the ionosphere-corrected code-phase difference drifts for several simultaneously tracked satellites are depicted in Fig. 7. As can be observed, the trends for the satellites with PRN 15 and orbital slot number (OSN) 15 on the top of Fig. 6 are not unique, but appear for all GPS and GLONASS satellites, and display a similar size in their change over time for each of the constellations, clarified by the linear fits for each of the satellites depicted in the same figure. These trends correspond to a change of about − 3 and 2 mm/s for GPS and GLONASS, respectively.

Fig. 7
figure 7

Ionosphere-corrected code-phase differences for several GPS and GLONASS satellites (different colors) from Nexus 9 observations. Linear regression fits for each of the satellites are illustrated by black lines

The trend observed in Fig. 7 can be considered as a bias in the code-phase difference over time. This could affect positioning where code and phase measurements are combined in the same positioning solution. Fortunately, as the observed trends are similar for all satellites, they could be handled, for instance, by forming double differences or single differences between satellites of the observations, as terms that are similar for all the satellites will cancel in those cases. Another option could be to use separate clock terms for each observation type (Collins et al. 2010).

GLONASS code inter-frequency bias (IFB) and inter-system bias (ISB)

Other biases that potentially could be problematic for precise positioning with Nexus 9 and other similar devices are those associated with the tracking of GLONASS signals. These biases exist due to the use of Frequency Division Multiple Access (FDMA) in the GLONASS system, where each satellite is distinguished by its own carrier frequency. The biases are originating in the receiver hardware as an effect of the signal processing of the different carrier frequencies and are, therefore, commonly referred to as inter-frequency biases (IFBs) (Leick et al. 1998; Wanninger 2011). These affect both the code- and carrier-phase measurements from the receiver and often need to be considered in precise GNSS positioning with GLONASS (Håkansson et al. 2017). In addition, also an inter-system bias (ISB) between GPS and GLONASS might exist both for the code- and the carrier-phase measurements. The ISB typically manifests itself as a constant offset that is common for satellites belonging to the same constellation, but differs between satellites belonging to different constellations. Both IFBs and ISBs have been demonstrated to be specific to the receiver type. They might, therefore, be problematic in relative positioning when the reference station employs a different type of receiver than the user on the field (Odijk and Teunissen 2012; Paziewski and Wielgosz 2014; Wanninger 2011; Wanninger and Wallstab-Freitag 2007). Knowledge of the phase IFBs and ISBs might be required in cases where the phase ambiguities are to be resolved as integers. As will later be elaborated on, phase ambiguities cannot be resolved as integers from Nexus 9 measurements. Phase IFBs and ISBs will thereby not be of any relevance for positioning with the Nexus 9 tablet.

However, GLONASS code IFBs and ISBs could still have significant effects on GLONASS positioning, or combined GPS and GLONASS positioning, also when not resolving the ambiguities as integers. In earlier studies, the consideration of GLONASS IFBs have been demonstrated to decrease the convergence time for precise point positioning (PPP) and increase the position accuracy for single-point positioning (SPP) (Chuang et al. 2013). In GNSS positioning with multiple GNSS systems, the ISB might also be of relevancy depending on how the observations are combined in the solution. These biases could also affect DGNSS when the rover receiver is of a different type than the base station receiver.

To estimate the combined relative GLONASS code IFBs and ISB of the Nexus 9, double differences were formed between GLONASS and GPS code measurements of the Nexus 9 and a geodetic reference receiver. The differences were formed between each GLONASS satellite and a chosen GPS satellite. The IFBs depend on the carrier frequency, and, therefore, in practice for GLONASS also on the tracked satellite. Forming double differences from (1) will, thus, give the following:

$$R_{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}} - \rho _{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}}=cB_{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}}+M_{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}}+\varepsilon _{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}},$$
(9)

where \((.)_{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}}=((.)_{{{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{2}}}}} - (.)_{{{{\text{r}}_{\text{1}}}}}^{{{{\text{s}}_{\text{2}}}}}) - ((.)_{{{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}}} - (.)_{{{{\text{r}}_{\text{1}}}}}^{{{{\text{s}}_{\text{1}}}}})\), and \(B_{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}}\) is the double-differenced receiver bias, assumed to be satellite-dependent. Furthermore, as the baseline between the Nexus 9 and the geodetic reference receiver is very short, the ionospheric and the tropospheric delay terms are assumed to cancel out when forming the double differences. Equation (9) has been organized with the measurements and the known terms on the left-hand side and the unknown terms on the right-hand side. Of the unknown terms, the double-differenced multipath and noise can be assumed to average out over longer time spans of measurements. The code IFB, denoted by \(B_{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}}\) in (9), can thereby easily be isolated when the locations of the geodetic antenna (connected to the geodetic receiver) and the Nexus 9 tablet are known. The exact location of the Nexus 9 antenna is unknown but assumed to be in the center of the device. The deviation to the true antenna location is thereby not greater than about 1 dm, as determined by the size of the Nexus 9 device (22.8 × 15.4 cm).

Figure 8 depicts relative code IFBs + ISB calculated from 5 h of 1 Hz GPS and GLONASS observations with one of the GPS satellites as reference. A slightly irregular linear trend with respect to the frequency number can be observed, which correlates well with earlier studies where either linear or quasi-linear trends have been observed for GLONASS code IFBs (Chuang et al. 2013). On the other hand, the bias contribution that is common for all satellites, and thereby related to the average of the IFBs + ISB, corresponds to the relative ISB of GPS and GLONASS between Nexux 9 and Trimble NetR9 receivers.

Fig. 8
figure 8

GLONASS code IFBs + ISB versus frequency numbers

Assessment of the phase observations

To assess the Nexus 9 phase measurements, double differences were formed between the Nexus 9 and reference A. In Figs. 9 and 10, the double-differenced phase observations from both setups are depicted for GPS and GLONASS, respectively. The GLONASS observations have been converted to unit of length; otherwise, no meaningful double differences could be formed as the carrier frequencies differ between the GLONASS satellites. The measurements were furthermore adjusted, so that only the fractional part of cycle slips, marked by dashed vertical lines, are presented in Figs. 9 and 10 for GPS. For GLONASS, the measurements were aligned at the occurrences of cycle slips, also marked by vertical dashed lines. Figure 9 presents the double differences from the setup without Eccosorb. They show the same fadeouts as in Fig. 4. These measurements can also be observed to be less stable over time than those in Fig. 10, where an Eccosorb was installed.

Fig. 9
figure 9

Double differenced phase from a sample of two GPS and two GLONASS satellites from measurements without Eccosorb

Fig. 10
figure 10

Double differenced phase from a sample of two GPS and two GLONASS satellites from measurements with Eccosorb

For GPS, where only the fractional part of the double differences is presented, ideally, it would be expected that these would be close to a constant function at zero if the double-differenced phase ambiguities are assumed to be integers. It has, however, been demonstrated by Realini et al. (2017) and Riley et al. (2017) that double-differenced phase ambiguities of Nexus 9 measurements are not of integer nature. These results are also confirmed in this study. This might be explained by Nexus 9 phase measurements not being full-phase measurements, i.e., the initial phases being arbitrary between the tracking channels (Riley et al. 2017).

For GLONASS, slightly curved trends can be observed. This is most obvious for the double difference combination formed from the satellites OSN 15 and 23, where not only a curvature can be recognized, but also a change of the curvature seems to occur abruptly at places with marked cycle slips.

The author suggests that these curvatures might relate to some kind of frequency deviation in phase tracking of the Nexus 9 tablet. This is motivated by the following argument.

Assuming that a frequency deviation in phase tracking exists for one of the receivers, the formation of double differences for GLONASS gives the following:

$$\phi _{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}}=({\lambda _{{{\text{s}}_{\text{2}}}}}(1+{\epsilon _{{{\text{s}}_{\text{2}}}}})\Phi _{{{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{2}}}}} - {\lambda _{{{\text{s}}_{\text{2}}}}}\Phi _{{{{\text{r}}_{\text{1}}}}}^{{{{\text{s}}_{\text{2}}}}}) - ({\lambda _{{{\text{s}}_{\text{1}}}}}(1+{\epsilon _{{{\text{s}}_{\text{1}}}}})\Phi _{{{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}}} - {\lambda _{{{\text{s}}_{\text{1}}}}}\Phi _{{{{\text{r}}_{\text{1}}}}}^{{{{\text{s}}_{\text{1}}}}}),$$
(10)

where \(\phi _{{{{\text{r}}_{\text{1}}}{{\text{r}}_{\text{2}}}}}^{{{{\text{s}}_{\text{1}}}{{\text{s}}_{\text{2}}}}}\) is double-differenced phase in length between receivers \({{\text{r}}_{\text{1}}}\) and \({{\text{r}}_{\text{2}}}\), and satellites \({{\text{s}}_{\text{1}}}\) and \({{\text{s}}_{\text{2}}}\). \({\lambda _ * }\) is the carrier wave length for satellite \(*\), and \({\epsilon _ * }\) is the assumed frequency deviation of the receiver \({{\text{r}}_{\text{2}}}\) associated with tracking of the satellite \(*\). \(\Phi\) is the phase observation as it would be without any frequency deviation, given in the unit of cycles.

As the topocentric range change over time is the main contributor to the change in the phase over time, and the other terms are negligible, it can, furthermore, be assumed that

$$\frac{{{\text{d(}}\lambda \Phi {\text{)}}}}{{{\text{d}}t}} \approx \dot {\rho },$$
(11)

where \(\dot {\rho }\) is the topocentric range rate. Application of this relation to (10) then gives

$$\frac{{{\text{d(}}\phi _{{{{\text{r}}_1}{{\text{r}}_2}}}^{{{{\text{s}}_1}{{\text{s}}_2}}}{\text{)}}}}{{{\text{d}}t}}=\frac{{({\lambda _{{{\text{s}}_2}}}\Phi _{{{{\text{r}}_1}{{\text{r}}_2}}}^{{{{\text{s}}_2}}} - {\lambda _{{{\text{s}}_1}}}\Phi _{{{{\text{r}}_1}{{\text{r}}_2}}}^{{{{\text{s}}_1}}}+{\epsilon _{{{\text{s}}_2}}}{\lambda _{{{\text{s}}_2}}}\Phi _{{{{\text{r}}_2}}}^{{{{\text{s}}_2}}} - {\epsilon _{{{\text{s}}_1}}}{\lambda _{{{\text{s}}_1}}}\Phi _{{{{\text{r}}_2}}}^{{{{\text{s}}_1}}})}}{{{\text{d}}t}} \\ \approx \dot {\rho }_{{{{\text{r}}_1}{{\text{r}}_2}}}^{{{{\text{s}}_1}{{\text{s}}_2}}}+{\epsilon _{{{\text{s}}_2}}}\dot {\rho }_{{{{\text{r}}_2}}}^{{{{\text{s}}_2}}} - {\epsilon _{{{\text{s}}_1}}}\dot {\rho }_{{{{\text{r}}_2}}}^{{{{\text{s}}_1}}}.$$
(12)

Figure 11 presents the least-squares fits for each of the segments with different curvature in Fig. 10 for \({\epsilon _{23}}\) and \({\epsilon _{15}}\). The estimated values of \(\epsilon\) for each of the three intervals are presented in Table 1. This shows that the frequency deviations lie at ppm level at most. Even though these results show that the Nexus 9 double-differenced phase for GLONASS has a drift that is dependent of the topocentric range rate, precise positioning over short time intervals might assume a linear trend over time as \(\epsilon\) is small.

Fig. 11
figure 11

Nexus 9 double-differenced phase-change dependence on topocentric range change for OSN 15–23

Table 1 Estimated frequency deviations

Precise positioning with Nexus 9

Precise positioning was assessed for two cases employing two different precise positioning techniques. First, DGNSS with Doppler smoothed pseudoranges was evaluated. Even though not all raw GNSS observation types are mandatory in the Android API, all new devices with Android 7.0 and above will support observables from which pseudoranges and Doppler observations can be derived. In addition, many service providers for precise positioning offer a DGNSS service where correction data are transmitted in the form of pseudorange corrections. For this purpose, RTCM v. 2 is often employed as encoding for the corrections. Lantmäteriet does, for instance, offer a free of charge DGNSS service with Swedish nationwide coverage based on the SWEPOS CORS network.

Second, precise positioning from carrier phase observations was evaluated. Realini et al. (2017) proposed precise positioning with rapid static surveys where positions are calculated from the carrier-phase observations for a static user over a short duration of time, e.g., 15 min. The same approach was used in this study, and the assessment was performed for both multipath setups earlier mentioned, but with 5-min solutions instead of 15 min.

DGNSS

Pseudorange corrections for DGNSS are determined from GNSS observations at a reference station with the known coordinates. According to Hofmann-Wellenhof et al. (2008), the pseudorange correction is calculated by the following:

$${\rm{PR}}{{\rm{C}}^{\rm{s}}}({{\rm{t}}_{\rm{0}}}){{ = }}\rho _{{\rm{RS}}}^{\rm{s}}({{\rm{t}}_{\rm{0}}}) - {\rm{R}}_{{\rm{RS}}}^{\rm{s}}({{\rm{t}}_{\rm{0}}}),$$
(13)

where \({\text{PR}}{{\text{C}}^{\text{s}}}({t_0})\) is the pseudorange correction for satellite s determined at the reference receiver r with GNSS observations associated with epoch \({t_0}\). At the user side, the code observations are later corrected with the pseudorange corrections according to the following:

$$R_{{\text{U}}}^{{\text{s}}}{(t)_{{\text{corr}}}}=R_{{\text{U}}}^{{\text{s}}}(t)+{\text{PR}}{{\text{C}}^{\text{s}}}(t).$$
(14)

If the latency \(t - {t_0}\) is small together with small variations of the pseudorange corrections, \({\text{PR}}{{\text{C}}^{\text{s}}}({t_0})\) and \({\text{PR}}{{\text{C}}^{\text{s}}}(t)\) can be assumed to be approximately equal. Otherwise, the pseudorange correction for \({t_0}\) needs to be corrected with the time derivative of the pseudorange correction, which is an additional correction parameter supported by RTCM v. 2. Since SA was disabled for GPS, the variations of the pseudorange corrections can be assumed to be small and thereby approximately equal for small latencies between \({t_0}\) and \(t\).

The corrected pseudorange for the user will then be the sum of the following error terms:

$$R_{{\text{U}}}^{{\text{s}}}{(t)_{{\text{corr}}}}=\rho _{{\text{U}}}^{{\text{s}}}(t)+\left[ {\Delta \rho (t)_{{\text{U}}}^{{\text{s}}} - \Delta \rho (t)_{{{\text{RS}}}}^{{\text{s}}}} \right]+\left[ {\Delta \rho {{(t)}_{\text{U}}} - \Delta \rho {{(t)}_{{\text{RS}}}}} \right]+{\varepsilon _{{\text{RS,U}}}},$$
(15)

where \(\Delta \rho (t)_{ * }^{{\text{s}}}\) refers to the sum of all error terms, both receiver- and satellite-dependent, such as tropospheric and ionospheric refraction and orbital errors. \(\Delta \rho {(t)_ * }\) refers to the sum of all terms that are only receiver-dependent, which includes the receiver clock error and receiver biases. It should be noted that all terms that are only satellite dependent will cancel out when the pseudorange corrections are applied. For short baselines, the terms that are both receiver- and satellite-dependent of the user and the reference station might be assumed to be equal. Equation (15) then reduces to

$$R_{\text{Ucorr}}^{\text{s}}=\rho _{\text{U}}^{\text{s}}+[\Delta {\rho _{\text{U}}} - \Delta {\rho _{\text{RS}}}]+{\varepsilon _{\text{RS,U}}}\\=\rho _{\text{U}}^{\text{s}}+c({\delta _{\text{RS,U}}}+{B_{\text{RS,U}}})+{\varepsilon _{\text{RS,U}}},$$
(16)

where the dependence on \(t\) has been dropped for brevity. For GLONASS, and when combining multiple GNSS systems, the bias term \({B_{{\text{RS,U}}}}\) must be taken into consideration as it then generally will not be equal for all satellites. Otherwise, it can be assumed to merge with the relative receiver clock error.

To assess DGNSS with the Nexus 9 tablet, DGNSS positions were calculated from 5 h of 1 Hz pseudorange observations. The pseudoranges were smoothed with Doppler before being used in the positioning calculation, which thereby eliminated some of the multipath and noise. Doppler was used instead of the carrier phase for smoothing of the Nexus 9 pseudoranges to increase the generality of the study to Android devices that do not support carrier-phase observations. Smoothing of pseudoranges was also done for the estimation of pseudorange corrections from the reference station, but with phase observations instead of Doppler. Figure 12 presents diagrams with DGNSS positions evaluated for GPS without and with Eccosorb. Multipath from ground reflections still has a significant effect on the position quality even after smoothing the pseudorange observations, as not only the positioning uncertainties are improved, but also outliers with the offsets of tens of meters are eliminated with the Eccosorb setup.

Fig. 12
figure 12

Comparison of DGPS with and without Eccosorb. The figure shows the estimated positions (blue dots), the 1 \(\sigma\) error ellipse (red line), the true position (red plus sign), and the average position (red asterisk)

DGNSS with multiple GNSS systems or with GLONASS is affected by the relative biases of the user and the reference station receivers. To assess this effect, combined GPS and GLONASS DGNSS positions were calculated from measurements of the setup with Eccosorb, both with and without consideration of the relative receiver biases. As both reference A and B use the same receiver type, the relative receiver biases were first evaluated from observations of the Nexus 9 and reference (A) These calculated biases, presented in Fig. 8, were then used to correct the pseudorange corrections calculated from reference (B). Corrected and uncorrected pseudorange corrections were used to calculate DGNSS positions for the Nexus 9 tablet. Figure 13 presents the calculated positions in both cases for the East and North coordinate components for positions calculated every second over a measurement interval of 5 h. Some improvements can be observed both for the precision and the accuracy of the calculated position when the relative receiver biases are considered, compared to when they are not. However, the relatively high noise level of the pseudoranges from the Nexus 9 tablet, comparable with the sizes of the biases themselves, still has a dominating effect on the precision of the calculated positions.

Fig. 13
figure 13

DGNSS (GPS + GLONASS) comparison between not considering and considering ISBs/IFBs. The figure shows the estimated positions (blue dots), the 1 \(\sigma\) error ellipse (red line), the true position (red plus sign), and the average position (red asterisk)

Although the positions are considerably improved for the Eccosorb setup in Fig. 12, the position qualities are not improved considerably by the DGNSS corrections in comparison with SPP, which presented almost the same position uncertainties. The pseudorange observations from the Nexus 9 are still heavily affected by the measurement noise even after most of the multipath-related errors have been removed. The effect of measurement noise is so large that the atmospheric residual errors after applying deterministic atmospheric delay models, together with satellite clock error residuals for SPP, give an almost negligible contribution to the position errors. The high noise level of the pseudoranges will thereby greatly limit the benefit of the improved atmospheric modeling of DGNSS in comparison with the deterministic models often employed in SPP. The uncertainty of the level of multipath in any practical situation will, furthermore, affect the reliability of positioning over shorter observation intervals, due to multipath being correlated over time (Odolinski 2012).

Precise positioning with phase observations

Precise relative positioning can be achieved from double-differenced phase observations alone if several epochs of observations are included in the solution. This kind of solution is dependent on the change of the satellite geometry that occurs between the measurement epochs, together with the capability of the receiver to do uninterrupted phase measurements where the phase ambiguities are unchanged between epochs. This is possible with the Nexus 9 tablet as the duty cycling feature that interrupts phase measurements is disabled. This is not the case on many other Android device models.

Due to the unpredictable quality of the code observations from the Nexus 9 tablet, which has already been demonstrated to be very sensitive to multipath, this is a sensible choice as it avoids the question about weighting between phase and code observations. Application of too high weights for the code observations could potentially contaminate the solution with large multipath and code noise-related errors depending on the measurement conditions for a potential user, while a very low weight, on the other hand, reduce the role of the code observations, as their contribution in practice will then have insignificant impact on the solution.

Static float solutions from 5 min of 1 Hz observations, based on double-differenced GPS phase observations, were calculated over a period of 5 h for the Nexus 9 tablet. For these solutions, reference B was used as a base station with a resulting baseline length of approximately 40 m. Although these results reflect an idealized situation with extremely short baselines, they still give a hint of what could be possible to achieve in terms of positioning accuracies. The phase ambiguities were estimated as floats, because integer resolution is impossible from Nexus 9 measurements.

Figure 14 presents the estimated positions from the two experimental setups, with the results from the setup without Eccosorb on the left-hand side and with Eccosorb on the right-hand side. Accuracies of just below 1 m are found for the setup without Eccosorb, while the corresponding results for the setup with Eccosorb demonstrate decimeter-level accuracies. The Eccosorb setup improves the quality of the positions, as could be expected from the analysis of phase measurements for the two setups in Figs. 9 and 10 The presence of multipath degrades the solutions in two ways: by the phase multipath errors themselves; and by the multipath related fadeouts, causing interruptions in the phase measurements and leading to a reduced redundancy of the positioning solution as more phase ambiguity parameters have to be estimated.

Fig. 14
figure 14

Comparison between 5-min static float solutions with and without Eccosorb. The figure shows the estimated positions (blue crosses), the 1 \(\sigma\) error ellipse (red line), the true position (red plus sign), and the average position (red asterisk)

Conclusions

From the release of Android 7.0, App developers will have access to GNSS raw measurements from the Android API. This study assessed precise positioning using GNSS raw measurements (GPS and GLONASS) from the Nexus 9 tablet under various multipath conditions. The accuracies of the calculated positions were demonstrated to be very sensitive to multipath, which agrees well with the previous studies. Errors of tens of meters were observed in the code measurements for the setup without multipath mitigation. These errors have a considerable impact on calculated positions even when smoothing is applied to the measurements, and they affect both SPP and DGNSS. However, even after most of the multipath has been removed, the remaining code noise still has a considerable impact on the estimated positions, with a negligible difference between the precisions of SPP and DGNSS. For DGNSS with multiple GNSS systems, the existence of relative receiver code biases was, furthermore, confirmed. These consist of contributions from both GLONASS IFBs and the ISB between the GPS and GLONASS code observations.

The study also assessed precise positioning using phase measurements, which unlike many other Android device types are available from the Nexus 9 tablet. The positioning uncertainties of relative static float solutions of 5 min were evaluated, as the phase ambiguities cannot be estimated as integers from the Nexus 9 measurements. It was demonstrated that precise positioning with position uncertainties of below 1 m is possible for the setup without the multipath mitigating Eccosorb. This proves that precise positioning is feasible for already existing Android devices, also in conditions with a moderate level of multipath. For the Eccosorb setup, the positioning uncertainties decrease to a few decimeters. The prospects for precise positioning in future generations of Android devices are thereby promising if technologies that mitigate multipath can be added to their design. Reduction of code noise and the ability to resolve phase ambiguities as integers could, furthermore, reduce the convergence time considerably.

Several unexpected biases, which are not present in GNSS measurements of geodetic receivers, were, furthermore, discovered. These might need to be considered when performing precise positioning from measurements of the Nexus9 tablet or similar devices.