Introduction

Due to global coverage, low cost, and simplicity of use, global navigation satellite systems (GNSSs) have been widely used in positioning and navigation. GNSS-based relative positioning with a moving base is purposed to provide a precise and robust baseline between separately moving vehicles. It enables numerous applications such as vehicle-to-vehicle collision avoidance, aerial refueling, and formation flying. These applications need accurate relative positions rather than absolute positions. Thus, static bases with known coordinates are not suitable. The baseline can directly be calculated with the GNSS raw data exchanged between vehicles using vehicle-to-vehicle communications.

State-of-the-art techniques for relative positioning with moving base are code-based differential GNSS and phase-based real-time kinematic (RTK). Alam et al. (2013a), Liu et al. (2014), and Müller et al. (2014) addressed the cooperative positioning in vehicle ad hoc networks with code-based differential GPS. However, the accuracy is not enough for some safety-related applications such as lane-level guidance, collision avoidance, and future automatic driving, which need real-time relative positioning accuracy of better than 0.5 m (Stephenson et al. 2014). With ambiguities fixed, RTK can provide centimeter-level accuracy and was demonstrated in formation flying (Chen et al. 2015; D’Amico et al. 2012; Montenbruck et al. 2011). Another challenge in many real-time applications is the latency issue. When base station transmits raw GNSS data to the rover station through a communication link, there is always some latency before the data arrives at the rover. In addition, the update rate of the transmitted data may not correspond with the data sampling rate of the rover. For applications with low dynamics, such as surveying and geodesy, differential solutions with short latency may be tolerable. However, for high-speed safety–critical applications, this latency will cause unacceptable degradation in the performance and thus must be carefully addressed.

Thus far, a few approaches have been proposed to deal with the latency problem. Lawrence (1999) proposed a reference carrier phase prediction technology that allows synchronous RTK positioning in real time. Hatch et al. (2007) presented a real-time relative positioning method which extrapolates the position of rover forward in time using the time-differenced carrier phase (TDCP) technique and corrects the positioning error in the present time using the delayed synchronous RTK results. Zhang et al. (2015) developed an asynchronous RTK (ARTK) method that directly uses the asynchronous double-difference observations to achieve high-rate relative positioning. Although demonstrating considerable accuracy, these methods were originally established for relative positioning with a static base. They cannot be directly applied to a moving base case due to the movement of the base during the latency, as shown in Fig. 1. The moving base collects observations at \(t_{k - 1}\) and sends them to the rover. The rover receives these data and determines the baseline using its own observations at time \(t_{k}\). Therefore, the baseline vector \(\vec{b}_{a}\) is calculated between the position of the moving base at epoch \(t_{k - 1}\) and the rover position at \(t_{k}\), which is called asynchronous baseline in this research. The asynchronous baseline has become obsolete because meanwhile, the moving base has traveled the way \(\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {c}\), thus \(\vec{b}_{s}\) is, in fact, the desired synchronous baseline between both vehicles at time \(t_{k}\). Although this issue can be mitigated by increasing the transmitting rate of observations, the resultant error is still unacceptable for a moving base with high speed. On the other hand, with the development of multi-constellation multi-frequency GNSS, it is difficult to transmit the raw observations at a very high rate reliably.

Fig. 1
figure 1

Relative positioning with moving base

To achieve low-latency, high-rate, and high-precision relative positioning with a moving base, as well as reduce the communication burden, we present an ARTK/TDCP integration method. The ARTK method is performed to obtain the asynchronous baseline between moving base and rover at their respective observation epochs. The position increments of moving base during the latency are calculated using the TDCP technique and broadcasted to the rover afterward. These two parts are combined to obtain the final low-latency, high-rate precise synchronous baseline. To accomplish this integration, one only needs to transmit the position increments of moving base at a high rate, whereas the raw GNSS observations can be transmitted at a lower rate. The size of the position increment packet is much smaller than that of raw observations. Note that the latter proportionally increases when the GNSS and frequencies increase. Therefore, the communication link burden can be remarkably reduced, and the data can be transmitted and received reliably, which further guarantees the robustness of the real-time relative positioning. It is also noted that the proposed method can be easily merged into GNSS/inertial navigation system (INS) integration to further improve the update rate (> 100 Hz) of relative positioning, and thus the applicability can be extended to a variety of high dynamic situations. Although INS-aided relative positioning is not a new topic, the existing works do not explicitly consider latency (Williamson et al. 2007; Alam et al. 2013b; Lee et al. 2016). Some of them require transmitting the raw INS data between the rover and moving base (Alam et al. 2013c; Lee et al. 2016). However, it is impractical to transmit the INS data at a high rate (> 100 Hz) due to the hardware restrictions. In real-time use, the INS raw data must be transmitted at a low rate, which sacrifices the update rate of relative positioning.

This study differs from previous work in the following aspects. First, the latency in real-time relative positioning is explicitly considered, and the position increment of the base during the latency is estimated accurately. Second, for the first time, the position increment from GNSS/INS integration is used to improve the update rate of relative positioning. Third, the relative positioning accuracy is analyzed for different latencies, which shows the performance of the proposed method for different communication conditions.

ARTK/TDCP integration method

Figure 2 depicts the hardware setup needed for the proposed method. Both rover and moving base vehicles are equipped with GNSS receivers, INSs, and radios. GNSS/INS integration provides absolute position, velocity, and attitude for each vehicle. Radios transmit and receive the raw GNSS data and position increments through which relative positioning with respect to moving base can be performed. With the development of micro-electro-mechanical system (MEMS)-INS and low-cost GNSS receivers, this hardware cost becomes increasingly cheaper and is no longer hard to acquire. The objective is to achieve low-latency, high-rate, and high-precision relative positioning with a moving base with this system configuration. The implementation of the proposed ARTK/TDCP integration method will be detailed in the following sections.

Fig. 2
figure 2

System configuration for relative positioning with moving base

Review of ARTK method

The undifferenced carrier phase observation equation for a receiver-satellite pair reads

$$\phi_{\text{r}}^{\text{s}} (t) = \rho_{\text{r}}^{\text{s}} (T) + \lambda N_{\text{r}}^{\text{s}} (t) + c\left[ {\delta t_{\text{r}} (t) - \delta t^{\text{s}} (T)} \right] - \iota_{\text{r}}^{\text{s}} (t) + \tau_{\text{r}}^{\text{s}} (t) + \varepsilon_{\text{r}}^{\text{s}} (t)$$
(1)

where \(\phi\) is the carrier phase observation at receiver \(r\) from satellite \(s\) in meters. \(t\) and \(T\) are the signal reception time and transmission time, respectively. \(\rho\), \(\iota\), and \(\tau\) are the satellite-receiver range, the ionospheric delay, and the tropospheric delay. \(\delta t_{\text{r}}\) and \(\delta t^{s}\) are the receiver clock error and the satellite clock error. \(N\) is the carrier phase ambiguity in cycles. \(\lambda\) is the signal wavelength. \(c\) is the speed of light. \(\varepsilon\) represents unmodeled errors including receiver noise, multipath, and other small effects.

In real-time relative positioning, users must transmit and receive the observations from the base receiver through data communication links. In this process, there are always some propagation delays. Also, the transmitting rate of base data may differ from the sampling rate of rover data. Denoting the observation epochs of the base and rover \(t_{0}\) and \(t_{1}\) respectively, the between-receiver between-satellite asynchronous double-difference operator can be expressed as

$$\left\{ {\begin{array}{*{20}l} {( \cdot )_{\text{BR}}^{ij} (t_{0} ,t_{1} ) = ( \cdot )_{\text{R}}^{j} (t_{1} ) - ( \cdot )_{\text{B}}^{j} (t_{0} ) - ( \cdot )_{\text{R}}^{i} (t_{1} ) + ( \cdot )_{\text{B}}^{i} (t_{0} )} \hfill \\ {( \cdot )_{\text{BR}}^{ij} (T_{0} ,T_{1} ) = ( \cdot )_{\text{R}}^{j} (T_{1}^{j} ) - ( \cdot )_{\text{B}}^{j} (T_{0}^{j} ) - ( \cdot )_{\text{R}}^{i} (T_{1}^{i} ) + ( \cdot )_{\text{B}}^{i} (T_{0}^{i} )} \hfill \\ \end{array} } \right.$$
(2)

where subscripts B and R indicate moving base and rover, superscripts \(i\) and \(j\) are the satellite PRN numbers, \(T_{0}^{i}\) and \(T_{0}^{j}\) are the signal transmission times of satellite \(i\) and satellite \(j\) corresponding to \(t_{0}\), \(T_{1}^{i}\), and \(T_{1}^{j}\) denote those corresponding to \(t_{1}\). \(t_{1} - t_{0}\) is the latency.

The asynchronous double-difference observation model for ARTK positioning can be expressed as

$$\phi_{\text{BR}}^{ij} (t_{0} ,t_{1} ) = \rho_{\text{BR}}^{ij} (T_{0} ,T_{1} ) + \lambda N_{\text{BR}}^{ij} (t_{0} ,t_{1} ) - c\delta t_{\text{BR}}^{ij} (T_{0} ,T_{1} ) + \varepsilon_{\text{BR}}^{ij} (t_{0} ,t_{1} )$$
(3)

Note that the asynchronous double-difference terms of ephemeris error, ionospheric delay, and tropospheric delay are neglected since they are reasonably small for short latency and short baseline (< 10 km). The propagation of these errors to ARTK positioning accuracy is analyzed in detail in Zhang et al. (2015). Due to the inclusion of time tag parameters for rover and base, (3) can be regarded as a generalized model for ARTK, synchronous RTK, and TDCP positioning. Generally, single-point positioning is first employed to obtain the prerequisite parameters, including \(T_{0}\) and \(T_{1}\), satellite positions, the approximate absolute position of moving base, and line-of-sight vectors.

In real-time navigation, the asynchronous double-difference satellite clock error \(\delta t_{\text{BR}}^{ij} (T_{0} ,T_{1} )\) can be calculated by the polynomial coefficients in the broadcast ephemeris. The ambiguity can be initialized using the delayed synchronous observations of the two receivers with the LAMBDA method (Teunissen 1995), given \(N_{\text{BR}}^{ij} (t_{0} ,t_{1} ) = N_{\text{BR}}^{ij} (t_{0} ,t_{0} ) = N_{\text{BR}}^{ij} (t_{1} ,t_{1} )\) in the absence of cycle slips. Therefore, an observed-minus-computed asynchronous double-difference carrier phase is defined as follows:

$$\tilde{\phi }_{\text{BR}}^{ij} (t_{0} ,t_{1} ) = \phi_{\text{BR}}^{ij} (t_{0} ,t_{1} ) - \rho_{\text{BR}}^{ij,0} (T_{0} ,T_{1} ) - \lambda N_{\text{BR}}^{ij} (t_{0} ,t_{1} ) + c\delta t_{\text{BR}}^{ij} (T_{0} ,T_{1} )$$
(4)

where \(\rho_{BR}^{ij,0} (T_{0} ,T_{1} )\) is the approximate asynchronous double-difference range given by

$$\begin{aligned} \rho_{\text{BR}}^{ij,0} (T_{0} ,T_{1} ) & = \left( {\left| {r^{j} \left( {T_{1}^{j} } \right) - r_{\text{B}} \left( {t_{0} } \right)} \right| - \left| {r^{j} \left( {T_{0}^{j} } \right) - r_{\text{B}} \left( {t_{0} } \right)} \right|} \right. \\ &\quad \left. { - \;\left| {r^{i} \left( {T_{1}^{i} } \right) - r_{\text{B}} \left( {t_{0} } \right)} \right| + \left| {r^{i} \left( {T_{0}^{i} } \right) - r_{\text{B}} \left( {t_{0} } \right)} \right|} \right) \\ \end{aligned}$$
(5)

with \(r^{i} \left( \cdot \right)\) and \(r^{j} \left( \cdot \right)\) the position vectors of satellites \(i\) and \(j\), and \(r_{\text{B}} \left( \cdot \right)\) is the known position vector of the moving base given by single-point positioning.

Assuming that totally \(s + 1\) satellites are simultaneously tracked on \(f\) frequencies, the single-epoch linear(ized) asynchronous double-difference model is given as

$$\begin{array}{*{20}c} {E\left( {\tilde{\phi }} \right) = Ab_{a} ,} & {D\left( {\tilde{\phi }} \right) = Q_{\phi \phi } } \\ \end{array}$$
(6)

where \(E\left( \cdot \right)\) and \(D\left( \cdot \right)\) represent the expectation and dispersion operator, respectively. \(\tilde{\phi } = \left[ {\tilde{\phi }_{{{\text{BR}},1}}^{12} \cdots \tilde{\phi }_{{{\text{BR}},1}}^{1s + 1} \cdots \tilde{\phi }_{{{\text{BR}},f}}^{12} \cdots \tilde{\phi }_{{{\text{BR}},f}}^{1s + 1} } \right]^{\text{T}}\) is the \(sf \times 1\) observed-minus-computed asynchronous double-difference phase vector. \(A = e_{f} \otimes D_{S}^{T} G\) is the design matrix of the asynchronous baseline \(b_{a}\), with \(e_{f}\) being the \(f \times 1\) vector of values of 1, \(D_{S}^{T} = \left[ { - e_{s} ,I_{s} } \right]\) the \(s \times (s + 1)\) differencing matrix, and \(G = \left[ { - u^{1} , \cdots , - u^{s + 1} } \right]^{\text{T}}\) the unit line-of-sight matrix. \(Q_{\phi \phi } = 2\left( {C_{\phi \phi } \otimes D_{S}^{T} W^{ - 1} D_{S} } \right)\) is the variance–covariance matrix of phase observations with \(C_{\phi \phi } = {\text{diag}}\left[ {\sigma_{{\phi_{1} }}^{2} , \cdots ,\sigma_{{\phi_{f} }}^{2} } \right]\) being zenith-referenced undifferenced phase variance matrix and \(W = {\text{diag}}\left[ {w_{1} , \cdots ,w_{s + 1} } \right]\) the elevation-dependent weighting matrix of phase (Euler and Goad 1991). Equation (6) can be solved using weighted least squares estimation and then a precise asynchronous baseline can be obtained.

ARTK/TDCP integration method for relative positioning with moving base

For static base applications, ARTK can achieve precise relative positioning, as the position of base is known a priori. However, for the moving base case shown in Fig. 1, the position increment of moving base during the latency is also required in addition to the asynchronous baseline. The TDCP technique, which eliminates the ambiguity by differencing two consecutive carrier phases, has been successfully applied in precise GNSS velocity estimation (Freda et al. 2015), GNSS/INS tightly coupled integrated navigation (Han and Wang 2012; Kim et al. 2015; Zhao 2017), and initial alignment (Choi et al. 2014). The TDCP technique is suitable to estimate the position increment of moving base during the latency with centimeter-level accuracy. Furthermore, ARTK/TDCP integration is formed for low-latency precise relative positioning with moving base.

Denoting the position of the base receiver at the previous epoch as \(B^{\prime}\) and denoting its position at the present epoch as B, the asynchronous double-difference model (3) changes to the between-satellite between-epoch TDCP positioning model

$$\varPhi_{{B^{\prime}B}}^{ij} (t_{0} ,t_{1} ) = \rho_{{B^{\prime}B}}^{ij} (T_{0} ,T_{1} ) - c\delta t_{{B^{\prime}B}}^{ij} (T_{0} ,T_{1} ) + \varepsilon_{{B^{\prime}B}}^{ij} (t_{0} ,t_{1} )$$
(7)

Note that the ambiguity parameter is eliminated as long as cycle slips do not occur. Otherwise, the TDCP measurement would be contaminated and the accuracy of position increments would be undermined.The observed-minus-computed TDCP observation is given as

$$\tilde{\varPhi }_{{B^{\prime}B}}^{ij} (t_{0} ,t_{1} ) = \varPhi_{{B^{\prime}B}}^{ij} (t_{0} ,t_{1} ) - \rho_{{B^{\prime}B}}^{ij,0} (T_{0} ,T_{1} ) + c\delta t_{{B^{\prime}B}}^{ij} (T_{0} ,T_{1} )$$
(8)

Then, the linearized TDCP positioning model is given as

$$\tilde{\varPhi }_{{B^{\prime}B}}^{ij} (t_{0} ,t_{1} ) = - \left( {u^{j} - u^{i} } \right) \cdot \Delta r_{\text{T}} + \varepsilon_{{B^{\prime}B}}^{ij} (t_{0} ,t_{1} )$$
(9)

where \(u^{i}\) and \(u^{j}\) are the unit line-of-sight vectors for satellite \(i\) and \(j\), respectively, and \(\Delta r_{\text{T}}\) is the position increment from \(t_{0}\) to \(t_{1}\) of the moving base. It can be observed that \(\Delta r_{\text{T}}\) can be easily computed using least squares estimation from (9) if enough satellites are observed.

At the moving base site, the between-epoch position increment \(\Delta r_{\text{T}}\) can be calculated epoch by epoch using the carrier phase observations of the previous and current epochs. Since no ambiguity needs to be initialized in the TDCP model, \(\Delta r_{\text{T}}\) can be calculated at the current epoch and then transmitted to the rover immediately at a high rate. At the rover site, \(\Delta r_{\text{T}}\) is received and stored in a buffer. Then, the position increment of moving base during the latency can be obtained by accumulating multiple historical between-epoch \(\Delta r_{\text{T}}\).

The principle of the ARTK/TDCP integration method is illustrated in Fig. 3. \(t_{i} ,t_{i + 1} , \ldots\) are the observation epochs of transmitted data for moving base. \(t_{i} ,t_{i} + {\text{d}}t,t_{i} + 2{\text{d}}t, \ldots\) are the sampling epochs of observations for rover and moving base. \(\Delta r_{A} \left( {t,n{\text{d}}t} \right),n = 1,2, \ldots\) is the asynchronous baseline between moving base at \(t\) and rover at \(t + n{\text{d}}t\). \(\Delta r_{\text{T}} \left( {t + m{\text{d}}t,{\text{d}}t} \right),m = 0,1,2, \ldots\) is the position increments from \(t + m{\text{d}}t\) to \(t + \left( {m + 1} \right){\text{d}}t\) of moving base. \(\Delta r_{\text{A/T}} \left( {t + n{\text{d}}t} \right),n = 0,1,2, \ldots\) is the synchronous baseline between moving base and rover at \(t + n{\text{d}}t\) using ARTK/TDCP integration. It is easy to obtain that

$$\begin{aligned} \Delta r_{\text{A/T}} \left( {t + n{\text{d}}t} \right) & = \Delta r_{\text{A}} \left( {t,n{\text{d}}t} \right) - \Delta r_{\text{T}} \left( {t,n{\text{d}}t} \right) \\ & = \Delta r_{\text{A}} \left( {t,n{\text{d}}t} \right) - \sum\limits_{m = 0}^{n - 1} {\Delta r_{\text{T}} \left( {t + m{\text{d}}t,{\text{d}}t} \right)} \\ \end{aligned}$$
(10)

From (10), multiple historical position increments need to be stored at the rover, and the time-window length can be determined according to the maximum possible latency of observation data. From the perspective of real-time implementation, the historical observations of the moving base can be repeatedly used for ARTK positioning. Thus, the observation data of moving base can be transmitted at a lower rate. Only the position increments need to be transmitted to the rover at a higher rate to achieve low-latency precise relative positioning. A TDCP positioning packet consists of one time tag and the position increment with three parameters, the size of which will not increase when the satellites and frequencies increase. Compared with raw GNSS observations, the position increment packets require less information for communication and thus, the packets can be reliably transmitted and received.

Fig. 3
figure 3

ARTK/TDCP integration method

Cycle slip handling

Carrier phase observations can easily suffer from cycle slip problems, especially in urban environments. For ARTK positioning, cycle slip detection and repair are applied. The bothersome cycle slips can be detected by the TurboEdit method (Zhang et al. 2015; Blewitt 1990), which employs the Hatch–Melbourne–Wübbena combination together with the geometry-free combination. Once cycle slips are detected, they can be repaired by an additional ambiguity parameter method (Li et al. 2019). The unknown ambiguities which are marked as cycle slips can be solved using the remaining known ambiguities with the ARTK model. If the observation redundancy is not high enough to calculate a baseline vector, the integration solution will be reinitialized.

Since the TDCP model differences carrier phase observations of two successive epochs, the cycle slips only affect the result of the current epoch. The cycle slips are handled in a different way. Once a cycle slip is found, the TDCP observation of this satellite is excluded. If the remaining normal observations are not enough, the position increment of the current epoch is obtained by predicting using the stored historical position increments, as done in the following section. In case of a long-time data gap of the calculated position increments, the integration solution will be reinitialized too.

ARTK/TDCP/INS integration method

The synchronous baseline can only be calculated when the rover receives the newest position increment, as shown in Fig. 4. The observation epochs of sampled GNSS data are \(t_{i} ,i = 1,2,3,4\), and \(t_{1}\) is the observation epoch of the transmitted GNSS data. \(\Delta r_{\text{A}}\) and \(\Delta r_{\text{T}}\) are the asynchronous baseline and position increments. \(t_{\text{t}}\) and \(t_{\text{r}}\) denote the transmission and reception time of the newest position increment, respectively, while \(t_{r} - t_{3}\) is the latency of position increment. Due to this latency, at the reception time \(t_{r}\), the ARTK/TDCP integration method could obtain the obsolete synchronous baseline \(\Delta r_{\text{A/T}}\) at \(t_{3}\). There is no baseline solution output until the next position increment packet arrives. In addition, the output rate might still not be sufficient for some high-speed applications, because the sampling rates of common GNSS receivers are less than 100 Hz.

Fig. 4
figure 4

Illustration of the latency in ARTK/TDCP integration method

Due to the complementary characteristics, GNSS/INS integration has a much greater utility in enhancing the overall accuracy, integrity, and availability of navigation systems. In most cases, this integration is for deriving more robust absolute navigation solutions. In this research, GNSS/INS integration is also used to improve the availability of relative positioning. The conventional GNSS/INS integration is given first, followed by ARTK/TDCP/INS integration for improving the update rate of relative positioning.

Conventional GNSS/INS integration for absolute navigation

Kalman filter is the most common sensor fusion tool for GNSS/INS integrated systems. The dynamic model can be obtained from the INS error equations (Goshen-Meskin and Bar-Itzhack 1992):

$$\left\{ {\begin{array}{*{20}l} {\delta \dot{r}^{n} = - \;\omega_{en}^{n} \times \delta r^{n} + \delta v^{n} } \hfill \\ {\delta \dot{v}^{n} = - \;(2\omega_{ie}^{n} + \omega_{en}^{n} ) \times \delta v^{n} - \psi^{n} \times f^{n} + \delta g^{n} + C_{b}^{n} \nabla^{b} } \hfill \\ {\dot{\psi }^{n} = - \;(\omega_{ie}^{n} + \omega_{en}^{n} ) \times \psi^{n} - C_{b}^{n} \varepsilon^{b} } \hfill \\ \end{array} } \right.$$
(11)

where superscripts \(n\) and \(b\) represent the navigation frame (n-frame) and the body frame (b-frame), respectively; \(\delta r^{n}\),\(\delta v^{n}\), and \(\psi^{n} \in {\mathbb{R}}^{3}\) are the position, velocity, and attitude error vectors; \(C_{b}^{n}\) is the rotation matrix from b-frame to n-frame; \(\omega_{ie}^{n}\) is the earth rotation rate and \(\omega_{en}^{n}\) is the rotation rate of n-frame with respect to the earth-centered earth-fixed frame (e-frame); \(f^{n}\) is the specific force; \(\delta g^{n}\) is the gravity uncertainty error; \(\nabla^{b}\) and \(\varepsilon^{b} \in {\mathbb{R}}^{3}\) are the stochastic errors of gyros and accelerometers modeled as first-order Gauss–Markov processes. A 15-state INS error model is considered in this research,

$$x = \left[ {\left( {\delta r^{n} } \right)^{T} ,\left( {\delta v^{n} } \right)^{T} ,\left( {\psi^{n} } \right)^{T} ,\left( {\nabla^{b} } \right)^{T} ,\left( {\varepsilon^{b} } \right)^{T} } \right]^{T}$$
(12)

Therefore, the whole dynamic model for the Kalman filter can be expressed as

$$\dot{x} = Fx + Gw$$
(13)

where \(F\) and \(G\) are the dynamic matrix and the noise distribution matrix, and their expressions can be found in Shin (2005).

The position and velocity differences between GNSS and INS navigation solutions are treated as observations (Wang et al. 2018):

$$\left\{ {\begin{array}{*{20}l} {z_{r} = \hat{r}_{\text{INS}}^{n} + C_{b}^{n} l^{b} - \hat{r}_{\text{GNSS}}^{n} \approx \delta r^{n} + \left( {C_{b}^{n} l^{b} \times } \right)\psi^{n} + e_{r} } \hfill \\ {z_{v} = \hat{v}_{\text{INS}}^{n} - \left( {\omega_{\text{in}}^{n} \times } \right)C_{b}^{n} l^{b} - C_{b}^{n} \left( {l^{b} \times } \right)\omega_{\text{ib}}^{b} - \hat{v}_{\text{GNSS}}^{n} } \hfill \\ { \approx \delta v^{n} - \left[ {\left( {\omega_{\text{in}}^{n} \times } \right) \left (C_{b}^{n}{l^{b} \times } \right) + C_{b}^{n} (l^{b} \times \omega_{\text{ib}}^{b} ) \times } \right]\psi^{n} - C_{b}^{n} \left( {l^{b} \times } \right)\varepsilon^{b} + e_{v} } \hfill \\ \end{array} } \right.$$
(14)

where \(\hat{r}_{\text{INS}}^{n}\) and \(\hat{v}_{\text{INS}}^{n}\) are the position and velocity given by INS navigation; \(\hat{r}_{\text{GNSS}}^{n}\) and \(\hat{v}_{\text{GNSS}}^{n}\) are the position and velocity provided by GNSS; \(l^{b}\) is the lever arm vector from inertial measurement unit center to GNSS antenna phase center; \(\omega_{\text{in}}^{n} = \omega_{\text{ie}}^{n} + \omega_{\text{en}}^{n}\) is the rotation rate of n-frame with respect to the inertial frame (i-frame); \(\omega_{\text{ib}}^{b}\) is the rotation rate of b-frame with respect to i-frame; \(e_{\text{r}}\) and \(e_{\text{v}}\) are the GNSS position and velocity error, respectively. Then, the observation model for Kalman filter can be derived from (14):

$$z = Hx + v$$
(15)

where \(z = \left[ {\begin{array}{*{20}c} {z_{\text{r}} } \\ {z_{\text{v}} } \\ \end{array} } \right]\) is the observation vector, \(v = \left[ {\begin{array}{*{20}c} {e_{\text{r}} } \\ {e_{\text{v}} } \\ \end{array} } \right]\) is the observation noise vector, and \(H\) is the observation matrix given by

$$H = \left[ {\begin{array}{*{20}c} {I_{3 \times 3} } & {0_{3 \times 3} } & {C_{b}^{n} l^{b} \times } & {0_{3 \times 3} } & {0_{3 \times 3} } \\ {0_{3 \times 3} } & {I_{3 \times 3} } & {- \left( {\omega_{in}^{n} \times } \right)C_{b}^{n} \left( {l^{b} \times } \right) - C_{b}^{n} (l^{b} \times \omega_{ib}^{b} ) \times } & {0_{3 \times 3} } & {-C_{b}^{n} \left( {l^{b} \times } \right)} \\ \end{array} } \right]$$
(16)

Based on (13) and (15), the standard Kalman filter algorithm can be applied for GNSS/INS integration. In every measurement update, the Kalman filter estimates navigation parameter errors and inertial sensor errors and then compensates the INS navigation solution with the estimated error states. Taking the position component as an example, we correct the INS navigation solution \(r_{\text{I}}\) as \(r_{\text{M}} = r_{\text{I}} - \delta r^{n}\). \(r_{\text{M}}\) is thus the filtered position at the GNSS sampling time. Due to the limited accuracy of single-point positioning, just meter-level absolute positioning can be achieved.

In the GNSS/INS integration, the INS states, such as position, velocity, and attitude, are needed at the GNSS time instants. In the case that the sampling rate of the INS is not a multiple of that of GNSS, the INS navigation cannot directly obtain the corresponding INS state at the GNSS time instant. Instead, it is generally calculated by interpolating the INS states at time instants around the GNSS sampling time.

ARTK/TDCP/INS integration for higher-rate relative positioning

With a high update rate and considerable short-term accuracy, INS is a suitable complementary part for bridging the gaps of GNSS-based positioning. To further improve the update rate of relative positioning, the ARTK/TDCP integration method is merged into the GNSS/INS integrated system, as shown in Fig. 5. In the figure, \(t_{i} ,t_{i} + dt,t_{i} + 2{\text{d}}t, \ldots\) are the observation epochs of rover and moving base,\(t_{\text{I}}\) (marked with a red circle) corresponds to the current INS sampling time, \(t_{i} + 4{\text{d}}t\) is the newest GNSS sampling time, \(\Delta r_{\text{I}}\) and \(\Delta r_{\text{P}}\) are the position increments from \(t_{i} + 4{\text{d}}t\) to \(t_{\text{I}}\) of rover and moving base, respectively, and \(\Delta r_{\text{HRRP}}\) is the required higher-rate (generally > 100 Hz) relative position. The remaining symbols are well-defined in connection with Fig. 3. It is clear that besides the obsolete synchronous baseline \(\Delta r_{\text{A/T}}\), the position increments \(\Delta r_{\text{I}}\) and \(\Delta r_{\text{P}}\) need to be derived for calculating \(\Delta r_{\text{HRRP}}\). At the rover, \(\Delta r_{\text{I}}\) can be given by INS navigation from GNSS/INS integration after initial alignment, and \(\Delta r_{\text{P}}\) can be predicted using the received historical position increments of moving base. For convenience, \(\Delta r_{\text{I}}\) and \(\Delta r_{\text{P}}\) are termed as “INS increment” and “predicted increment,” respectively.

Fig. 5
figure 5

ARTK/TDCP/INS integration method

Figure 6 shows the diagram of the ARTK/TDCP/INS integration method for real-time navigation. The INS navigation (Nav.) is performed for deriving a high-rate absolute position \(r_{\text{I}}\) corresponding to every INS sampling time. SPP is the acronym for single-point positioning, and KF is the Kalman filter, which fuses navigation information from both systems for deriving a filtered solution. \(r_{\text{M}}\) is the filtered position corresponding to the GNSS sampling time. The observations \(\varPhi_{\text{B}} \left( {t_{0} } \right)\) and position increment \(\Delta r_{\text{T}}\) of the moving base are transmitted and received through a communication link with different update rates. The Buffer stores the received historical \(\Delta r_{\text{T}}\) for calculating the accumulated position increment \(\sum {\Delta r_{\text{T}} }\) as well as the predicted increment \(\Delta r_{\text{P}}\). \(\Delta r_{\text{A}}\) refers to the asynchronous baseline given by the ARTK method with observations \(\varPhi_{\text{R}} \left( {t_{1} } \right)\) of the rover and \(\varPhi_{\text{B}} \left( {t_{0} } \right)\) of moving base.

Fig. 6
figure 6

Block diagram of ARTK/TDCP/INS integration in real-time implementation

In summary, the algorithm can be implemented as four steps:

  1. 1.

    ARTK/TDCP integration. To eliminate the common errors between the rover and moving base, we perform the ARTK/TDCP integration for deriving the precise synchronous baseline using (10), i.e., \(\Delta r_{\text{A/T}} = \Delta r_{\text{A}} - \sum {\Delta r_{\text{T}} }\). \(\Delta r_{\text{A/T}}\) forms the backbone of the final higher-rate relative position.

  2. 2.

    INS navigation. Given a prior position, the INS updates the navigation solution to the current INS sampling time recursively. This obtains the position increments over sampling intervals. Therefore, in the implementation, the INS increment can equivalently be obtained by differencing \(r_{\text{I}}\) and \(r_{\text{M}}\), i.e., \(\Delta r_{\text{I}} = r_{\text{I}} - r_{\text{M}}\). Due to short duration, even a MEMS-grade INS can obtain a considerably accurate position increment \(\Delta r_{\text{I}}\), provided a fine initial alignment.

  3. 3.

    Predicting the position increment of moving base. The predicted increment \(\Delta r_{\text{P}}\) is estimated using a polynomial model assuming constant acceleration with stored historical position increments in Buffer.

  4. 4.

    Relative positioning. According to Fig. 5, the higher-rate relative position can be simply computed as

    $$\Delta r_{\text{HRRP}} = \Delta r_{\text{A/T}} { + }\Delta r_{\text{I}} - \Delta r_{\text{P}}$$
    (17)

    The proposed method avoids transmitting the raw INS data at a high rate. Only high-rate position increments and lower-rate raw GNSS data are required. By doing so, the communication burden is reduced to a great extent.

Field test and results

The test was carried out on November 27, 2017, using two vehicles with one being the rover and the other the moving base. A static reference station with a pre-surveyed position was set nearby for post-processing synchronous RTK with the moving base and rover, respectively. The corresponding results are used for calculating a reference for the predicted increment as well as trajectories of the two vehicles. The test setup and static reference station are shown in Fig. 7. Each of the two vehicles was equipped with a prototype MEMS-INS/GNSS integrated system consisting of Sensonor STIM300 MEMS and ComNav OEM-K508 board. The GNSS receiver can provide five frequency observations of BDS/GPS (B1/B2/B3/L1/L2) for real-time navigation and post-processing. The sampling rates were set as 10 Hz and 125 Hz for GNSS receiver and MEMS, respectively. Xtend-PKG 900 MHz RF modems from Digi International Inc. were used to transmit and receive the data packets. The raw observations and TDCP increments of moving base were transmitted at 2 Hz and 10 Hz, respectively. This prototype system was used not only for logging the raw data but also for outputting the real-time solutions. To analyze the relative positioning accuracy, we compared the real-time solutions with reliable post-processed synchronous RTK results of the rover with the moving base. To the best of our knowledge, there is no other reference available with higher accuracy.

Fig. 7
figure 7

Vehicular test setup (top) and static reference station (bottom)

Figure 8 shows the ground trajectories, the baseline between the rover and the moving base vehicle, and the velocities of the two vehicles. The ground trajectories are generated by the post-processed synchronous RTK results of the rover and the moving base relative to the static reference station. The baseline length is given by the post-processed synchronous RTK solution of the rover with the moving base. The velocity of each vehicle is extracted from the real-time integrated solutions.

Fig. 8
figure 8

Ground trajectories (top), baseline length and velocities (bottom) during the test

The test was carried out at an open sky square to maximize satellite visibility. Figure 9 shows the number of satellites (15° elevation mask) and the corresponding position dilution of precision (PDOP) during this test. The number of available satellites is above 14 for more than 89.4% of the epochs. The average number of satellites and the average PDOP is 14.93 and 1.728, respectively. This indicates the geometry is appropriate for assessing the nominal performance of the proposed method.

Fig. 9
figure 9

Number of satellites and PDOP during the test

Performance of ARTK/TDCP integration

The corresponding latency of transmitted observations in this test is shown in Fig. 10 (top). It can be observed that the minimum latency is 0.2 or 0.3 s, and the latencies perform periodically by 0.5 s since the sampling rate of moving base receiver is set as 2 Hz. The relative positioning error and the corresponding statistical values, including the root-mean-square error (RMSE) and the maximum error, are shown in the bottom panel. The relative positioning error is in the millimeter level, and the maximum vertical error is less than 3 cm. It can then be concluded that the ARTK/TDCP positioning accuracy is comparable to the post-processed synchronous RTK solution in the considered communication setup.

Fig. 10
figure 10

Latency of transmitted observations (top) and relative positioning error (bottom) of the real-time solution. The top panel shows only 20 s data for clarity

The relative positioning accuracy is analyzed for different latencies. For convenience, the latency is simulated for post-processing with the logged raw data. The maximum latency of GNSS raw observations is set as the required latencies. The accuracy will deteriorate with the increase in latency, as shown in Fig. 11. The positioning error for 5 s latency is smaller than 5 mm and 1 cm in the horizontal and vertical, respectively, and even if the latency reaches 15 s, which corresponds to severe communication conditions, centimeter-level accuracy can still be guaranteed. The main reason is that the positioning errors of ARTK and TDCP caused by the same systematic errors are roughly comparative, and the integration can mitigate the effects of them.

Fig. 11
figure 11

ARTK/TDCP positioning accuracy for different latencies

Performance of ARTK/TDCP/INS integration

In GNSS/INS integrated systems, relative positioning is triggered after initial alignment, which ensures better accuracy of INS increments of the rover. Afterward, relative positioning proceeds parallel to the absolute integrated navigation to derive a higher-rate output. In this subsection, the real-time relative positioning performance under the real wireless communication environment is discussed, followed by the error analysis of predicted increments, which will be shown is the main factor that undermines the relative positioning accuracy in ARTK/TDCP/INS integration method.

Real-time relative positioning performance

Figure 12 shows the relative positioning error and the corresponding latency of position increments. The latency mainly varies from 0.1 to 0.3 s, and occasionally reaches 0.4 s, which is caused by the packet loss. Since the output rate of post-processed synchronous RTK is 10 Hz, the solution is just compared with that of synchronous RTK at every 0.1 s. To the authors’ knowledge, there is no higher-rate (> 100 Hz) relative position reference available for a moving base case at present. To illustrate the relative positioning error between 0.1 s, the higher-rate relative positioning solution and the synchronous RTK result of four epochs for typical situations, which include following, moving toward each other, moving base on the straight line, and moving base on the turn, are plotted together as shown in Figs. 13 and 14. The yellow, green, and purple circles stand for the 10 Hz synchronous RTK result for the north, east, and down directions, and the black dots show the 125 Hz ARTK/TDCP/INS integration result.

Fig. 12
figure 12

Latency of position increments (top) and higher-rate relative positioning error (bottom) of the real-time solution. The top panel shows only 20 s data for clarity

Fig. 13
figure 13

Four typical situations for illustrating ARTK/TDCP/INS integration positioning accuracy

Fig. 14
figure 14

Comparison of ARTK/TDCP/INS integration and post-processed synchronous RTK solutions of four epochs for typical situations

As shown in Fig. 14, the proposed method improves the output rate of relative positioning to 125 Hz, whereas post-processed synchronous RTK can only obtain a 10 Hz rate output. Apparently, the accuracy of relative positioning must be sacrificed for the update rate of outputs. From Fig. 12, compared with ARTK/TDCP integration positioning, the accuracy becomes a slightly worse and the vertical accuracy is better than the horizontal accuracy. The main reason will be analyzed in the next sub-subsection.

Error of predicted increments

According to (17), the relative positioning performance depends on the accuracies of ARTK/TDCP integration positioning, INS navigation, and position increment prediction. Among them, the INS navigation accuracy between the measurement update epochs is independent of latency. The errors of ARTK/TDCP integration for different latencies are analyzed in the previous subsection. The following will analyze the error of predicted increments with the increase in latency.

The reference value for the predicted increment is obtained by differencing the synchronous RTK results of the compared epochs between the moving base and the static reference station, as shown in Fig. 15. \(\Delta r_{\text{SRTK}} (t_{1} )\) and \(\Delta r_{\text{SRTK}} (t_{2} )\) are the synchronous RTK results of \(t_{1}\) and \(t_{2}\), and \(\Delta r_{R} = \Delta r_{\text{SRTK}} (t_{2} ) - \Delta r_{\text{SRTK}} (t_{1} )\) is the corresponding reference value for the predicted increment from \(t_{1}\) to \(t_{2}\). \(\Delta r_{\text{P}}\) is the predicted increment by the polynomial model with stored historical position increments. Then, the error can be derived by differencing \(\Delta r_{\text{P}}\) with \(\Delta r_{\text{R}}\).

Fig. 15
figure 15

Scheme for analyzing the error of predicted increments

The same data set is used to analyze the error of predicted increments. Figure 16 shows the error for 0.2 s prediction, which is a typical value considering the real-time latency in Fig. 12(a). Periodic spikes are observed, and the maximum horizontal error is about 9 cm. This is because the moving base vehicle turns periodically, and the polynomial model is not suitable to describe its dynamics. The vertical accuracy is better since the vehicle moves on the ground and the vertical acceleration is small.

Fig. 16
figure 16

Position increment error for 0.2 s prediction

Figure 17 shows the RMSE for different prediction times. The RMSE for 0.2 s prediction is less than 2 cm for the three directions. However, the prediction accuracy deteriorates rapidly along with the increase in prediction time. Centimeter-level accuracy can be guaranteed if the prediction time is less than 0.6 s. The maximum error reaches 26 cm for 1 s prediction. It is thus found that it is difficult to accurately predict the trajectory of moving base especially when the base vehicle maneuvers suddenly. Fortunately, in applications with concerns of safety and efficiency, the maneuverability of base vehicles for moving base applications is reasonably weak, such as formation flight, the shipboard landing of aircraft, and aircraft aerial refueling.

Fig. 17
figure 17

Accuracy of predicted increments for different prediction times

Regarding the latency of position increments in real-time navigation, it can be concluded that the error of predicted increments is the main factor that undermines the relative positioning accuracy in ARTK/TDCP/INS integration. Decimeter-to-centimeter-level higher-rate (> 100 Hz) relative positioning results can be derived, depending on the prediction times of position increments.

Conclusion

We proposed an ARTK/TDCP integration method to achieve low-latency, high-rate, and high-precision relative positioning with a moving base. The ARTK method directly uses asynchronous double-difference observations to obtain an accurate asynchronous baseline. The position increments of the moving base during the latency can be calculated using TDCP observations. The combination of the asynchronous baseline and position increments of moving base derives the final solution. To accomplish this combination, one needs to transmit the position increments of moving base at a high rate, whereas the raw GNSS observations can be transmitted at a lower rate. This dramatically lightens the burden of the communication link and thus, the data can be transmitted and received reliably. The method addresses the latency issue encountered in real-time relative positioning with moving base, and its performance is demonstrated by a field test with two moving vehicles. Results demonstrate that the positioning accuracy is comparable to the synchronous RTK solutions when the latency is less than 1 s and is still centimeter-level when the latency reaches 15 s. When applied to GNSS/INS integrated systems with a few modifications, centimeter-level and higher-rate (> 100 Hz) relative positioning results can be derived if the latency of position increment is less than 0.6 s. Decimeter-to-centimeter-level higher-rate (> 100 Hz) relative positioning results can be derived, depending on the latencies of TDCP increments. Improving the performance of the proposed method in urban areas with multipath mitigation and fault detection and exclusion is considered as future work.