Real-time GNSS precise point positioning with smartphones for vehicle navigation

The availability of raw Global Navigation Satellite System (GNSS) measurements from Android smart devices gives new possibilities for precise positioning solutions, e.g., Precise Point Positioning (PPP). However, the accuracy of the PPP with smart devices currently is a few meters due to the poor quality of the raw GNSS measurements in a kinematic scenario and in urban environments, particularly when the smart devices are placed inside vehicles. To promote the application of GNSS PPP for land vehicle navigation with smart devices, this contribution studies the real-time PPP with smartphones. For data quality analysis and positioning performance validation, two vehicle-based kinematic positioning tests were carried out using two Huawei Mate30 smartphones and two Huawei P40 smartphones with different installation modes: the vehicle-roof mode with smartphones mounted on the top roof outside the vehicle, and the dashboard mode with smartphones stabilized on the dashboard inside the vehicle. To realize high accuracy positioning, we proposed a real-time smartphone PPP method with the data processing strategies adapted for smart devices. Positioning results show that the real-time PPP can achieve the horizontal positioning accuracy of about 1–1.5 m in terms of root-mean-square and better than 2.5 m at the 95th percentile for the vehicle-based kinematic positioning with the experimental smartphones mounted on the dashboard inside the vehicle, which is the real scenario in vehicle navigation.


Introduction
Smart devices with low-cost Global Navigation Satellite System (GNSS) antenna and chipset embedded are widely used in the applications related to Location-Based Services (LBS). However, their positioning accuracy is generally at 5 m level, which cannot meet the increasing demands in precise applications (Wang et al., 2016). In the early stage, the GNSS chip in a smart device acts as a black box and only outputs the PVT (Position, Velocity, and Time) and limited information. In recent years, the availability of raw GNSS measurements from Androidbased smart devices gives the possibilities for accurate positioning solutions together with the advanced techniques used in professional GNSS positioning (European GNSS Agency, 2017), such as the Real-Time Kinematic (RTK) and Precise Point Positioning (PPP) techniques. In addition, with the development of GNSS chips supporting multi-constellation and multi-frequency signal tracking, more accurate results can be achieved, even though they cannot replace geodetic-grade GNSS receivers.
After the official release of Android 7.0 (Nougat), a lot of attention has been paid to the assessment of the raw GNSS measurements from smart devices. Banville and Diggelen (2016) made the first glance at the data quality of the raw measurements from a Samsung Galaxy S7 smartphone, including the Carrier-to-Noise (C/N 0 ) density ratio, pseudorange rate, and Doppler. Riley et al. (2017) further assessed the data quality of the raw measurements from a Samsung Galaxy S7 smartphone by

Open Access
Satellite Navigation https://satellite-navigation.springeropen.com/ *Correspondence: wangliang@aircas.ac.cn analyzing the double-differenced pseudorange and carrier phase residuals in a short baseline. In Zhang et al. (2018), the quality of the raw Global Positioning System (GPS) measurements from a Google Nexus 9 tablet was analyzed by comparing the C/N 0 and single-differenced code residuals with the corresponding measurements from geodetic-grade receivers, and the pseudorange rate, phase rate, and Doppler data from the smart device were also examined for the purpose of deriving velocity. The similar analyses about the data quality of the raw GNSS measurements from smartphones can also be found in Lu et al. (2018) and Zhu et al. (2019). Håkansson (2019) further assessed the multipath effect of GNSS observations with smart devices on positioning performance. Li and Geng (2019) studied the measurement error characteristics of the raw GNSS data from smart devices using both embedded and external antennas through standalone and controlled environment tests. Assessment of the raw measurements for L1/E1 and L5/E5a dual-frequency signals with smartphones was also performed in Warnant et al. (2018), Robustelli et al. (2019), and Paziewski et al. (2021).
The above analyses reveal that the of the smart devices with passive linearly polarized GNSS antenna embedded is generally about 10 dB·Hz lower than that of geodetic receivers and no obvious correlation exists between the C/N 0 and the satellite elevation angles. In addition to the low and irregular C/N 0 , the built-in ultra-low-cost GNSS antennas also have the difficulty to distinguish between the direct Line-of-Sight (LOS) signals and the Non-Line-of-Sight (NLOS) signals (Zangenehnejad & Gao, 2021). Consequently, the raw pseudorange measurements of smart devices are not only very noisy with about one order of magnitude as compared to geodetic receivers (Paziewski et al., 2021), but also with lots of gross errors and significant multipath effects due to the embedded low-quality antenna which appears in high susceptibility to multipath, low gain, and linear polarization (Paziewski 2020). And for the smartphone capable of receiving dual-frequency GNSS signals (hereafter called dual-frequency smartphone), the studies show that the code signals on the L5/E5a band (1176.45 MHz) outperform those on the L1/E1 band (1575.42 MHz) (Warnant et al., 2018;Paziewski et al., 2021). Compared with pseudorange measurements, the carrier phase observations of smart devices have lower noise level below 1.0 cm, which has a greater potential for carrier-phase-based precise positioning. However, the carrier phase observations with smart devices are affected by duty-cycling issues, frequent cycle slips, random Initial Phase Biases (IPBs), and divergence of carrier-phase biases between dual-frequency signals, which results in greater noise, difficulties in ambiguity fixing, and unavailability of carrier phase measurements. By correcting the pre-calibrated IPBs, Geng and  successfully implemented the ambiguity resolution for the Nexus 9 tablet (without dutycycling issue) connected to an external survey-grade antenna using a static zero-baseline experiment. Wen et al. (2020) analyzed the ambiguity resolution in undifferenced precise point positioning with a smartphone, and their results show that by feeding the signals from an external survey-grade GNSS antenna the fixed solutions can be obtained, but longer time (longer than 3 h) is needed. In addition, Darugna et al. (2021) demonstrated that if ground reflections are partially removed, ambiguity resolution is also feasible for smartphone-based positioning by calibrating and correcting the phase center variations of the smartphone GNSS antenna. Paziewski et al. (2021) found that it is feasible to fix the ambiguities in the smartphone-to-smartphone static relative positioning, but the fixed solutions are poorer than those with geodetic receivers.
The GNSS positioning performance with smart devices is closely related to the data quality of the raw measurements. The existing assessments show that the quality of raw GNSS measurements from smart devices is much poorer than that from geodetic receivers. Since Google announced the availability of raw GNSS measurements from Android, many works have been focused on the investigation of the PPP performance using raw GNSS measurements from smart devices. Banville and Diggelen (2016) reported that it is possible to obtain the positions with centimeter precision by post-processing static PPP using the precise satellite orbit and clock products and the global ionospheric map product. Gill et al. (2017) further reported that positioning results with a few decimeters to meter level accuracy is also possible with smartphones by conducting the single-frequency PPP in static mode. Based on the smartphone app "PPP Wizlite", Laurichesse et al. (2017) achieved real-time PPP results with sub-meter level accuracy after the solution convergence in static mode and meter level accuracy in kinematic mode using the real-time corrections from Satellite-based Augmentation System (SBAS).
To investigate the dual-frequency PPP performance with smart devices, many studies were carried out with dual-frequency smartphones in recent years. In Wu et al. (2019) and Elmezayen and El-Rabbany (2019), dual-frequency PPP performance with GPS L1 + L5 and Galileo navigation satellite system (Galileo) E1 + E5a measurements from Xiaomi Mi8 smartphone was analyzed by post-processing, and the results showed that the dualfrequency smartphone static PPP can achieve a similar accuracy with that obtained from a single-frequency geodetic receiver after a long convergence time. Even though smartphones now can output dual-frequency measurements, the use of ionosphere-free combination does not always provide the best results due to the higher noise level . Moreover, the continuous measurement availability in dual frequencies is not always feasible for smartphones in practice. Thus, Psychas et al. (2019) and Wang et al. (2021) performed dualfrequency PPP with the uncombined PPP model. Their results show that sub-meter positioning accuracy with a dual-frequency smartphone is possible in both post-processing and real-time modes. Recently, the positioning results in Aggrey et al. (2020) showed that a decimeterlevel accuracy was achievable in approximately 30 min by post-processing static PPP with a smartphone equipped with a dual-frequency multi-GNSS chipset. However, kinematic tests with smartphones inside the car showed that the horizontal positioning errors are above 5 m due to the lower C/N 0 , higher multipath effects, and signal blockages (Shinghal & Bisnath, 2021).
Based on the above works and results, it can be concluded that the static PPP can achieve decimeter-level positioning accuracy after the solution convergence in both real-time and post-processing modes, which is comparable to a low-cost geodetic receiver. While the accuracy of smartphone PPP in kinematic mode remains a few meters due to the poor quality of the raw GNSS measurements in the kinematic case and in an urban environment, particularly when the smartphones are placed inside vehicles which are the actual application scenario (Yi et al., 2021). To promote the application of smartphone kinematic PPP for vehicle navigation in urban environments, this work focuses on the real-time GNSS PPP with smartphones in vehicle-based kinematic mode. The next section describes two vehicle-based kinematic positioning experiments in an urban environment. The collected datasets are used for data quality analysis and positioning performance validation. Then, the method for real-time smartphone PPP is presented. Afterwards, the positioning performance of the proposed method is validated using the two experiment datasets, and the corresponding results are compared and analyzed. Finally, the summary and conclusions are drawn.

Datasets
To investigate the data quality of raw GNSS measurements and validate the performance of real-time PPP with smart devices for land vehicle navigation, two vehicle-based kinematic positioning experiments in an urban environment were carried out in Beijing, China. The experimental smart devices are two Huawei Mate30 smartphones (denoted by Mate30_A and Mate30_B) and two Huawei P40 smartphones (denoted by P40_A and P40_B). The two vehicle-based kinematic tests were conducted in two modes: the vehicle-roof mode and the dashboard mode. In the vehicle-roof mode experiment, the four experimental smartphones were mounted on the top roof of the vehicle. In the dashboard mode experiment, the four experimental smartphones were stabilized side by side on a dashboard inside the vehicle by phone mountings, which is the actual application scene in vehicle navigation.
For evaluating the positioning accuracy, a NovAtel geodetic antenna was mounted close to the experimental smartphones to determine the reference trajectory. The experimental setups and driving routes for the vehicleroof mode and the dashboard mode are shown in Fig. 1. As presented, the geodetic antenna and the experimental smartphones were placed in the same horizontal plane as close as possible. The horizontal distance between the smartphones and the referenced geodetic antenna are with 10-20 cm in the vehicle-roof mode test and about 50 cm in the dashboard mode test. The vehicle-roof mode kinematic test was carried out from 13:50 to 15:20 in the local time on May 18, 2020, and the kinematic test in the dashboard mode was carried out subsequently from 15:50 to 17:20. The detailed vehicle speed information for these two tests is also shown in Fig. 1. The experimental vehicle ran at 20-45 km/h for most of the time during the tests, which is the normal speed on urban roads.
To clearly describe the GNSS observation environment for these two tests, Fig. 2 shows the sky-map of the observed satellites and the Number of valid Satellites (NSAT) and the corresponding Position Dilution of Precision (PDOP) values. For the first test, the number of valid satellites varies from 25 to 38 with a mean value of 30.93, and the mean value of PDOP is 0.95. For the second test, the number of valid satellites varies from 30 to 40 with a mean value of 36.12, and the corresponding mean PDOP is 0.82.

Smartphone data analysis
The GNSS-based positioning performance is highly related to the data quality of raw measurements. The higher the data quality of observations, the better the positioning performance will be. In this section, the data qualities of the GNSS measurements collected with the smartphones in the vehicle-roof mode and dashboard mode are compared and analyzed.

Signal strength analysis
The carrier-to-noise density ratio C/N 0 is a widely used index to describe the strength and quality of GNSS signal reception. To investigate the GNSS signal reception performance in the vehicle-roof and dashboard modes, the data from the P40_A and Mate30_A smartphones are used as examples for a detailed analysis. Figure 3 shows the dual-frequency C/N 0 values from the P40_A

Fig. 2
The distribution and the number of the observed satellites in the a vehicle-roof mode and b dashboard mode kinematic tests smartphone in the vehicle-roof and dashboard modes, and also the C/N 0 values from the experimental NovAtel receiver. Table 1 summarizes the statistical results of the average C/N 0 values on the dual-frequency bands for all visible satellites and also the results of the geodetic receiver for comparison. To analyze the differences in signal reception of smartphones for different satellite systems, Table 1 also gives the statistical results of average C/N 0 values of each system in the two smartphone installation modes.
As can be seen from Fig. 3, the C/N 0 values of GNSS satellites from smartphones fluctuate greatly from 25 to 50 dB·Hz most of the time, and are below 20 dB·Hz for some epochs. While for the NovAtel receiver with a geodetic antenna, the satellite C/N 0 values generally fluctuate within the range of 35 to 52 dB·Hz most of the time, which are much higher and more concentrated than those of smartphones, particularly for the GPS/Galileo L5/E5a frequency band. Comparing the statistical results of satellite C/N 0 values in both modes, most of the C/N 0 Geodetic receiver values fluctuate in the range of 30-45 dB·Hz in the vehicle-roof mode, while for the dashboard mode these values are obviously lower and fluctuate more intensely. As shown in Table 1, the average C/N 0 values of the two P40 smartphones outside the vehicle on the first frequency band (GPS/GLONASS L1, Galileo E1, and BDS B1I) are 36.18 and 37.52 dB·Hz, respectively, and GLO-NASS represents GLObal NAvigation Satellite System. For the second frequency band (GPS/Galileo L5/E5a), the average C/N 0 values of the two P40 smartphones are 2.31 and 4.42 dB lower than those on the first frequency band, respectively. When the smartphones are on the dashboard inside the vehicle, the average C/N 0 values of the two P40 smartphones on the first frequency band are reduced to 33.92 and 34.26 dB·Hz, respectively, which are 2.26 and 3.26 dB lower than those in the vehicle-roof mode, respectively. While for the second frequency band, the average C/N 0 values of the two P40 smartphones are 6.29 and 6.16 dB lower than those on the first frequency band, respectively. The similar results are obtained for the two Mate30 smartphones. Therefore, when the smartphones are mounted inside the vehicle, their C/N 0 values are about 2-3 dB lower on the first frequency band and 5-7 dB lower on the second frequency band than those obtained in the vehicle-roof mode, respectively.
In addition, it can be seen from Table 1 that the signal reception performance of the smartphone is slightly different for GPS, GLONASS, Galileo, and BDS satellites. Overall, for the four experimental smartphones both in the vehicle-roof mode and the dashboard mode, the highest signal C/N 0 values are from GLONASS satellites and the lowest from Galileo satellites on the first frequency band. According to the results in Table 1, when the smartphones are placed inside the vehicle, the C/N 0 values from GPS, GLONASS, Galileo, and BDS satellites on the first frequency band are reduced by 2.7, 1.9, 4.8, and 2.3 dB on average for the two P40 smartphones compared with those in the vehicle-roof mode, and for the two Mate30 smartphones the average C/N 0 values on the first frequency band are reduced by 1.7, 2.7, 2.7, and 1.5 dB correspondingly.

Observation analysis
The loss of signal power will affect the performance of subsequent signal acquisition and tracking as well as the observation quality. To further investigate the difference in GNSS measurements with smartphones in the two installation modes, this section compares the data quality of the code pseudorange and carrier-phase measurements of smartphones.

Code pseudorange measurement analysis
The noise level of the pseudorange measurements is one of the important indicators to evaluate the performance of GNSS terminals. Since it is difficult to carry out the zero-baseline experiment for the smartphones with built-in GNSS antennas, the ultra-short-baseline test is performed for evaluating the GNSS data quality of smartphones. For the two smartphones of the same model, the measurement noise level can be regarded the same. Therefore, using the error propagation law, we can establish the relationship between the error in the Double-Difference (DD) and the error of the pseudorange measurements.
Taking the experimental P40 smartphone as an example, the time series and the corresponding probability density distributions of the DD pseudorange residuals on the first frequency band in the vehicle-roof mode and dashboard mode are given in Figs. 4 and 5, respectively. As for the second frequency band, Fig. 6 presents the corresponding time series and probability density distribution of the GPS/Galileo L5/E5a DD code residuals for the P40 smartphone in the vehicle-roof and dashboard modes. Table 2 shows the statistical results on the noise level of the dual-frequency pseudoranges of GPS, GLO-NASS, Galileo, and BDS for the four experimental smartphones in the vehicle-roof mode and dashboard mode.
As can be seen from Figs. 4 and 5, most of the absolute DD pseudorange residuals on the first frequency band of GPS, Galileo, and BDS satellites are mainly distributed between 0 and 10 m. While the absolute residuals of GLONASS L1 pseudoranges are mainly distributed between 0 and 20 m, which are significantly larger and more dispersed than those of the other three systems. Comparing the results presented in Figs. 4 and 5, it can be found that when the smartphone is placed on the dashboard inside the vehicle, the DD pseudorange residuals of each satellite system will increase. In addition, there are some large residuals for some satellites at certain epochs, suggesting gross errors exist in the pseudoranges of smartphones, particularly when they are placed inside the vehicle. When looking at DD pseudorange residuals on the second frequency band presented in Fig. 6, the GPS/Galileo L5/E5a code residuals are much smaller than those for the GPS L1 and Galileo E1 pseudoranges. This means that the GPS/Galileo L5/E5a pseudoranges are more accurate than the GPS/Galileo L1/E1 pseudoranges.
The statistical results on the noise levels of GPS, GLONASS, Galileo, and BDS dual-frequency pseudoranges given in Table 2 indicate that for the P40 smartphone installed in the vehicle-roof mode, the noise levels are 3.52, 6.26, 3.82, and 2.42 m on the first frequency band for GPS, GLONASS, Galileo, and BDS, respectively. When the P40 smartphone is placed inside the vehicle, its pseudorange noise levels on the first frequency band for the four satellite systems are 4.03, 6.57, 3.41, and 2.86 m correspondingly. The noise level of BDS B1I pseudoranges is within 3.0 m, which is lower than that of the other three systems. When comparing the code noise levels between the dual-frequency bands, the pseudorange noise level is generally around 1.0 m for GPS L5 and about 1.5-2.0 m for Galileo E5a, which is remarkably lower than that of GPS/Galileo L1/E1. The similar conclusions can be drawn for the Mate30 smartphones.

Carrier phase measurement analysis.
Without considering the correlation between epochs, a simple and convenient way to evaluate the carrier phase noise is using the triple difference method between epochs. In this method, the carrier phase noise is filtered at four consecutive epochs and more low frequency components are eliminated. The standard deviation of the triple differences results then can be used to determine the noise level of the raw carrier phase observations by normalization (Pirazzi et al., 2017).
Taking the experimental P40_A and Mate30_A smartphones for illustration again, the time series of the triple differenced carrier phase measurements of GPS L1, GLONASS L1, Galileo E1, and BDS B1I in the vehicleroof mode and dashboard mode are given in Figs. 7 and 8, respectively. Due to the similar results for the GPS L1 and Galileo E1 carrier phase measurements, we do not present the time series for the triple differenced carrier phase measurements of GPS L5 and Galileo E5a. Table 3 presents the statistical results on the noise levels of GPS, GLONASS, Galileo, and BDS dual-frequency carrier phase measurements of the four experimental smartphones in the vehicle-roof mode and dashboard mode by using the triple difference method. Table 4 illustrates the statistic results on the average cycle slip rate of the dualfrequency carrier phase measurements of the experimental smartphones in the vehicle-roof mode and dashboard mode tests.
As can be seen from Figs. 7 and 8, smartphone carrier phase measurements are seriously affected by frequent cycle slips and discontinuities. Comparing the statistical results on the noise levels of GPS, GLONASS, Galileo, and BDS carrier phase measurements given in Table 3, the noise level of the carrier phase measurements is in the range of 0.15-0.3 cycles for the kinematic tests in urban environments. Although there is no remarkable difference in the carrier phase measurement noise levels between the Mate30 and P40 smartphones, the quality of carrier phase measurements of P40 smartphone is slightly better than that of the Mate30, as can be seen from the cycle slip ratio results presented in Table 4 where the Mate30 smartphones exhibit more cycle slips in the carrier phase measurements than that of the P40 ones. In addition, the comparative results given in Table 4 also illustrates that the carrier phase measurements suffer more cycle slips if the smartphone is inside the vehicle. Li et al. Satellite Navigation (2022)

Observation model
The ionospheric delay is one of the major error sources that needs special attention in PPP, particularly for those smartphones with single-frequency GNSS chipset embedded. Although there are some smartphones with dual-frequency GNSS chipset in the market, such as Xiaomi Mi8 and Huawei Mate30, their tracked signals are GPS L1 + L5 and Galileo E1 + E5a. We must be aware that only the GPS Block-IIF and Block III satellites transmit signals on L5. However, there are currently only 12 Block-IIF satellites and 4 Block III satellites in orbit. Due to the insufficient number of the visible satellites with available dual-frequency observations for a smartphone, the ionosphere-free combination PPP model cannot work well most of the time. Thus, the positioning performance of real-time PPP with smartphones much depends on the mitigation of ionospheric delays. To mitigate the ionospheric delays, the broadcast ionospheric model is applied in the embedded GNSS chip of smartphones by manufacturers. But its performance cannot meet the demand for real-time precise positioning. With the support of the real-time ionosphere Vertical Total Electron Content (VTEC) product which is formatted for State-Space Representation (SSR) using spherical harmonic expansions, the more accurate ionospheric delays can be computed with real-time SSR VTEC. In addition, the real-time SSR VTEC product can also be applied for the ionospheric delay parameter constraint by adding the virtual ionosphere measurements in PPP estimation, i.e., by applying the ionosphere-weighted model . For the basic ionosphere-corrected single-frequency PPP, its error equation is generally given as follows where V is the error vector of code and carrier phase measurements; L is the Observed-Minus-Computed (OMC) residuals vector of code and carrier phase measurements; H is the design matrix; X is the state vector of estimated parameters in the ionospheric-corrected PPP model. This work applies an improved PPP model with separate receiver clock terms for code and carrier phase observations (Wang et al., 2021) by considering the gradual divergence over time between the code and carrier phase measurements due to their clock inconsistency in smart devices (Håkansson, 2019;Paziewski et al., 2019;Chen et al., 2019). Thus, the estimated parameters are the user position, receiver clock offsets for code and carrier phase measurements, the Zenith Tropospheric Delay (ZTD), and the float-valued phase ambiguities for each satellite.
While for the ionosphere-weighted single-frequency PPP on smartphones, its general error equation can be written as follows: where W is the error vector for the prior slant ionospheric delays; I is the vector for the external prior information or virtual measurements of slant ionospheric delays of each satellite derived from the real-time SSR VTEC product; E represents the identity matrix; O is a zero matrix; X is the state vector of estimated parameters in the ionosphere-weighted PPP model, including the user position, receiver clock offsets for code and carrierphase measurements, the zenith tropospheric delay, the float-valued phase ambiguities for each satellite and the estimated slant ionospheric delays for each satellite.

Data quality control method
Data quality control is a very important part in PPP processing. Due to the poor data quality of raw smartphone measurements, it is necessary to design a specific data quality control method for smartphones according to their data characteristics. The data quality control method proposed in this work is given in the flow diagram shown in Fig. 9.
At first, the collected raw observation data for Android Location API (European GNSS Agency 2017) is preliminarily filtered. The main indicators used for data filtering include State, AccumulatedDeltaRangeState, MultipathIndicator, ReceivedSvTimeUncertaintyNanos, and Cn0DbHz. The measurement State, Accumulated-DeltaRangeState, and MultipathIndicator parameters are checked according to the defined signal tracking status in Android Location API. The ReceivedSvTimeUncertain-tyNanos and Cn0DbHz parameters for the tracking signals of each satellite are filtered with the given thresholds.
(2)  Based on many tests, it is found that the signal transmission time within 4 ms (i.e., one E1BC code) of many smartphones can only be measured for the E1 signal in most cases even if the Galileo satellites are tracked normally, resulting in the ambiguity of signal transmission time in calculating the pseudoranges. As a result, most code pseudoranges remain "ambiguous" (time modulo) in smartphones (Warnant et al., 2018). Thus, the code pseudorange ambiguity (time modulo) resolution is necessary for Galileo. To resolve the ambiguity of these E1 signal transmission times, the time modulo method for synchronization according to the Galileo signal structure is applied based on the decoded E1C 2nd code (100 ms), E1B page (2 s), and TOW (time of week). After the successful code pseudorange ambiguity resolution, complete and available pseudoranges can be obtained for positioning.
In addition, the gross errors of the pseudorange measurements are detected. In this step, the pseudorange measurement is checked first according to the pseudorange uncertainty with a given threshold. If the pseudorange uncertainty is larger than the given threshold, the pseudorange measurement is possibly "affected by gross error". Then, the gross errors in the pseudoranges are further detected based on the difference between the pseudorange derivative and Doppler. If the difference exceeds a given detection threshold, the pseudorange measurement is regarded as "affected by gross error". Once the gross error is detected, the corresponding pseudorange observation will no longer be used in the subsequent positioning step.
Since the Doppler observations are not affected by cycle slips and have no ambiguities, the high-precision Doppler measurements are then used to smooth the   Fig. 9 The flow diagram for data quality control in smartphone PPP raw pseudorange observations for reducing their noise levels. To detect the cycle slips of carrier phase observations, the LLI (Loss-of-Lock Indicator) method, the carrier phase rate method, and the third-order derivative method are applied in this work. Then, the code pseudorange and carrier phase residuals are controlled by the given thresholds during the a priori estimation and the a posteriori estimation steps, respectively. For a better estimation performance, the robust estimation method is applied in PPP processing. To deal with the positioning failure caused by those inferior measurements that are not successfully deleted in the quality control, the Receiver Autonomous Integrity Monitoring (RAIM) technique is applied for fault detection and exclusion.

Smartphone PPP processing
To realize GNSS real-time PPP with smartphones, the ionospheric pseudo-observations derived from the real-time SSR VTEC product  are used to constrain the estimation of slant ionospheric delays and strengthen the uncombined PPP model by using the ionosphere-weighted model. The precise satellite orbits and clocks can be obtained by correcting the broadcast ephemerides-derived satellite orbits and clocks with the SSR corrections . The input data are the raw GNSS pseudoranges and carrier phase observations calculated according to the Android Application Programming Interface (API) and other related information provided in the API, such as Doppler, C/N 0 , Accumulated Delta Range (ADR) states, etc. An Extended Kalman Filter (EKF) is employed for the parameter estimation after the data quality control and error correction. The data processing strategies applied in the proposed real-time PPP processing are presented in Table 5.

Experiment results and analysis
For realizing real-time GNSS PPP with smartphones, we developed a software based on the Android platform. In real-time processing, the software collects the raw GNSS measurement data from the embedded GNSS chip according to the Android Location API and also receives the real-time streams of the multi-GNSS broadcast ephemerides, the satellite orbit and clock correction products, and the ionospheric VTEC products from the Networked Transport of RTCM via Internet Protocol (NTRIP) Caster via NTRIP, and RTCM represents Radio Technical Commission for Maritime Services. After obtaining the required raw GNSS data, the code pseudoranges, carrier phases, and Doppler measurements are generated, and the received correction messages are decoded according to the RTCM standards. Then, the user's precise positions can be estimated based on the above approaches. The used GNSS constellations and frequencies in our smartphone PPP processing software are GPS L1 + L5, Galileo E1 + E5a, GLONASS L1, and BDS B1I.
Based on this software, the two kinematic experiments presented in the datasets section were carried out in a real-time mode. The precise satellite orbit/clock corrections and the ionospheric VTEC product used were the real-time SSRA00CAS0 and IONO05CAS0 streams both provided by the Chinese Academy of Sciences (CAS). The reference trajectories of the experimental smartphones for the two vehicle-based kinematic tests were computed by post-processing the RTK data collected with the geodetic receivers, and only the fixed RTK solutions were used. Besides, the PVT (Position, Velocity, and Time) solutions of the experimental smartphones provided by the manufacturer were also collected for comparison. In this section, the positioning results of the two experiments obtained in the vehicle-roof and dashboard modes are compared and analyzed.

Vehicle-roof mode experiment
For the vehicle-roof mode experiment, taking the Mate30_A and P40_A smartphones as the example, the positioning errors of real-time PPP and PVT results in the East (E), North (N), and Up (U) components are presented in Fig. 10 for Mate30_A and Fig. 11   In addition, to compare the PVT and PPP results in terms of the 95th percentile, Table 6 shows that the positioning accuracy at the 95th percentile for the PPP results of the Mate30_A smartphone is 2.3 m horizontally and 2.7 m vertically with the improvement of 49% and 80%, respectively, relative to its PVT solutions. Similar to the Mate30_A smartphone, the horizontal and vertical positioning accuracy of PPP results of the Mate30_B smartphone is 2.0 and 3.1 m at the 95th percentile, respectively, and the corresponding improvement relative to its PVT solutions is 63% and 54% respectively. For the P40_B smartphone, the 95th percentile values of the horizontal and vertical errors of PPP results are 2.0 and 3.6 m, respectively, which are also similar to that of the Mate30_B smartphone, particularly in the horizontal component. As for the P40_A smartphone, its positioning accuracy in terms of the 95th percentile is 1.2 and 2.7 m in horizontal and vertical components with an improvement of 61% for both components, which is the best one among the four experimental smartphones. The above analysis tells

Dashboard mode experiment
Like the analysis for the vehicle-roof mode experiment, the Mate30_A and P40_A smartphones are also taken as examples for illustration here. Figure 12 illustrates the error sequences of the real-time PPP solutions and the PVT results with the Mate30_A smartphone in the directions of E, N, and U components, and compares the PPP and PVT results in horizontal and vertical directions. Figure 13 shows the error sequences of the PPP and PVT results of the P40_A smartphone in E, N, and U directions, and compares the PPP and PVT results in horizontal and vertical directions. To evaluate the positioning performance, the values of RMS and the 95th percentile, and the corresponding improvements of PPP solutions relative to the PVT results in horizontal and vertical directions are summarized in Table 7. As shown in Fig. 12 As can be seen from Fig. 13, the horizontal positioning errors of the PVT solutions for the P40_A smartphone vary within 6 m in the start period and then within 3 m, while the positioning error in the vertical direction fluctuates from − 8 to 2 m generally. According to statistics, the RMS values of the positioning errors of PVT solutions for the P40 smartphone are 1.88, 1.71, and 3.90 m in E, N, and U directions, respectively, and the average positioning errors in E, N, and U directions are − 1.42, − 0.57, and − 3.20 m, respectively. In contrast, the fluctuation of the positioning errors for the PPP solutions of P40_A smartphone is smoother within ± 2 m in the E and N components and within ± 3 m in the U component. The average PPP positioning errors in E, N, and U directions are − 0.05, 0.35, and − 0.50 m, and the corresponding RMS values are 0.54, 0.92, and 1.24 m, respectively. Therefore, the PPP solution is obviously better than the PVT solution, and there is no obvious systematic deviation.
According to the statistics given in Table 7, the RMSs of positioning results obtained based on real-time PPP are about 1.0-1.5 m in the horizontal direction and 1-2 m in the vertical direction, especially for the two P40 smartphones the RMS errors in horizontal and vertical directions are around 1.2 m. Compared with the horizontal and vertical RMS values of the PVT results, the corresponding improvements are 33% and 57% for the experimental Mate30_A smartphone, 34% and 44% for the Mate30_B smartphone, and 36% and 72% for the P40_B smartphone, respectively, while the P40_A smartphone gives a highest improvement of 58% and 68% in horizontal and vertical directions, respectively. The 95th percentile values are 2.3 and 3.4 m in horizontal and vertical directions for the PPP results of the Mate30_A smartphone, and the improvement is 31% and 52%, respectively, compared with the PVT solutions. The positioning accuracy of the PPP results of the Mate30_B smartphone is almost the same as that of the Mate30_A smartphone in terms of the 95th percentile. For the P40_B smartphone, the positioning accuracy at the 95th percentile is 2.6 m in the horizontal direction and 2.3 m in the vertical direction with the corresponding improvement of 35% and 69% relative to the PVT results. P40_A smartphone can achieve the highest positioning accuracy in terms of the 95th percentile among the four experimental smartphones with 1.9 m in the horizontal direction and 2.4 m in the vertical direction, improving by around 65% relative to its PVT results. In conclusion, the real-time PPP results can achieve a horizontal positioning accuracy of about 1-1.5 m in terms of RMS and better than 2.7 m at the 95th percentile for the vehicle-based kinematic positioning with the smartphone installed on the dashboard inside the vehicle, which is the practical application scenario in vehicle navigation.

Summary and conclusions
To promote the application of smartphone GNSS PPP for land vehicle navigation, this work mainly focuses on the smartphone-based real-time PPP in the vehiclebased kinematic mode. For data quality analysis and positioning performance validation, two vehicle-based kinematic positioning experiments in an urban environment were carried out using two Huawei Mate30 smartphones and two Huawei P40 smartphones with two installation modes: the vehicle-roof mode with smartphones mounted on the top roof outside the vehicle, and the dashboard mode with smartphones stabilized on the dashboard inside the vehicle. We analyzed the dual-frequency signal carrier-to-noise density ratio (C/ N 0 ) and measurement noise in detail and compared the smartphone data qualities between the two modes. To realize high-accuracy positioning with smartphones, we proposed a real-time PPP method with data processing strategies adapted for smartphones. Then the positioning