=Paper= {{Paper |id=Vol-3097/paper39 |storemode=property |title=A Stepwise Simple Self-Calibration Method for Low-Cost MEMSIMU |pdfUrl=https://ceur-ws.org/Vol-3097/paper39.pdf |volume=Vol-3097 |authors=Shaobing Liu,Xinchun Ji,Dongyan Wei,Wenchao Zhang,Qifeng La |dblpUrl=https://dblp.org/rec/conf/ipin/LiuJWZL21 }} ==A Stepwise Simple Self-Calibration Method for Low-Cost MEMSIMU== https://ceur-ws.org/Vol-3097/paper39.pdf
A Stepwise Simple Self-Calibration Method for Low-Cost MEMS-
IMU
Shaobing Liu1,2, Xinchun Ji 2, Dongyan Wei1,2, Wenchao Zhang2, Qifeng Lai2
1
    School of Optoelectronics, University of Chinese Academy of Sciences, Beijing 100049, China
2
    Aerospace Information Research Institute, Chinese Academy of Sciences, Beijing 100094, China
    Corresponding author: Xinchun Ji (jixc@aircas.ac.cn)


                  Abstract
                  The low-cost MEMS-IMU is affected by the biases, the scale factors and the misalignment
                  errors, which will cause the measurement errors of the IMU, and then cause the large system
                  errors. Traditional calibration method based on laboratory turntable is complicated and
                  expensive, so it has become a trend to study the self-calibration method without relying on
                  special equipment such as turntable. In traditional self-calibration methods, 12 full error
                  parameters of accelerometer are usually estimated at one time with optimization estimation
                  algorithm, which will cause the problem of high complexity, long estimation time and low
                  accuracy. In this paper, we proposed a stepwise self-calibration method by estimating the
                  biases and other 9 error parameters step by step, under which the estimation accuracy can be
                  improved and the algorithm complexity can also be reduced. In addition, considering the
                  characteristics of gyroscope biases successive start fluctuation, online calibration strategy of
                  the gyroscope biases is also adopted. Turntable experiment shows that the 24 error parameters
                  of accelerometer and gyroscope can be calibrated quickly in 8 minutes by the method proposed
                  in this paper. The estimation efficiency is 10~20 times faster than that of one-time estimation
                  method. The calibration errors of the accelerometer are within 0.2 m/s2, the calibration errors
                  of the gyroscope are within 0.5 °/s, and the calibration accuracy is more than 95%.

                  Keywords 1
                  MEMS-IMU, simple self-calibration, stepwise algorithm

1. Introduction
    In recent years, the pedestrian dead reckoning (PDR) system [1] and motion capture system [2]
based on low-cost MEMS-IMU have been widely and urgently applied in military and civilian fields.
The measurement accuracy of IMU largely determines the accuracy of PDR system and motion capture
system. Especially for MEMS-IMU, the large biases, scale factor errors, and misalignment errors
seriously affect the accuracy and performance of the above-mentioned system. Therefore, if these errors
can be identified and calibrated before IMU is used, their impact on IMU performance can be reduced.
    In [3]-[5], in order to achieve higher calibration accuracy, high-precision turntable or other
professional external equipment are used, resulting in the cost of calibration often exceeds the cost of
IMU hardware. In order not to introduce expensive professional equipment such as turntable, the
external sensor observation, such as optical tracker, is introduced in [6][7] to assist IMU calibration,
and its accuracy largely depends on the accuracy of the external sensor used. In order to completely get
rid of the dependence on external equipment and sensors, the method based on multi position was first
proposed in [8] to calibrate the biases and scale factors of accelerometer sensors in medical equipment.
In [9], the multi-position method is improved, and the calibration of the misalignment errors is
completed on the basis of the calibration of the biases and the scale factors, and the error model of the
gyroscope is introduced, but it needs to rely on the single-axis turntable to assist the errors calibration


IPIN 2021 WiP Proceedings, November 29 – December 2, 2021, Lloret de Mar, Spain
 EMAIL: liushaobing19@mails.ucas.ac.cn (Shaobing Liu) ; jixc@aircas.ac.cn (Xinchun Ji)
ORCID: 0000-0002-6097-630X (Shaobing Liu)
            © 2021 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
            CEUR Workshop Proceedings (CEUR-WS.org)
of gyroscope. In [10]-[12], the calibration of the gyroscope and accelerometer biases, scale factors, and
misalignment errors can be completed only by manual rotation. However, it is necessary to design
multiple data acquisitions for the accelerometer and the gyroscope, and the calibration process is
relatively cumbersome. In addition, the calibration algorithm needs to estimate 12 error parameters of
the accelerometer or gyroscope at the same time. The algorithm complexity is relatively high, and the
running time is usually as long as half an hour or even an hour.
    In this paper, we proposed a stepwise self-calibration method for low-cost MEMS-IMU, which can
calibrate the biases, scale factors, and misalignment errors of accelerometer and gyroscope. In the
calibration process, there is no need to introduce external professional equipment and sensors as
reference values, just manually rotate the MEMS-IMU to make it in different static positions. The whole
data acquisition and parameter estimation process only takes about 8 minutes, and there is no need to
separate data acquisition for the accelerometer and gyroscope. The stepwise identification and
estimation of the accelerometer error parameters can reduce the complexity while improving the
estimation accuracy. On the basis of self-calibration compensation, the online bias estimation method
is used to minimize the impact of different startup conditions. This method is suitable for simple and
fast calibration of IMU in PDR positioning (which based on smart phone, foot-mounted equipment),
motion capture and other scenarios.

2. Sensor error models

2.1.     Accelerometer error models
   For low-cost MEMS-IMU, the accuracy requirement is far lower than for high-performance IMU.
We can build the accelerometer error model with three deterministic error parameters including the
biases, scale factors, and misalignment errors:
                                             a = Ta ( A − ba )                             (1)
where a = [ax , a y , az ]T represent the calibrated values of the three axes of the accelerometer.
A = [ Ax , Ay , Az ]T represent the raw measured values of the three axes of the accelerometer.
ba = [bax , bay , baz ] represent the biases of the three axes of the accelerometer, that is, the output when the
                           Sax  yz  zy 
input value is zero. Ta =  xz Say  zx  , where  Sax , Say , Saz  represent the scale factors of the three axes of
                            S 
                           xy yx az 
the accelerometer, that is, the proportional relationship between the raw measured value and the actual
measured specific force of the accelerometer.  yz , zy , xz , zx , xy , yx  represent the misalignment
errors between the accelerometer three axes and IMU carrier coordinate system, for example,  yz
represents the rotation offset of the y axis of the accelerometer around the x axis of the IMU carrier
coordinate system,  zy ,  xz ,  zx ,  xy and  yx are similar. The details are shown in Figure 1.
                                                       za      zb



                                                                 zx
                                                       zy
                                                                    yx
                                                xy
                                                                                ya
                                       xb                        yz
                                                                                  yb
                                                         xz
                                               xa

 Figure 1: Misalignment errors of the accelerometer
   Therefore, the accelerometer error parameters vector to be calibrated can be denoted as:
                          acce = [Sax , Say , Saz , yz , zy , xz , zx , xy , yx , bax , bay , baz ]        (2)
   In the static state, the ideal three-axis output values of accelerometer should be equal to the
component of local gravity acceleration in its three-axis, so the cost function used to estimate the error
parameters of the accelerometer can be denoted as:
                                                                        N
                                                      L( acce ) =  ( g − a )
                                                                                         2
                                                                                                                  (3)
                                                                       n =1

where N represents the total number of static intervals in the data acquisition process, g represents the
local acceleration of gravity (the unit is m/s2).

2.2.     Gyroscope error models
   The error modeling of the MEMS gyroscope is similar to MEMS accelerometer. We can build the
gyroscope error model with three deterministic error parameters including the biases, scale factors, and
misalignment errors:
                                                            = Tg (W − bg )                                       (4)

where  = [x ,  y , z ]T represent the calibrated values of the three axes of the gyroscope.
W = [Wx ,Wy ,Wz ]T represent the raw measured values of the three axes of the gyroscope. bg = [bgx , bgy , bgz ]
                                                               S gx  yz  zy 
represent the biases of the three axes of the gyroscope. Tg =   xz S gy  zx  , where  S gx , S gy , S gz  represent
                                                                S 
                                                               xy yx gz 
the scale factors of the three axes of the gyroscope, that is, the proportional relationship between the
raw measured value of the gyroscope and the actual measured angular velocity.
   yz ,  zy ,  xz ,  zx ,  xy ,  yx  represent the misalignment errors between the gyroscope three axes and IMU
carrier coordinate system, for example,  yz represents the rotation offset of the y axis of the gyroscope
around the x axis of the IMU carrier coordinate system,  zy ,  xz ,  zx ,  xy ,  yx are similar.
   For the gyroscope bias, we obtain it by the mean value of the initial static phase in this paper. After
subtracting the bias from the original data of the gyroscope, the other error parameters can be estimated
by optimization algorithm. So the other parameters of the gyroscope to be calibrated can be denoted as:
                                      gyro =[ S gx , S gy , S gz ,  yz ,  zy ,  xz ,  zx ,  xy ,  yx ]     (5)

    Take the data  k obtained by the gyroscope in the dynamic interval between the (k − 1)-th static
interval and the k -th static interval and the gravity vector ua , k −1 after the accelerometer calibration at
the initial moment of the dynamic interval as input. u g , k represents the gravity vector at the final moment
of the dynamic interval calculated from the gyroscope data. Then there is:
                                                         u g , k =  (k , ua , k −1 )                            (6)

where  is an operator which means converting  k and ua , k −1 to u g , k , that is, converting the initial
gravity vector and the rotation matrix calculated from gyroscope data to obtain the final gravity vector.
We use quaternion to calculate the rotation matrix in this paper. Between two static intervals, the
quaternion q ' at the next moment can be updated from the quaternion q at the current moment and the
incremental quaternion  q , which can be denoted as:

                                        q0 '  q0          − wx q1 − wy q2 − wz q3 
                                        q1 '  =  q1  + 1  wx q0 + wz q2 − wy q3                             (7)
                                        q2 '  q2  2  wy q0 − wz q1 + wx q3 
                                        q3 '  q3      wq +w q −w q 
                                                              z 0        y 1     x 2 
where  = [x ,  y ,  z ] can be calculated from the three-axis data of the gyroscope.
   By updating the quaternion of two static intervals, the final direction quaternion is qk =  a, b, c, d  ,
                                                                                                                    T



and then the rotation matrix can be obtained:
                                a 2 + b2 − c 2 − d 2     2(bc + ad )         2(bd − ac) 
                            R =  2(bc − ad )         a 2 − b2 + c2 − d 2     2(cd + ad )                    (8)
                                 2(bd + ac)              2(cd − ab)      a 2 − b 2 − c 2 + d 2 
                                
   The gravity vector of the k -th static interval can be calculated from the rotation matrix R and the
(k − 1)-th static interval gravity vector:
                                                        u g , k = Rua , k −1                                  (9)
   Therefore, the cost function for estimating the error parameters of the gyroscope can be denoted as:
                                                            N −1
                                               L( gyro ) =  ( ua , k − ug , k )
                                                                               2
                                                                                                             (10)
                                                             n =1


where ua , k represents the gravity vector which obtained by calibrated accelerometer in the k -th static
interval, and u g , k represents the gravity vector calculated from the gyroscope data.

3. Self-calibration data acquisition method

3.1.     Initial static time estimation based on Allan variance
    Gyroscope bias is one of the most important sources of gyroscope measurement errors. In the case of
no external auxiliary equipment, we can take the average value of static gyroscope data as the gyroscope
bias [13][14]. In this paper, we use Allan variance to determine the static time Tinit which is needed to
estimate the three-axis biases of gyroscope. Allan variance is proposed by D. W. Allan for the study of
oscillator stability. It can calculate the variance of the difference between the mean values of continuous
interval data.
    We divide the data into different interval clusters, and the length of each interval is  =  0 , 2 0 ,..., m 0 ,
where  0 represents the sample time of the IMU module. The Allan variance  2 can be denoted as [15] :

                                    1                            1 K
                            2 =
                                    2
                                      (k ( ) − k −1 ( ))2 =     
                                                                2 K k =1
                                                                         ( k ( ) −  k −1 ( )) 2          (11)

where <> represents to calculate the ensemble average, and  ( ) represents the average of the k -th
                                                                                   k


interval. K represents the total number of intervals.
    In this paper, we calculate the Allan standard deviation for the static gyroscope three-axis data of the
uncalibrated IMU module for 2 hours, and the result curves are shown in Figure 2. With the increase of
the average time, the value of  2 gradually decreases and tends to be stable, which means that the
gyroscope bias tends to stabilize during this period, so this period of time can be used as the static time
for estimating the gyroscope bias. It can be seen from Figure 2 that it takes at least 100 seconds for the
Allan standard deviation of the IMU module to stabilize to a stable value. Therefore, during our
calibration, the IMU module is first placed statically for 120 seconds to collect data for estimating the
biases of the gyroscope.
 Figure 2: The Allan standard deviation plot of the three-axis data of the uncalibrated gyroscope

3.2.    Static and dynamic interval detection
    In this paper, we use the data of static interval to calibrate the error parameters of accelerometer and
the biases of gyroscope, and use the data of dynamic interval to calibrate the scale factors and
misalignment errors of gyroscope. Therefore, the result of the detection and division of the dynamic and
static intervals has a great influence on the accuracy of the calibration results. In traditional interval
detection methods, a quasi-static detection model is generally proposed by sequentially processing the
accelerometer data with high-pass filtering, signal rectification and low-pass filtering. However, the
result is not ideal in experimental application, small motion cannot be detected, and the choice of its
threshold also has a greater impact on the result. The dynamic and static interval detection method
proposed in this paper uses the sum of squares of the variance of the accelerometer data in the initial
static time as the initial threshold, and then multiplies the threshold by an appropriate multiplier as the
final threshold. The multiplier can be determined by the residual of accelerometer fitting results under
different multipliers. The initial threshold can be denoted as:
                               TSinit = ( init ( Ax ))2 + ( init ( Ay ))2 + ( init ( Az ))2     (12)
where TSinit represented the initial threshold, which is calculated from the initial static accelerometer
data within 120 seconds.  init represents calculating the variance of the accelerometer data within the
initial Tinit seconds.
    In order to complete the detection and division of static and dynamic intervals, we need to calculate
the sum of squares of the variance of the accelerometer data in a fixed period of time:
                                   v = ( f ( Ax ))2 + ( f ( Ay ))2 + ( f ( Az ))2               (13)
where f represents the output frequency of the IMU module, which is 100Hz in this paper. When
 v  TSinit  multiplier , it is regarded as dynamic, otherwise it is regarded as static.
    In addition, due to the manual movement and placement of modules for data collection, some
unexpected jitters in a very short period of time cannot be avoided, which will result in the ideal division
result cannot be obtained. For the division result by the above method, if the length of the dynamic
interval is too small, it will be merged into the previous static interval. In the same way, when the length
of the static interval is too small, it is merged into the previous dynamic interval, and the detection and
division of the static and dynamic interval are finally completed. As shown in Figure 3, the black line
represents the dynamic and static interval detection results, and the multiplier in Figure 3 is 2.
 Figure 3: The plot of static and dynamic interval detection

3.3.    Manual data acquisition
    According to the calibration theory and method used in this paper, the following data acquisition
method is proposed:
    1) After the IMU module is turned on, it is first placed at rest for 120 seconds to calculate the
threshold value which is required for the gyroscope biases and the dynamic and static interval division.
    2) For accelerometers, we need to identify 3 biases, 3 scale factors, and 6 misalignment errors, a
total of 12 parameters. Therefore, at least 12 sets of data at different positions are required. In order to
achieve better optimization fitting and identification result, the IMU module should be placed in as
many different positions as possible to make each error easier to be observed. We place the 6 faces and
12 edges of the IMU module vertically downwards, and we can get 18 sets of data in different positions.
On the basis of 18 positions, putting each corner of the IMU module vertically downwards, we can get
8 sets of data in different positions, and finally a total of at least 26 sets of data in different positions
can be obtained. As shown in Figure 4 and Figure 5, Figure 4 is the schematic diagram of each location,
and Figure 5 is an example of the experimental IMU module placement. Since the IMU module is
placed manually, the attitude of each position does not need to be placed strictly, but the attitude of each
position should be significantly different as far as possible.



                                z
                                      y              z     x         z   x
                                      x                                      y
                                  a               b                      c
 Figure 4: Schematic diagram of position arrangement




 Figure 5:The example of the experimental IMU module placement

    3) In order to simplify the process of data acquisition, there is no need to collect data separately
for the accelerometer and the gyroscope. Only the data of the rotation and movement of the IMU module
during the switch between different positions in Section 3.3-2) are used as the data for the calibration
of the gyroscope. During the rotation and movement process, the IMU module should be rotated at a
large angle appropriately to make the errors accumulate more obviously. In addition, we can try to rotate
only one axis of gyroscope, so as to calibrate the scale factor better. And try to rotate only two axes of
gyroscope, so as to calibrate the misalignment errors better.
4. Stepwise calibration and biases online calibration method

4.1.     Stepwise calibration method
    We use the Gauss Newton algorithm to optimize equation (3) and equation (10). The initial value
setting of the parameter to be estimated has a great influence on the fitting speed and effect of the
algorithm, and the algorithm may have a local minimum possible. But in order to meet the general
situation, we set the initial value of the parameter to the default initial value, for example, the scale factor
are set to 1 and other items are set to 0. During the experiment, it is found that if 12 parameters need to
be identified and estimated at one time, the calculation amount is large, the calculation time is long and
the fitting effect is poor. It can be observed from the error model in Section 2 that the accelerometer bias
is relatively independent of other error parameters, similar to the gyroscope bias, so we propose the
stepwise calibration method to estimate the acceleration error parameters. First, 3 bias parameters are
estimated. Through the verification of many experimental results and comparison with the true value of
turntable calibration, the estimated biases are close to the true value. And then the estimated biases are
used as known items to assist in estimating the other 9 error parameters of the accelerometer. Since the
initial value of the biases are close to the true value at this time, the estimation accuracy of the other 9
parameters will be better than the method of one-time estimation 12 parameters when the initial value of
the biases are set to 0. In addition, the speed of stepwise method is obviously faster than the speed of
one-time estimation. The specific stepwise estimation method is as follows.
    Assuming that the x-axis of the accelerometer coincides with the x-axis of the IMU carrier, and the
y-axis lies on the x-y axis plane of the carrier coordinate system. Based on the above assumption, we
first set  xz ,  xy and  yx to 0, and estimate the other nine parameters, that is, the parameter vector to be
estimated is set to:
                                  acce = [ S ax , S ay , S az , yz , zy ,0, zx ,0,0, bax , bay , baz ]                    (14)
   The initial value is set to the default initial value, that is:
                                                 acce = [1,1,1,0,0,0,0,0,0,0,0,0]                                            (15)
   Firstly, the three-axis biases can be estimated through the Gauss Newton algorithm, and then we use
the estimated three-axis biases bcali , bcali , bcali  of the accelerometer as a known value, that is, the parameter
                                         ax     ay     az


vector to be estimated is:
                              acce = [ Sax , Say , Saz , yz , zy , xz , zx , xy , yx , baxcali , baycali , bazcali ]   (16)

   Therefore, the initial value can be set to:  acce = [1,1,1,0,0,0,0,0,0, baxcali , baycali , bazcali ] , Then the scale
factors and misalignment errors can be estimated through the Gauss Newton algorithm. Estimating the
accelerometer three biases and other nine error parameters by the stepwise estimation method can
effectively improve the accuracy of errors identification and the efficiency of the algorithm.
    For the error parameters estimation of gyroscope, the biases are estimated by the mean value in the
initial static phase, so the parameters involved in the optimization estimation algorithm are only nine
other parameters except the three biases. And there is no need to adopt a stepwise estimation method.

4.2.     Online calibration of gyroscope biases
   Gyroscope bias can generally be divided into two parts: static component and dynamic component.
The dynamic component is caused by the bias instability during its work. The static component includes
the constant value bias and the successive start bias, and the latter will fluctuate in a certain range due to
the instability of successive startup and has a certain randomness. Especially for the low-cost MEMS
gyroscope, the bias fluctuation is more obvious and the range is larger. The three-axis self-calibration
biases of the IMU module used in the experiment every half a month are shown in Figure 6. Their
fluctuation is more obvious, only relying on a certain self-calibration biases to compensate for them, the
effect may not be ideal and will affect measurement accuracy of the IMU. In this paper, based on the
self-calibration parameter compensation, we use the online calibration strategy for the gyroscope biases,
that is, the average values of the three-axis of the gyroscope after the compensation of the self-calibration
parameters with any static time greater than 20 seconds under the working state is taken as the gyroscope
bias of online calibration. The combined use of self-calibration and online biases calibration can further
improve the measurement accuracy of the MEMS-IMU.




 Figure 6: The plot of biases of gyroscope successive startup every half a month

5. Calibration experiment and verification

5.1.    Self-calibration experiment
   We use the laboratory self-made IMU module shown in Figure 5 for self-calibration experiments.
The model of the three-axis accelerometer of the IMU module is ADXL356B, the model of the x-axis
and y-axis gyroscope is CRM100, and the model of the z-axis gyroscope is CRM200, and its index
parameters are shown in Table 1.


Table 1
The performance index parameters of IMU module
             parameters                        accelerometer                        gyroscope

           full-scale range                        10g                              900  s
            nonlinearity                         0.1%FSR                            0.16%FSR
            noise density                       80  g    Hz                      0.018  s / Hz
           bias instability                         0.1g                             40  h

   velocity/angular random walk                45 m / s / h                         0.28  h

    We use the scheme proposed in Section 3 for data acquisition. After powering on, we first place it at
rest for 120 seconds, and then rotate in turn to include at least 26 positions described in Section 3.3. In
order to fully identify the error parameters, the number of positions in the experiment is generally more
than 30. The static time of each position is about 6~7 seconds, and the rotation process between each
two positions is about 2~4 seconds. The rotation speed should include slow and fast rotation.
    We use our method to calibrate the IMU module. During the experiment, it is found that it generally
takes 20~30 seconds to estimate 12 parameters of accelerometer by using stepwise method, and the time
required to estimate 12 parameters at one time is about 400~500 seconds, which is 10~20 times of that
of the stepwise method, and the accuracy of one-time estimation method is lower. In order to verify the
consistency of the method, we have carried out 3 times calibration experiments. The results are shown
in Table 2 and Table 3:
Table 2
Self-calibration results of accelerometer
                        1                   2           3         Mean         Std
       bax         -0.110533            -0.110643   -0.110285   -0.110487   1.834e-04
       bay         -0.113286            -0.112076   -0.111387   -0.112250   9.613e-04
       baz         -0.131303            -0.132407   -0.132657   -0.132122   7.205e-04
       S ax         1.054552            1.054936    1.054534    1.054674    2.271e-04
       S ay         1.060421            1.060540    1.060435    1.060465    6.504e-05
       S az         1.049615            1.049810    1.049075    1.049500    3.808e-04
        yz        -0.001268            -0.001131   -0.001310   0.001236    9.361e-05
        zy         0.000297            0.000320    0.000309    0.000309    1.150e-05
        xz         0.001486            0.001401    0.001529    0.001472    6.514e-05
        zx         0.000949            0.000923    0.001060    0.000977    7.276e-05
        xy        -0.001077            -0.000978   -0.001183   -0.001079   1.025e-04
        yx         0.000555            0.000627    0.000576    0.000586    3.703e-05

Table 3
Self-calibration results of gyroscope
                        1                   2          3         Mean          Std
       bgx         0.075457             0.074130    0.075513    0.075033    7.828e-04
       bgy         -0.030843            -0.030711   -0.030874   -0.030809   8.656e-05
       bgz         -0.117457            -0.116761   -0.117314   -0.117177   3.676e-04
       S gx        1.053946             1.053028    1.053878    1.053617    5.115e-04
       S gy        1.053902             1.053446    1.053791    1.053713    2.378e-04
       S gz        1.046642             1.046058    1.047067    1.046589    5.066e-04
        yz        0.002485             0.002318    0.002211    0.002338    1.381e-04
        zy        -0.031031            -0.028960   -0.029970   -0.029987   0.001000
        xz        -0.011401            -0.011664   -0.011714   -0.011593   1.682e-04
        zx        0.016304             0.017027    0.015572    0.016301    7.275e-04
        xy        -0.007958            -0.008698   -0.009015   -0.008557   5.424e-04
        yx        -0.014107            -0.013481   -0.014178   -0.013922   3.836e-04


5.2.     Verification of the self-calibration results
   We use the turntable to verify the self-calibration results. For the accelerometer ,we install the IMU
module tooling on the three-axis turntable, and keep the x, y, and z axis of the IMU facing north, east,
and ground. Then we adjust the turntable in turn and make the angles between the three axes of the IMU
and the north, east, and ground directions be  0, 0, 0 , 30, 0,30 ,  60, 0, 60 and 90, 0, 0 respectively (the
unit is degree (°)). Then we collect the data of each position, and the true value of the three axes in the
corresponding position is  0, 0, -9.8016 ,  4.9008, 0, -8.4884 , 8.4884, 0, -4.9008 and 9.8016, 0, 0 (which
represent the component of gravity on each axis respectively, and the unit is m s 2 ). We use the self-
calibration parameters to compensate accelerometer raw data. The raw value, self-calibration value and
true value of the accelerometer are shown in Figure 7. At each position, the three-axis self-calibration
value and the true value curve basically coincide. Figure 7 (a) and Figure 7 (c) show that the calibration
results of biases and scale factors of accelerometer have high accuracy. Figure 7 (b) shows that the
calibration result of the misalignment errors has high accuracy, so that the gravity component caused by
the misalignment errors at each position is basically eliminated. The average errors between the
compensation values and the true values of the x-axis, y-axis, and z-axis are 0.0279 m s 2 , 0.0122 m s 2 ,
and 0.0556 m s 2 respectively, and the compensation accuracy is more than 95%.




          (a) Compensation results of x-axis accelerometer (b) Compensation results of y-axis accelerometer




                                (c) Compensation results of z-axis accelerometer
 Figure 7: Compensation results of accelerometer before and after self-calibration

   For the gyroscope, we adjust the turntable to make the z-axis of IMU vertically upward, and give the
z-axis of IMU module a positive angular velocity of 0, 30, 60, 90 and 120 (the unit is °/ s), and the
angular velocity of x-axis and y-axis are 0 °/ s. Then we collect the data of each angular velocity. We
use the self-calibration parameters to compensate gyroscope raw data. The raw value, self-calibration
value and true value of the gyroscope are shown in Figure 8. Similar to the accelerometer, the
compensation value and the true value curve basically coincide at each angular velocity. Figure 8 (a) and
Figure 8 (c) show that the calibration results of biases and scale factors of gyroscope have high accuracy.
Figure 8 (b) shows that the calibration result of the misalignment errors has high accuracy, so that the
angular velocity component caused by the misalignment errors at each angular velocity is basically
eliminated. The average errors between the compensation values and the true values of the x-axis, y-axis,
and z-axis are 0.0986°/s, 0.1265°/s, 0.2801°/s respectively, and the compensation accuracy is also more
than 95%.
           (a) Compensation results of x-axis gyroscope   (b) Compensation results of y-axis gyroscope




                               (c) Compensation results of z-axis gyroscope
 Figure 8: Compensation results of gyroscope before and after self-calibration

6. Conclusion
    In this paper, we propose a stepwise simple self-calibration method for low-cost MEMS-IMU. In the
calibration process, no auxiliary equipment is needed, and the calibration can be completed only by
manually turning the IMU module. In order to reduce the complexity of the algorithm and improve the
accuracy of the optimization estimation, we adopt a stepwise algorithm. In addition, in view of the
problem that the bias is not stable when the MEMS gyroscope is started successively, the method of
online calibration after the MEMS gyroscope's bias self-calibration compensation is adopted, which can
further improve the measurement accuracy of the gyroscope. Through the real compensation test, the
results show that the measurement accuracy of the MEMS-IMU after compensation can reach more than
95% of the true value, which is suitable for the self-calibration of MEMS-IMU in scenarios such as PDR
positioning and motion capture systems.


7. References

[1] W. C. Zhang, D. Y. Wei, H. Yuan and X. Y. Li, “A Survey of Pedestrian Autonomous Positioning
    Method Based on Inertial Recursion Principle,” Navigation Positioning and Timing, pp. 1-14,
    February 2021.
[2] J. Ziegler, H. Kretzschmar, C. Stachniss, G. Grisetti and W. Burgard, “Accurate human motion
    capture in large areas by combining IMU- and laser-based people tracking,” IEEE, IROS 2011,
    San Francisco, CA, USA, September 2011.
[3] R. M. Rogers, R. Rogers and C. R. Rogers, “Applied Mathematics in Integrated Navigation
    Systems,” American Institute of Aeronautics and Astronautics, 2007. doi:
    10.1080/0020739700010302
[4] A. B. Chatfield, “Fundamentals of High Accuracy Inertial Navigation,” Progress in Astronautics
     & Aeronautics, pp. 15-32, 1997. doi: 10.2514/5.9781600866463.0015.0032
[5] J. J. Hall and R. L. Williams, “Case study: Inertial measurement unit calibration platform,” Journal
     of Robotic Systems, vol. 17, no. 11, pp. 623-632, 2000,
[6] A. Kim and M. F. Golnaraghi, “Initial calibration of an inertial measurement unit using an optical
     position tracking system,” PLANS 2004, pp. 96–101, 2004.
[7] E. M. Nebot and H. F. Durrant-Whyte, “Initial calibration and alignment of low-cost inertial
     navigation units for land vehicle applications,” Journal of Robotic Systems, vol. 16, no. 2, pp. 81–
     92, 1999.
[8] J. Lotters, J. Schipper, P. Veltink, W. Olthuis, and P. Bergveld, “Procedure for in-use calibration
     of triaxial accelerometers in medical applications,” Sensors and Actuators A: Physical, vol. 68, no.
     1-3, pp. 221–228, 1998.
[9] Z. F. Syed, P. Aggarwal, C. Goodall, X. Niu and N. El-Sheimy, “A new multi-position calibration
     method for mems inertial navigation systems,” Measurement Science and Technology, vol. 18, pp.
     1897–1907, 2007.
[10] W. Fong, S. Ong, and A. Nee, “Methods for in-field user calibration of an inertial measurement
     unit without external equipment,” Measurement Science and Technology, vol. 19, pp. 1–11, 2008.
     doi: 10.1088/0957-0233/19/8/085202
[11] C. M. Cheuk, T. K. Lau, K. W. Lin, and Y. Liu, “Automatic calibration for inertial measurement
     unit,” International Conference on Control Automation Robotics & Vision. IEEE, 2012.
[12] D. Tedaldi, A. Pretto, and E. Menegatti. “A robust and easy to implement method for IMU
     calibration without external equipments,” ICRA 2014. IEEE, 2013.
[13] N. El-Sheimy, H. Hou and X. Niu, “Analysis and Modeling of Inertial Sensors Using Allan
     Variance,” IEEE Transactions on Instrumentation & Measurement, vol. 57, no. 1, pp. 140-149,
     2007.
[14] W. L. Zuo, F. Hui, Y. U. Hao, X. Chen and S. Y. Zhang, “Research on Fiber Optic Gyroscope
     Allan Variance Bias Instability,” Navigation Positioning and Timing, vol. 2, no. 06, pp. 55-58,
     2015.
[15] S. H. Zhao, M. Q. Lu, and Z. M. Feng, “Allan variance analysi on error coefficients of MEME
     inertial components,” Science China: Phys, Mech & Astron, vol. 40, no.5, pp. 672-675, 2010.