Introduction

The inertial navigation system (INS) and global position system (GPS) integrated navigation system is widely used in many applications, such as airborne navigation system (Fang and Yang 2011; Abdolkarimi et al. 2018) and vehicle navigation system (Wang et al. 2018). However, the GPS signal is easy to be interrupted and cannot be used indoor environments in the city, such as tunnel, underground parking, and so on. In the past, the high-precision INS provided an accurate position to bridge GPS outages. The accuracy of the position depends on the precision of INS and the length of GPS outages. With the development of micro-electro mechanical system (MEMS) technology, the volume and cost of the INS system reduce effectively, but accuracy also is reduced. Therefore, with MEMS-INS, it is hard to provide an accurate position in GPS outages.

Many existing methods focus on training the relation between the INS measurements and position errors using artificial intelligence (AI) learning algorithms when GPS is available. Then, the position errors can be predicted by trained AI for bridging GPS outages. The radial basis function neural networks (RBFNN) can be used to predict INS position and velocity errors for correcting position (Semeniuk and Noureldin 2006). This technique is called the AI-based segmented forward predictor (ASFP). It triggers the research about AI learning algorithms in the integrated navigation system, especially during GPS outages, but it ignores the relation between the position errors and the past INS outputs. Considering this relation, INS/GPS integration using dynamic neural networks is provided (Noureldin et al. 2011). This method uses the current and past INS outputs, which lead to a more reliable position result. For more accurate positioning results during GPS outages, random forest regression (RFR) is first used to predict the position errors (Adusumilli et al. 2013). RFR can provide a more accurate model for high nonlinear INS errors. Compared with the neural networks, RFR reduces the position errors by 24–56%. However, RFR has a disadvantage that it cannot handle both linear and nonlinear input–output relationships effectively. Thus, a hybrid method of RFR and principal component regression (PCR) is proposed for fusing INS and GPS to bridge the period of GPS outages (Adusumilli et al. 2015). The multiple-decrease factor cubature Kalman filter (MDF-CKF) is proposed to assist RFR for improving the robustness during GPS outages (Zhang et al. 2018). But, RFR may have a long training time. Extreme learning machine (ELM) is designed to predict the position errors as it just needs a shorter training time (Zheng et al. 2016; Xu et al. 2018). From the above methods, we can conclude that most of the positioning methods using AI learning algorithms concentrate on the relation between INS measurements and INS position errors. But due to the characteristic of INS, it is inevitable that these methods will still lead to position error accumulation and even divergence.

With the development of MEMS technology, the low-cost MEMS-INS module or chip usually includes a magnetometer. The existing studies about magnetometer mainly focus on calibration and correcting heading angle, but they ignore the relation between magnetometer and position. Hence, we propose an INS/magnetometer integrated positioning method for bridging the long-time GPS outages. This method mainly includes four modules: the magnetic fields update module with adaptive extended Kalman filter (AEKF), predictor by AI, INS/GPS integration, and INS/position integration. The INS/magnetometer integration can provide the stable geomagnetic fields by adaptive extended Kalman filter (AEKF), and then, the relation between geomagnetic fields and position from INS/GPS integration can be built based on predictor by AI when GPS is available. During GPS outages, the position can be predicted by the trained AI, but this position may be discrete and have a large noise. Hence, the predicted position and INS are integrated by AEKF for more continuous and accurate position result. The main contributions can be summarized as follows.

  1. (1)

    Different from the traditional method based on the relation between the INS measurements and position errors, we build the relation between the geomagnetic fields and the absolute position. This scheme can ensure that the position errors will not accumulate or diverge regardless of duration of GPS outage if sufficient datasets for training are ensured. The datasets should collect geomagnetic fields observations and positions as much as possible, and the data should be uniformly distributed over the target area. If possible, the resolution of data should be smaller than 1 m.

  2. (2)

    We employ the cascading framework of AEKF-AI-AEKF. This framework can provide a stable input into the predictor by AI under training mode. In predicting mode, the position predicted by AI is integrated with INS by AEKF for the stable, continuous, and accurate position.

The next section gives an overview of the proposed method. Then, every part of the proposed method is introduced clearly, and the results of the simulation and the actual driving test are presented. Finally, conclusions are discussed.

Overview of the proposed method

For the accurate position during GPS outages, we propose a positioning scheme based on INS/magnetometer integration. However, the premise of this scheme is that position and magnetometer must have a relation. The analysis process of the relation between magnetometer and position will be introduced as follows.

First, there are two important frames that need to be defined. The navigation frame (n-frame) is located on the vehicle. It points to east, north, and upward. The body frame (b-frame) is fixed on the vehicle. Its x-axis and y-axis point to the right and forward of the vehicle, and z-axis follows the right-hand rule.

Based on the 12th generation of international geomagnetic reference field (IGRF) (Thébault et al. 2010), the internal geomagnetic field \( \vec{B}\left( {r,\theta ,\phi ,t} \right) \) and its annual rate of change have been set. On the surface of the earth, the geomagnetic fields \( \vec{B} \) are defined to satisfy \( \vec{B} = - \nabla V \), in which the spherical polar coordinates \( V \) are defined as follows.

$$ V\left( {r,\theta ,\phi ,t} \right) = a\sum\limits_{n = 1}^{N} {\sum\limits_{m = 0}^{n} {\left( {\frac{a}{r}} \right)^{n + 1} } } \times \left[ {g_{n}^{m} (t)\cos \left( {m\phi } \right) + h_{n}^{m} (t)\sin \left( {m\phi } \right)P_{n}^{m} \left( {\cos \theta } \right)} \right] $$
(1)

where \( r \) denotes the radial distance from the center of the earth, \( a = 63,712.2 \) km is the mean reference spherical radius of the geomagnetic earth. \( \theta \) and \( \phi \) are latitude and longitude, respectively. The function \( P_{n}^{m} \left( {\cos \theta } \right) \) is the Schmidt quasi-normalized associated Legendre functions with degree n and order m. \( g_{n}^{m} \) and \( h_{n}^{m} \) are the Gauss coefficients with time \( t \). The maximum spherical harmonic degree of the expansion N is related to time, and its value is generally taken as 13 in recent years.

From (1), we can see that the geomagnetic fields only relate with the position information and time, that is, to say that the position can be obtained if the geomagnetic fields and time are known. The geomagnetic fields can be calculated by the magnetometer measurement model. The magnetometer measurement model is shown as follows (Wu and Pei 2017):

$$ {\mathbf{B}}_{{}}^{{b_{k} }} = {\mathbf{C}}_{sc} {\mathbf{C}}_{no} ({\mathbf{C}}_{si} {\mathbf{C}}_{{n_{k} }}^{{b_{k} }} {\mathbf{Y}}^{{n_{k} }} + {\mathbf{b}}_{bi} ) + {\mathbf{b}}_{b} + {\varvec{\upvarepsilon}} $$
(2)

where \( {\mathbf{B}}_{{}}^{{b_{k} }} \) is the output from magnetometer at step k in the b-frame. \( {\mathbf{C}}_{{n_{k} }}^{{b_{k} }} \) is the rotation matrix from n-frame to b-frame at step k. \( {\mathbf{b}}_{bi} \) and \( {\mathbf{b}}_{b} \) are hard-iron effect and bias vectors. \( {\varvec{\upvarepsilon}} \) is the measurement noise, and it follows the Gaussian white noise. \( {\mathbf{C}}_{si} \), \( {\mathbf{C}}_{sc} \), and \( {\mathbf{C}}_{no} \) represent soft-iron interference matrix, scale factor matrix, and non-orthogonal matrix, respectively. \( {\mathbf{Y}}^{{n_{k} }} \) is the geomagnetic field at step k in n-frame, and it can be calculated by transforming \( \vec{B} \) from spherical polar to rectangular coordinates.

So far, the above analysis gives the relation between magnetometer and position. However, according to (1), it is difficult to calculate the position from the geomagnetic field. Based on this situation, we propose the AI learning algorithm to build the position model by geomagnetic fields. The flow diagram of the proposed method is shown in Figs. 1 and 2.

Fig. 1
figure 1

Flow diagram of the proposed method in training mode

Fig. 2
figure 2

Flow diagram of the proposed method in predicting mode

First, the magnetometer should be calibrated before use. The calibration methods have been introduced in many publications. For example, Wu et al. (2018) propose a dynamic magnetometer calibration method to calibrate the magnetometer by EKF, and at the same time, the method can align with inertial sensors. Wu and Wang (2018) provide a magnetometer and gyroscope-integrated calibration method based on level rotation. Second, the gyroscope and a calibrated magnetometer from MEMS-INS are integrated for the accurate and stable magnetic fields in the b-frame with AEKF. Then, the attitudes from the INS/GPS integration can be used to calculate the geomagnetic fields in the n-frame. Finally, the geomagnetic fields and accurate position are put into the predictor by AI for training.

During GPS outages, the attitudes calculated by INS and magnetic fields in b-frame are integrated to get the geomagnetic fields in n-frame. The geomagnetic fields can be put into the predictor by AI to predict the position. But, this position may be discrete. Hence, the predicted position and INS are fused for more stable and continuous position information.

Method formulation

Based on Fig. 1, the main parts of the proposed method include: the magnetic fields update module with AEKF, predictor by AI, INS/GPS integration with KF, and INS/position integration with AEKF. The details are described in sequence.

Magnetic fields update module with AEKF

Because magnetic fields from magnetometer have errors including noises and disturbances, even if it has been calibrated, the magnetometer is integrated with INS for the stable geomagnetic fields in this module. For convenience, the (2) can be rewritten as follows:

$$ {\mathbf{B}}_{{}}^{{b_{k} }} = {\mathbf{RC}}_{{n_{k} }}^{{b_{k} }} {\mathbf{Y}}^{{n_{k} }} + {\mathbf{b}} + {\varvec{\upvarepsilon}} $$
(3)

where

$$ {\mathbf{R}} = {\mathbf{C}}_{sc} {\mathbf{C}}_{no} {\mathbf{C}}_{si} $$
(4)
$$ {\mathbf{b}} = {\mathbf{C}}_{sc} {\mathbf{C}}_{no} {\mathbf{b}}_{bi} + {\mathbf{b}}_{b} $$
(5)

Based on (3), the model at step k − 1 can be written as

$$ {\mathbf{B}}_{{}}^{{b_{k - 1} }} = {\mathbf{RC}}_{{n_{k - 1} }}^{{b_{k - 1} }} {\mathbf{Y}}^{{n_{k - 1} }} + {\mathbf{b}} + {\varvec{\upvarepsilon}} $$
(6)

From (1), we know that \( {\mathbf{Y}}^{{n_{k} }} \) is related to position and time. In the actual MEMS-INS system, the sampling frequency is about 200 Hz or even more. During the process from step k − 1 to k, the position of vehicle system will not change much. So, \( {\mathbf{Y}}^{{n_{k} }} \) is assumed to a constant during the process from step k − 1 to k. Hence, \( {\mathbf{C}}_{{n_{k - 1} }}^{{b_{k - 1} }} {\mathbf{Y}}^{{n_{k - 1} }} \) can be transformed by (6) as follows.

$$ {\mathbf{C}}_{{n_{k - 1} }}^{{b_{k - 1} }} {\mathbf{Y}}^{{n_{k - 1} }} = {\mathbf{R}}^{ - 1} \left( {{\mathbf{B}}_{{}}^{{b_{k - 1} }} - {\mathbf{b}} - {\varvec{\upvarepsilon}}} \right) $$
(7)

Due to the prior knowledge of attitude update by a gyroscope, the relation between \( {\mathbf{C}}_{{n_{k} }}^{{b_{k} }} \) and \( {\mathbf{C}}_{{n_{k - 1} }}^{{b_{k - 1} }} \) can be obtained as (Wu et al. 2018)

$$ {\mathbf{C}}_{{n_{k} }}^{{b_{k} }} = \left( {{\mathbf{I}}_{3} - \left[ {{\varvec{\upomega}}^{{b_{k} }} \times } \right]t_{s} } \right){\mathbf{C}}_{{n_{k - 1} }}^{{b_{k - 1} }} $$
(8)

where \( {\mathbf{I}}_{3} \) is an identity matrix of dimension three. \( \left[ {{\varvec{\upomega}}_{{}}^{{b_{k} }} \times } \right] \) is an anti-symmetric matrix from the output of gyroscope \( {\varvec{\upomega}}_{{}}^{{b_{k} }} \) at step k, and \( t_{s} \) is the interval of data update. Combining (3), (7), and (8), the magnetometer model using angular velocity from gyroscope can be obtained as

$$ {\mathbf{B}}_{{}}^{{b_{k} }} = {\mathbf{R}}\left( {{\mathbf{I}}_{3} - \left[ {{\varvec{\upomega}}_{{}}^{{b_{k} }} \times } \right]t_{s} } \right){\mathbf{R}}_{{}}^{ - 1} \left( {{\mathbf{B}}_{{}}^{{b_{k - 1} }} - {\mathbf{b}}} \right) + {\mathbf{b}} + {\varvec{\upvarepsilon}} $$
(9)

Because the magnetometer has been calibrated in this module, \( {\mathbf{R}} \) and \( {\mathbf{b}} \) in (9) are considered known constants. Then, \( {\varvec{\upomega}}_{{}}^{{b_{k} }} \) in (9) can be obtained by the gyroscope measurement model.

The simple gyroscope measurement model can be given as (Wu et al. 2018)

$$ {\tilde{\mathbf{\omega }}}_{g}^{{b_{k} }} = {\varvec{\upomega}}^{{b_{k} }} + {\mathbf{b}}_{g}^{{b_{k} }} + {\varvec{\upvarepsilon}}_{g} $$
(10)

where \( {\tilde{\mathbf{\omega }}}_{g}^{{b_{k} }} \) is the output of gyroscope and \( {\mathbf{b}}_{g}^{{b_{k} }} \) is the gyroscope bias in the b-frame at the step k. \( {\varvec{\upvarepsilon}}_{g} \) is the measurement noise, which follows zero-mean Gaussian white noise.

Based on the above deduction, the magnetic fields and the gyroscope’s bias are selected as the states of the filter in the gyroscope and magnetometer integration system, that is, \( {\mathbf{x}}_{k} = \left[ {\begin{array}{*{20}c} {{\mathbf{B}}^{{b_{k} }} } & {{\mathbf{b}}_{g}^{{b_{k} }} } \\ \end{array} } \right]^{\text{T}} \). Hence, the state transition model and measurement model of filter are as follows.

  1. (a)

    State transition model

$$ {\mathbf{B}}^{{b_{k} }} = {\mathbf{R}}\left( {{\mathbf{I}}_{3} - \left( {{\tilde{\mathbf{\omega }}}_{g}^{{b_{k} }} - {\mathbf{b}}_{g}^{{b_{k - 1} }} } \right) \times t_{s} } \right){\mathbf{R}}^{ - 1} \left( {{\mathbf{B}}^{{b_{k - 1} }} - {\mathbf{b}}} \right) + {\mathbf{b}} + {\varvec{\upvarepsilon}} $$
(11)
$$ {\mathbf{b}}_{g}^{{b_{k} }} = {\mathbf{b}}_{g}^{{b_{k - 1} }} $$
(12)
  1. (b)

    Measurement model

$$ {\tilde{\mathbf{B}}}_{{}}^{{b_{k} }} = {\mathbf{B}}_{{}}^{{b_{k} }} $$
(13)

where \( {\tilde{\mathbf{B}}}_{{}}^{{b_{k} }} \) is the output from the magnetometer. In this module, the AEKF is chosen as adaptive fuse algorithm to filter disturbances (Fang and Yang 2011).

The process of AEKF is as follows.

  1. (a)

    Time update

$$ {\mathbf{x}}_{k/k - 1}^{{}} = f\left( {{\mathbf{x}}_{k - 1}^{{}} } \right) $$
(14)
$$ {\mathbf{P}}_{k/k - 1} = {\varvec{\Phi}}_{k,k - 1} {\mathbf{P}}_{k - 1} {\varvec{\Phi}}_{k,k - 1}^{\text{T}} + {\mathbf{Q}}_{k} $$
(15)
  1. (b)

    Innovation covariance estimation

$$ {\mathbf{V}}_{k} = {\mathbf{z}}_{k}^{{}} - {\mathbf{H}}_{k} {\mathbf{x}}_{k/k - 1}^{{}} $$
(16)
$$ {\mathbf{C}}_{k} = \frac{1}{M}\sum\limits_{{k = k_{0} }}^{M} {{\mathbf{V}}_{k} {\mathbf{V}}_{k}^{\text{T}} } $$
(17)
  1. (c)

    Measurement update

$$ {\mathbf{K}}_{k} = {\mathbf{P}}_{k/k - 1} {\mathbf{H}}_{k}^{\text{T}} {\mathbf{C}}_{k}^{ - 1} $$
(18)
$$ {\mathbf{x}}_{k}^{{}} = {\mathbf{x}}_{k/k - 1}^{{}} + {\mathbf{K}}_{k} {\mathbf{V}}_{k} $$
(19)
$$ {\mathbf{P}}_{k} = ({\mathbf{I}} - {\mathbf{K}}_{k} {\mathbf{H}}_{k} ){\mathbf{P}}_{k/k - 1} $$
(20)

The state transition function \( f( \cdot ) \) can be provided by (11). \( {\mathbf{H}}_{k} \) is the measurement matrix, and it is based on measurement model in (13). The expression of \( {\mathbf{H}}_{k} \) is \( {\mathbf{H}}_{k} { = }\left[ {\begin{array}{*{20}c} {{\mathbf{I}}_{3} } & {{\mathbf{0}}_{3} } \\ \end{array} } \right] \), \( {\mathbf{I}}_{3} \) is identity matrix with three dimensions, and \( {\mathbf{0}}_{3} \) is zero matrix with three dimensions. \( {\varvec{\Phi}} \) is the Jacobian matrix of \( f( \cdot ) \), and \( {\mathbf{Q}}_{k} \) is the process noise covariance matrix. The measurements of the filter satisfy \( {\mathbf{z}}_{k}^{{}} = {\tilde{\mathbf{B}}}_{m}^{{b_{k} }} \). For adaptively overcoming the random magnetic disturbances, the innovation covariance matrix \( {\mathbf{C}}_{k} \) will be calculated by the innovation vector \( {\mathbf{V}}_{k} \) and it is the average result of the sliding window \( {\mathbf{V}}_{k} {\mathbf{V}}_{k}^{\text{T}} \). The window size is \( M \), which can improve the adaptive ability to overcome the inaccurate measurements. The size \( M \) of the sliding window is usually set within 50–100.

Predictor by AI

The key of the proposed positioning method is to predict position using the magnetometer during GPS outages rather than an advanced AI algorithm. For the sake of generality, we adopt a classic neural network (NN) to verify the effect. There are two main types of models in common NN, back propagation neural network (BPNN) and radial basis function neural network (RBFNN). Yang et al. (2010) analyzed the characteristic of RBFNN and BPNN. They obtained a conclusion that RBFNN-based model has more high fitting ability than BPNN. Because a better fitting ability is mostly needed in predicting position, RBFNN is selected to fit the model between geomagnetic fields and position. Figure 3 shows the block diagram of RBFNN.

Fig. 3
figure 3

Block diagram of the RBFNN

As shown in Fig. 3, RBFNN includes an input layer, a hidden layer, and an output layer. Each hidden layer is used to satisfy a radial basis function. The most common radial basis function is the Gaussian function, and its representation is as follows:

$$ \varphi \left( {x,\mu } \right) = e^{{ - \frac{{\left\| {x - \mu } \right\|^{2} }}{{2d^{2} }}}} $$
(21)

where \( x \) is the input of the network, \( \mu \) is the center of Gaussian function, and \( d \) is the radius from the center of \( \varphi \left( {x,\mu } \right) \). Through the training, x and \( \mu \) can be determined.

The output \( O\left( x \right) \) of RBFNN is given as

$$ O\left( x \right) = W_{0} + \sum\limits_{j = 1}^{N} {W_{j} } \varphi_{j} \left( x \right) $$
(22)

where \( W \) is the vector of weight between the input layer and output layer, and \( W_{0} \) is the bias.

INS/GPS integration with KF

When GPS is available, INS needs to be integrated with GPS for more accurate attitude and position. In this module, the KF is employed. The state vector includes navigation errors and inertial sensor errors. The navigation errors consist of attitude errors \( \phi \), velocity errors \( \delta V \), and position errors (latitude \( \delta L \), longitude \( \delta \lambda \)). The inertial sensor errors include the gyroscope drifts \( \varepsilon \) and accelerometer bias \( \nabla \). The state and measurement vectors can be written as follows:

  1. (a)

    State vector

$$ {\mathbf{x}} = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\phi_{\text{E}} } & {\phi_{\text{N}} } & {\phi_{\text{U}} } \\ \end{array} } & {\delta V_{\text{E}} } & {\delta V_{\text{N}} } \\ \end{array} } & {\delta L} & {\delta \lambda } \\ \end{array} } & {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\varepsilon_{x} } & {\varepsilon_{y} } & {\varepsilon_{z} } \\ \end{array} } & {\nabla_{x} } & {\nabla_{y} } \\ \end{array} } \\ \end{array} } \right]^{\text{T}} $$
(23)
  1. (b)

    Measurement vector

$$ {\mathbf{z}} = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\delta V_{\text{E}} } & {\delta V_{\text{N}} } & {\delta L} \\ \end{array} } & {\delta \lambda } \\ \end{array} } \right]^{\text{T}} $$
(24)
$$ \left[ {\begin{array}{*{20}c} {\delta V_{\text{E}} } \\ {\delta V_{\text{N}} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {V_{\text{EINS}} - V_{\text{EGPS}} } \\ {V_{\text{NINS}} - \lambda_{\text{NGPS}} } \\ \end{array} } \right],\quad \left[ {\begin{array}{*{20}c} {\delta L} \\ {\delta \lambda } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {L_{\text{INS}} - L_{\text{GPS}} } \\ {\lambda_{\text{INS}} - \lambda_{\text{GPS}} } \\ \end{array} } \right] $$
(25)

where E, N, U represent east, north, and upward in n-frame. The subscripts x, y, z denote the right, forward, and upward in b-frame. The subscript INS expresses that the value is calculated by the INS and the subscript GPS shows the value is provided by GPS. Because we focus on the vehicle navigation system, the height, vertical velocity, and accelerometer bias in z-axis can be ignored.

INS/position integration with AEKF

Because the positions from trained AI may be discrete and have a large noise, it needs to be integrated with INS for more accurate positions. This module is similar to the INS/GPS integration with the KF module, but the accuracy of position decreases and the measurements do not include velocity. So, the state vector includes navigation errors and inertial sensor errors in this module. The measurements only consist of position errors. The state and measurement vectors can be written as follows:

  1. (a)

    State vector

$$ {\mathbf{x}} = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\phi_{E} } & {\phi_{N} } & {\phi_{U} } \\ \end{array} } & {\delta V_{E} } & {\delta V_{N} } \\ \end{array} } & {\delta L} & {\delta \lambda } \\ \end{array} } & {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\varepsilon_{x} } & {\varepsilon_{y} } & {\varepsilon_{z} } \\ \end{array} } & {\nabla_{x} } & {\nabla_{y} } \\ \end{array} } \\ \end{array} } \right]^{\text{T}} $$
(26)
  1. (b)

    Measurement vector

$$ z = \left[ {\begin{array}{*{20}c} {\delta L} & {\delta \lambda } \\ \end{array} } \right]^{\text{T}} $$
(27)
$$ \left[ {\begin{array}{*{20}c} {\delta L} \\ {\delta \lambda } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {L_{INS} - L_{NN} } \\ {\lambda_{INS} - \lambda_{NN} } \\ \end{array} } \right] $$
(28)

where the subscript INS expresses that the value is calculated by the INS and the subscript AI represents that the value is provided by AI. Then, AEKF is employed to increase adaptability, and the form of AEKF has been introduced in the module of magnetic fields update with AEKF.

Results

In this section, the proposed method will be verified by simulation data and an actual driving test. Meanwhile, an existing method will be introduced and compared with the proposed method.

Comparison method

In INS/GPS integration, the existing methods concentrate on the relation between position errors and the outputs of INS to bridge GPS outages (Semeniuk and Noureldin 2006). In the comparison method, the state and measurement vectors are the same as in the module INS/GPS integration with AEKF described above. RBFNN is still selected as the AI learning method. The flow diagram is shown in Fig. 4. When GPS is available, the velocity and position are calculated by INS, and then, the measurements of INS and the errors of position and velocity are put into AI for training. During GPS outages, the position and velocity errors can be obtained by the trained AI, and then, these errors will be put into KF as measurements to compensate position and velocity.

Fig. 4
figure 4

Diagram of the comparison method

Simulation results

In this part, we will use simulation to verify the effectiveness of the proposed method. First, we will introduce the simulation data and the parameters of the simulation system. Then, we will show the simulation results.

Simulation setting

The simulation is employed to evaluate the effect of the proposed method. The simulation route is shown in Fig. 5. Figure 6 indicates the position information of simulation. Figures 7 and 8 show the attitude and velocity of simulation. From these figures, we can see that the total time is 3600 s and the vehicle moves around a circle in the first 2300 s and then stops until the end of the test. Such movement pattern can verify the static and dynamic positioning accuracy at the same time. In this simulation data, the GPS information of the first two laps is available, which is about 500 s, and then, GPS will become invalid. The parameters of MEMS-INS and GPS are set based on the actual system; the detail is summarized in Table 1.

Fig. 5
figure 5

Simulation route

Fig. 6
figure 6

Simulation position

Fig. 7
figure 7

Simulation attitude

Fig. 8
figure 8

Simulation velocity

Table 1 Simulation parameters of MEMS-INS and GPS system

Simulation results

Figures 9 and 10 show the results of the simulation. In Fig. 9, the red line is the reference route, the brown line is the route calculated only by INS, and the blue line represents the result by the comparison method. From Fig. 9, we know that the position errors will be accumulated if INS is directly used to calculate position during GPS outages. On the contrary, the comparison method can restrain error accumulation effectively by using RBFNN to predict the errors of velocity and position in a short time, but it still leads to divergence for a long time. In Fig. 10, the red line still shows the reference route, the green points are the predicted result by RBFNN, and the blue line represents the results of the proposed method. We can see the truth that RBFNN can predict the positions, but these predict results are discrete and contain the noise. After fusing the predicted results of RBFNN and INS by AEKF, the proposed method can obtain stable, accurate, and continuous positions. Figure 11 shows the comparison diagram of position errors.

Fig. 9
figure 9

Simulation results of the comparison method

Fig. 10
figure 10

Simulation results of the proposed method

Fig. 11
figure 11

Results of position errors in the test (top) with partial enlargement (bottom)

When GPS is available, the two methods have a similar result in Fig. 11. During GPS outages, the comparison method can provide an accurate position within a short time. But as time goes on, the position errors would accumulate. At the end of the simulation, the position error of the comparison method has diverged. By contrast, although the positioning error will increase a little with the proposed method, the position errors will not accumulate.

Actual test results

In this part, we will use the actual test to verify the effectiveness of the proposed method. First, we will introduce the route of test and the parameters of the actual integrated navigation system. Then, we will show the test results. By comparing the results of the comparison method, the proposed method will be verified.

Test setting

An actual MEMS-INS integration is employed to verify the effect of the proposed method. In this test, an ADIS16488 unit from Analog Devices company is taken as the MEMS-INS system. U-blox LEA-M8S is chosen as the GPS module in Fig. 12. Their features are shown in Table 2.

Fig. 12
figure 12

ADIS16488/U-blox LEA-M8S integration system

Table 2 ADIS16488/U-blox LEA-M8S integration features

The driving test route is shown in Fig. 13. Figure 14 shows the attitude of the system. The changes in position are shown in Fig. 15.

Fig. 13
figure 13

Actual driving test route

Fig. 14
figure 14

Attitude of the system

Fig. 15
figure 15

Position of the system

From Figs. 13, 14 and 15, we can know that the system moves around a closed loop on campuses. In the test, we set GPS available during the first two circles, just like in the simulation, that is, about 1000 s. Then GPS will be set invalid until the end of the test.

Test results

The results of the driving test are summarized here. Because the environments of the actual test are very complex and there is more noise and errors, the accuracy of the actual test may be worse than simulation.

Figures 16 and 17 show the route results. Figures 18 and 19 show the position results. From Fig. 16, the route calculated only by INS diverges rapidly. In contrast, the route of the comparison method restrains the divergence to some extent at the early stage of GPS outages. But, since the prediction of the comparison method is the position error rather than the position, the inaccurate position errors will be accumulated. Hence, it diverges eventually from Fig. 18. Compared with Fig. 16, the proposed method has a good positioning accuracy in Fig. 17. The position can be predicted by RBFNN, but it may have errors and noises. After integrating with INS in the proposed method, the positions basically follow the GPS positions and there is no tendency to diverge at all in Fig. 19.

Fig. 16
figure 16

Route results of the test by the comparison method

Fig. 17
figure 17

Route results of the test by the proposed method

Fig. 18
figure 18

Position results of the test by the comparison method

Fig. 19
figure 19

Position results of the test by the proposed method

Figure 20 shows the position errors. From these two figures, we can know that both the proposed method and comparison method have a good positioning accuracy during GPS is available. During GPS outages, the comparison method can provide an accurate position for a short time, but it finally diverges. By contrast, the proposed method basically maintains the accurate position for a long time. Also, the errors of position are mostly kept within 200 meters, even if there are some errors caused by large magnetic disturbances. To summarize, the test result is similar to the simulation, which can prove the effectiveness of the proposed method.

Fig. 20
figure 20

Results of position errors in the test (top) and partial enlargement (bottom)

Conclusion

For reducing the position errors during GPS outages in the GPS/INS integrated system, the existing methods mainly focus on the advanced filter or AI learning methods to predict the more accurate position errors during GPS outages. However, sooner or later, that will lead the position errors to diverge as the GPS outages time continues, no matter how advanced the intelligent algorithm.

In order to get a long-time non-diverging position when GPS outages, we propose a positioning method based on INS/magnetometer integration during GPS outages as they are usually integrated into a MEMS-INS unit. Since the existing usage of magnetometer mainly focuses on assisting in calculating attitude especially heading rather than position, we first verify the possibility of using magnetometer for positioning by analyzing the IGRF model and magnetometer measurement model. At the same time, the conclusion is obtained that it is difficult to use the magnetometer directly for positioning since it is easy to be disturbed and it is hard to calculate positions form the geomagnetic fields using IGRF. Hence, we propose a magnetometer-assisting positioning solution. This solution includes four parts, magnetic fields update module with AEKF, predictor by AI, INS/GPS integration with KF, and INS/position integration with AEKF. In predictor by AI, the classical RBFNN is selected as an AI learning algorithm for generalization.

In the simulation and driving test, the GPS/INS integrated positioning solution based on RBFNN is taken as the comparison method. The results of simulation and driving test show that the comparison method only holds positioning accuracy over a short time and finally diverges. By contrast, the proposed method can provide the position that shows no trend of divergence for a long time if a sufficient dataset for training is ensured. The datasets should collect geomagnetic fields and positions as much as possible and the data should be uniformly distributed over the target area. Simulation and actual driving test verify the effectiveness of the proposed method.

Above all, we propose a positioning scheme using magnetometer and NN. The role of NN is to build a relationship between the geomagnetic field and positions. However, some problems exist in practice. The proposed method mainly focuses on some indoor environments in the city, such as tunnel, underground parking and so on. An NN corresponding to a target area can be used for different INS/magnetometer system entering the area, but it is hard to be used for other area. The training process requires a large amount of data. These problems will be subject of research in the future.