An Improved Calibration Method for the IMU Biases Utilizing KF-Based AdaGrad Algorithm

In the field of high accuracy strapdown inertial navigation system (SINS), the inertial measurement unit (IMU) biases can severely affect the navigation accuracy. Traditionally we use Kalman filter (KF) to estimate those biases. However, KF is an unbiased estimation method based on the assumption of Gaussian white noise (GWN) while IMU sensors noise is irregular. Kalman filtering will no longer be accurate when the sensor’s noise is irregular. In order to obtain the optimal solution of the IMU biases, this paper proposes a novel method for the calibration of IMU biases utilizing the KF-based AdaGrad algorithm to solve this problem. Three improvements were made as the following: (1) The adaptive subgradient method (AdaGrad) is proposed to overcome the difficulty of setting step size. (2) A KF-based AdaGrad numerical function is derived and (3) a KF-based AdaGrad calibration algorithm is proposed in this paper. Experimental results show that the method proposed in this paper can effectively improve the accuracy of IMU biases in both static tests and car-mounted field tests.


Introduction
Strapdown Inertial Navigation Systems (SINS) have been widely used in many aspects of navigation [1]. The SINS has some irreplaceable advantages, such as high autonomy, and it provides continuous and comprehensive navigation information. Therefore, SINS is widely applied in ships and airplanes [2]. For the purpose of realizing the alignment and navigation algorithms of the SINS. The IMU errors have to be calibrated prior to utilization. In an ideal IMU, accelerometers, and gyroscopes coordinate with the same orthogonal sensitivity axes, while the scale factor converts the digital quantity measured by each sensor into the real physical quantity (accelerations and angular rates) [3,4]. However, the IMU is usually affected by non-accurate sensor biases [5], the navigation errors (attitude, velocity and position errors) of the SINS diverge with time [6]. Therefore, the calibration of biases in IMU is a very effective way to enhance the navigation accuracy of SINS.
In [7], Han et al. proposed a method for bias calibration using a single-axis turning table. The disadvantage of this method is that the calibration accuracy depends highly on the turntable accuracy. In current SINS implementations, in order to overcome the non-observability of the biases of the IMU biases, an analytic calibration of IMU biases with two-position is utilized widely [8]. Many works have been done in the field of IMU calibration. In [9], an eight-position self-calibration method was proposed. Emel'yantsev et al. calibrated in-rum drifts of SINS with uniaxial modulation rotation of measurement unit. Since the low end IMU model is nonlinear, some researchers use an adaptive Kalman filter to estimate IMU biases [10][11][12][13][14][15]. Wang et al. utilized a new online calibration method for integrated navigation systems [16]. In [17], a rotation test was utilized to enhance the observability of KF in order to calibrate the IMU biases. However, KF is an unbiased estimation method based on the assumption of GWN while IMU sensors noise is irregular [18][19][20]. In [21], an autocovariance least-squares (ALS) technique was proposed to estimate the process noise of IMU. In [22], particle swarm method was utilized in gyro drift estimation. For high-dimensional systems especially for those with weak observability. The adaptive estimation of IMU biases tend to diverge. In order to solve the problem, further researches are needed on this issue.
Allan variance has been widely utilized in the analysis of gyroscopes [23]. Allan variance can provide different types and magnitude information on various noise terms. Due to analogies to IMU sensors, Allan variance has been adapted to the random-drift characterization of a variety of inertial devices [24][25][26]. Allan variance is a method of representing the root mean square (RMS) random-drift errors as a function of averaging time. However, the equivalent white noise characteristics do not equal the sum of the various noise characteristics analyzed by Allan variance. Thus, the method of using Allan variance to estimate IMU biases is not feasible.
In order to solve the above problems, a KF-based AdaGrad calibration algorithm is proposed. Gradient descent is an iterative optimization algorithm for finding the minimum value of the objective function. For a complex dynamical system, the gradient descent method is utilized to obtain the minimum value of the constructed cost function. In [27][28][29][30], researchers proposed a gradient descent approach to solve complex dynamic system problems. The difficulty of the gradient descent method lies in constructing the cost function of a complex dynamic system. In this paper, (1) in order to solve the problem of setting step size, this paper utilized adaptive subgradient methods (AdaGrad); (2) we derive a KF-based Ada-Grad numerical cost function in which the objective function is the velocity and position errors; and (3) utilizing the above two theories we propose a novel method called KF-based AdaGrad algorithm. Finally, static tests and field tests are carried out to verify the feasibility and applicability of the investigated method.
The remainder of this paper is organized as follows. Section 2 presents a brief overview of the calibration process of IMU and an analysis of the observability of IMU biases. In Section 3, we derive a KF-based AdaGrad numerical cost function and propose a KFbased AdaGrad calibration algorithm. Rotation tests and car-mounted field tests are carried out in Section 4 to compare the proposed method and the existing calibration method. The conclusions are given in Section 5.

Two-Position Calibration Modeling
The navigation performance of the SINS relies on a high-precision IMU. Error models have been developed for the IMU in [7,8]. Under the condition of the static base, the velocity of the navigation solution is the velocity error. According to the SINS error transformation model, the misalignment angle error can be derived from the velocity error. Since the inertial navigation system has no obvious movement of the geographical position, the velocity of the inertial navigation system approaches zero. Therefore, in the calibration process, the SINS navigation algorithm can be replaced by some simplified equations.
In a SINS, the IMU is directly mounted on the vehicle or the carrier without a stable platform. The angular velocity and acceleration in the body frame (denoted by b) are measured by the gyroscopes and accelerometers. Choose the local geographical frame (East-North-Vertical frame) as the navigation frame (denote by n).
Let ω en = 0 to get the simplified attitude algorithm: C n b is the direction cosine matrix to transform vector from b-frame (IMU body orthogonal frame which aligned with Right-North-Up axes) to n-frame (navigation frame which aligned with East-North-Vertical axes). The subscript i denotes the inertial-frame.
ib represents the angular velocity measured by the gyroscope in the b-frame. ω b ie is the self-rotation angular velocity.
Specific force equation as one of the basic equations of the SINS can be written as : where v n = v n E v n N v n U T , g is the gravity acceleration of the earth. Let v n = 0 to obtain the simplified velocity algorithm: Following the above derivation, the attitude error equation and the velocity error equation can be written as: where φ is the misalignment angle vector and δv n is the velocity error vector. ε n is the gyroscope equivalent constant bias and the ∇ n is the accelerometer equivalent constant bias. The expressions for ε n and ∇ n are written as follows: where C ij denotes the elements of C n b . ε b and ∇ b are the gyroscope and accelerometer equivalent constant bias.
In the above equation, there is no cross-linking relationship between the Equation (δv U = ∇ U ) and the other equations. It can be concluded that the vertical velocity error does not have any effect on the misalignment angle estimation. Therefore, in the analysis of the misalignment angle estimation, the influence of the vertical velocity and vertical accelerometer bias can generally be ignored. By expanding the ε b and ∇ b to the state, the calibration state space model can be established as follows: where According to the designed two-position calibration scheme, the actual system is timevarying system. PWCS method and SVD method are both employed for the two-position calibration scheme. The rank of this observability matrix is 7 [26,27]. Five states ∇ E , ∇ N , ε E , ε N and ε U are considered unobservable. In order to improve the observability, two-position calibration is needed. This is equivalent to changing the C n b of the SINS. Furthermore, changing the SINS error equation from a stationary system to a time-varying system, which is beneficial to improve the observability of the IMU biases. The scale factor errors of the three gyros and accelerometers are not observable during the process of two-position calibration. Therefore, we do not consider the scale factor errors in Equation (7).
Using the piece-wise constant system (PWCS) observability analysis method [27], the rank of the observability matrix is 11 except ε U .
The value of the elements of the process noise matrix [29][30][31], which is the directly determined by the value of the elements in the W matrix. As is shown in Equation (12), the covariance of the W matrix is Q. Furthermore, the accuracy of the KF is determined by the reliability of the Q information. W and Q can be written as: However, KF is an unbiased estimation method based on the assumption of GWN while IMU sensor noise is irregular. In order to obtain the optimal solution of IMU biases, this paper presents a novel method for the calibration of IMU biases utilizing the KF-based AdaGrad algorithm in Section 4.

Gradient Descent Algorithm
Gradient descent is an iterative algorithm to minimize an objective function. If the multi-variable function F(x) is defined and differentiable. Given an initial point, and then follow the negative of the gradient of the function at every iteration. When the point moves to a critical point where the point does not change anymore (or change a value that approaches zero), it has reached the desired local minimum. The basic algorithm is written as follow: where x is the variable vector and γ is the step size. However, setting the step size of gradient descent is a key issue. An inappropriate step size may cause the function F(x) easily trapped in saddle points. In this paper, the sampling rate of the IMU is 200 Hz. Therefore the sampling time is 0.005 ms. In order to ensure that there are no large values at the beginning. The step size we set is 0.005 at the beginning.
In order to solve this problem, we utilized two methods: line search and adaptive subgradient methods (AdaGrad).

Line Search
Line search is an approach is to adapt the step size at every iteration. The line search will calculate the descent direction p k and the step size α k to move in this direction. The following condition must be satisfied: p k T ∇F k < 0 so that the function F(x) can be guaranteed to fall along this direction. Furthermore, the search direction can be written as: The step size α k should minimize the following function: However, it is difficult to obtain the α that minimizes the above equation, and the amount of calculation is relatively large. The commonly used method is to obtain a larger step size as much as possible with an acceptable amount of calculation, in order to reduce the value of φ(α) as much as possible. The general line search method consists of the following two steps:

1.
Bracketing: Finding a range containing ideal steps.

2.
Dichotomy or Interpolation: Using the dichotomy or interpolation to find the step size in this interval.
The KF-based AdaGrad algorithm is very computationally intensive. Even though the above method can reduce a lot of calculations, a faster step-size adaptive approach is needed. Thus, we utilized AdaGrad to solve this problem.

Adaptive Subgradient Methods (AdaGrad)
The basic idea of AdaGrad is to use different step sizes at every iteration. The step size is large at the beginning for rapid gradient descent. As the optimization process progresses, the step size is reduced for the gradient that has fallen significantly, and the larger step size is maintained for the gradient that has not decreased so much.
For the basic Gradient descent, the vectorized algorithm can be written as: AdaGrad multiplies the step size by a parameter that varies with the number of iterations: where η is a small value to prevent the denominator to be zero. It is easy to discover that as the algorithm continues to iterate, G k will grow larger, and the step size will grow smaller. The AdaGrad algorithm starts with the convergence of high speed and ends with a small step size.
Since we proposed a KF-based AdaGrad numerical cost function F(x), the AdaGrad algorithm needs to be discretized. The Algorithm flowchart is shown in Figure 1. Given x k as an initial value and then enters the loop. When the gradient value g k is close to zero (this paper selects 10e-8 as the critical value). The function jumps out of the loop and the output is x k . In this paper, is the process Noise Covariance Matrix. F(x k ) is the KF-based numerical function, it is the function which consists of two database and multiple iterations of one KF, we will derive it in the next subsection. The psudocode is listed in the Algorithm 1 and is shown as follows: Algorithm 1: AdaGrad algorithm. Input: The state vector before AdaGrad algorithm. Output: The estimated state vector. Initialization:

KF-Based AdaGrad Calibration Algorithm
AdaGrad is a good method to obtain the minimum value of a function. Setting the IMU biases accurately could improve the accuracy of SINS. In order to obtain the optimal solution of IMU biases, we derives a numerical data function F(x k ). As F(x k ) reaches its minimum value, the IMU reaches its biases optimal solution.
In practical utilization, the effective compensation method of IMU biases is conducted as the following steps: 1.
SINS (contains IMU and navigation micro-computer) stiffly fixed on a static platform, power up and start navigation.

2.
Since the real velocity is 0 under the static platform condition, the pure inertial navigation output velocity is the velocity error. According to the principle of inertial navigation, the velocity error curve will show the form of Schuler oscillation. 3.
In the oscillation process of the velocity error curve, the velocity error and positioning error shows the effect of calibration.
As is shown in Algorithm 1, the estimation of x k can be written as: In summary, if the minimum RMSE of the position error can be obtained, and then the bias compensation effect reaches its optimal. Utilizing a two-position calibration algorithm, IMU biases can be obtained when the process noise matrix is determined. We have derived the KF-based AdaGrad numerical function F(x k ) and show the diagram of the numerical function in Figure 2. The pseudocode of the KF-based numerical function is listed in Algorithm 2 and is shown as follows.
As is shown in Figure 2, the entire KF-based numerical function F(x k ) can be divided into two major processes: (1) two-position calibration process and (2) SINS navigation process. A detailed explanation of these two processes is as follows:

1.
A two-position calibration process: based on the calibration database (contains n1 sets of data), ω b ib(m) and f b ib(m) can be used for SINS algorithm. According to the theory of Section 3, set IMU biases and using KF to estimate attitude, velocity and position. During every iteration, intermediate variables ε k(m) and ∇ k(m) are used as feedback to correct the data retrieved from the database (calibration database) during the next round of iterations. When m = n1, the data in the database (calibration database) has been calculated. Then this part can obtain outputs ε k and ∇ k . 2.
SINS navigation process: based on the SINS static data base (contains n2 sets of data), ω b ib(j) and f b ib(j) can be used for SINS algorithm. Utilizing Equation (17) to calculate the square of position error: When j = n2, the process of inertial navigation comes to an end.
After the above process, the numerical function output RMSE k can be obtained by the input x k . Correspondingly we have derived the KF-based numerical function F (x). Bring F (x) into the algorithm flow chart shown in Figure 1.
terwards, the minimum R MSE k can be obtained by the AdaGrad algorithm, and the x k is the optimal value.

Algorithm 2: KF-based numerical function.
Input: state vector x k = [ ε x ε y ε z ∇ x ∇ y ∇ z ] T Output: position root mean square error RMSE k 1. loop 1 (Two position calibration process): 10. until calibration data base is used up. return x k end loop 1 11. input x k into loop 2. 12. loop 2 (SINS navigation process): SINS navigation process:

Analysis of Experimental Tests
For the purpose of verifying the feasibility and evaluating the calibration accuracy of the KF-based AdaGrad algorithm. Both turntable rotation tests and field tests are performed with the KF-based AdaGrad algorithm. The rotation tests were carried out on the three-axis turntable. The sampling rate of the SINS is 4000 Hz, and the ring laser gyros are with an accuracy of 0.01 • /h (1σ) and accelerometers are with 50 g (1σ).
The gyro signal (lasting 8 h) analysis utilizing Allan variance is shown in Figure 3. As is shown in Figure 3, the three elements of Allan variance are quantization noise, angle random walk and bias instability. While KF is based on the hypothesis of GWN, the gyros we use usually have irregular noise.
For the purpose of analyzing the influence of the IMU biases on navigation errors. We list two tables to represent the error propagation including long-term navigation and short-term navigation. The long-term navigation error propagation is shown in Table 1 and the short-term navigation error is shown in Table 2.  Table 2. Short-term navigation error propagation.
As are shown in Tables 1 and 2, the IMU biases would cause navigation error both in long-term navigation and short-term navigation. In order to verify the calibration effect, we need to carry out long-term navigation and short-term navigation experiments.
Through the comparison between Tables 1 and 2. We can find out that in the shortterm navigation, the gyro bias of the upward gyro does not affect the navigation accuracy in static condition. The position error of the long-term navigation process is affected by many error sources. Therefore, it is difficult to decompose the influence of IMU errors using conventional decoupling method .
Three car-mounted field tests were carried out in Xi'an, Shaanxi province and Chongqing to verify the effectiveness of the calibration methods. The car-mounted field tests in Xi'an are short-term experiments and the test in Chongqing is a long-term experiment. We utilized a DPGS with an accuracy of 3 cm as the reference position information. Compared with line search and two-position methods, the experimental results can prove the feasibility of the calibration method [32][33][34][35].

Static Tests
According to Section 3, this paper introduces two improved methods for gradient descent algorithm. In order to obtain the minimum value of the KF-based numerical function F(x k ) in a stable way, an algorithm performance analysis among these algorithms is needed.
In this subsection, static tests were utilized to obtain F(x k ). As is shown in Figure 4, SINS is stiffly fixed on a three-axis turntable. After confirming the fixation, calibration is started. The recorded data were saved as a calibration database and SINS static database. The flowchart of AdaGrad and the diagram of KF-based numerical function are also displayed in this paper. Static tests and calibration processes were carried out in a threeaxis turntable.
The raw data including three gyros and three accelerometers from the experiment was collected by data collection computer. The collected data was utilized as the calibration database. Afterward, the static tests were carried out for 1 h, the IMU raw data was collected as SINS static database to build the numerical function F(x k ). We utilized the numerical function to compare line search and AdaGrad. Set x k equals zero vector as the initial value and RMSE k as the function result. The number of iterations was set as 5000 because too many iterations are too much burden for a normal experiment computer. Results are shown in Table 3.    The self-rotation angular rate we set in the static test is 20 • /s. In Figure 5, we can see the gyro biases converge slowly. Gyro biases converge after about 4000 iterations. In contrast, the accelerometer biases converge very fast after about 1000 iterations which are shown in Figure 6.
The static test (lasts 1 h) experimental results are shown in Figures 7-10.    We do not compare with the gradient descent method because in Table 3, the gradient descent method clearly entered into a locally optimal solution. Experimental results show that the convergence speed of line search is slower than AdaGrad. Due to the limit of iterations, the accuracy of the line search is lower than the AdaGrad method. The velocity and position errors show that the two-position calibration method is more accurate than the line search. AdaGrad has faster convergence rate and higher accuracy in static tests. In order to fully verify the calibration results in dynamic environment, 8 h static tests were carried out. The experimental results were shown in Figures 11-14.    The velocity and position errors show that KF-based AdaGrad calibration method is more accurate than the line search and the two-position calibration method. The 8 h test shows the peak value of each north and east position errors. AdaGrad has higher accuracy in static test.

Field Tests
The static test only considers the angular motion. In order to fully verify the proposed method in this paper, we need to consider the case with linear motion. The field tests were conducted in this subsection. As is shown in Figure 15, the SINS and the DGPS are equipped on the experimental car. The scale factors and installation angles were accurately calibrated before the field tests were carried out. Three field tests were carried out and the corresponding trajectories are shown in Figure 16. Table 4 shows the field test arrangements. During the maneuvering process of the vehicle, we utilize the SINS/GPS integrated algorithm to provide precise velocity and position information as the velocity and position reference. In order to compare the twoposition algorithm, line search and AdaGrad, we utilize the same trajectories to compare the three algorithms.      We list the RMS and peak value of velocity and position error of test 1 in Tables 5 and 6.  Figures 17 and 18 shows that the east and north velocity errors of which the utilized KF-based AdaGrad are the smallest among the three methods. The two-position method is more accurate than the line search method. The position error is similar to the velocity error. Figures 19 and 20 show that the east and north position error which utilized the two-position method smaller than the error of which utilized line search. The method utilized KF-based AdaGrad has the smallest position error.
The results of field test 2 are shown in Figures 21-24.    In field test 2, Figures 21 and 22 show that the east and north velocity error utilizing KFbased AdaGrad is the smallest among the three methods. The line search method is more accurate than the two-position method. The position errors are shown in Figures 23 and 24, the east and north position error which utilized KF-based AdaGrad are obviously smaller than the other two methods. The position error of which utilized line search is smaller than the error of which utilized two-position method. The results of RMS and maximum values of velocity and position error are shown in Tables 7 and 8.   In field test 3, the east and north position errors that utilized KF-based AdaGrad are smaller than the other two methods. Under long maneuvering condition, the line search and two-position calibration method have similar estimation accuracy.
The peak value of Figures 25 and 26 is easy to figure out, we need to analyze the RMS of the position error. Table 9 shows the RMS of position errors in field test 3. The results differences between field test 1 and field test 2 are the line search and two-position method because test 2 is more dynamic than test 1. Navigation errors due to IMU biases can be excited out more easily so the convergence rate of line search is faster in test 2. The AdaGrad has the highest accuracy among the three methods. In conclusion, under the severe maneuvering condition line search has higher accuracy than two-position method while under low maneuvering conditions the traditional method two-position is more accurate than line search. Both static tests and car-mounted tests show the proposed method can achieve a more accurate estimated velocity and position than the other two methods, which denotes that the KF-based AdaGrad can estimate the IMU biases more accurately. The convergence rate and accuracy of line search are greatly affected by the external dynamic condition. Thus, the line search is not fittable in IMU biases calibration.

Conclusions
The characteristics of IMU are usually difficult to determine. The IMU biases severely affecting navigation accuracy. In order to solve this problem, in this paper, we propose a KFbased AdaGrad calibration algorithm. We derive a KF-based AdaGrad numerical function and utilized AdaGrad method to solve the problem of setting step size. The recorded data were saved as the calibration database and the SINS static database. The flowchart of AdaGrad and the diagram of KF-based numerical function are also displayed in this paper. Static tests and calibration process were carried out in a three-axis turntable and three field tests were carried out in Xi'an. Experimental results show that the proposed calibration method can effectively improve the accuracy of estimation of IMU biases in both static and dynamic conditions.

Conflicts of Interest:
The authors declare no conflict of interest.