Introduction

Smart devices are widely used in location-based service-associated 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/N0) 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 smartphone-grade 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 dual-frequency 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/N0-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 dual-frequency 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 (Li et al. 2019).

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 dual-frequency measurements, such inconsistency between dual-frequency observations will be eliminated, as shown in the bottom sub-figure of Fig. 2.

Fig. 1
figure 1

Code and carrier phase residuals between the traditional model with common receiver clock term (top) and the improved model with independent receiver clock terms (bottom) for the code and carrier phase observations

Fig. 2
figure 2

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

Consequently, the improved uncombined PPP observation model for multi-GNSS applied in Smart-PPP can be expressed as follows.

$$\left\{ \begin{gathered} P_{r,i}^{s,Q} = \rho_{r}^{s,Q} + c(\delta t_{r,P,i}^{Q} - \delta t^{s,Q} ) + I_{r,i}^{s,Q} + T_{r}^{s,Q} + \varepsilon_{r,i}^{s,Q} \hfill \\ \Phi_{r,i}^{s,Q} = \rho_{r}^{s,Q} + c(\delta t_{r,\Phi ,i}^{Q} - \delta t^{s,Q} ) - I_{r,i}^{s,Q} + T_{r}^{s,Q} + B_{r,i}^{s,Q} + \zeta_{r,i}^{s,Q} \hfill \\ P_{r,j}^{s,Q} = \rho_{r}^{s,Q} + c(\delta t_{r,P,j}^{Q} - \delta t^{s,Q} ) + \mu^{Q} I_{r,i}^{s,Q} + T_{r}^{s,Q} + \varepsilon_{r,j}^{s,Q} \hfill \\ \Phi_{r,j}^{s,Q} = \rho_{r}^{s,Q} + c(\delta t_{r,\Phi ,j}^{Q} - \delta t^{s,Q} ) - \mu^{Q} I_{r,i}^{s,Q} + T_{r}^{s,Q} + B_{r,j}^{s,Q} + \zeta_{r,j}^{s,Q} \hfill \\ \tilde{I}_{r,i}^{s,Q} = I_{r,i}^{s,Q} + \nu_{r,i}^{s,Q} \hfill \\ \end{gathered} \right.$$
(1)

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 (fi and fj: 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; \(\tilde{I}\) 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 \(\rho = \sqrt {(x^{s} - x_{r} )^{2} + (y^{s} - y_{r} )^{2} + (z^{s} - z_{r} )^{2} }\), where \((x^{s} ,y^{s} ,z^{s} )\) and \((x_{{^{r} }} ,y_{{^{r} }} ,z_{{^{r} }} )\) are the position vectors of satellite and receiver, respectively; δtr,P and δtr,Φ are the receiver clock offsets in seconds for code and carrier phase measurements, respectively, and they are different with each other; δts 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 ionosphere-weighted model can be found in Li et al. (2019).

Table 1 Detailed parameters estimated in Smart-PPP in the case of GPS L1/L5 + Galileo E1/E5a + GLONASS G1 + BDS B1 combined positioning mode when the number of observed satellites for GPS, Galileo, GLONASS and BDS are n, m, p and q, respectively

Stochastic model

Two main criteria can be generally used to weight an observation: the satellite elevation and the C/N0 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/N0 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/N0 values, the pseudorange residuals become larger correspondingly with the decrease in the C/N0 values. Thus, the measurement errors exhibit a stronger correlation with the C/N0 values rather than the satellite elevations for those smart devices.

Fig. 3
figure 3

Receiver single-differenced pseudorange (SD PR) residuals against the satellite C/N0 and elevation for the selected GPS G12 satellite

In view of this, the C/N0-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/N0 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/N0-dependent weighting model applied in this work is given as follows,

$${\text{Cov}}\left( {i,j} \right) = \left\{ {\begin{array}{*{20}c} {\sigma_{{{\text{obs}}}}^{2} } & {\left( {i = j} \right)} \\ 0 & {\left( {i \ne j} \right)} \\ \end{array} } \right.$$
(2)
$$\sigma_{{{\text{obs}}}}^{2} = \sigma_{{0,{\text{obs}}}}^{2} *10^{{\frac{{\max \;({\text{CNMAX}} - {\text{CN}}_{0} ,\;0)}}{10}}}$$
(3)

where Cov(·) represents the covariance; subscript obs denotes the pseudorange and carrier phase measurements; σ2obs 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; CN0 is the current C/N0 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/N0, a threshold of the C/N0 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 (Zhang et al. 2019). 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. (2018a, 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.

Fig. 4
figure 4

Flow diagram of Smart-PPP processing

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 real-time 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). Figure 5 presents the experimental scenario and the variations of the C/N0 values of the observed satellites during the test. It also shows the sky plot of the observed satellites and the variations of the number of valid satellites (NSAT) and the corresponding position dilution of precision (PDOP), horizontal DOP (HDOP) and vertical DOP (VDOP) values. As shown in Fig. 5, the C/N0 values of those observed satellites are generally within 25–42 dB-Hz for most of the time, but for some satellites, the C/N0 values vary abruptly. The number of valid satellites varies from 14 to 19 with a mean value of 17.4, and the mean PDOP, HDOP and VDOP values are 1.4, 0.7 and 1.2, respectively.

Fig. 5
figure 5

Experimental scenario, the variation of C/N0 values and distribution of the observed satellites in the static test

Figure 6 shows the time series of the positioning errors in the east (E), north (N) and up (U) components for the PVT solutions from the Android system and the Smart-PPP solutions calculated with the raw GNSS measurements. Figure 7 presents the root mean square (RMS) values of Smart-PPP positioning errors within each minute in east, north and up components. The statistical results of the mean bias (AVE), the standard deviation (STD), the RMS and the 95th percentile accuracy (CEP95) of the positioning errors for the whole PVT solutions and the Smart-PPP solutions are computed and presented in 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.

Fig. 6
figure 6

Time series of the positioning errors for the PVT (top) and the Smart-PPP (bottom) solutions with respect to the reference position

Fig. 7
figure 7

RMS values of Smart-PPP positioning errors within each minute in the east, north and up components

Table 2 Comparisons of the positioning accuracies between the PVT and Smart-PPP solutions in the static test

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, the RMS values of the positioning errors for the PVT solutions are 1.09 m in the east component, 2.66 m in the north component and 3.71 m in the up component. For all the Smart-PPP solutions during the whole testing period, the RMS values of the positioning errors, with an improvement of about 60.55%, 89.85% and 79.25% when compared with the PVT solutions, are 0.43 m in the east component, 0.27 m in the north component and 0.73 m in the up component, respectively. Moreover, the converged Smart-PPP positioning results can achieve an accuracy of about 0.2 m (RMS) for each component. 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.

Fig. 8
figure 8

Convergence performance of Smart-PPP positioning errors in the horizontal (top) and vertical (bottom) components

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.

Fig. 9
figure 9

Box-plot of the convergence time of Smart-PPP in horizontal (left) and vertical (right) components for the 1.0-m-level accuracy

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 (Yang et al. 2020). The walking trajectory is presented in Fig. 10. This figure also presents the distribution and the C/N0 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/N0 values for the observed satellites vary within 20–50 dB-Hz generally, but for some satellites they also change abruptly.

Fig. 10
figure 10

Experimental walking trajectory, the variation of the C/N0 values and distribution of the visible satellites in the kinematic test on an urban road

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, the positioning errors of the PVT solutions of the experimental device itself vary greatly, particularly in the east component which is from − 18.0 to 15.0 m. For the north and up components, the absolute positioning errors of the PVT solutions are within 5.0 m for most of the epochs. For the Smart-PPP solutions derived from the Android raw GNSS measurements, the positioning errors vary moderately within 1.0 m in the east and north components and within 2.0 m in the up component for most of the epochs, which are much better than that of the PVT solutions. 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.

Fig. 11
figure 11

Time series of the positioning errors for the PVT (top) and Smart-PPP (bottom) solutions with respect to the reference positions in the kinematic test

Fig. 12
figure 12

Comparison of trajectories between the PVT solutions (green) and the Smart-PPP results (red) vs the reference positions (blue)

Table 3 Comparisons of the positioning accuracies between the PVT and Smart-PPP solutions in the kinematic test

According to the statistical results given in Table 3, the mean bias for the PVT solutions is − 1.36 m in the east component, − 1.38 m in the north component and − 1.63 m in the up component. The RMS errors of the PVT solutions are 4.73 m in the east component, 2.92 m in the north component and 2.23 m in the up component. As the probability result shows, the 95th percentile (CEP95) of the PVT results is 8.22, 5.28 and 4.15 m in the east, north and up components, respectively. As we have mentioned above that the PVT results obtained from the Android system are the final solutions provided by the manufactory, which are the multisensor fusion results. The multisensor fusion results of the experimental smartphone show a better performance in the up component in this kinematic case, we think it is due to the easier constraint for the up component since the displacement in the up component is smoother and steadier than that in the east and north components on the selected road in this kinematic experiment case.

By contrast, for the Smart-PPP solutions during the whole testing period, the mean bias is 0.01 m in the east component, 0.08 m in the north component and − 0.41 m in the up component. As for the RMS values of the positioning errors for the Smart-PPP solutions, they are 0.65 m in the east component, 0.54 m in the north component and 1.09 m in the up component, respectively. 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 up components, respectively, with corresponding improvements of about 61%, 90% and 79% when compared with the PVT solutions. 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 and the converged results can achieve an accuracy of about 0.3 m, particularly for the horizontal component. For the kinematic test on an urban road, the RMS errors of the whole Smart-PPP solutions are about 0.5–0.6 m in the east and north components and 1.0 m in the vertical component, with an improvement of about 80% and 50% relative to the corresponding components of PVT solutions.

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.