Introduction

A ubiquitous and reliable vehicular positioning system is fundamental for road safety and the overall efficiency of transport systems. Although Global Navigation Satellite Systems (GNSS) are widely used in the transport domain, and often integrated with other sensors, such as Inertial Measurement Units (IMU), vehicle positioning and navigation in urban areas is still a challenge (Feng and Ochieng 2007a, b). This is because the level of performance of the integrated positioning system, for example, in terms of accuracy, can be severely degraded in built environments due to unacceptable GNSS measurement errors. These mainly arise from non-line-of-sight (NLOS) signal reception and signal multipath effects. Therefore, to improve positioning accuracy, quality control of GNSS measurements within an integrated architecture is essential.

Currently, quality control methods include measurement weighting and Failure Detection and Exclusion (FDE). Measurement weighting-based quality control techniques are widely used to mitigate the effects of multipath/NLOS signals for GNSS/IMU integrated systems (Bhatti et al. 2007; Soloviev and Graas 2008; Meguro et al. 2009; Xu et al. 2020; Groves 2011). The transferability of these techniques to different environments with varying operational characteristics is an open issue, however. In that context, and driven by mission criticality, e.g., the need for safe and secure location-based services in urban areas, FDE algorithms are receiving increasing attention (Zhu et al. 2018). Initially developed for aviation, most of the FDE algorithms to date are not directly transferable to dynamic applications, e.g., transport in urban areas. Compared to the aviation environment, the urban environment, in general, has reduced measurement redundancy, and there is an increased likelihood of multiple failures simultaneously influenced by large and rapidly varying errors due to NLOS and multipath (Salos et al. 2014). Hence, hybridization techniques involving GNSS and other sensors/spatial data are used considering the characteristics of urban environments and location-based services (Li et al. 2021). This requires corresponding FDE methods, e.g., positioning information with map-matching for land vehicle navigation (Velaga et al. 2012; Toledo-Moreo et al. 2010). However, a basic single-failure based FDE algorithm is not suitable for the urban environment, where multiple simultaneous failures are more likely due to the nature of the physical environment and its impact on GNSS signals such as NLOS and multipath.

More advanced recursive consistency checking-based methods can exclude multiple faults, however, and this could be of potential benefit for urban applications. Castaldo et al. (2014) proposed a failure detection and exclusion algorithm based on the Random Sample Consensus (RANSAC). It calculates position solutions based on subsets of four satellites, predicts pseudoranges out of the subset and conducts pseudorange comparison for outlier detection. Blanch et al. (2015) proposed a greedy search and L1 norm minimization combinatorial method for multiple FDE with pseudorange errors above 20 m. Similarly, Hsu et al. (2017) used greedy and exhaustive methods to improve the consistency checking of the FDE process. These consistency-based fault exclusion algorithms are only effective when at least six satellites can be observed, however. Kaddour et al. (2015) proposed a multiple faults detection algorithm excluding pseudorange faults based on observation projection on the information space. In the designed Kalman Filter (KF) process, the state vector is based on the simple difference, with the satellite of the highest elevation angle being the reference at each epoch. In urban canyons, however, the rapid changes in reference satellites reduce the performance of the algorithm.

As discussed above, the current GNSS measurement quality control algorithms have weaknesses. Although their effectiveness in mitigating multipath/NLOS for static applications in urban environments has been demonstrated, challenges remain for dynamic applications, including vehicle positioning and navigation (Abousalem and Krakiwsky 1993; Feng and Ochieng 2007a, b; Feng et al. 2006; Yang et al. 2014). We, therefore, present a new multiple GNSS FDE algorithm for vehicle navigation in urban environments. The proposed algorithm is based on an IMU-aided dynamic online dataset generation scheme with a sliding window and a detector in parallel, which contains the latest features of the pseudoranges in the urban areas to achieve high accuracy and fast FDE in changing environments. The proposed algorithm can be used for measurement quality control in GNSS/IMU integrated systems.

Delta position from IMU mechanization

The basic frames for IMU include the inertial frame (i-frame), body frame (b-frame), navigation frame (n-frame) and Earth Centered Earth Fixed coordinate frame (e-frame). After a series of transformations, i.e., IMU mechanization, the velocity increment can be obtained with the Coriolis and gravity correction applied (Shin 2001; Fang and Cho 2015):

$$\begin{aligned} \Delta v^{n} = & \Delta v_{f}^{n} - \left( {2\omega_{ie}^{n} + \omega_{en}^{n} } \right) \\ & \times v^{n} \Delta t + g^{n} \Delta t \\ \end{aligned}$$
(1)

where \(\Delta v_{f}^{n}\) is the velocity increment in the n-frame without correction, \(\omega_{ie}^{n}\) is the angular velocity vector of the e-frame with respect to the i-frame projected to the n-frame, \(\omega_{en}^{n}\) is the angular velocity vector of the n-frame with respect to the e-frame projected to the n-frame, \(v^{n}\) is the velocity in the n-frame; \(g^{n} = \left( {\begin{array}{*{20}c} 0 & 0 & g \\ \end{array} } \right)^{{\text{T}}}\), \(\Delta t\) is the time increment for the time interval \(\left( {t_{k - 1} ,t_{k} } \right)\) and \(g\) is the local gravity. Then, the velocity can be obtained as:

$$v_{k}^{n} = v_{k - 1}^{n} + \Delta v_{k}^{n}$$
(2)

here the subscripts ‘\(k\)’ and ‘\(k - 1\)’ represent time epochs \(t_{k}\) and \(t_{k - 1}\), respectively. Using the second-order Runge–Kutta method, we obtain the delta position for the time interval \(\left( {t_{k - 1} ,t_{k} } \right)\) in the n-frame:

$$\Delta X_{k}^{n} = 0.5\left( {v_{k - 1}^{n} + v_{k}^{n} } \right)\Delta t$$
(3)

Transformation of the delta position from the n-frame to the e-frame is by:

$$\Delta X_{k}^{R} = C_{n}^{e} \Delta X_{k}^{n}$$
(4)

where \(C_{n}^{e}\) is the DCM from the n-frame to the e-frame. The delta position \(\Delta X_{k}^{R}\) is used for the transition model in the next subsection.

Transition model and hypotheses for GNSS measurements

The GNSS measurements here refer to pseudoranges, which are critical for GNSS positioning. The pseudorange measurement can be expressed as:

$$\rho = r + c\left( {{\text{d}}t_{R} - {\text{d}}t^{S} } \right) + I_{\rho } + T_{\rho } + \varepsilon_{\rho }$$
(5)

where \(r\) is the geometric range from the satellite to the receiver; \(I_{\rho }\) and \(T_{\rho }\) are ionosphere delays and troposphere delays, respectively; \({\text{d}}t_{R}\), \({\text{d}}t^{S}\) and \(\varepsilon_{\rho }\) are the receiver clock error, satellite clock error and other unmodeled errors, respectively. Based on the derivations in Sun et al. (2020), Time Differenced Pseudorange (TDPR) measurement can be expressed as:

$$\Delta \rho_{k} = \vec{r}_{k} \Delta \left( {\Delta X_{k}^{S} - \Delta X_{k}^{R} } \right) + c\Delta {\text{d}}t_{{R_{k} }} + \Delta \varepsilon_{{\rho_{k} }}$$
(6)

where \(\vec{r}_{k}\) is the unit vector pointing from the receiver position to the satellite, \(\Delta X_{k}^{S}\) and \(\Delta X_{k}^{R}\) are the geometric range variation of satellite and receiver between two epochs. \(c\Delta {\text{d}}t_{{R_{k} }}\) is the change in receiver clock error at two epochs, and \(\Delta \varepsilon_{{\rho_{k} }}\) is the remaining error unremovable through time differencing.

Satellites move in a circle around the earth with a radius of about 20,000 km. Over a short period of time, therefore, e.g., few seconds, the motion can be considered to be uniform and linear, and this means that the \(\Delta X_{k}^{S}\) of a satellite can be treated as equal between two adjacent epochs. At the same time, the \(\Delta X_{k}^{R}\) of a vehicle can be obtained using the IMU mechanization method in the previous subsection. Since the sampling rate of IMU is higher than that of GNSS, it is necessary to recurse continuously to make it match the time interval of GNSS. Then, Eq. (6) can be rewritten as:

$$\Delta \rho_{k} + \vec{r}_{k} \cdot \Delta X_{k}^{R} - c\Delta {\text{d}}t_{{R_{k} }} = \vec{r}_{k} \cdot \Delta X_{k}^{S} + \Delta \varepsilon_{{\rho_{k} }}$$
(7)

here, we use hypothesis testing to deal with the receiver clock drift \(c\Delta dt_{{R_{k} }}\).

For H0: the receiver clock drift is 0

$$\Delta \rho_{k} + \vec{r}_{k} \cdot \Delta X_{k}^{R} = \vec{r}_{k} \cdot \Delta X_{k}^{S} + \Delta \varepsilon_{{\rho_{k} }}$$
(8)

and H1: the receiver clock drift is not 0.

$$\Delta \rho_{k} + \vec{r}_{k} \cdot \Delta X_{k}^{R} - c\Delta {\text{d}}t_{{R_{k} }} = \vec{r}_{k} \cdot \Delta X_{k}^{S} + \Delta \varepsilon_{{\rho_{k} }}$$
(9)

Based on (8) and (9), the Kalman filter can be specified.

Algorithm framework

The flowchart for the proposed algorithm is shown in Fig. 1. The structure contains three parts: initial database generation, online FDE and state estimation based on integration. In order to avoid the need for historical information, the Suggestion Range Consensus (S-RANCO) method is adopted via satellite subsets for the initialization of the proposed algorithm (Schroth et al. 2008). In S-RANCO, all possible satellite subsets are first sorted from the smallest to the largest by their Position Dilution of Precision (PDOP) values. Then, based on the positioning results of each subset, the outliers for each subset are detected by range comparisons. The times of the satellite determined as an outlier are counted, with the satellite with the maximum accumulated time being more likely to be faulty. Then, the non-faulty satellites are determined as normal satellites. The initial database is then constructed on the basis of these determined faulty satellites and normal satellites. This a priori data can also be used to determine the thresholds for the subsequent online FDE process. Furthermore, this initialization does not have to be carried out in open areas but can also be done in relatively open streets or intersections in cities in a matter of seconds to several minutes.

Fig. 1
figure 1

System framework of the proposed algorithm. After initialization, GNSS and IMU measurements are used together to find out normal pseudoranges with the help of a sliding window and a detector in the online FDE part. After that, the normal pseudoranges are combined with IMU data to obtain the estimated vehicle state in the integration part

For the online FDE, once a pseudorange at the current epoch is received, the corresponding satellite is classified according to its status at the last epoch, i.e., as normal or non-trusted. If the satellite was determined as normal at the last epoch, the sliding window is triggered. Otherwise, the detector D is initiated.

Once a sliding window is triggered, the innovations from the Kalman filter based on the double hypotheses at that epoch will be addressed by the windowing. The H0 hypothesis is proposed as opposed to the H1 hypothesis, based on the GNSS measurement model aided by the IMU mechanization. The innovations are initially H0 based at each epoch, and the sliding window moves over them afterward. After the window sliding, if there are fewer than \(N_{{{\text{sat}}}}\) available satellites, all satellites are designated as faulty at the current epoch. Here, \(N_{{{\text{sat}}}}\) is the minimum number of satellites for positioning, i.e., four for one constellation and five for two. Otherwise, we could at the end achieve the longest sliding window, inside which are at least \(N_{{{\text{sat}}}}\) satellites. Then, these satellites inside the window are considered normal for the current epoch while those outside are faulty.

When a satellite was faulty or not tracked at the last epoch, detection is initiated, with detector D generated based on the estimated position and receiver clock error from GNSS/IMU integration and pseudorange prediction. If the absolute value of D, namely |D|, is below the threshold T, the corresponding satellite is determined as normal. Otherwise, it is faulty.

All visible satellites determined as faulty are excluded at the current epoch, either by the sliding window or detector D, while those determined as normal are organized for GNSS/IMU integration. Here, measurements from GPS/Beidou constellations are combined and the loosely coupled scheme is used for the integration due to its fast calculation speed and simple structure.

Hypotheses-based window sliding through KF innovation


In the designed KF, based on the defined GNSS transition model, the projection of satellite displacement on the line-of-sight vector within an epoch is defined as the state vector in (10), and the observation vectors under H0 or H1 hypothesis are (11) and (12), respectively.

$${\mathbf{X}} = \left[ {\vec{r}_{k} \cdot \Delta X_{k}^{s} } \right]$$
(10)
$${\text{For}}\,H_{0} :\,{\mathbf{Z}} = \left[ {\Delta \rho_{k} + \vec{r}_{k} \cdot \Delta X_{k}^{R} } \right]$$
(11)
$${\text{and}}\,H_{1} :\,{\mathbf{Z}} = \left[ {\Delta \rho_{k} + \vec{r}_{k} \cdot \Delta X_{k}^{R} - c\Delta dt_{{R_{k} }} } \right]$$
(12)

Ideally, for a given satellite, the projection of satellite displacement on the line-of-sight vector between epochs is assumed to be constant within several seconds. The state transition and observation equations are therefore constructed as follows:

$${\mathbf{X}}_{k} = A{\mathbf{X}}_{k - 1} + {\mathbf{W}}_{k}$$
(13)
$${\mathbf{Z}}_{k} = B{\mathbf{X}}_{k} + {\mathbf{V}}_{k}$$
(14)

where the state transition matrix \(A\) and observation matrix \(B\) are both identity matrices. \(W_{k}\) and \(V_{k}\) are the Gaussian white noise with covariance Q and R, respectively.

The innovation of the filter, \(e_{k}\), is used as a measure of whether a satellite that was normal at the last epoch is normal at the current epoch, according to the following process. The transition model in the KF process is used to predict the projection of satellite displacement on the line-of-sight vector of the observed satellite, and the state transition equation is established with the assumption H0. Meanwhile, the projection of satellite displacement on the line-of-sight vector in (11) can be obtained as an observation. Thus, the innovation is the difference between the predicted and observed projections of satellite displacement. It is worth noting that the changes of observed satellite displacement projection could be caused by either a real fault of the satellite or clock drift, but each has a different effect on the projection changes. A real fault results in different projection changes with different satellites due to NLOS signals received from different directions in urban areas, while clock drift results in errors of similar magnitudes for every displacement projection. The variance in the innovations can therefore be used to determine the cause of projection changes at a given epoch, expressed as:

$$S^{2} = \frac{1}{n - 1}\mathop \sum \limits_{i = 1}^{n} \left( {e_{k}^{i} - \overline{e}_{k} } \right)^{2}$$
(15)

here n is the number of satellites; \(e_{k}^{i}\) is the KF innovation of each satellite at epoch \(t_{k}\); \(\overline{e}_{k}\) is the mean of all KF innovations at epoch \(t_{k}\), and \(S^{2}\) is the variance.

The distribution of the \(e_{k}\) variance value is shown in Fig. 2. It is obvious that if the projection differences are caused by clock drift, the variance \(S^{2}\) must be below a predetermined threshold 8.86, i.e., 99.9% (Gatti 1984). Otherwise, the observed satellite displacement projections are considered to be affected by NLOS (i.e., a real fault). \(S^{2}\) exceeds the threshold when at least one faulty satellite is received, but there is still a possibility for us to use the remaining normal satellites left for positioning and navigation. To make better use of normal satellites concealed by faulty satellites, a specialized sliding window aided by innovation variance \(S^{2}\) is designed in Fig. 3. The satellites in the window after the windowing process are considered as normal, while the remaining satellites outside are considered as faulty. For this, we calculate the mean value of \(e_{k}\) for all the normal satellites, denoted as \(\overline{e}_{k}\), which is considered to be the receiver clock drift at that epoch. Then, substitute \(Z_{k}^{^{\prime}} = \left[ {\Delta \rho_{k} + \vec{r}_{k} \cdot \Delta X_{k}^{R} - \overline{e}_{k} } \right]\) for \(Z_{k} = \left[ {\Delta \rho_{k} + \vec{r}_{k} \cdot \Delta X_{k}^{R} } \right]\) and re-do the filter process for the current epoch. Afterward, the filter is continued to the next epoch.

Fig. 2
figure 2

Distribution of the \(e_{k}\) variance based on initialization data

Fig. 3
figure 3

Window sliding over Kalman filter innovations. Innovations, \(e_{k}\), are sorted from left to right, from smallest to largest. The second and the third lines are two opposite situations right after the first line

Construction of detector D with the threshold

When vehicles move within a changing physical environment, there may be a change in the status of observed satellites, such as new satellites being tracked and those recovering from faults. Since the sliding window is aimed at self-checking the normality of current satellites, it cannot be used to check whether those either not tracked or faulty at the last epoch are now usable for positioning. Therefore, a detector for such satellites is constructed based on observed and predicted pseudoranges, as detailed in Fig. 4. The pseudorange prediction equation is:

$$\tilde{\rho }_{k} = \tilde{r} + c\left( {{\text{d}}t_{R} - {\text{d}}t^{S} } \right) + I_{\rho } + T_{\rho }$$
(16)

where \(\tilde{\rho }_{k}\) is the predicted pseudorange, \(\tilde{r}\) is the distance between the satellite position and vehicle position, calculated recursively from the integrated results at the last epoch and the latest IMU data from the last to the current epoch. \({\text{d}}t_{R}\) is the estimated receiver clock error obtained from GNSS positioning. \(I_{\rho }\) and \(T_{\rho }\) are the modeled ionospheric and tropospheric errors.

Fig. 4
figure 4

Generation of Detector D


By subtracting the predicted pseudorange \(\tilde{\rho }_{k}\) from the observed pseudorange \(\rho_{k}\), we get:

$$R_{k} = \rho_{k} - \tilde{\rho }_{k}$$
(17)

It is worth noting that the distribution of \(R_{k}\) relates to the different measurement quality features of satellites, such as elevation and satellite clock error. To facilitate the setting of a unified standard for the \(R_{k}\) of all visible satellites, we record the mean value μ and standard deviation \(\sigma\) of \(R_{k}\) for each satellite from the offline initialization and normalize the \(R_{k}\) as follows:

$$D^{j} = (R_{k}^{j} - \mu )/\sigma$$
(18)

where \(j\) is the satellite number, and D is used to detect untrusted satellites by comparing |D| with the threshold T. The two parameters, μ and \(\sigma\), vary with satellite elevation and surrounding receiver environment. Since the locations for initialization and testing are close to each other, i.e., within an hour of driving, it is assumed that the parameters remain unchanged.

Since the detector is assumed to exhibit a normal distribution, the threshold is determined according to the required navigation performance for vehicle navigation and mathematical rules of the Gaussian distribution. The \(3\sigma\) principle can be used to determine the threshold for the detector (Gatti 1984). The threshold T has been set based on prior initialization data at 5 m, which is larger than \(3\sigma\) (3 for standard normal distribution) but sensitive enough for the detection of small errors.

GNSS/IMU integration

A GNSS/IMU loosely coupled scheme is designed by integrating the position calculated from normal pseudoranges after FDE with the IMU to compute the state of the vehicle. For GNSS positioning, pseudoranges from GPS and Beidou constellations are combined to calculate the vehicle position and receiver clock error via the least square positioning method. Then, an Extended Kalman Filter (EKF)-based model is designed for the GNSS/IMU fusion to estimate the vehicle state, i.e., position, velocity and attitude (Hwang et al. 2005).

Simulations

GNSS and IMU data are simulated along the trajectory shown in Fig. 5. The main parameters of the simulation experiment were set as follows: GPS constellation over a period of 551 s, nine visible satellites (PRN 1, 2, 8, 11, 12, 20, 22, 23, 24), and GNSS receiver and IMU sampling rates of 1 Hz and 50 Hz, respectively. The two cases in Table 1 were specified in order to compare the proposed algorithm with a traditional GNSS/IMU loosely coupled method and a S-RANCO based method, where S-RANCO is applied throughout the entire time period.

Fig. 5
figure 5

Trajectory of the simulated test

Table 1 Test cases with different sizes of faults added to pseudorange measurements

In test case 1, we randomly chose a satellite and added 10 m, 20 m and 30 m step errors in that order for a period of 30 s. The three step errors were added to the pseudoranges of PRN 2 GPS satellite during the period 150–180 s. Their correct detection rates and positioning errors in terms of the Root Mean Square Error (RMSE) are shown in Table 2. It can be seen that the proposed algorithm achieved a correct detection rate of 100% and a 3D positioning accuracy of 1.91 m (RMSE) with single step errors of 10 m, 20 m and 30 m, while without FDE, the corresponding positioning accuracies were 6.41 m, 11.71 m and 17.06 m, respectively. As for the S-RANCO based GNSS/IMU integrated algorithm, the positioning accuracy results were 6.41 m, 7.63 m and 1.91 m, respectively, for corresponding correct detection rates of 0%, 53.3% and 100%. The results in Fig. 6 imply that when the step error was 20 m, the S-RANCO based algorithm could slightly improve positioning accuracy under a 53.3% correct detection rate. The positioning performance for correctly detected epochs is reduced, however, when faults in the process of GNSS integration with IMU are not correctly detected in epochs before or after the current epoch. Hence, the correct detection rates are critical for the whole positioning process.

Table 2 Comparison of the performance of the proposed algorithm and the S-RANCO based method given a single step error
Fig. 6
figure 6

Positioning errors of the traditional method without FDE, comparative method and proposed method with single step error

In test case 2, we repeated the experiment ten times. For every randomly selected time period of 30 s, we randomly chose two observed satellites and added two step errors to their pseudoranges. Four combinations of step errors were used: 10 m and 10 m, 10 m and 50 m, 30 m and 30 m, 30 m and 50 m. The four combinations of step errors were added to the pseudoranges of the GPS satellites PRN 2 and PRN 12 GPS during the period 150–180 s. From Table 3, it can be seen that the proposed algorithm achieves a 100% correct detection and positioning accuracy of 1.95 m, even with two step errors of 10 m added to the two satellites. In contrast, the S-RANCO based algorithm is unable to detect 10 m and 50 m step errors correctly at the same time. It detects two step errors of 30 m with a detection rate of only 40% and two step errors of 30 m and 50 m with a 100% detection rate. Figure 7 shows the positioning errors of the methods when there were dual step errors. For two step errors of 30 m, although the correct detection rate is 40%, the positioning accuracy only improves from 19.91 to 17.12 m.

Fig. 7
figure 7

Positioning errors of the traditional method without FDE, comparative method and proposed method with dual step errors

Table 3 Comparison of algorithm performance with dual step errors between the proposed method and S-RANCO based method

Real test validation

In the real test, vehicle data were collected in Kaohsiung City, Taiwan, China. The raw pseudorange measurements were collected from a Novatel PwrPak7 GNSS receiver at a sampling rate of 1 Hz, while the IMU raw data were collected from a Bosch BMI055, at a sampling rate of 50 Hz. The references of two trajectories used in the experiment were determined by post-processing of data from an integrated high grade GNSS receiver and iNAV-RQH IMU with the commercial software NovAtel Inertial Explorer. The initialization time was about 1 min. Table 4 shows the statistical values of the initialization corresponding to the PRN of visible satellites in the experiments.

Table 4 Statistical values of the initialization for GPS and Beidou satellites in view

Test case 1 was conducted on the highway in a mid-urban environment, depicted in Fig. 8. The test route is shown in Fig. 9, and the values of PDOP are illustrated in Fig. 10. Figure 11 depicts the number of Space Vehicles (SVs) before and after FDE and the corresponding PRNs of faulty SVs. Although the number of available satellites decreases after FDE, measurements with low quality have been excluded, and thus, the positioning results can be improved most of the time.

Fig.8
figure 8

Environments of test case 1

Fig. 9
figure 9

Vehicle trajectory in test case 1

Fig. 10
figure 10

PDOP in test case 1

Fig. 11
figure 11

Number of satellites before and after FDE (left) and PRNs of faulty SVs (right) in test case 1

The comparison results of the schemes are shown in Fig. 12 and Table 5, while Figs. 13 and 14 depict the estimation results of, respectively, the bias and scale factor of the gyroscope and accelerometer in the three fusion schemes. It is clear that the proposed FDE-based GNSS/IMU integration algorithm is superior to the other two schemes. From Table 5, we can see that the 3D position RMSE from the proposed scheme is improved by 14.7% when compared to the traditional method, with improvements of 6.7% and 20.5% in the horizontal and vertical components, respectively. For the S-RANCO based scheme, however, the improvement is the same as the proposed one in the horizontal dimension, but the performance in the vertical direction deteriorates by 6.4% due to its inability accurately to detect faulty satellites in urban areas. The comparison of velocity and attitude in terms of RMSE for the three algorithms is shown in Table 6. Since GNSS only provides position updates in these algorithms, the velocity and attitude estimations mainly rely on the performance of IMU. Thus the measurement of faulty pseudoranges provided by the GNSS may have only a limited influence on these estimations. For the proposed algorithm, the RMSE for the 3D velocity was 0.56 m/s, representing a 0.02 m/s improvement over that of the traditional one, while the S-RANCO based fusion algorithm gives an RMSE for 3D velocity of 0.59 m/s. In the attitude components of roll and pitch, there is a slight improvement of the RMSE with the proposed algorithm, while it is degraded a little with the S-RANCO based algorithm. Moreover, the RMSE of the pitch is degraded both for the S-RANCO based algorithm and the proposed algorithm.

Fig. 12
figure 12

Positioning errors of GNSS/IMU integration schemes in test case 1

Table 5 Performance comparison in terms of position RMSE provided by three GNSS/IMU integration schemes in test case 1
Fig. 13
figure 13

Three axes of acceleration bias (left) and scale factor (right) in test case 1. The green line is estimated by the traditional GNSS/IMU integration scheme, the red line by the S-RANCO based GNSS/IMU integration scheme, the blue line by the proposed integration algorithm

Fig. 14
figure 14

Three axes of gyroscope bias (left) and scale factor (right) in test case 1. The green line is estimated by the traditional GNSS/IMU integration scheme, the red line the by S-RANCO based GNSS/IMU integration scheme, the blue line by the proposed integration algorithm

Table 6 Performance comparison in terms of RMSE for velocity and attitude provided by three GNSS/IMU integration schemes in test case 1

Test case 2 is in a deep urban environment, see Figs. 15 and 16. The PDOP is shown in Fig. 17, the value of which exceeds 12 at some epochs. The change in the number of SVs is shown in Fig. 18, along with the details of faulty satellites for each epoch. The positioning accuracy from the integration schemes is shown in Fig. 19, and the corresponding numerical analysis in terms of RMSE is presented in Tables 7 and 8. Due to the more severe signal reception environment, with more NLOS and multipath due to objects including high buildings, and dense trees, the results of the three schemes are much worse than those for test case 1. The PDOP values in test case 2 are much larger than in test case 1 on the whole, see Figs. 10 and 17. The three axes of the bias and scale factor of the gyroscope and accelerometer in test case 2 are shown in Figs. 20 and 21, respectively. From Table 7, it can be seen that the improvements in positioning accuracy arising from the FDE-based GNSS/IMU integrated positioning algorithm were 14.3%, 5.2% and 25.0% in the east, north and up direction, respectively, compared with that from traditional GNSS/IMU integrated navigation. The S-RANCO based algorithm provides improvements of 2.3% and 17.5% in the east and up directions, respectively, but the performance in the north direction is degraded by 34.4%. The low FDE performance of the S-RANCO based algorithm in the urban areas results in limited improvements, or even deteriorations, in the integrated positioning performance.

Fig.15
figure 15

Environments of test case 2

Fig. 16
figure 16

Vehicle trajectory in test case 2

Fig. 17
figure 17

PDOP in test case 2

Fig. 18
figure 18

Number of satellites before and after FDE (left) and PRNs of faulty SVs (right) in test case 2

Fig. 19
figure 19

Positioning errors of GNSS/IMU fusion schemes in test case 2

Table 7 Performance comparison in terms of position RMSE provided by three GNSS/IMU fusion schemes in test case 2
Table 8 Performance comparison in terms of RMSE for velocity and attitude provided by three GNSS/IMU fusion schemes in test case 2
Fig. 20
figure 20

Three axes of acceleration bias (left) and scale factor (right) in test case 2. The green line is estimated by the traditional GNSS/IMU integration, the red line by the S-RANCO based GNSS/IMU integration scheme, the blue line by the proposed integration algorithm

Fig. 21
figure 21

Three axes of gyro bias (left) and scale factor (right) in test case 2. The green line is estimated by the traditional GNSS/IMU integration scheme, the red line by the S-RANCO based GNSS/IMU integration scheme, the blue line by the proposed integration algorithm

Conclusions

We have developed a new IMU-aided multiple GNSS fault detection and exclusion algorithm for navigation in urban areas. The experimental results in mid to deep urban environments show that the proposed integration algorithm can improve positioning accuracy over the traditional GNSS/IMU algorithm by about 20%.