Introduction

Integrity monitoring is critical in high-precision relative positioning using the global navigation satellite system (GNSS) in complex environments. The reliability of a high-precision relative positioning algorithm depends on the correctness check of integer ambiguity resolution, which is of significance for many safety-of-life (SoL) navigational applications with demanding integrity requirements. Future intelligent air transportation systems and autonomous vehicles will rely heavily on carrier phase measurements to support real-time integrity monitoring for precise positioning (Zhu et al. 2018; GNSS market report 2022). In recent decades, real-time kinematic (RTK) using carrier phase measurements has been proved to be an efficient and reliable high-precision positioning technology (Feng et al. 2012). The accuracy of centimeter-level position estimation can be achieved in real-time and postprocessing mode by fixing the integer ambiguity. For safety–critical applications, measuring the integrity of navigation performance is more important than positioning accuracy. The use of integrity monitoring based on the carrier phase can ensure the reliability of positioning to prevent fault events. Compared with integrity monitoring based on a pseudorange measurement, positioning accuracy is improved, and integrity monitoring indicators also have higher requirements. According to the protection level (PL) calculation, an integrity monitoring system in the position domain provides the upper bound for the position error (Khanafesh and Pervan 2010). In recent years, moving base RTK, including satisfying high integrity, has become an important research topic in intelligent autonomous vehicles and has received widespread attention.

For moving base RTK, some systematic errors, such as the satellite and receiver clock errors and atmospheric delay errors for a short baseline, can be eliminated or effectively mitigated using differencing techniques. Generally, a positioning algorithm assumes that measurement noise is uncorrelated white noise (Teunissen and Montenbruck 2017). However, in a highly dynamic case, the appearance of colored noise, which comes from various noise sources, does not follow the Gaussian white noise assumption in a Kalman filter and will degrade both the accuracy and reliability of positioning as well as the integrity monitoring performance (Cui et al. 2019).

Methods have been developed to address the measurement of colored noise in high dynamic positioning, which can be divided into non-Gaussian distribution and stochastic noise modeling methods. For non-Gaussian distributions, different error overbounding algorithms have been proposed to provide a heavy tail with non-Gaussian distribution modeling (Zhao et al. 2020). A Gaussian sum filter was proposed based on a Gaussian mixed model, which provides a more conservative PL and minimum detectable bias (MDB) for an integrity monitoring system (Yun et al. 2008). Other methods mainly consider a stochastic noise model, which can provide a real-time protection level for integrity monitoring by adjusting the observation weight according to the satellite elevation and signal-to-noise ratio to reduce the influence of colored noise (Gao et al. 2021). However, in the case of high-precision dynamic positioning, these methods do not consider the impact of the correct fixed carrier phase ambiguity on the positioning error and integrity monitoring performance. When measurement noise affects the fixed ambiguity of the carrier phase, if the ambiguity solution is incorrect, it will lead to meter-scale positioning error and increase the integrity risk.

Unlike code observation, the carrier phase can provide higher positioning accuracy, but is ambiguous because the receiver measures only a fractional part (Giorgi and G. Teunisse 2012). The unknown number of integer cycles is generally defined as ambiguity and is jointly determined by the dynamic model parameters of the Kalman filter (Teunissen and Montenbruck 2017). At present, the solving process of integer ambiguity resolution is usually divided into four steps. In the first step, the least-squares estimation of the float ambiguity and variance–covariance matrix is obtained by ignoring integer constraints. Second, the integer constraints on the float ambiguities are mapped to an integer solution, which means solving a minimization problem. Third, whether to accept the estimated integer ambiguities is determined. Finally, other parameters can be corrected by correlating with the ambiguities once the integer ambiguity is fixed.

In view of the integer ambiguity verification method, which is an academic research interest, various testing methods have been proposed, which can be divided into three types of widely used ambiguity validation methods for the correctness check of ambiguity resolution. The first typical method carries out ratio tests in the ambiguity domain (Verhagen 2005), such as a ratio test, F-ratio test, difference test (Zhang et al. 2015), and projector test (Verhagen 2004b; Li et al. 2016). However, some tests are not theoretically rigorous, despite the test statistics being empirically efficient, and the fixed test thresholds are challenging to meet dynamic user needs. The second classical method calculates the integrity risk in the positioning domain to evaluate whether the ambiguity solution is correct (Khanafesh and Pervan 2010; Li et al. 2018b). The traditional position domain-based approach is always evaluated conservatively, requiring a search for the worst failure mode corresponding to the maximum protection level or integrity risk. However, the worst-case failure mode is usually obtained by brute force search, which leads to inefficiency in real-time verification of ambiguity solutions in high dynamic positioning (Khanafesh and Pervan 2010). The third most popular method is evaluating the success rate or failure rate in the probability domain (Teunissen 1998; Wang et al. 2016, 2019). The success rate is used to measure the reliability of ambiguity resolution and is also critical in integrity monitoring. Some scholars have studied the influence of different integer ambiguity estimations on the success rate (Verhagen et al. 2013).

In addition, for a high dynamic case, GNSS signal quality and measurement noise levels depend on the environment and are difficult to predict. Therefore, it is not practical to specify a constant noise level for such applications. In traditional Kalman filters, the noise level of the model statistics is given before the filtering process and remains unchanged throughout the recursive process. In general, this prior statistic is determined through test analysis and some previous knowledge of the type of observation. If such a priori information is not enough to represent an accurate statistical noise level, then Kalman estimation is not optimal, which may lead to degradation of localization performance or divergence.

Different adaptive Kalman filtering algorithms have been studied for surveying and navigation applications to address the above problems. To make the Kalman filter stable and non-divergent, some scholars have combined GPS with an inertial navigation system (INS) and applied it to an adaptive Kalman filter. In addition, some scholars have studied two different adaptive Kalman filters for vehicle navigation based on predictive residuals, one based on fading memory (Hu et al. 2003) and the other based on variance estimation (Zhang et al. 2022). The positioning accuracy of the adaptive Kalman filter realized using the two methods is better than that of a traditional Kalman filter, especially when the vehicle is turning (Zhang et al. 2021). However, in a conventional adaptive Kalman filter, the forgetting factor is used to weight the Kalman filter parameters, and the forgetting factor is set artificially. In a complex environment, there is a lack of dynamic adjustment. Therefore, the success rate of ambiguity resolution in an integer ambiguity verification algorithm is considered the active adjustment parameter of the filter, and the ambiguity resolution success rate is combined with an adaptive Kalman filter to optimize the ambiguity resolution success rate and improve location performance and integrity monitoring.

We focus on the impact of the ambiguity success rate boundary on the positioning performance to better apply the integer ambiguity success rate in dynamic positioning. We apply the integer ambiguity success rate to an adaptive filter to solve these problems. A novel adaptive Kalman filter is proposed based on integer ambiguity validation of the carrier phase ambiguity resolution. It uses the ambiguity success rate to dynamically adjust the measurement noise matrix and the variance–covariance matrix of state estimation at each time interval to provide a smoothing effect for filtering and obtain the optimal Kalman filter gain matrix. As a result, the estimation accuracy of the navigation parameters is significantly improved. Through the proposed adaptive Kalman filter algorithm based on integer ambiguity validation (IAVAKF), a more realistic PL can be obtained and applied to evaluate the integrity of the navigation system in the position domain.

The following sections introduce the moving base RTK positioning algorithms and different methods of calculating the success rate of integer ambiguity resolution in the probability domain. Then, the derivation process of the proposed adaptive Kalman filter based on integer ambiguity validation is presented using a standard KF. Furthermore, the integrity monitoring algorithm in terms of PL derivation is provided. We evaluate the positioning performance and integrity monitoring performance based on the IAVAKF algorithm using a static simulation and a dynamic vehicle experiment. Finally, the conclusions are provided.

Methodology

In this section, we first introduce the observation equations for the moving base RTK positioning algorithm. Then, partial ambiguity resolution is given to fix the float ambiguities. Lastly, the integer ambiguity verification algorithm in the probability domain will be presented in detail.

Moving base RTK position algorithm

In high-precision dynamic positioning, carrier phase observations are used to achieve relative positioning. Figure 1 shows a variety of error signal sources between GNSS satellites and dynamic users. The satellite and atmospheric errors, such as the ionosphere and troposphere, do not depend on the user and can be directly corrected using the aid data of a reference station. The errors related to dynamic users are mainly caused by environmental noise and receivers in highly dynamic scenes. For example, trees on both sides of the road blocking signals and buildings produce multipath errors. These errors are unrelated to the reference station, and they are irregular and frequently occur in a dynamic environment. Therefore, these errors cannot be addressed by applying corrections or using integrity information broadcast by reference stations. Hence, dynamic users need to test independently to ensure the positioning performance and integrity of the whole system (Buist 2008; Feng and Wang 2008; Li et al. 2018a).

Fig. 1
figure 1

Signal error sources present between GNSS satellites and dynamic users

In this process, the position and time deviation of a satellite are first calculated from the observed ephemeris file. The rover and base stations receive the pseudorange and carrier phase measurements from the satellites (Won et al. 2015)

$$P_{{P_{f} }} = \rho + c\left( {{\text{d}}t_{rcv} - {\text{d}}t^{{{\text{sat}}}} } \right) + T + I_{f} + M_{{P_{f} }} + \varepsilon_{{P_{f} }}$$
(1)
$$\Phi_{{L_{f} }} = \rho + c\left( {{\text{d}}t_{rcv} - {\text{d}}t^{{{\text{sat}}}} } \right) + T - I_{f} + \lambda_{{L_{f} }} N_{{L_{f} }} + m_{{L_{f} }} + \epsilon_{{L_{f} }}$$
(2)

where \(P_{{P_{f} }}\) and \({\Phi }_{{L_{f} }}\) represent GNSS pseudorange and carrier phase measurements in meters at frequency \(f\), respectively; \(\rho\) is the geometric range between the satellite and receiver antennas; \({\text{d}}t_{{{\text{rcv}}}}\) and \({\text{d}}t^{{{\text{sat}}}}\) represent the receiver and satellite clock offsets, respectively; \(T\) and \(I_{f}\) are the tropospheric and ionosphere delay errors in meters, respectively. \(N_{{L_{f} }}\) is the integer ambiguity in cycles. \(M_{{P_{f} }}\) and \(m_{{L_{f} }}\) represent the multipath effect, which also depends on the code type and frequency, and \(\varepsilon_{{P_{f} }}\) and \(\epsilon_{L_f}\) are the GNSS pseudorange and carrier phase measurement noises, respectively. \({\text{c}}\) is the vacuum speed of light in m/s, and \({\uplambda }_{f}\) is the carrier wavelength.

In moving base RTK, the observation model utilizes a double-differencing (DD) technique to eliminate most error sources in the original measurement for a short baseline case (Buist 2008). The DD measurements between different satellites and mobile stations can be taken by selecting common-view reference satellites. The DD measurements are obtained as follows:

$$\Phi_{rb}^{ij} = \rho_{rb}^{ij} + \lambda \left( {N_{rb}^{i} - N_{rb}^{j} } \right) + \epsilon_{\phi ,rb}^{ij}$$
(3)
$$P_{rb}^{ij} = \rho_{rb}^{ij} + \varepsilon_{P,rb}^{ij}$$
(4)

where the upper corner sign \(i,j\) denotes the satellite number. The subscripts \(r\) and \(b\) represent a rover station and a dynamic base station, respectively.

It can be seen that when the dynamic receivers track n visible satellites, one is selected as the common-view reference satellite according to the elevation, and the reference satellite number is set to 1 here. Then, \(n - 1\) independent DD measurements can be used for positioning computation. A function model of carrier phase relative positioning is established as follows:

$$L_{k} = H_{k} X_{k} + V_{k}$$
(5)

where \(L_{k}\) is the DD measurement vector and the subscript \(k\) is the epoch. \(V_{k} \sim N\left( {0,R} \right)\) is the measurement noise, \(R\) is the noise covariance matrix, and \(H_{k}\) is the measurement matrix. \(X_{k}\) represents the state vector containing the user position, speed, and ambiguities

$$X_{k} = \left( {r_{r}^{T} ,v_{r}^{T} ,N_{rb}^{2,1} ,N_{rb}^{3,1} , \ldots ,N_{rb}^{n,1} } \right)^{T}$$
(6)

where \(r_{r}^{T}\) is the relative position, \(v_{r}^{T}\) is the relative velocity, and \(\left( {n - 1} \right)\) DD carrier phase ambiguities \(\left( {N_{rb}^{2,1} ,N_{rb}^{3,1} , \ldots ,N_{rb}^{n,1} } \right)\) are estimated. \(H_{k} = \left[ {\begin{array}{*{20}c} {H_{P} } & {H_{\Phi } } \\ \end{array} } \right]^{T}\) can be written as:

$$H_{P} = \left[ {\begin{array}{*{20}c} {e_{rb,x}^{21} } & {e_{rb,y}^{21} } & {e_{rb,z}^{21} } & {} & {} \\ {e_{rb,x}^{31} } & {e_{rb,y}^{31} } & {e_{rb,z}^{31} } & {} & {} \\ \vdots & \vdots & \vdots & {0_{{\left( {n - 1} \right) \times 3}} } & {0_{{\left( {n - 1} \right) \times \left( {n - 1} \right)}} } \\ {e_{rb,x}^{{\left( {n - 1} \right)1}} } & {e_{rb,y}^{{\left( {n - 1} \right)1}} } & {e_{rb,z}^{{\left( {n - 1} \right)1}} } & {} & {} \\ \end{array} } \right]$$
(7)
$$H_{\Phi } = \left[ {\begin{array}{*{20}c} {e_{rb,x}^{21} } & {e_{rb,y}^{21} } & {e_{rb,z}^{21} } & {} & {} \\ {e_{rb,x}^{31} } & {e_{rb,y}^{31} } & {e_{rb,y}^{31} } & {} & {} \\ \vdots & \vdots & \vdots & {0_{{\left( {n - 1} \right) \times 3}} } & { - \lambda \cdot I_{{\left( {n - 1} \right) \times \left( {n - 1} \right)}} } \\ {e_{rb,x}^{{\left( {n - 1} \right)1}} } & {e_{rb,y}^{{\left( {n - 1} \right)1}} } & {e_{rb,y}^{{\left( {n - 1} \right)1}} } & {} & {} \\ \end{array} } \right]$$
(8)

Since DD carrier phase measurements are correlated with each other, the covariance is assumed to be double the variance, and the covariance matrix of measurement errors \(R\) can be written as:

$$R = 2\sigma^{2} \left[ {\begin{array}{*{20}l} 2 \hfill & 1 \hfill & \cdots \hfill & 1 \hfill \\ 1 \hfill & 2 \hfill & \cdots \hfill & 1 \hfill \\ { \vdots } \hfill & \vdots \hfill & \ddots \hfill & \vdots \hfill \\ 1 \hfill & 1 \hfill & \cdots \hfill & 2 \hfill \\ \end{array} } \right]$$
(9)

where the parameter \(\sigma\) is the standard deviation of the pseudorange and carrier phase measurement.

Then, the system estimation can be realized through the time update and measurement update process of a Kalman filter. The time update steps, including state prediction and state covariance prediction, are as follows (Feng and Wang 2008):

$$\hat{X}_{k + 1}^{ - } = F_{k}^{k + 1} \hat{X}_{k}^{ + } + w_{k}$$
(10)
$$P_{k + 1}^{ - } = F_{k}^{k + 1} P_{k}^{ + } F_{k}^{k + 1T} + Q_{k}^{k + 1}$$
(11)

The measurement update step can be written as:

$$\hat{X}_{k}^{ + } = \hat{X}_{k}^{ - } + K_{k} \left( {y_{k} - h\left( {\hat{X}_{k}^{ - } } \right)} \right)$$
(12)
$$P_{k}^{ + } = \left( {I - K_{k} H\left( {\hat{X}_{k}^{ - } } \right)} \right)P_{k}^{ - }$$
(13)
$$K_{k} = P_{k}^{ - } H\left( {\hat{X}_{k}^{ - } } \right)\left( {H\left( {\hat{X}_{k}^{ - } } \right)P_{k}^{ - } H\left( {\hat{X}_{k}^{ - } } \right)^{T} + R_{k} } \right)^{ - 1}$$
(14)

The state vector \(\hat{X}_{k}\) of each epoch is estimated using the Kalman filter, and the relative position between the rover station and the base station is calculated, as well as the float ambiguity solution. The symbol \(^{\prime}\left( - \right)^{\prime}\) is used to indicate an a priori estimate, and the symbol \(^{\prime}\left( + \right)^{\prime}\) indicates estimates after the update, that is, a posteriori estimates.

Partial ambiguity resolution

The carrier phase ambiguities estimated by the KF in (6) are a float solution. To obtain higher positioning accuracy, it is necessary to calculate the fixed resolution of the carrier phase integer ambiguity. However, the ambiguity fixed rate in a dynamic positioning scene is very low, and the common-view visible satellites change frequently. The initial fixed integer ambiguity will also change and need to be refixed. Based on this, this study uses partial ambiguity resolution to improve positioning performance in a dynamic environment (Teunissen et al. 1999). Because fixing all ambiguities is unnecessary for GNSS positioning, the fixed part of the ambiguity is adopted in actual positioning to avoid fixing failure (Brack 2017).

A partial ambiguity resolution based on altitude angle grouping is adopted. The basic principle is that after the float ambiguities are obtained, all ambiguity parameters are sorted and grouped according to the altitude angle. The satellites with higher altitude angles are given priority. Furthermore, we compute the success rate only for the satellites that are used for PAR. The fixed ambiguities are used to assist the integer search of unfixed ambiguity, and finally, the fixed ambiguities are replaced in the observation equation. The fixed solutions of the coordinate and other parameters to be estimated are obtained.

Since DD float ambiguities are correlated with each other, linear Gaussian transformation should be used for decorrelation. The decorrelated ambiguity search space is much smaller than the original search space. The estimated float ambiguity can be expressed as:

$$\hat{a} = \left[ {N_{{{\text{rb}}}}^{2,1} ,N_{{{\text{rb}}}}^{3,1} , \ldots ,N_{{{\text{rb}}}}^{n,1} } \right]$$
(15)

The problem is to determine an integer estimate \(\check{a} = S\left( {\hat{a}} \right)\) of the parameters \(a_{J}\) from the float solution \(\hat{a}\) with the a priori defined deterministic index set \(J\). Defining the mapping \(S\left( \cdot \right):{\mathbb{R}}^{n} \to {\mathbb{Z}}^{\left| J \right|}\), the index set \(J\) can assume any of the \(2^{n} - 1\) possible non-empty realizations that follow from either including each of the \(n\) elements of the parameter vector \(a\) or not. Such an estimator can be fully described by the regions \(S_{z} \subset {\mathbb{R}}^{n} ,\forall {\varvec{z}} \in {\mathbb{Z}}^{\left| J \right|}\), which denotes the point set that is mapped to the same integer \(z\) via \(S\left( \cdot \right)\) (Brack 2019)

$$S_{z} = \left\{ {x \in {\mathbb{R}}^{n} |z = S\left( x \right)} \right\},\forall z \in {\mathbb{Z}}^{\left| J \right|}$$
(16)

Then, by considering the integer constraint of ambiguity, the float solution is fixed as the integer solution, which is achieved through many-to-one mapping. The partial integer estimator corresponding to these regions can be explicitly written as:

$$\check{a} = \mathop \sum \limits_{{{\mathbf{z}} \in {\mathbb{Z}}^{{\left| {J} \right|}} }} S_{{\varvec{z}}} \left( {\hat{{a}}} \right){\varvec{z}}$$
(17)

This is of importance when formulating the constraints that have to be imposed on the construction of the regions \(S_{{\varvec{z}}}\). The three properties have to be met by the regions \(S_{{\varvec{z}}}\) defining a partial integer estimator with a given non-empty subset \(J\) (Brack 2017).

Integer ambiguity verification in the probability domain

To dynamically evaluate the quality of the integer ambiguity solution, it is necessary to use the integer ambiguity verification algorithm in the probability domain to assess the quality of ambiguity fixing. Through different mapping methods, such as integer rounding (IR), integer bootstrapping (IB), and integer least squares (ILS) (Verhagen et al. 2013), float ambiguities are mapped to integer solutions. ILS is optimal and has the highest success rate among these methods. The float ambiguity can be correctly fixed to its integer if and only if it resides in its corresponding pull-in region \({\mathcal{P}}_{a}\) (Verhagen 2005).

$$\check{a} = {\varvec{a}} \Leftrightarrow \hat{{a}} \in {\mathcal{P}}_{a}$$
(18)

In other words, the probability of correct ambiguity estimation, i.e., ambiguity success rate \(P_{s}\), is equal to the probability that \(\hat{a}\) resides in the pull-in region \({\mathcal{P}}_{a}\) with \({\varvec{a}}\) being the true but unknown ambiguity vector (Brack 2019):

$$P_{s} = P\left( \check{a} = a \right) = P\left( \hat{a} \in {{\mathcal{P}}_{a} } \right) = \mathop \int \limits_{{\mathcal{P}}_{a}} f_{\hat{a}} \left( {x}|{a} \right)\,{\text{d}}{x}$$
(19)

The probability density function (PDF) of the float ambiguities, \(f_{{\hat{a}}} \left( {{\varvec{x}}|{\varvec{a}}} \right)\), is assumed to be a normal PDF with an average of \({\varvec{a}}\):

$$f_{{\hat{a}}} \left( {{x|a}} \right) = \frac{1}{{\sqrt {{\text{det}}\left( {2\pi Q_{{\hat{a}\hat{a}}} } \right.} }}{\text{exp}}\left\{ { - \frac{1}{2}({\varvec{x}} - {\varvec{a}})^{T} Q_{{\hat{a}\hat{a}}}^{ - 1} \left( {{\varvec{x}} - {\varvec{a}}} \right)} \right\}$$
(20)

As the pull-in region of the integer estimator is integer translation invariant, the success rate can also be evaluated as follows:

$$P_{s} = \mathop \int\limits_{{{\mathcal{P}}_{0} }} f_{{\hat{a}}} \left( {{x|}0} \right)\,{\text{d}}{\varvec{x}}$$
(21)

The ambiguity success rate, i.e., the probability of correct integer estimation, depends on two factors: the observation equation and the selection method of ambiguity resolution. The theoretical success rate can be calculated once the observation equation is obtained. The success rate of the ambiguity resolution and its boundary are summarized in Table 1.

Table 1 Pull-in region and bounds of success rate for IR, IB and ILS (Verhagen 2005; Verhagen et al. 2013)

Here, ambiguity dilution of precision (ADOP) is a scalar measure in cycles that captures the intrinsic precision of the estimated float ambiguity vector. The ADOP is invariant for ambiguity reparameterizing (Teunissen 2000a). \({\Phi }\left( x \right)\) is the cumulative normal distribution given as:

$$\Phi \left( x \right) = \int\limits_{ - \infty }^{x} {\frac{1}{{\sqrt {2\pi } }}\exp \left( { - \frac{1}{2}z^{2} } \right){\text{d}}z}$$
(22)

\(\hat{a}_{i}\) stands for the \(i{th}\) float ambiguity, and \(\hat{a}_{i|I}\) is the standard deviation of the \(i{th}\) ambiguity obtained through conditioning on the previous ambiguities. Hence, from this equation, it is clear that the probability of obtaining the correct integer value increases as the standard deviation of \(\hat{a}_{i|I}\) decreases. The success rate relationship between different integer estimation methods is used. As mentioned, the success rate also depends on the selected integer estimation method because the IR, IB, and ILS pull-in regions are different. It has been proved that (Teunissen 1998, 1999):

$$P\left( \check{a}_{{{\text{IR}}}} = a \right) \le P\left( \check{a}_{{{\text{IB}}}} = {a} \right) \le P\left( \check{a}_{{{\text{ILS}}}} = {a} \right)$$
(23)

The diagonal term of the variance–covariance matrix depends on the standard deviation of the observation and the geometry of the satellite user. When the lower bound is applied to decorrelation ambiguity, the lower bound becomes more explicit, as used in the least-squares ambiguity decorrelation adjustment (LAMBDA) method (Teunissen et al. 1997). This lower bound can be used as an a priori check for whether the ambiguity estimator is successful enough to obtain the correct integer ambiguity vector. Float ambiguity is not fixed when the lower bound is less than these values.

Adaptive Kalman filter and integrity monitoring algorithm

In high-precision dynamic positioning, GNSS signal quality and measurement noise levels depend on the environment and are difficult to predict. Some scholars have proposed an adaptive Kalman filter algorithm to solve this problem. In the traditional method, by multiplying the covariance matrix of system noise and the covariance matrix of measurement noise by a certain coefficient, the ratio of system noise to measurement noise is changed, and the role of new information is gradually emphasized and the role of historical information is weakened. Thus, in the case of inaccurate system modeling, high positioning accuracy can be achieved and the integrity risk under fault-free conditions can be reduced. However, in practical application, due to the different degrees of error state estimation, using a single scalar factor cannot adjust measures to local conditions, accurately correct all abnormal estimated values, and lack dynamic adjustment to the changing environment (Xia et al. 1994). Therefore, we take the success rate of ambiguity resolution as the active adjustment parameter of the filter and combine the ambiguity resolution success rate with the adaptive Kalman filter to optimize the ambiguity resolution success rate and improve positioning and integrity monitoring performance. In this section, we propose an adaptive Kalman filter based on integer ambiguity validation and derive the algorithm flow. Then, the integrity monitoring algorithm in terms of PL derivation is provided.

Adaptive Kalman filter based on integer ambiguity verification (IAVAKF)

By using the integer ambiguity to estimate the success rate at each time, the ambiguity success rate is applied to the Kalman filter, the measurement noise matrix is adjusted dynamically, and then, the Kalman filter gain matrix is adaptively adjusted to provide a smoothing effect for the filter. We propose an adaptive Kalman filter based on integer ambiguity verification.

In traditional Kalman filters, the noise level of the model statistics is given before the filtering process and remains unchanged throughout the recursive process. In general, this prior statistic is determined through test analysis and some previous knowledge of the type of observation. For moving base RTK, GNSS signal quality and measurement noise levels depend on the environment and are difficult to predict. Therefore, specifying a constant noise level for such applications is not practical. If the prior statistical information of noise is not accurate, the estimation performance of a conventional Kalman filter will decline or even diverge. Therefore, an adaptive Kalman filter (AKF) is usually used to replace the traditional Kalman filter. The AKF algorithm based on current measurements (Quanbo et al. 2022) and the Sage–Husa AKF algorithm considering forgetting factors are used (Narasimhappa et al. 2012). We propose a novel adaptive Kalman filtering algorithm based on integer ambiguity verification considering the ambiguity success rate in a moving base RTK. The overall framework of the algorithm is shown in Fig. 2.

Fig. 2
figure 2

Flowchart of the adaptive Kalman filter loop based on integer ambiguity verification

According to the ambiguity verification algorithm introduced in previous section, first, after the initialization of the Kalman filter, the float ambiguities need to be fixed, and the ambiguity success rate is calculated, which is used as an adaptive adjustment parameter in (24). However, in order to avoid the large positioning error caused by the fixed ambiguity solution in the case of a poor success rate of ambiguity, the success rate threshold (usually 0.95) of ambiguity resolution is set. We usually assume that the ambiguity solution is correct only when the success rate of ambiguity resolution is greater than a given threshold (Verhagen 2005). Therefore, when using an adaptive Kalman filter based on integer ambiguity verification, we will have a judgment process. If the success rate of ambiguity resolution is greater than the success rate threshold, we will apply them to the measurement variance matrix. If it is not greater than the ambiguity resolution success rate threshold, we will fall back to the traditional adaptive Kalman filter (Narasimhappa et al. 2012).

$$\beta_{k} = \frac{{\beta_{k - 1} }}{{\beta_{k - 1} + P_{s} }}$$
(24)

where \(\beta_{k}\) is the weighting factor, that is, the amnestic factor (Narasimhappa et al. 2012). \(P_{s} \left( \check{\mathbf{a}}=\mathbf{a} \right) = \prod\limits_{{i = 1}}^{m} {\left[ {2\Phi \left( {\frac{1}{{2\sigma _{{i/I}} }}} \right) - 1} \right]}\) is the ambiguity success rate. The smaller \(P_{s}\) is, the lower the accuracy of fixed ambiguity is, and the stronger the ability to adapt to the change of new measurement noise. In this representation of the filter loop, the update is computed first instead of starting with the prediction. We adaptively adjust the measurement noise \({\text{R}}_{k}^{*}\) after obtaining the weighting factor.

$$R_{k}^{*} = \left( {1 - \beta_{k} } \right)R_{k - 1}^{*} + \beta_{k} \left( {y_{k} y_{k}^{T} - H_{k} P_{k} H_{k}^{T} } \right)$$
(25)

The traditional filter gain in (14) will be modified as follows:

$$K_{k}^{*} = P_{k}^{ - } H\left( {\hat{x}_{k}^{ - } } \right)\left( {H\left( {\hat{x}_{k}^{ - } } \right)P_{k}^{ - } H\left( {\hat{x}_{k}^{ - } } \right)^{T} + R_{k}^{*} } \right)^{ - 1}$$
(26)

According to the new filter gain matrix \(K_{k}^{*}\), it is substituted into (12) and (13). Then, the updated state measurement and the corresponding covariance matrix are obtained. At epoch k, the prediction of the system state at epoch \(k + 1\) is determined and buffered. The prediction equations (10) and (11) of the Kalman filter will also be rederived.

Integrity monitoring in the position domain

High integrity monitoring for moving base RTK in the position domain is realized by horizontal PL (HPL) and vertical PL (VPL) criteria. The PL is a statistic upper bound to ensure that the position error will not exceed the alert limit of a given integrity risk. This study calculates the protection level according to the uncertainty estimation error obtained based on Kalman filter information from the KF, AKF, and IAVAKF approaches.

It is assumed that the positioning error obeys a Gaussian distribution. According to the uncertainty of the position error, the state covariance matrix \(P_{k}\) at each epoch is obtained from the Kalman filter. The first three elements of the state covariance matrix represent the uncertainty of the state in the northeast-up (ENU) coordinate system (Li et al. 2018b).

\(P_{k}\) in (11) represents the covariance matrix of the position and float ambiguity state estimation error. \(P_{k}^{m}\) updates the covariance matrix of the state vector after repairing the \(m{th}\) ambiguity, and this process is constantly updated until a certain number of fixed ambiguities are obtained. After \(m\) iterations, the horizontal and vertical position errors, after fixing the cycle ambiguities correctly, can be assumed to be random variables with a Gaussian distribution of zero mean and standard deviation \(\sigma_{H|CF}\) and \(\sigma_{V|CF}\), respectively, which can be calculated as follows:

$$\sigma_{H|CF} = \sqrt {P_{{\left( {1,1} \right)}}^{m} + P_{{\left( {2,2} \right)}}^{m} }$$
(27)
$$\sigma_{V|CF} = \sqrt {P_{{\left( {3,3} \right)}}^{m} }$$
(28)

where \(CF\) represents the correct fixed ambiguity event. The protection levels determined based on the uncertainty of the position can be expressed as:

$${\text{HPL}} = K_{{{\text{HPL}}}} \cdot \sigma_{H|CF}$$
(29)
$${\text{VPL}} = K_{{{\text{VPL}}}} \cdot \sigma_{v|CF}$$
(30)

where \(K_{{{\text{HPL}}}}\) and \(K_{{{\text{VPL}}}}\) are factors that reflect the probability of missed detection as derived from the integrity risk. Assuming that the integrity risk requirement with free failure is \({\text{I}}_{H0req} = 10^{ - 7}\), the probability threshold of incorrectly fixed ambiguity is \({\text{PIF}}_{{{\text{threshold}}}} = 10^{ - 8}\) (Khanafesh and Pervan 2010). The probability that the position error is greater than the alarm limit when the ambiguity is correctly fixed is calculated.

$$P\left\{ {\left| {\hat{x}_{v} - x_{v} } \right| > {\text{VAL}}|{\text{CF}}} \right\} = \frac{{I_{{H0{\text{req}}}} - {\text{PIF}}_{{{\text{threshold}}}} }}{{1 - {\text{PIF}}_{{{\text{threshold}}}} }}$$
(31)

\(K_{{{\text{VPL}}}}\) can be obtained by calculating the cumulative distribution function of \(P\left\{ {\left| {\hat{x}_{v} - x_{v} } \right| > {\text{VAL}}|{\text{CF}}} \right\}\). In the same way, \({\text{HPL}}_{H0}\) can be obtained.

Experiments, the results, and analysis

To verify the positioning accuracy and integrity monitoring performance of the proposed IAVAKF under high dynamic positioning, static stimulation and dynamic vehicle experiments were carried out.

Simulation experiments with static data

Through a static experiment, the IAVAKF algorithm is used to evaluate the improvement in the ambiguity resolution success rate and positioning performance in static baseline mode. The dual-frequency GPS data were collected from Septentrio PolaRx5S receivers for 60 min. The static RTK experiment was carried out at Beihang University. The receivers were installed on the roof of the New Main Building and WeiShi Building, as shown in Fig. 3. The roof receiver on the New Main Building was set as the base station, and the roof receiver on the WeiShi Building was used as the rover station. The details of the experiment are shown in Table 2.

Fig. 3
figure 3

Static RTK scene and the antenna on the building

Table 2 Detailed information about the static simulated experiment

Experimental results on the success rate of ambiguity resolution

As seen in the previous section, the performance of the success rate bounds and approximations was analyzed based on the linearized DD GNSS model in terms of the baseline unknowns and different integer ambiguity mapping functions. However, integer ambiguity resolution is the first step in integrity monitoring or data processing. Here, we show an example based on a dual-frequency GPS model by setting the standard deviations of the undifferenced code and phase to 30 cm and 1 cm, respectively. In this way, the float ambiguity variance–covariance matrix \(Q_{{\hat{a}\hat{a}}}\) is obtained from static experimental data.

In addition, to compare different methods of ambiguity success rate, a scaling factor \(F\) is introduced to analyze the ambiguity success rate and boundary performance under different precisions (Verhagen et al. 2013):

$$Q_{{\hat{a}\hat{a},F}} = F \times Q_{{\hat{a}\hat{a}}}$$
(32)

The approximate values and bounds of the success rates of IR, IB, and ILS are shown in Fig. 4 as a function of the scale factor \(F\). In the process of verifying the boundary value of ambiguity and success rate, the boundary value based on the variance–covariance matrix is too different from the actual ILS success rate. If using these boundary values to set the threshold is considered, it will significantly increase the probability of missed detection. The success rate of using the ILS algorithm is higher than that of the other two algorithms. Therefore, the integer ambiguity verification algorithm based on ILS is applied to the adaptive Kalman filter.

Fig. 4
figure 4

IR, IB, and ILS success rate bounds based on static simulation; F is the scale factor applied to the VC matrix. ILS success rates: lower and upper bounds based on bounding the pull-in region (black), lower and upper bounds based on bounding the ADOP (cyan), and lower and upper bounds based on bounding the VC matrix (pink) from Table 1

Comparison of KF, AKF, and IAVAKF in a static RTK positioning scene

In the static RTK experiment, the DD residuals include noise from the transmitter and receiver hardware. There are 12 visible GPS satellites, as shown in Fig. 5. T0068e red circle represents the cutoff altitude angle of 10°. During the test, a reference satellite is determined using the elevation angle of the satellite. G20 and G5 are two reference satellites used, and their colors gradually deepen, representing the trend of the reference satellite changing with time.

Fig. 5
figure 5

Sky plot in the static RTK scene

To evaluate the positioning performance of the proposed algorithm IAVAKF under static RTK, IAVAKF is compared with the other two positioning algorithms, KF and AKF, and plotted in Fig. 6. In the static positioning scene, because the number of satellites is constant, the test environment is an open sky environment, the influence of multipath noise is small, and the positioning accuracy of the three can reach the centimeter level.

Fig. 6
figure 6

Estimation errors of different positioning algorithms: KF-based positioning error (blue), AKF-based positioning error (green), and IAVAKF-based positioning error (red). ECEF-X positioning error (top), ECEF-Y positioning error (middle), ECEF-Z positioning error (bottom)

Dynamic vehicle experiment

To verify the positioning accuracy and integrity monitoring performance of the proposed IAVAKF in a high-dynamic-positioning scene, an actual vehicle test was carried out in Dongying City, Shandong Province, on June 20, 2019. The experiment lasted approximately 40 min. The maximum baseline distance was 15 km. Three NovAtel receivers were used to receive GNSS signals, and the RTK base station with a NovAtel receiver was located on the roof of Beihang Dongying Research Institute. The other two receivers were installed on two mobile vehicles, and the positional relationship and path map between the three stations were drawn during the experiment, as shown in Fig. 7. Among them, rover station 1 moves cyclically according to the given route 1 and route 2, and rover station 2 moves back and forth at two endpoints (Points A and B).

Fig. 7
figure 7

Trajectory of the dynamic vehicle experiment

The sky plot of the dynamic experiment is shown in Fig. 8, where G28 is the reference satellite used during the test. During the experiment, at least eight reference satellites are always visible.

Fig. 8
figure 8

Sky plot of the dynamic vehicle experiment

Figure 9 shows the changes in the GNSS geometry during the experiment, in which the number of visible satellites, the position dilution of precision (PDOP), the horizontal dilution of precision (HDOP), and the vertical dilution of precision (VDOP) are plotted. It can be seen that there are at least eight visible satellites throughout the experiment. During the 600–800 period and 1100–1300 period, the number of satellites jumps repeatedly. This is because the trees between the vehicles and satellites seriously block the GNSS signal so that the receiver does not receive some satellite signals.

Fig. 9
figure 9

GNSS geometry during the experiment. The blue line represents the number of satellites, the red line represents the VDOP, the green line represents the HDOP, and the cyan line represents the PDOP

Compare positioning performance based on KF, AKF, and IAVAKF

To evaluate the performance of the IAVAKF in ambiguity resolution success rate, we compare the ambiguity resolution success rate based on the ILS in the KF and AKF, as shown in Fig. 10. It can be seen from the figure that the success rate of solving based on the IAVAKF algorithm is higher.

Fig. 10
figure 10

Ambiguity success rate, KF-based success rate (blue), AKF-based success rate (green), IAVAKF-based success rate (red)

In the dynamic positioning scene, the positioning errors of the three positioning results of the KF, AKF, and IAVAKF are compared, in which the RTK solution of the NovAtel receiver is set as the actual reference trajectory of rover station 1, and the positioning errors of the three positioning methods are shown in Fig. 11. At this time, the three positioning methods can make the positioning error reach the centimeter level. However, the positioning error based on the KF is worse, and the proposed IAVAKF shows a better positioning effect than the traditional KF and AKF. Compared with the conventional KF, the positioning accuracy of the IAVAKF is improved by 26%, and the stability is improved by 39%. Details are shown in Table 3.

Fig. 11
figure 11

Positioning errors of the KF, AKF, and IAVAKF in moving base RTK, KF-based positioning error (blue), AKF-based positioning error (black), and IAVAKF-based positioning error (red). ECEF-X positioning error (top), ECEF-Y positioning error (middle), ECEF-Z positioning error (bottom)

Table 3 Statistical information of KF, AKF, and IAVAKF

Compare integrity monitoring performance based on KF, AKF, and IAVAKF

To evaluate the integrity monitoring performance of the proposed IAVAKF, we compare the relationship between the PL and the positioning error calculated by different positioning algorithms. As shown in Fig. 12, the positioning solutions are always available based on the fault-free dataset, and the positioning error does not exceed the PL. Otherwise, a false alarm will interrupt the continuity of positioning performance. Since the variance of the output of the KF is too optimistic, the PLs based on the KF are usually too conservative in constraining the actual positioning error. The algorithms based on the AKF and IAVAKF are more practical for the actual positioning error.

Fig. 12
figure 12

Positioning error (black), KF-based PL (blue), AKF-based PL (green) and IAVAKF-based PL (red) in the vertical direction (top) and horizontal direction (bottom)

Then, we compare PLs (based on the KF, AKF, and IAVAKF) with PEs using the Stanford diagram, as shown in Figs. 13, 14, 15. Moreover, their statistical information is presented in Table 4. The IAVAKF-based PLs can reduce the false alarm rate from 1.848% to 0.00% in the vertical direction and from 2.403 to 0.00% in the horizontal direction.

Fig. 13
figure 13

Actual PE and PL based on the KF in the dynamic vehicle experiment (top: vertical direction, bottom: horizontal direction)

Fig. 14
figure 14

Actual PE and PL based on the AKF in the dynamic vehicle experiment (top: vertical direction, bottom: horizontal direction)

Fig. 15
figure 15

Actual PE and PL based on the IAVAKF in the dynamic vehicle experiment (top: vertical direction, bottom: horizontal direction)

Table 4 False alarm rates for the KF, AKF, and IAVAKF

Conclusion

To improve the positioning and high integrity monitoring of the performance of moving base RTK, an adaptive Kalman filter algorithm based on integer ambiguity verification is proposed. Static simulation results and dynamic vehicle experiments show that the proposed IAVAKF can significantly improve the positioning accuracy and stability under dynamic positioning and improve the reliability of the integrity monitoring system. Several conclusions are summarized as follows:

  1. (1)

    Since the ambiguity needs to be addressed when using the DD carrier phase for positioning, the existing ambiguity resolution algorithms and verification algorithms are compared. Static experiments show that the ambiguity success rate and boundary of different ambiguity verification algorithms have a different response to the covariance matrix of the Kalman filter output. The optimal ambiguity verification algorithm ILS is used as the adjustment parameter of the adaptive Kalman filter. Dynamic experiments show that the ambiguity success rate can be improved in the IAVAKF.

  2. (2)

    The proposed IAVAKF can use the ambiguity success rate at each time interval to adaptively adjust the measurement noise of the filter. This filter can alter the optimal Kalman gain matrix and modify the covariance matrix of the state estimation error. As a result, the estimation accuracy of navigation parameters is significantly improved. The dynamic experimental results show that the IAVAKF is effective, and the estimation accuracy is improved by 26% compared with the KF. The results show that the proposed adaptive Kalman filter is suitable for dynamic scenes.

  3. (3)

    The high integrity monitoring in terms of the PL based on the IAVAKF has been verified to be more realistic and feasible in restricting the actual positioning error. In addition, dynamic vehicle experiments show that the false alarm of this method in the horizontal direction and vertical direction is reduced by 2.45% and 1.85%, respectively. It ensures the integrity risk requirements of dynamic users.