1 Introduction

Nowadays, precise location-based services (LBSs) have extended from isolated local areas to seamless global areas, from limited needs in professional fields to ubiquitous needs of mass users. Because GNSS has all-weather, large-scale, and high-precision positioning capabilities, it has become the preferred technology for precision LBS in the open sky (Odolinski et al. 2015; Liu et al. 2021). According to the GNSS market report of the European Union Agency for the Space Programme (EUSPA) in 2022, more than 92% of the low-cost GNSS chips are used in smartphones and smart wearables. It can be seen that smartphones have become the mainstream terminals of LBS by their ubiquity, portability, and low cost (Zangenehnejad and Gao 2021). In 2016, Google released the application programming interface (API) of GNSS raw observations in Android 7.0 and above operating systems, including pseudorange, carrier phase, Doppler, and signal-to-noise ratio (SNR), which greatly inspired the research on precise positioning methods for smartphones (Banville and Diggelen 2016).

In the early days, many smartphones or tablets such as Google Nexus9, Samsung S8, and Huawei P9 only supported the output of single-frequency and multi-constellation GNSS observations. As Xiaomi released the first dual-frequency GNSS smartphone Mi8 in 2018, the multi-frequency and multi-constellation GNSS chipset has gradually become the standard configuration of flagship smartphones. The development of advanced positioning algorithms based on smartphones, such as precise point positioning (PPP) and real-time kinematics (RTK), has become a research hotspot. However, due to the widespread use of small-sized omnidirectional linearly polarized antennas and low-power receiver chipsets, the quality of smartphone GNSS signals is significantly degraded, manifested in low SNR, high pseudorange noise, poor phase continuity, and frequent cycle slips, which brings great challenges to precise positioning for smartphones (Paziewski et al. 2021). To this end, many scholars have carried out a lot of exploration, and the existing research on smartphone GNSS can be mainly divided into the following two categories.

The first category is the research on the characteristics of smartphone GNSS observations. Pesyna et al. (2014) connected the smartphone GNSS antenna signal to an external software receiver to obtain pseudorange and carrier phase and found that there is a lot of multipath in the raw observations affected by linearly polarized antennas; Kirkko-Jaakkola et al. (2015) and Humphreys et al. (2016) used customized smartphone GNSS chipsets and found that the gross error ratio in the raw observation was extremely high and was easily affected by multipath and could only achieve differential positioning with ten-meter accuracy. Later, Pirazzi et al. (2017) used the time-differenced observations of the Huawei P10 smartphone to evaluate the carrier phase noise and found that the velocity estimation with cm/s-level accuracy can be obtained after the duty cycle is closed; Zhang et al. (2018) and Liu et al. (2019a, b) used a geodetic-quality GNSS receiver as the reference and found that the carrier-to-noise ratio (C/N0) of the Nexus9 tablet and Samsung S8 smartphone was about 10 dB-Hz lower, and the pseudorange noise was about several meters. Similar conclusions were also demonstrated in the studies of Riley et al. (2017) and Paziewski et al. (2019). Fortunato et al. (2019) and Robustelli et al. (2019) analyzed the dual-frequency observations of the Xiaomi Mi8 smartphone. Since L5/E5a has a longer wavelength and ten times faster symbol rate than L1, its pseudorange observations are more accurate and less affected by multipath, and the conclusions are consistent with Shade and Madhani (2018). In addition, Li and Geng (2019) found that the GNSS modules of some smartphones (Nexus9, Galaxy S8, and Honor8) did not calibrate the initial phase bias (IPB), resulting in the ambiguity not having integer characteristics. But such a phenomenon has been corrected in Xiaomi Mi8, and similar results were also verified in the studies of Paziewski et al. (2021). In fact, with the efforts of device manufacturers, most of the IPBs of new generation of smartphones have been corrected, including the Huawei Mate40 that will be used in this article. Therefore, it becomes more and more feasible to obtain fixed solutions to GNSS ambiguities of smartphones. To sum up, for the multi-frequency and multi-constellation raw observations of smartphones, including GPS L1/L5, Galileo E1/E5a, BDS B1I, and GLONASS, scholars have carried out sufficient research and yielded a relatively consistent conclusion, such as the satellite visibility, signal power, and the noise of pseudorange and carrier phase. However, the smartphones on the market do not currently support the output of B1C and B2a raw observations of BDS-3 new signals; thus, the research on their data quality characteristics and positioning performance is also temporarily blank.

Another category is the research on the methods of smartphone GNSS precise positioning. Before 2016, Hwang et al. (2012), Park et al. (2013), and Yoon et al. (2016) projected the pseudorange differential corrections to the position domain via the measurement matrix, achieving meter-level accuracy positioning independent of the smartphone raw observations. Subsequently, Realini et al. (2017) achieved RTK positioning with decimeter-level accuracy through static short baselines between a smartphone and a geodetic-quality GNSS receiver; Laurichesse et al. (2017) used the single-frequency PPP model and real-time precision products to achieve sub-meter-level positioning with 1-min convergence in a static open-sky condition based on a Samsung S8 smartphone; Wen et al. (2020) proposed an improved Hatch filtering method, which also achieved sub-meter-level smartphone positioning. In addition, Li and Geng (2019) realized static centimeter-level RTK positioning and ambiguity fixating after connecting a geodetic-quality antenna to the Nexus9 tablet and correcting the influence of the IPB. Based on smartphone dual-frequency raw observations, Wu et al. (2019) used an ionosphere-free PPP model and achieved sub-meter-level positioning in a static open-sky condition after convergence. Wang et al. (2021) also obtained similar results in smartphone PPP positioning. In the kinematic condition, Guo et al. (2020) used the SPP filtering model with dual-frequency observations to achieve meter-level positioning in an urban environment; Fortunato et al. (2019) performed a dual-frequency RTK algorithm to achieve meter-level positioning with a Xiaomi Mi8 smartphone. It has become a consensus to use various state models based on filtering methods to improve the performance of smartphone kinematic positioning. In our early research, we constructed a standard point positioning (SPP) filtering model based on the time-differenced carrier phase (TDCP) velocity estimation and obtained the horizontal position of a Nexus9 tablet with sub-meter accuracy (Zhang et al. 2018); Zhang et al. (2019) proposed a Smart-RTK method that uses Doppler-smoothing-code filter and a constant acceleration (CA) model to obtain a positioning accuracy better than that of the Nexus9 chipset; Zhang et al. (2022) proposed a velocity-constrained RTK method, in which a constant velocity (CV) model was constructed and double-difference TDCP was used to update velocity state and finally achieved sub-meter accuracy positioning of Huawei P40; Zangenehnejad et al. (2022) proposed a positioning method introducing velocity vector from TDCP as weighted constraints along with the pseudorange and carrier phase observations to improve the performance of smartphone PPP and RTK such that both the initial position error and the maximum position error are reduced. To bridge the positioning interruption caused by challenging conditions, many scholars have tried smartphone GNSS/inertial navigation system (INS) fusion. Bochkati et al. (2020) used the Allan variance to analyze the inertial measurement unit (IMU) stochastic model of Xiaomi Mi8, but the result indicated that the contribution of the IMU could not improve the success rate of the RTK ambiguity fixing; Niu et al. (2019) proposed an RTK/IMU integrated algorithm and achieved continuous pedestrian navigation in urban areas with a Xiaomi Mi8 smartphone; Zhu et al. (2022) used a robust Kalman filter with an equivalent variance matrix in the smartphone PPP/INS fusion model to improve the convergence efficiency, and its horizontal position accuracy increased by about 49%; Chiang et al. (2020) used the extended Kalman filter to fuse the GNSS, IMU and camera data of smartphone, resulting in a 43% improvement in vehicle positioning accuracy. In general, through PPP, RTK, and other advanced methods, sub-meter to decimeter-level accuracy of smartphone positioning can be achieved in static open-sky conditions. However, in complex urban environments, precise and continuous positioning with smartphone raw observations is still challenging, limited by frequent pseudorange gross errors and carrier phase discontinuities, and there are also few smartphone GNSS ambiguity fixed results in real kinematic situations.

In this contribution, based on the engineering prototype of Huawei Mate40, we give the smartphone raw observation quality evaluation results of BDS B1C and B2a for the first time and analyze the characteristics of smartphone multi-frequency and multi-constellation raw observations in detail under both static and kinematic conditions. Furthermore, we propose a multi-GNSS RTK positioning method for smartphones suitable for real kinematic conditions, which is optimized in multiple aspects of the RTK method, such as the detection of pseudorange gross errors and phase cycle slips, maintenance of RTK floating solution accuracy and continuity. To evaluate the performance of multi-GNSS RTK positioning with smartphone raw observations, several sets of the filed kinematic test are carried out. Finally, the results are discussed in detail from the observation environments, single-frequency and dual-frequency, positioning accuracy, and ambiguity fixing rate.

2 Data quality characteristic analysis

In this section, we will describe in detail the case of static and kinematic experiments, as well as the calculation method of observation errors. Then, the characteristics of the smartphone raw observations of multi-frequency and multi-system will be compared and analyzed from the aspects of satellite visibility, signal power, pseudorange, and carrier phase noise.

2.1 Data collection and analysis strategies

As shown in Fig. 1, the static experiment was carried out on the roof of the office building of the school of Geomatics and Geodesy of Wuhan University, and the smartphone was placed on the pedestal under the open sky; the kinematic experiment was carried out on the complex urban environments in Wuhan city, and the smartphone was placed under the front windshield of the vehicle. An open-source application from the Google team called “GnssLogger” was used to collect smartphone GNSS observations. An engineering prototype of the Huawei Mate40 smartphone is used for testing. Its built-in HiSilicon GNSS chipset supports the output of multi-frequency and multi-system raw observations, including GPS L1/L5, Galileo E1/E5a, BDS B1I/B1C/B2a, GLONASS R1, and QZSS L1/L5. Compared with the Mate40 on the market, the engineering prototype has newly added observation output interfaces of the B1C and B2a of BDS-3 new signals. In the following analysis, we will mainly focus on the multi-frequency observations of the GPS, Galileo, and BDS. As shown in Table 1, the base station adopts the geodetic-quality receiver Trimble Alloy and the antenna UniStrong UA91 3D choke-ring, and the baseline lengths in static and kinematic tests are < 0.1 km and < 25 km, respectively. In addition, when the lever arm from the integrated navigation system (StarNeto XW-GI7660) to the Huawei Mate40 smartphone is carefully calibrated according to the vehicle body size and equipment installation position, the integrated navigation system can provide an accurate reference trajectory (centimeter level) through Inertial Explorer (IE) software post-processing.

Fig. 1
figure 1

Equipment setup in the static (left) and kinematic (right) data collection experiments. The trajectory of the kinematic test is also given, which is carried out on urban roads, including conditions such as open sky, urban canyon, and shade occlusion

Table 1 Equipment information for static and kinematic data collection experiments

In the following analysis, the smartphone raw observations will be compared with the number of visible satellites, C/N0 distribution, and observation noise by frequency and constellation. Among them, the between-station and -satellite double-difference (DD) combination is used to extract the pseudorange residual, and the between-station, -satellite, and -epoch triple-difference (TD) combination is applied to extract the carrier phase residual. Ignoring the receiver and satellite hardware biases, the GNSS pseudorange (\(P_{r,f}^{s}\)) observation equation between station \(r\) and satellite \(s\) at frequency \(f\) can be written as

$$ P_{r,f}^{s} = \rho_{r}^{s} + c \cdot \left( {\delta t_{r} - \delta t^{s} } \right) + \delta T_{r}^{s} + \delta I_{r,f}^{s} + \varepsilon_{P} $$
(1)

where \(\rho_{r}^{s}\) is the geometry distance between the satellite and receiver, \(\delta t_{r}\) and \(\delta t^{s}\) are the receiver and satellite clock offsets, respectively. \(c\) denotes the speed of the light in vacuum, \(\delta T_{r}^{s}\) and \(\delta I_{r,f}^{s}\) represent the tropospheric and ionospheric delay. \(\varepsilon_{P}\) denote the sum of measurement noise and multipath errors for pseudorange. In the DD combination of pseudorange, satellite-related and receiver-related systemic errors are eliminated, and atmospheric errors are also almost completely attenuated in the case of short baselines. Since the \(\varepsilon_{P}\) of geodetic-quality GNSS device is very small compared to the smartphone, the DD residual can represent the magnitude of the smartphone pseudorange errors, mainly including observation noise and multipath effects.

Similarly, ignoring the receiver and satellite hardware biases, the GNSS carrier phase observation (\(\phi_{r,f}^{s}\)) equation can be written as

$$ \lambda_{f} \cdot \phi_{r,f}^{s} = \rho_{r}^{s} + c \cdot \left( {\delta t_{r} - \delta t^{s} } \right) + \delta T_{r}^{s} - \delta I_{r,f}^{s} + \lambda_{f} \cdot N_{r,f}^{s} + \varepsilon_{\phi } $$
(2)

where \(\lambda_{f}\) is the carrier wavelength at frequency \(f\), \(N_{r,f}^{s}\) is the integer carrier phase ambiguity, \(\varepsilon_{\phi }\) denote the sum of measurement noise and multipath errors for carrier phase. In the DD combination of carrier phase, the DD ambiguity is still unknown. Since the ambiguity does not change with time when the carrier phase is continuous and no cycle slips occur, it can be eliminated by inter-epoch difference based on the DD combination, and the TD residual can represent the magnitude of smartphone carrier phase noise.

2.2 Satellite visibility and signal power

Figure 2 shows the comparison of the number of visible satellites in each constellation and frequency of the smartphone GNSS observations. In the static open-sky test, the number of GPS L1 and L5 satellites is about 8–10 and 4–6, respectively; the number of Galileo E1 and E5a satellites is about 4–5; BDS B1I satellites include two constellations BDS-2 and BDS-3, with a total of about 17; the number of BDS-3 B1C and B2a satellites is about 8–9 and 5–6, respectively. In the vehicle kinematic test, the number of visible satellites of GPS and BDS has decreased by 1–2, and it is unchanged for Galileo, but the fluctuation range of the number of visible satellites of each constellation is larger than that in a static state. It is worth noting that the introduction of B1C and B2a observations adds more than 10 visible satellites, which will contribute to the improvement of smartphone positioning performance, especially in urban conditions.

Fig. 2
figure 2

Number of visible satellites of smartphone multi-GNSS. The top and bottom plots are the results of the static experiment and kinematic experiment, respectively

C/N0 represents the ratio of the power of the receiver output signal to the noise power, the unit is dB-Hz, and its magnitude has nothing to do with the noise bandwidth of the receiver, which is helpful for comparing the tracking and data processing of different receivers' performance. Figure 3 shows the comparison of the C/N0 of each constellation and each frequency of the smartphone GNSS observations. On the whole, the C/N0 of the multi-GNSS signal is concentrated at 30–40 dB-Hz, and the C/N0 of the L5/E5a/B2a signal is about 5 dB-Hz lower than that of L1/E1/B1I/B1C. In the static test, the proportion of satellites below 20 dB-Hz is very small, and 10–20% of GPS and BDS satellites have C/N0 exceeding 40 dB-Hz. The results show that the signal power of multi-GNSS observations in static open sky conditions is generally higher. However, in the vehicle kinematic test, the signal power decreased due to the occlusion of the vehicle body and the interference of the surrounding environment of urban roads. The proportion of satellites below 20 dB-Hz in each constellation increases to 10–20%, and the fluctuation range of C/N0 is also larger than that in the static test. When the C/N0 of smartphone GNSS observations is lower than 20 dB-Hz, the gross errors and cycle slips will increase significantly. At this time, if the number of visible satellites is sufficient, it should be eliminated as much as possible to ensure that the positioning results are not abnormal.

Fig. 3
figure 3

Distribution of C/N0 of smartphone multi-GNSS. The top and bottom plots are the results of the static experiment and kinematic experiment, respectively

2.3 Observation noise of pseudorange and carrier phase

The comparison of pseudorange DD residuals of smartphone multi-GNSS observations is illustrated in Fig. 4. In the static test, the pseudorange noise of GPS L1 and L5 is 2.20 m and 1.52 m, respectively; the pseudorange noise of Galileo E1 and E5a is 1.39 m and 0.49 m, respectively; the pseudorange noise of BDS B1I, B1C and B2a is 1.72 m, 1.76 m and 0.90 m, respectively. It can be found that the pseudorange noise of Galileo is the smallest, and the pseudorange noise of L1/E1/B1I/B1C is twice that of L5/E5a/B2a. Among them, the pseudorange accuracy of BDS-3 B1C is comparable to that of B1I, and the noise of B2a is less than 1.0 m. In the vehicle kinematic test, the pseudorange noise of L1/E1/B1I/B1C increased significantly, with the RMS of about 5.0 m, while the pseudorange noise of L5/E5a/B2a was still less than 2.0 m. The results show that the pseudorange accuracy of the smartphone L5 band is higher than that of the L1 band. This finding can be explained by the signal structure: GPS L1, Galileo E1 and BDS B1C all have a chipping rate of 1.023 MHz, B1I also has a chipping rate of only 2.046 MHz, while L5, E5a and B2a have a ten times higher chipping rate of 10.23 MHz. The higher the chipping rate, the more precise pseudorange observations can be generated. Especially in urban kinematic conditions, the pseudorange in the L1 band is seriously affected by errors such as multipath, while the pseudorange in the L5 band always maintains high precision. It is worth noting that with the addition of B2a observations, even in the urban conditions, the total number of L5/E5a/B2a satellites has exceeded 10, which provides a possibility for the application of smartphone kinematic high-precision positioning algorithms.

Fig. 4
figure 4

Pseudorange DD residuals of smartphone multi-GNSS. The top and bottom plots are the results of the static experiment and kinematic experiment, respectively

Figure 5 shows the satellite sky plot and cycle slip distribution of smartphone multi-GNSS observations. If the accumulated delta range state (ADRS) from the smartphone GNSS receiver indicates a cycle slip, it is marked in red in this figure. In the static test, when the elevation is greater than 30°, the carrier phases are continuously tracked; when the elevation is less than 15°, most satellites have cycle slips. However, in the vehicle kinematic test in the complex urban environments, the continuity of the carrier phase is very poor; even if the elevation is about 30°, more than half of the satellites have cycle slips. It means that in real kinematic applications, there are few continuously available carrier phases, which severely restricts the realization of high-precision positioning for smartphone GNSS.

Fig. 5
figure 5

Satellite sky plot and cycle slip distribution of smartphone multi-GNSS, including observations of GPS L1, Galileo E1, and BDS B1I. The top and bottom plots are the results of the static experiment and kinematic experiment, respectively

The comparison of carrier phase TD residuals of smartphone multi-GNSS observations is also shown in Table 2. When the carrier phase observations are continuous and no cycle slip occurs, its TD residual is concentrated within 0.10 cycle, which is slightly larger than the carrier phase noise of the geodetic-quality GNSS equipment, but it can also be used to obtain precise positioning solutions. However, even in the static open-sky condition, the carrier phase noise of L1/E1/B1I/B1C accounts for nearly 20% for more than 2 cycles, and this is even worse in the vehicle kinematic test, accounting for 60–70%. Fortunately, the carrier phase noise of the L5/E5a/B2a is much more stable, with less than 10% and 20% over 2 cycles in static and kinematic tests, respectively. This means that the continuity of carrier phase observations in the L5 band is better than that in the L1 band, and it is less affected by the environment in urban conditions, which is crucial for the high-precision positioning of smartphones and even ambiguity resolution in real kinematic applications.

Table 2 Statistics of carrier phase TD residuals of smartphone multi-GNSS

3 Specialized improvement strategies for smartphone RTK

In this section, we briefly introduce the measurement model of multi-GNSS RTK. Then, two main strategies are given to improve the performance of smartphone RTK in real kinematic applications. Finally, the overall flow of the smartphone RTK algorithm is described.

3.1 Measurement model of smartphone RTK

In the short-baseline RTK, the pseudorange observation Eq. (1) and the carrier phase observation Eq. (2) are used to make a difference between the rover \(r\) and the base station \(b\), respectively, and then the difference between the satellite \(i\) and the reference satellite \(j\) is made. The DD observation equation can be written as follows

$$ \left\{ \begin{gathered} \nabla \Delta P_{r,b,f}^{ij} = \nabla \Delta \rho_{r,b}^{ij} + \varepsilon_{\nabla \Delta P} \hfill \\ \lambda_{f} \cdot \nabla \Delta \phi_{r,b,f}^{ij} = \nabla \Delta \rho_{r,b}^{ij} + \lambda_{f} \cdot \nabla \Delta N_{r,b,f}^{ij} + \varepsilon_{\nabla \Delta \phi } \hfill \\ \end{gathered} \right. $$
(3)

where \(\nabla \Delta\) is the double-difference operator, \(\nabla \Delta P_{r,b,f}^{ij}\) and \(\nabla \Delta \phi_{r,b,f}^{ij}\) are the DD observations of pseudorange and carrier phase, \(\nabla \Delta \rho_{r,b}^{ij}\) is the DD geometric distance, \(\lambda_{f}\) is the wavelength of frequency \(f\), \(\nabla \Delta N_{r,b,f}^{ij}\) is the DD ambiguity, \(\varepsilon_{\nabla \Delta P}\) and \(\varepsilon_{\nabla \Delta \phi }\) are the measurement noise of the DD observations. After selecting a reference satellite in each frequency of each constellation, and given the initial values of position and ambiguity \(\left( {x_{0} ,y_{0} ,z_{0} ,\nabla \Delta N_{0,r,b,f}^{S,ij} } \right)\), the linearized form of the DD observation Eq. (3) can be obtained as follows

$$ \left[ \begin{gathered} \nabla \Delta P_{r,b,f}^{S,ij} - \nabla \Delta \rho_{0,r,b,f}^{S,ij} \\ \lambda_{f} \cdot \nabla \Delta \phi_{r,b,f}^{S,ij} - \nabla \Delta \rho_{0,r,b,f}^{S,ij} - \nabla \Delta N_{0,r,b,f}^{S,ij} \\ \vdots \\ \end{gathered} \right] = \left[ {\begin{array}{*{20}c} {{\mathbf{M}}_{0,r,b,f}^{S,ij} } & 0 & \cdots \\ {{\mathbf{M}}_{0,r,b,f}^{S,ij} } & {\lambda_{f} } & \cdots \\ \vdots & \vdots & \cdots \\ \end{array} } \right] \cdot \left[ {\begin{array}{*{20}c} {{\text{d}}x} \\ {{\text{d}}y} \\ {{\text{d}}z} \\ {{\text{d}}N_{r,b,f}^{S,ij} } \\ \vdots \\ \end{array} } \right] + \left[ \begin{gathered} \varepsilon_{{\nabla \Delta P_{r,b,f}^{S,ij} }} \\ \varepsilon_{{\nabla \Delta \phi_{r,b,f}^{S,ij} }} \\ \vdots \\ \end{gathered} \right] $$
(4)

where the superscript \(s\) and subscript \(f\) represent different constellations and frequencies, respectively; \({\mathbf{M}}_{0,r,b,f}^{S,ij}\) is a \(1 \times 3\) design matrix consisting of the direction cosine vector from the satellite to the receiver. The parameters \(\left( {{\text{d}}x,\;{\text{d}}y\;{\text{d}}z} \right)\) and \({\text{d}}N_{r,b,f}^{S,ij}\) to be estimated are the corrections for the initial value of the position and ambiguity, respectively. The subscript \(0\) indicates that the parameter is calculated by bringing in the initial value of linearization. Here, the extended Kalman filter is applied for the parameter estimation. For conventional RTK algorithms, the initial positions are usually derived from the SPP, and the initial ambiguities are derived from the carrier phase minus the pseudorange.

According to our existing research results, different from geodetic-quality equipment, the noise variation of multi-GNSS observations of smartphones has a weak correlation with elevation, but a strong correlation with C/N0 (Zhang et al. 2018). Therefore, we adopt the pseudorange weighting model related to the C/N0 and set the weight ratio of pseudorange and carrier phase to \(\left( {1:300} \right)^{2}\). This model can be written as \(\sigma_{i} = \sqrt {a + b \cdot 10^{{ - \left( {C/N0} \right)_{i} /10}} }\), where \(\sigma_{i}\) represents the pseudorange noise, parameters \(a\) and \(b\) need to be determined for each equipment at different frequencies and constellations. The detail of the calibration for parameters \(a\) and \(b\) can refer to Liu et al. (2019a, b).

3.2 Constraint for RTK float solution in the position domain

The key to obtaining a reliable position in RTK is to accurately estimate the float ambiguity and then calculate a more accurate satellite-to-receiver distance from the carrier phase, reducing the rear intersection error of GNSS observations. However, limited by low-cost GNSS devices and complex observation environments, the pseudorange error of smartphones reaches several meters or even tens of meters, and the continuity of the carrier phase is also poor. This results in the float ambiguity of smartphone RTK in real kinematic conditions requiring frequent initialization, and the convergence is slow, so continuous and accurate positioning results cannot be obtained. To this end, we present an improved method for constraining RTK float solutions in the position domain, the core idea of which is shown in Fig. 6.

Fig. 6
figure 6

Comparison of conventional RTK and position-domain-constrained RTK methods

In the conventional RTK method, the position and ambiguity of float solutions are transferred as follows

$$ \left[ \begin{gathered} {\mathbf{r}}_{t + 1} \\ \nabla \Delta N_{t + 1}^{1} \\ \vdots \\ \nabla \Delta N_{t + 1}^{n} \\ \nabla \Delta N_{t + 1}^{n + 1} \\ \vdots \\ \end{gathered} \right] = \left[ \begin{gathered} {\mathbf{r}}_{SPP} \\ \nabla \Delta N_{t}^{1} \\ \vdots \\ \nabla \Delta N_{t}^{n} \\ \nabla \Delta \phi_{t + 1}^{n + 1} - \frac{{\nabla \Delta P_{t + 1}^{n + 1} }}{\lambda } \\ \vdots \\ \end{gathered} \right]{,}\left[ \begin{gathered} {\mathbf{Q}}_{{{\mathbf{r}}_{t + 1} }} \\ {\mathbf{Q}}_{{\nabla \Delta N_{t + 1}^{1} }} \\ \vdots \\ {\mathbf{Q}}_{{\nabla \Delta N_{t + 1}^{n} }} \\ {\mathbf{Q}}_{{\nabla \Delta N_{t + 1}^{n + 1} }} \\ \vdots \\ \end{gathered} \right] = \left[ \begin{gathered} {\mathbf{Q}}_{{{\mathbf{r}}_{0} }} \\ {\mathbf{Q}}_{{\nabla \Delta N_{t}^{1} }} \\ \vdots \\ {\mathbf{Q}}_{{\nabla \Delta N_{t}^{n} }} \\ \frac{{{\mathbf{Q}}_{{\nabla \Delta N_{0} }} }}{{\lambda^{2} }} \\ \vdots \\ \end{gathered} \right] + \left[ \begin{gathered} 0 \\ {\mathbf{Q}}_{N} \\ \vdots \\ {\mathbf{Q}}_{N} \\ 0 \\ \vdots \\ \end{gathered} \right] $$
(5)

where \(t\) and \(t + 1\) represent two adjacent epochs. Each time the initial position is obtained from the SPP result \({\mathbf{r}}_{SPP}\), the initial covariance matrix is reset to \(\left( {{\mathbf{Q}}_{{{\mathbf{r}}_{0} }} = 10^{2} {\text{ m}}^{2} } \right)\), and the covariance matrix between position and ambiguity is zeroed; the ambiguity \(\left( {\nabla \Delta N_{t + 1}^{i} { , }i = 1, \ldots n} \right)\) without cycle slip is transmitted from the previous moment, and its covariance matrix \(\left( {{\mathbf{Q}}_{{\nabla \Delta N_{t + 1}^{i} }} { , }i = 1, \ldots n} \right)\) is added with process noise \( ( {\mathbf{Q}}_{N} = ()\) during transmission; the reinitialized or newly added ambiguity \(\left( {\nabla \Delta N_{t + 1}^{i} { , }i > n} \right)\) is obtained by subtracting the pseudorange from the carrier phase, and its covariance matrix is reset to \(\left( {\frac{{{\mathbf{Q}}_{{\nabla \Delta N_{0} }} }}{{\lambda^{2} }} = \frac{{10^{2} {\text{ m}}^{2} }}{{\lambda^{2} }}} \right)\). However, there are two problems with this strategy. First, the positioning results of smartphone SPP are easily affected by large pseudorange errors, resulting in an accuracy decrease of RTK float solutions; second, the low precision and unstable SPP positions cause slow convergence of RTK float point ambiguities when more ambiguities need to be reinitialized. This brings difficulties to the application of RTK methods in precisely kinematic positioning of smartphones.

Correspondingly, in the position-domain-constrained RTK method given by us, the improved parameter transfer method is as follows

$$ \left[ \begin{gathered} {\mathbf{r}}_{t + 1} \\ \nabla \Delta N_{t + 1}^{1} \\ \vdots \\ \nabla \Delta N_{t + 1}^{n} \\ \nabla \Delta N_{t + 1}^{n + 1} \\ \vdots \\ \end{gathered} \right] = \left[ \begin{gathered} {\mathbf{r}}_{con.} \\ \nabla \Delta N_{t}^{1} \\ \vdots \\ \nabla \Delta N_{t}^{n} \\ \nabla \Delta \phi_{t + 1}^{n + 1} - \frac{{\nabla \Delta P_{t + 1}^{n + 1} }}{\lambda } \\ \vdots \\ \end{gathered} \right]{ , }\left[ \begin{gathered} {\mathbf{Q}}_{{{\mathbf{r}}_{t + 1} }} \\ {\mathbf{Q}}_{{\nabla \Delta N_{t + 1}^{1} }} \\ \vdots \\ {\mathbf{Q}}_{{\nabla \Delta N_{t + 1}^{n} }} \\ {\mathbf{Q}}_{{\nabla \Delta N_{t + 1}^{n + 1} }} \\ \vdots \\ \end{gathered} \right] = \left[ \begin{gathered} {\mathbf{Q}}_{{{\mathbf{r}}_{{\text{t}}} }} \\ {\mathbf{Q}}_{{\nabla \Delta N_{t}^{1} }} \\ \vdots \\ {\mathbf{Q}}_{{\nabla \Delta N_{t}^{n} }} \\ \frac{{{\mathbf{Q}}_{{\nabla \Delta N_{0} }} }}{{\lambda^{2} }} \\ \vdots \\ \end{gathered} \right] + \left[ \begin{gathered} {\mathbf{Q}}_{{\Delta {\mathbf{r}}_{t + 1,t} }} \\ {\mathbf{Q}}_{N} \\ \vdots \\ {\mathbf{Q}}_{N} \\ 0 \\ \vdots \\ \end{gathered} \right] $$
(6)

That is, the SPP result in Eq. (5) is replaced with the constrained position \({\mathbf{r}}_{con.}\) and its covariance matrix \({\mathbf{Q}}_{{{\mathbf{r}}_{con.} }}\) to improve the accuracy of the initial value of the position in float RTK positioning. Specifically, there are two ways to obtain \({\mathbf{r}}_{con.}\), the first one is as follows

$$ \left\{ {\begin{array}{*{20}l} {{\mathbf{r}}_{t + 1} {\mathbf{ = r}}_{{{\text{con}}{.}}} = {\mathbf{r}}_{t} + \Delta {\mathbf{r}}_{t + 1,t} } \hfill \\ {{\mathbf{Q}}_{{{\mathbf{r}}_{t + 1} }} {\mathbf{ = Q}}_{{{\mathbf{r}}_{{{\text{con}}.}} }} = {\mathbf{Q}}_{{{\mathbf{r}}_{t} }} + {\mathbf{Q}}_{{\Delta {\mathbf{r}}_{t + 1,t} }} } \hfill \\ {i{\text{f}}\;\,{\text{TDCP}}\;{\text{is}}\;{\text{available, }}\Delta {\mathbf{r}}_{t + 1,t} = \Delta {\mathbf{r}}_{{{\text{t + }}1,t}}^{{{\text{TDCP}}}} } \hfill \\ {{\text{if}}\;\;{\text{Doppler}}\;{\text{is}}\;{\text{available, }}\Delta {\mathbf{r}}_{t + 1,t} = \frac{{\left( {{\mathbf{v}}_{t + 1}^{{{\text{Doppler}}}} + {\mathbf{v}}_{t}^{{{\text{Doppler}}}} } \right) \cdot \Delta t}}{2}} \hfill \\ \end{array} } \right. $$
(7)

Among them, \({\mathbf{r}}_{t}\) and \({\mathbf{Q}}_{{{\mathbf{r}}_{t} }}\) are the RTK result and its covariance matrix at time \(t\), \(\Delta {\mathbf{r}}_{t + 1,t}\) and \({\mathbf{Q}}_{{\Delta {\mathbf{r}}_{t + 1,t} }}\) are the displacement of adjacent epochs and its covariance matrix. \(\Delta {\mathbf{r}}_{t + 1,t}\) can be obtained from smartphone Doppler-based or TDCP-based velocity estimation, which can achieve dm/s-level to cm/s-level accuracy, respectively (Zhang et al. 2018; Liu et al. 2019a, b). It should be pointed out that since the precise velocity improves the accuracy of the initial value of the position in float RTK positioning at the time \(t + 1\), the covariance matrix \(Cov_{\nabla \Delta N}^{{\mathbf{r}}}\) between the position and the ambiguity does not need to be zeroed at this time. If the velocity estimation fails, the second way to obtain \({\mathbf{r}}_{con.}\) is as follows

$$ \left\{ {\begin{array}{*{20}l} {{\text{if}}\;{\text{RTD is available, }}{\mathbf{r}}_{t + 1} {\mathbf{ = r}}_{{{\text{con}}{.}}} = {\mathbf{r}}_{{{\text{t + }}1}}^{{{\text{RTD}}}} } \hfill \\ {{\text{if}}\;{\text{SPP is available, }}{\mathbf{r}}_{t + 1} {\mathbf{ = r}}_{{{\text{con}}.}} = {\mathbf{r}}_{{{\text{t + }}1}}^{{{\text{SPP}}}} } \hfill \\ \end{array} } \right. $$
(8)

Here, the real-time differential (RTD) result is preferentially used as the initial value of the position, which can reduce the influence of residual errors of the atmospheric model, compared with SPP. At this time, since the accuracy of \({\mathbf{r}}_{con.}\) is only at the meter level, it is necessary to set the covariance matrix \(Cov_{\nabla \Delta N}^{{\mathbf{r}}}\) between the position and the ambiguity to zero to avoid the introduced position error affecting the normal convergence of ambiguity.

Figure 7 shows a comparison of the RTK results of smartphone GNSS data, where the RTK processing mode is set to the short baseline and float solution, and the state noise of the constrained RTK is set according to formulas (6) and (7). The smartphone remained stationary until it started to move after epoch 349,140 s, with approximately 15–20 carrier phase observations available for the entire period. The ambiguities are reset at epochs 349,060 s and 349,150 s, respectively, leaving only 4 normally transferred ambiguities. It can be found that the position error of the conventional RTK method reaches the meter level and converges slowly again (> 15 s), and its position variance also converges more slowly, which shows that the current position cannot be accurately estimated by only 4 unreset ambiguities, since the position accuracy of SPP is only at the meter level, which makes it difficult to quickly estimate the reset ambiguity. Benefitting from our proposed position-domain constraint method, the coordinates of the RTK float solution are accurately predicted, and the covariance between position and ambiguity is preserved. Therefore, the accuracy and stability of the constrained RTK float solution are better, weakening the effect of the pseudorange observations with low weights on the ambiguity estimation.

Fig. 7
figure 7

Convergence comparison of RTK position error and position variance after the most of ambiguities is reinitialized at epochs 349,060 s and 349,150 s. The test data come from the Huawei Mate40 smartphone, and this kinematic experiment is carried out in the playground of Wuhan University

3.3 Data quality control combing prior and post detection

Reliable observations are another key to improving smartphone RTK performance. From the analysis results in Sect. 2, the proportion of pseudorange gross error and carrier phase cycle slip is relatively high, especially in urban kinematic conditions, which will reduce the accuracy and continuity of smartphone RTK solutions. To this end, we give a comprehensive data quality control strategy combining prior and post detection. First, according to the results of the aforementioned observation characteristic analysis, a data check method based on the signal state is performed as follows

$$ \left\{ \begin{gathered} {\text{C/N0 < }}k_{1} \hfill \\ {\text{ELE}}{. < }k_{2} \hfill \\ {\text{ADRS = = 2 or 4}} \hfill \\ \end{gathered} \right. $$
(9)

Among them, when the C/N0 is lower than the threshold \(\left( {k_{1} = 20{\text{ dB - Hz}}} \right)\), or when the elevation is lower than the threshold \(\left( {k_{2} = 15^{ \circ } } \right)\), the observation is considered to be unreliable. In addition, the cycle slip identifier ADRS is given by the smartphone raw GNSS API, and the values and their corresponding meanings are shown in Table 3 (Fu et al. 2020). When bit1 of ADRS is 2 or 4, it is considered that the carrier phase is unreliable.

Table 3 Description of the accumulated delta range state (ADRS) indicator

Second, based on the correlation between the inter-epoch variation of pseudorange and carrier phase and Doppler, a data check method based on the consistency of observations was performed as follows

$$ \left\{ {\begin{array}{*{20}l} {\left| {D_{t + 1} - D_{t} } \right|{ < }k_{3} } \hfill \\ {\left| {\left( {\phi_{t + 1} - \phi_{t} } \right) + \overline{D}_{t + 1,t} \cdot \Delta t} \right| < k_{4} } \hfill \\ {\left| {\left( {P_{t + 1} - P_{t} } \right) + \lambda \cdot \overline{D}_{t + 1,t} \cdot \Delta t} \right| < k_{5} } \hfill \\ {\overline{D}_{t + 1,t} = \frac{{D_{t + 1} + D_{t} }}{2}} \hfill \\ \end{array} } \right. $$
(10)

here \(P\), \(\phi\), \(D\) are the pseudorange, carrier phase, and Doppler, respectively, and \(\overline{D}_{t + 1,t}\) is the average Doppler of adjacent epochs. In the consistency check, the reliability is first judged by the epoch difference of Doppler. If it is less than \(\left( {k_{3} = 100{\text{ cycle/s}}} \right)\), it is considered reliable. Then, the epoch difference of the carrier phase is compared with the average Doppler. If the difference between the two is less than \(\left( {k_{4} = 2.5{\text{ cycle}}} \right)\), it is considered that no large cycle slip occurs. And the pseudorange is also checked with the threshold \(\left( {k_{5} = \lambda \cdot k_{3} } \right)\).

Finally, the observations that pass the signal state and consistency checks are used in the measurement equations of SPP, TDCP, and RTK, respectively, and then, a robust least-squares estimation method based on IGG-III is applied to perform a posteriori check as follows (Yang et al. 2002; Liu et al. 2019a, b)

$$ \gamma_{i} = \left\{ {\begin{array}{*{20}l} {1,\quad } \hfill & {\left( {\left| {\widetilde{v}_{i} } \right| < \tau_{0} } \right)} \hfill \\ {\frac{{\tau_{0} }}{{\left| {\widetilde{v}_{i} } \right|}} \cdot \left( {\frac{{\tau_{1} - \left| {\widetilde{v}_{i} } \right|}}{{\tau_{1} - \tau_{0} }}} \right),\quad } \hfill & {\left( {\tau_{0} \le \left| {\widetilde{v}_{i} } \right| \le \tau_{1} } \right)} \hfill \\ {0,\quad } \hfill & {\left( {\left| {\widetilde{v}_{i} } \right| > \tau_{1} } \right)} \hfill \\ \end{array} } \right. $$
(11)

where \(\gamma_{i}\) is the weight reduction factor of the \(i{\text{ - th}}\) observation, \(\widetilde{v}_{i}\) is the standardized residual, the detection thresholds \(\tau_{0}\) and \(\tau_{1}\) are usually recommended as 1.0–1.0 and 2.5–3.5. It is worth noting that the prior detection eliminates large-scale gross errors and cycle slips, reduces the number of unreliable observations, and ensures that the advantages of the IGG-III method in accurately identifying small-amplitude abnormal observations can be exerted.

3.4 Algorithm design of smartphone RTK

Figure 8 shows the detailed flow of the smartphone RTK algorithm. First, the gross error elimination and cycle slip detection are performed on the raw observations, mainly to check the signal state and the consistency of the observations. Second, the SPP-based and RTD-based position estimation, Doppler-based single-point velocity (SPV) estimation, and TDCP-based velocity estimation are carried out. Here, the posteriori check of pseudorange and carrier phase will be carried out based on the IGG-III method, and the validity of the position and velocity results will be judged according to indicators such as position dilution of precision (PDOP) and posterior variance. Then, according to the position domain constraint method described in Sect. 3.2, the linearization initial value and covariance of the float RTK are set, and DD observation equations of pseudorange and carrier phase are constructed to achieve measurement update of the float RTK. At this time, it is necessary to carry out the IGG-III posteriori-check and judge the validity of the float solution according to indicators such as PDOP and the number of effective carrier phases. If it does not pass the test, output the results of the linearization initial value (prediction solutions), otherwise enter the fixed RTK. Finally, we try to fix the ambiguity by the partial ambiguity solution (PAR) method and perform the ambiguity validity check by the FFRT (Teunissen et al. 1999; Lu et al. 2019). If the test fails, output the results of the RTK float solutions, otherwise output the results of the RTK fixed solutions.

Fig. 8
figure 8

Detailed flowchart of smartphone RTK algorithm and its solution output

4 Field test results and discussions

In this section, we will discuss the smartphone positioning performance of three sets of field tests. First, the equipment installation and trajectory of the experiment will be introduced, and then, the results will be discussed in detail from the observation conditions, single-frequency and dual-frequency, positioning accuracy, and ambiguity fixing rate.

4.1 Experiment description

As shown in Fig. 9, the kinematic tests for smartphone positioning are divided into three groups. The first set of experiments is carried out in the playground of Wuhan University (hereinafter referred to as the playground test), where the smartphone is mounted on a trolley and moves at a speed of about 0.8 m/s; the second experiment is carried out on Liangzihu Avenue in the suburbs of Wuhan city (hereinafter referred to as the urban expressway test), where the smartphone is installed under the front windshield of the vehicle; the third experiment is carried out in Wuhan city center with complex observation environments (hereinafter referred to as the urban main road test), and the equipment is installed the same way as the expressway test. Among them, the vehicular experiments of the second and third sets are the same as the real condition of the smartphone navigation, and the speed exceeds 15 m/s. All smartphone GNSS observations in the three experiments are collected by the “GnssLogger” application. In addition, in all kinematic tests, the NovAtel SPAN-FSAS and StarNeto XW-GI7660 integrated navigation systems are used as references, respectively, and high-precision reference trajectories (centimeter-level) are provided after IE software post-processing. Thus, the error of the kinematic test can be obtained by subtracting the coordinates of the smartphone positioning results and the reference trajectory after the lever arm is calibrated.

Fig. 9
figure 9

Hardware installation and trajectory of the smartphone kinematic positioning test. The top plot is a trolley experiment, which is located in the school playground; the bottom plots are the real vehicle kinematic experiments, which include the urban expressway test and main road test

Based on our proposed smartphone RTK algorithm, the above three sets of experimental data are processed, respectively. Table 4 gives the RTK processing configuration information, where the sampling interval of the GNSS data is 1.0 s, and the ambiguity resolution is set to a fixed and hold mode. Also, we compare the difference in smartphone RTK performance when using single-frequency (SF) and dual-frequency (DF) observations under different urban environments.

Table 4 Configuration information of smartphone RTK processing

Figure 10 shows the satellite visibility in three sets of kinematic tests, and the duration of each set of experiments is about 20–24 min. In the playground test, the number of visible satellites is around 45, the number of available DD carrier phases is around 35, and the PDOP is also stable at around 1.0; in the urban expressway test, the number of visible satellites drops to around 40, and the number of DD carrier phases also drops to about 30, and the PDOP is still about 1.0; in the urban main road test, it can be seen that the number of satellites fluctuates greatly, the number of DD carrier phases changes drastically between 20 and 30, and even the carrier phase is completely out of the lock. This shows that in the three sets of tests, the challenges of the GNSS observation condition are gradually increasing, and the continuity of the smartphone GNSS carrier phase is extremely susceptible to environmental influences, which is also the reason for the limited application of conventional RTK methods in real vehicle navigation based on smartphone devices.

Fig. 10
figure 10

Satellite visibility in the kinematic tests. The top, middle, and bottom plots represent the playground test, urban expressway test, and urban main road test, respectively

4.2 Performance in the playground

As illustrated in Fig. 11, in the playground test, the position RMS errors of SF-RTK in the east, north, and up-vertical directions are 0.090 m, 0.107 m, and 0.082 m, respectively, while the position accuracy of DF-RTK is improved to 0.030 m, 0.026 m, and 0.043 m. Due to the addition of observations in the L5 frequency band, the ambiguity fixing rate is increased from 77.7 to 87.1%; the time to first fix (TTFF) is also accelerated from 9 to 5 s. And, from fixed ambiguity dilution of precision (ADOP), the redundancy of multi-frequency and multi-constellation carrier phase makes the average ADOP of DF-RTK not exceed 0.02. Even in SF-RTK, most ADOPs are below 0.05.

Fig. 11
figure 11

Comparison of smartphone RTK performance in the playground test. The left and right plots are the results of SF-RTK and DF-RTK, respectively. The inset zooms in to show the RTK convergence period at the start epoch

The test results show that in this kinematic condition with a low moving speed (\(\approx\) 0.8 m/s) and open-sky environment, continuous and smooth positioning with centimeter-level accuracy can be achieved by the improved RTK algorithm of smartphones, and compared with SF-RTK, DF-RTK performs better in positioning accuracy, fixing rate, TTFF, etc. At this point, a smartphone can almost be used as a dedicated GNSS positioning device for applications that require a high-precision location.

4.3 Performance in the urban expressway

Figure 12 shows the smartphone RTK performance in the urban expressway test. Compared with SF-RTK, the position accuracy of DF-RTK is improved from 0.321, 0.507, and 1.077 to 0.180 m, 0.114 m, and 0.499 m, respectively; the fixing rate of ambiguity in the whole process is also increased from 12.2 to 55.9%. From the fixed ADOP, it is difficult for SF-RTK to achieve continuous ambiguity fixing. Whether it is SF-RTK or DF-RTK, the TTFF is relatively long, 166 s and 44 s, respectively. According to the analysis results in Sect. 2.3, under the real vehicular kinematic conditions, the pseudorange noise (especially in the L1 band) of the smartphone increases to about 5.0 m, which leads to slower convergence of float ambiguity and longer TTFF.

Fig. 12
figure 12

Comparison of smartphone RTK performance in the urban expressway test. The left and right plots are the results of SF-RTK and DF-RTK, respectively. The inset zooms in to show the RTK convergence period at the start epoch

The trajectories comparison of smartphone RTK from epoch 462,784 to 462,808 s is given in Fig. 13. When passing through a viaduct, the trajectory of SF-RTK has a larger deviation, while DF-RTK is still consistent with the reference trajectory. The number of DD carrier phases in both the L1 and L5 bands has dropped to less than 10. At this time, two advantages enable DF-RTK to obtain more continuous fixed solutions. In terms of the satellites visibility, the number of DD carrier phases for DF-RTK exceeds 15 even if it is viaduct-blocked; in terms of the observations quality, the pseudorange and carrier phase errors of the L5 band are smaller than those of the L1 band. The test results demonstrate that the improved smartphone DF-RTK algorithm can achieve continuous and smooth positioning with decimeter-level accuracy in a real kinematic condition, that is, a fast-moving speed (\(\approx\) 15 m/s) and the under vehicle front windshield environment. In this case, the smartphone can still be equivalent to a dedicated vehicular navigator that supports location services with lane-level accuracy.

Fig. 13
figure 13

Trajectories comparison of smartphone RTK, and the number of available DD carrier phase of L1 band and L5 band is also given from epoch 462,784 to 462,808 s

4.4 Performance in the urban main road

As illustrated in Fig. 14, in the urban main road test, the position RMS errors in the east, north, and up-vertical directions of SF-RTK are 1.344 m, 1.152 m, and 3.611 m, respectively, while the position accuracy of DF-RTK is improved to 1.024 m, 0.663 m, and 1.625 m. It is almost difficult to obtain a reliable ambiguity-fixed solution in the whole process, and the fixing rate is only 0.1% and 2.6%. In the open-sky condition, the trajectories of SF-RTK and DF-RTK both coincide with the reference trajectory; in the conditions occluded by buildings and viaducts, the trajectory deviation of SF-RTK reaches several meters, while the results of DF-RTK are still meter-level accuracy.

Fig. 14
figure 14

Comparison of smartphone RTK performance in the urban main road test and the trajectories in different observation conditions are also given, including open sky (376,322 s to 376,332 s), building occlusion (376,834 s to 376,862 s), and viaducts occlusion (377,069 s to 377,099 s)

It can be found from Fig. 15 that when in complex urban environments, the number of carrier phases continuously tracked decreases significantly or even loses lock completely. Moreover, from the result comparison between 377,081 and 377,099 s in Fig. 15, the continuity of the carrier phase of the L1 band is worse than that of the L5 band. This is consistent with the conclusions of the analysis of smartphone dual-frequency carrier phase residuals under kinematic conditions in Sect. 2.3. Therefore, in these real complex environments, frequent ambiguity resets make it almost impossible to obtain stable fixed solutions even with DF-RTK.

Fig. 15
figure 15

Number of consecutive carrier phases in the L1 band and L5 band under viaducts occlusion (377,069 s to 377,099 s)

In addition, the observation residuals are compared in Fig. 16. It can be seen that the limited number of available carrier phases suffers from frequent cycle slips, which further explains the decrease in the ambiguity fixing rate. To make matters worse, the pseudorange residuals in the L1 band in SF-RTK reach 10–25 m, which leads to jumping points and slow convergence. In DF-RTK, the pseudorange residual of the L5 band is still only about 1 m, and the number of available observations has increased, so the accuracy and continuity of the positioning results are better. It is demonstrated that the proposed smartphone RTK method is effective. On the one hand, it is carefully processed during data quality control, and on the other hand, it maintains the continuity and smoothness of the RTK float solution as much as possible through the position domain constraint.

Fig. 16
figure 16

Pseudorange and carrier phase residuals in the L1 band and L5 band under viaducts occlusion (377,069 s to 377,099 s)

4.5 Discussion

Finally, the positioning error statistics of the three kinematic experiments are summarized in Table 5, and the smartphone RTK performance of our proposed method is compared with the conventional method. In the playground and urban expressway conditions, the horizontal position error of the conventional method is about the sub-meter to meter level, and the vertical position error is at the meter level, which is slightly worse than the proposed method but acceptable. In the condition of the urban main road, the SF-RTK position error of the conventional method exceeds 10 m, and it is almost impossible to guarantee continuous and reliable positioning. The results prove that in dynamic navigation of real urban environments, GNSS observations are easily disturbed, and this is more challenging for smartphones. Thus, in our proposed method, a whole set of special improvement strategies for smartphone RTK is given, including observation weighting model related to the C/N0, data quality control combing prior and post-detection, and constraint for RTK float solution in the position domain.

Table 5 Positioning error statistics of the conventional method and the proposed method

In the latest Smartphone Decimeter Challenge, many teams have achieved good results, reaching a positioning accuracy of approximately 1 m. The top two Place Winners adopted the optimization method, while the 3rd Place Winner method was still based on the classic geodetic method (Suzuki 2022; Dai 2022; Everett 2022). Compared with them, our proposed method pays more attention to the potential of high-precision positioning of smartphones with ambiguity fixed solutions and constructs a set of practical algorithms that can be used for real-time positioning. The proposed method decomposes this complex data processing problem: in the state update step, we focus on velocity estimation and prior gross error detection to obtain the predicted position with higher accuracy; in the observation update step, we focus on the position estimation based on the carrier phase to obtain a more reliable RTK float solution; and at the end, the ambiguity is resolved to try to output a fixed solution. The idea of hierarchical processing has good robustness and practicability in the complex urban environment, and the field test results also verify it.

5 Conclusions

In this contribution, based on the engineering prototype of Huawei Mate40, we study in detail the characteristics of multi-frequency and multi-constellation smartphone raw observations in both static and kinematic situations and give the quality investigation results of the smartphone B1C and B2a observations for the first time. Then, based on the conclusions of the observation characteristics analysis, we propose a multi-GNSS RTK positioning method for smartphones suitable for real kinematic conditions. We also carry out multiple sets of experiments under different motion conditions and observation environments and discuss the positioning performance of SF-RTK and DF-RTK in detail.

Two collection experiments of the static and kinematic data of the smartphone GNSS raw observations are designed. Then, a comprehensive analysis is carried out in terms of signal power, satellite visibility, pseudorange, and carrier phase noise. The static data results show that the C/N0 of multi-GNSS signals is concentrated at 30–40 dB-Hz, and the C/N0 of L5/E5a/B2a is about 5 dB-HZ lower than that of L1/E1/B1I/B1C; the number of visible satellites in L1 band reaches 30, and the satellites in the L5 band are about 15; the pseudorange noise of the L1 band is about 1.5 m, which is twice the pseudorange noise of the L5 band; the carrier phase cycle slip ratio of the L1 band is also twice that of the L5 band. The kinematic data results show that the satellite visibility and C/N0 have decreased, the pseudorange noise in the L1 band has increased to 5.0 m, and the L5 band is still at 1.5 m; the continuity of the carrier phase in the L5 band is also better. It is demonstrated that, in the urban kinematic environments, the smartphone GNSS observation qualities are significantly degraded, manifested in low SNR, high pseudorange noise, poor phase continuity, and frequent cycle slips.

A multi-GNSS RTK positioning method for smartphones suitable for real kinematic conditions is proposed. Among them, two specialized improvement strategies are introduced in detail. One is a comprehensive data quality control strategy combing prior and post-detection, including two prior check methods based on signal state and observation consistency, and a post-check based on IGG-III guidelines. The other is a position-domain constraint method for RTK float solutions, which can improve the solution accuracy and continuity. In addition, its effectiveness is also verified by the field data.

Finally, three sets of smartphone kinematic positioning tests are carried out. In the playground test, the position accuracy of DF-RTK is at the centimeter level, the ambiguity fixing rate reaches 87.1%, and the TTFF is only 5 s; in the urban expressway test, the position accuracy of DF-RTK is at the decimeter level, and the fixing rate is about 55.9%, and the TTFF is 44 s; while in the urban main road test, the position accuracy of DF-RTK is 1-m level, the ambiguity is almost difficult to fix, and the fixing rate is only 2.6%. Correspondingly, the SF-RTK positioning results are also given, but each performance index has a certain degree of decline, especially in the urban expressway and main road tests.

The field data analysis results and positioning performance comparison demonstrate that multi-frequency and multi-constellation smartphone GNSS has great potential to achieve high-precision positioning in real kinematic applications. Nowadays, national continuously operating reference stations (CORS) networks and commercial CORS services are relatively mature, which facilitates the promotion of smartphone-based RTK high-precision positioning applications. And in the future, with the launch of more GPS and Galileo satellites with L5 frequency, the performance of smartphone RTK in urban environments is expected to be further improved. In addition, we will try to introduce MEMS sensor data from smartphones to realize continuous positioning in urban canyons, viaducts, tunnels, and other challenging conditions through multi-source information fusion.