Real-time GNSS precise point positioning for low-cost smart devices

Global Navigation Satellite System raw measurements from Android smart devices make accurate positioning possible with advanced techniques, e.g., precise point positioning (PPP). To achieve the sub-meter-level positioning accuracy with low-cost smart devices, the PPP algorithm developed for geodetic receivers is adapted and an approach named Smart-PPP is proposed in this contribution. In Smart-PPP, the uncombined PPP model is applied for the unified processing of single- and dual-frequency measurements from tracked satellites. The receiver clock terms are parameterized independently for the code and carrier phase measurements of each tracking signal for handling the inconsistency between the code and carrier phases measured by smart devices. The ionospheric pseudo-observations are adopted to provide absolute constraints on the estimation of slant ionospheric delays and to strengthen the uncombined PPP model. A modified stochastic model is employed to weight code and carrier phase measurements by considering the high correlation between the measurement errors and the signal strengths for smart devices. Additionally, an application software based on the Android platform is developed for realizing Smart-PPP in smart devices. The positioning performance of Smart-PPP is validated in both static and kinematic cases. Results show that the positioning errors of Smart-PPP solutions can converge to below 1.0 m within a few minutes in static mode and the converged solutions can achieve an accuracy of about 0.2 m of root mean square (RMS) both for the east, north and up components. For the kinematic test, the RMS values of Smart-PPP positioning errors are 0.65, 0.54 and 1.09 m in the east, north and up components, respectively. Static and kinematic tests both show that the Smart-PPP solutions outperform the internal results provided by the experimental smart devices.


Introduction
Smart devices are widely used in location-based serviceassociated applications by integrating a low-cost global navigation satellite system (GNSS) chip, which can provide users the positioning results with meter-level accuracy (Wang et al. 2016). In recent years, the availability of raw GNSS measurements from Android smart devices opens up the possibility of deriving more accurate solutions with advanced positioning techniques.
Since the release of the Android 7.0 operator system, much attention had been attracted to the evaluation and analysis of raw GNSS measurements from smart devices (Riley et al. 2017;Zhang et al. 2018;Liu et al. 2019). It has been revealed that the carrier-to-noise density ratio (C/N 0 ) values of smart devices are generally about 10 dB lower than those of geodetic receivers, and the pseudorange measurements of smart devices present high levels of noise and gross errors, as well as pronounced multipath effects caused by the linearly polarized antenna embedded. Recently, Håkansson (2019) has examined the characterization of GNSS observations with different multipath configurations and found that multipath errors significantly affect the expected accuracy of precise positioning. Li and Geng (2019) investigated the measurement error characteristics of raw GNSS data from smart devices using both embedded and external antennas. Paziewski et al. (2019) studied the characterization of smartphone signal quality and the anomalies of observables. Their results show a divergence between phase and code observation data, indicating an inconsistency between phase and code clocks of the smartphones. Though the noise level of carrier phase measurements can be lower than 1.0 cm, the carrier phase measurements of smart devices are affected by discontinuous tracking, frequent cycle slips, and other unexpected properties that were not observed in geodetic receivers, e.g., the random initial phase biases and the anomalous "jagged" distribution (Riley et al. 2017;Li and Geng 2019;Håkansson 2019;Paziewski et al. 2019). The quality of the raw measurements becomes a significant challenge for smart devices to achieve high-level positioning accuracy with advanced techniques, e.g., precise point positioning (PPP).
To investigate the positioning performance that can be achieved with the PPP technique on smart devices, Gill et al. (2017) analyzed the single-frequency PPP in static mode and reported that few decimeters to meter-level positioning accuracy can be achieved with the smartphonegrade hardware. Laurichesse et al. (2017) released a smartphone software called PPP WizLite, which enables to conduct PPP on smartphones using Doppler-smoothed code pseudoranges, and reported that positioning accuracies in sub-meter level and meter level can be achieved in static and kinematic mode, respectively. Recently, some studies on the assessment of PPP performance with dualfrequency measurements from smartphones have been carried out by Wu et al. (2019), Psychas et al. (2019), Elmezayen and El-Rabbany (2019), and Aggrey et al. (2020). Their results show both that smart devices are capable of achieving decimeter-level positioning accuracy with static PPP after convergence, which is comparable to the low-cost geodetic-grade receiver, and that the performance remains in few meters when in kinematic case. Given the limitation that the hardware components of the smartphones present, Aggrey et al. (2020) suggested that it is imperative to implement necessary measurement weighting scheme changes in PPP processing for making use of the poor quality raw measurements from smartphones.
It was found that high-accuracy positioning for smart devices still has many challenges to be overcome, particularly when in kinematic mode. Given the limitation that the hardware components and the poor quality of raw GNSS measurements of the smart devices present, we aim to further study what changes can be implemented in precise positioning with raw GNSS measurements from low-cost smart devices when using the algorithms developed for geodetic receivers, particularly in PPP processing. In view of this, the PPP algorithm developed for geodetic receivers was adapted and an approach named Smart-PPP (real-time PPP for smart devices) was proposed in this contribution, which can support the smart devices to derive positioning results with an accuracy of decimeter level in static mode and about sub-meter level in kinematic mode.

Methodology for Smart-PPP
Our goal is to develop a new methodology for the PPP processing in smart devices using the raw GNSS measurements with poor quality. To achieve this goal, an improved uncombined PPP observation model is proposed in Smart-PPP. A modified C/N 0 -dependent weighting strategy is employed. Some data processing strategies used in classical PPP with the geodetic receiver are improved, which are more suitable for the data characteristics of smart devices. By applying the Smart-PPP approach to smart devices, the final positioning results can be smoother and more accurate.

Observation model
It is not always possible for smart devices to have a full set of dual-frequency code and carrier phase data from all tracked satellites due to the unsupported capability on tracking GLONASS and BDS dual-frequency signals, the number of operational GPS satellites with L5 signals, and the validity of the signal tracking status (Jahn et al. 2019;Psychas et al. 2019). Thus, the uncombined PPP model that keeps raw measurements on independent frequency is adopted in Smart-PPP for the unified processing of single-and dualfrequency measurements from tracked satellites by smart devices, rather than taking the classical PPP approach of forming ionosphere-free combination observables. In addition, to strengthen the uncombined PPP model, the ionospheric pseudo-observations derived from the real-time ionospheric VTEC product (Li et al. 2020) are used to provide absolute constraints on the estimation of slant ionospheric delays by using the ionosphere-weighted model .
What is more, previous researches have revealed that there is a gradual divergence over time between the code and carrier phase measurements of smart devices, which indicates an inconsistency between the code and carrier phase clocks in smart devices (Håkansson 2019;Paziewski et al. 2019). We also found that this divergence and inconsistency exist in dual-frequency pseudorange and dual-frequency carrier phase observations. As a result, the traditional observation model will not be theoretically correct if one still uses a common receiver clock parameter for the code and carrier phase in the observation model for the smart devices. Thus, an improved uncombined PPP observation model with independent receiver clock terms for code and carrier phase observations of each tracking signal is proposed in Smart-PPP for the smartphone PPP calculation. Figures 1 and 2 give two comparative illustrations to show the impacts of the code and carrier phase clock inconsistencies on the code and carrier phase residuals between the traditional model with common receiver clock term and the improved model with independent receiver clock terms for the code and carrier phase observations. As shown in the top sub-figure of Fig. 1, an inconsistency between the code and carrier phase can be seen obviously when using one common receiver clock parameter for the code and carrier phase measurements. From the top sub-figure of Fig. 2, an inconsistency of dual-frequency observations for Galileo E1 and E5a signals can be seen obviously when using one common receiver clock parameter for the dual-frequency measurements. As a comparison, when using independent receiver clock parameters for code and carrier phase measurements, the improvement can be seen from the code and carrier phase residuals, as shown in the bottom sub-figure of Fig. 1. When using the independent receiver clock parameters for the dualfrequency measurements, such inconsistency between dualfrequency observations will be eliminated, as shown in the bottom sub-figure of Fig. 2.
Consequently, the improved uncombined PPP observation model for multi-GNSS applied in Smart-PPP can be expressed as follows.
(1)  Carrier phase residuals of Galileo E1 and E5a signals between the traditional model with one common receiver clock parameter (top) and the improved model with independent receiver clock parameters (bottom) for the dual-frequency carrier phase measurements where the notation Q represents the satellite system (GPS, Galileo, GLONASS or BDS); the notations s and r represent the satellite number and the user receiver, respectively; the subscripts i and j represent the tracked frequencies (f i and f j : L1/L5 for GPS, E1/E5a for Galileo, G1 for GLONASS, B1I for BDS); P and Φ represent the raw code and carrier phase measurements in meters; Ĩ represents the ionospheric pseudo-observations derived from external ionospheric product; ρ is the geometric distance in meters between the satellite s and the receiver r; it is where (x s , y s , z s ) and (xr , yr , zr ) are the position vectors of satellite and receiver, respectively; δt r,P and δt r,Φ are the receiver clock offsets in seconds for code and carrier phase measurements, respectively, and they are different with each other; δt s is the satellite clock offset in seconds; c is the speed of light in vacuum; T represents the troposphere delay in meters; I represents the slant ionosphere delay in meters; μ is the ionospheric factor between two frequencies; B is a bias term in meters on carrier phase, including the carrier phase integer ambiguity and the uncalibrated phase delays of satellite and receiver; ε and ζ denote the sum of measurement noises and other unmodeled errors for the code and carrier phase, respectively; and ν denotes the error of the ionospheric pseudo-observations. In the case of GPS L1/L5 + Galileo E1/E5a + GLONASS G1 + BDS B1 combined positioning mode, the detailed parameters in estimation are listed in Table 1 when the number of observed satellites for GPS, Galileo, GLONASS and BDS (denoted as G, E, R and C, respectively) are n, m, p and q, respectively. More information about the solvability of PPP with the ionosphereweighted model can be found in .

Stochastic model
Two main criteria can be generally used to weight an observation: the satellite elevation and the C/N 0 value. The elevation-dependent weighting model is commonly used in GNSS data processing, but previous research has demonstrated that it is not suitable for the measurements from smart devices (Paziewski et al. 2019). As an example, Fig. 3 shows the single-differenced pseudorange residuals against the C/N 0 and elevation for the GPS G12 satellite in a certain static scenario  with an open-sky condition. It can be seen obviously that the satellite elevation is highest at the time about 3.6 h; however, the corresponding pseudorange residuals reach more than 50 m which are larger than other periods. While looking at the pseudorange residuals against C/N 0 values, the pseudorange residuals become larger correspondingly with the decrease in the C/N 0 values. Thus, the measurement errors exhibit a stronger correlation with the C/N 0 values rather than the satellite elevations for those smart devices.
In view of this, the C/N 0 -dependent weighting strategy is employed to weight the observations for smartphone PPP in this work. There is a theoretical correlation between the observation precision and C/N 0 which can be found in Langley (1996). However, the required internal receiver parameters of the equivalent code loop noise bandwidth and the discriminator correlator factor of the DLL (delay lock loop) are usually not available to the user. Thus, we applied the weighting model proposed in Carcanague (2013), but with some improvements which are suitable for smart devices. The C/N 0 -dependent weighting model applied in this work is given as follows, where Cov(·) represents the covariance; subscript obs denotes the pseudorange and carrier phase measurements; σ 2 obs is the corresponding observation variance; σ 0,obs is the standard diversion of observation noise, which is set to the empirical value derived from many numerical analysis and field tests that 4.0 m for pseudorange and 0.01 m for carrier phase in this work; CN 0 is the current C/N 0 value of the tracking signal; max(·) is the maximum function; and CNMAX is a constant value set to 40 dB-Hz. For masking the observations with larger noise from those satellites with lower C/N 0 , a threshold of the C/N 0 values is suggested to be set to 25 dB-Hz.

Algorithm flowchart and processing of Smart-PPP
Based on the above-mentioned methods, the algorithm flowchart of the proposed Smart-PPP approach is given in Fig. 4. First, the raw GNSS measurements are taken according to the Android application programming interface (API). The gross errors of the raw measurements are preliminarily detected and eliminated by validating the error estimates for the pseudorange measurements. The raw pseudoranges are smoothed by the Doppler measurements to reduce the noise level . Then, the errors in the code and carrier phase observations are corrected, in which the user receiver antenna phase center offsets and variations are not considered due to the absence of the corresponding information of the embedded GNSS antenna in smart devices. Following this, an extended Kalman filter is applied for parameter estimation. The processing strategies for the estimated parameters listed in Table 1 can refer to Wang et al. (2018aWang et al. ( , 2019. Here, it is worth noting that the variance of the smoothed pseudorange used in parameter estimation should be derived according to the error propagation law (Zhou and Li 2017). To overcome the negative effect of those inferior measurements that are not being successfully detected and excluded by quality control, the receiver autonomous integrity monitoring (RAIM) technique is introduced in Smart-PPP for fault detection and exclusion.
The PPP results may become worse suddenly and the positioning process even may become failed with no solution provided due to some unexpected circumstances such as when the GNSS signals are blocked by the overpasses, high buildings and trees, particularly on the urban roads. Since the user's movement usually exhibits a certain continuity and directionality under the effect of the inertia, an adaptive Kalman filter with a proper dynamic model for constraint and prediction is adopted for filtering in the position domain to obtain a smoother positioning result. The input information of the filter is the user's position estimated by PPP and the velocity estimated by the Doppler measurements. The processing noise in the filter is set according to the user's velocity. When the user is in kinematic condition, the power spectral density (PSD) of process noise is set to 0.3 m/√s for the horizontal component and 0.03 m/√s for the vertical component, while if the user changes to static condition, the PSD of the process noise is set to 0.005 m/√s for the horizontal component and 0.001 m/√s for the vertical component. Here, it is worth noting that these values used are empirical values derived from many field tests.

Results and discussion
To validate the performance of the Smart-PPP approach, the software (named Smart-PPP) for realizing GNSS real-time PPP on smart devices was developed based on the Android platform. Based on it, static and kinematic experiments were carried out. The broadcast ephemerides used were the realtime stream RTCM3EPH-MGEX. The satellite orbit and clock correction product and the ionosphere VTEC product used were the real-time streams CAS01 and CAS05 provided by the Chinese Academy of Sciences (CAS) (Wang et al. 2018b;Li et al. 2020). For evaluating the positioning accuracy, the smart device was installed very close to a NovAtel ProPak6 geodetic receiver antenna at the rover station with not considering the placing biases (about 0-10 cm) in the corresponding component. The "true" positions of the experimental smart device were computed by post-processing real-time kinematic positioning technique with the data collected from the geodetic receivers at the rover station and a nearby base station. Besides, the PVT (position velocity and time) solutions provided by the smart device were also collected for comparison. It is worth noting that the GNSS positioning result from the chipset cannot be obtained from the Android system, and the PVT result obtained from the Android system is the final solution provided by the manufactory, which is a multisensor fusion solution.

Static test
To validate the static positioning performance of the Smart-PPP, a static experiment was carried out on the roadside of Dengzhuang South Road in Beijing, China, using a Huawei Mate20 smartphone with a testing period of about 70 min from 12:50 to 14:00 in the local time on January 11, 2019. The satellite system used in positioning including GPS, GLONASS, Galileo and BDS (only the BDS-2 satellites).  Table 2 for comparison. And the corresponding statistical results for the converged Smart-PPP solutions in each component are also computed and presented in Table 2 for evaluating the positioning accuracy that can be achieved by Smart-PPP after convergence. Here, it worth noting that the convergence condition for Smart-PPP in each component is defined as the absolute positioning errors are under 1.0 m and within the limit of more than 10 min for the corresponding component. Figures 6 and 7 show that the absolute positioning errors of the PVT solutions are within 4.0 m in the north component and 2.0 m in the east component for most of the epochs, and there are only a few epochs for the PVT solutions whose horizontal positioning errors are within 1.0 m. Also, it can be seen that the positioning errors in the up component of the PVT solutions gradually diverge to more than 5 m with the time going. By contrast, the positioning errors of the Smart-PPP solutions that derived from the Android raw GNSS measurements can converge to within 1.0 m after a short convergence time of about 3 min for the east and north components and 5 min for the up component, which is better than that of the PVT solutions.
As the statistical results summarized in Table 2 When considering the probability distribution of the 95th percentile, it is 1.95, 3.75 and 6.36 m for the east, north and up components for the PVT solutions, respectively. By contrast, the 95th percentile accuracy for the Smart-PPP solutions is 0.66, 0.28 and 1.12 m in the east, north and up components, respectively, and the improvements with respect to the PVT solutions are 66.15%, 92.53% and 82.39% for the corresponding components, respectively.
As mentioned above, the positioning errors of the Smart-PPP solution can converge to several decimeters after a short time of 3-5 min. To further investigate the convergence performance of Smart-PPP, a convergence performance assessment experiment was carried out by restarting the Smart-PPP positioning process repeatedly every 1 h with a total length of about 36 h from November 14 to 15, 2019. Figure 8 illustrates the convergence performance of the Smart-PPP in the horizontal and vertical components. In the case Smart-PPP estimator restarted every hour, the positioning errors decreased gradually to 1.0 m after a short period of convergence time of re-initialization for most of the cases. In some cases, e.g., in the 7th-12th periods, the convergence to below 1.0 m can be achieved within several epochs, particularly in the horizontal component. Figure 9 presents the convergence time required for the given accuracy level of 1.0 m in the horizontal and vertical components for the 36 testing periods with the box-plots, which can show the distribution of numerical data and skewness visually by displaying the five-number summary of a set of data, including the lower adjacent, first quartile, median, third quartile and upper adjacent values. The lower adjacent values of the convergence time for the horizontal and vertical components are both 1 s, meaning that the Smart-PPP can achieve the positioning performance better than 1.0 m instantaneously in some cases. The 25th and 75th percentile values of the convergence time are 30 and 440 s for the horizontal components, which are 48 and 721 s for the vertical component, respectively. When looking at the median value of the convergence time, it is about 1.5 min for the horizontal and 4.5 min for the vertical component. As to the upper adjacent values, the maximum convergence time is 11 min for the horizontal errors, while it is one time larger for the vertical errors. Thus, it can be concluded that after taking a short convergence time of about 5-10 min, the positioning errors of Smart-PPP solutions can stably reach less than 1.0 m in most cases, particularly for the horizontal component.

Kinematic test
To further validate the kinematic positioning performance of Smart-PPP, a kinematic test was carried out in walking mode on the Dengzhuang South Road in Beijing using a Huawei Mate30 smartphone with testing periods of about 140 min from 12:40 to 15:00 in the local time on January 16, 2020. The satellite system used in positioning including GPS, GLONASS, Galileo and BDS-2/BDS-3 . The walking trajectory is presented in Fig. 10. This figure also presents the distribution and the C/N 0 values of the observed satellites and the variations of the number of valid satellites, PDOP, HDOP and VDOP. Figure 10 shows that the surrounding environment was not always good for tracking and the signals from some satellites were blocked for some time due to the high buildings. Since there are more satellites in operation and can be tracked by Huawei Mate 30 smartphone during the kinematic test, particularly for the BDS-3 and Galileo satellites, the number of valid satellites varies within 22-35 with a mean value of 30.8 and the mean PDOP, HDOP and VDOP values are 1.0, 0.6 and 0.8, respectively. The C/N 0 values for the observed satellites vary within 20-50 dB-Hz generally, but for some satellites they also change abruptly. Figure 11 illustrates the time series of the positioning errors in the east, north and up components for the PVT solutions and the Smart-PPP solutions. Figure 12 presents the comparison of trajectories between the PVT solutions, the Smart-PPP results and the true user positions. The statistical results of the AVE, STD, RMS and CEP95 values of the positioning errors in each component for the whole PVT and Smart-PPP solutions during the test are given in Table 3. As presented in Fig. 11 Here, it is worth noting that there seems to be a mechanism to constrain the positioning results in some Huawei smartphones, which is that the output solution will be fixed to a single point when the smartphone is in static condition. As a result, we can see the straight line in Fig. 11 for the PVT solutions for those static periods during the kinematic test.
According to the statistical results given in Table 3,    When compared with that of the PVT solutions, the improvements are about 86.26%, 81.51% and 51.12% for the corresponding components. As to the 95th percentile accuracy of the Smart-PPP solutions, it is 1.03, 1.08 and 2.29 m for the east, north and up components, respectively, and the improvements are 87.47%, 79.55% and 44.82% for the corresponding components relative to the PVT solutions. As the trajectories presented in Fig. 12, we can see that the green line of the PVT solutions deviates from the reference trajectory for some places, while the red line of the Smart-PPP positions is smoother and closer to the reference trajectory. Thus, based on the above results, we can see that the kinematic positioning accuracy of Smart-PPP is better than that of PVT solutions of the experimental device itself.

Summary and conclusions
Given the limitation that the hardware components and the poor quality of raw GNSS measurements of the smart devices present, this contribution studied what changes can be implemented in precise positioning with raw GNSS measurements from low-cost smart devices when using the PPP algorithms developed for geodetic receivers, and an approach named Smart-PPP was proposed for achieving the sub-meter-level positioning accuracy in low-cost smart devices. To process the single-and dual-frequency measurements from tracked satellites by smart devices uniformly, the uncombined PPP observation model is applied in Smart-PPP. To handle the inconsistency between the code and carrier phases measured by smart devices, the receiver clock terms are parameterized independently for the code and carrier phase measurements of each tracking signal. To strengthen the uncombined PPP model and mitigate the ionospheric delay errors, the ionospheric pseudo-observations are adopted to constraint the estimation of slant ionospheric delays. To weight the code and carrier phase measurements of smart devices properly, a modified stochastic model is employed by considering the strong correlation between the measurement errors and the signal strengths for smart devices.
The positioning performance of Smart-PPP was validated in both static and kinematic tests. The results of the static test show that the RMS values of the positioning errors for the smartphone's PVT solutions are 1.09, 2.66 and 3.71 m in the east, north and up components, respectively. For the Smart-PPP solutions during the whole testing period, the RMS errors are 0.43, 0.27 and 0.73 m in the east, north and Based on the numerical results obtained, it can be drawn that the positioning performance of the smart devices can be improved by applying the proposed Smart-PPP approach. And the Smart-PPP solutions can achieve the positioning results with an accuracy of decimeter level in static mode after convergence and about sub-meter level (about 0.5-1.0 m) in kinematic mode. Thus, although the low-cost smart devices do not outperform those geodetic-grade GNSS terminals, we can safely say that they have the promising potential to be used in those real-time applications with sub-meter-level accuracy demands with the applying of Smart-PPP. Future studies will be focused on the fusion of Smart-PPP and MEMS (micro-electromechanical system) sensors to enable more accurate and continuous positioning for smart devices.