1. Introduction
Rapid development of MEMS (micro-electro-mechanical system) technology and advances in manufacturing industry has made it possible to produce low-cost consumer-grade inertial sensors (i.e., gyroscope, accelerometer). The MEMS inertial sensor is advantageous in chip-size minimization, low-cost manufacturing, lower power consumption, and has been applied in multiple applications, such as vehicle and pedestrian navigation, wearable electronic devices, augmented reality (AR). However, the MEMS inertial sensor suffers from various error sources (i.e., bias, scale factor error, non-orthogonal error, random noise) and thermal drifts, which can cause negative effects on its utilization. Hence, a calibration process is highly required to determine the sensor errors and mitigate the drift.
Calibration is defined as the process of comparing instrument outputs with known reference information to determine coefficients that force the output to agree with the reference information across the desired range of output values. A calibration experiment is conducted to compute deterministic errors of sensors in laboratory [
1], and the calibrated parameters are employed to remove the sensor errors and derive a more reliable measurement. The calibration approaches and technologies have been well researched and studied, such as the local level frame (LLF) method and six-position static method [
2]. However, these traditional calibration methods are primarily designed for in-lab tests and high-quality sensors, such as navigation or tactical grade IMUs (inertial measurement unit), and often require the use of special references (i.e., Earth rotation) such as alignment to a given frame or specialized equipment [
3]. Therefore, using the specific high-level laboratory conditions to calibrate the low-cost MEMS sensor is always costly and meaningless.
Several researches or studies have been proposed to simplify the calibration procedure for MEMS inertial sensors. Skog [
4] made use the fact that the norm of the gyroscope output ideally equals to the magnitude of applied rotational velocity. Li [
5] presented a calibration scheme based on the principle that the time derivative of a reference vector can be expressed as the cross product of the angular velocity and the reference vector itself. Nieminen [
6] utilized the standard multi-position method for consumer-grade IMUs’ calibration which also exploits the effect of the centripetal accelerations caused by the table rotation. Zhang [
7] investigated the inter-triad misalignment between the gyroscope and accelerometer and the optimal calibration scheme design. The major advantages of these work are: (1) they do not need to use the Earth rotational velocity as the reference rotational velocity, which is weak signal (15°/h); (2) the calibration can be accomplished without aligning the IMU to the local level frame. However, they need the reference signals provided by the rotation table or other means to identify the gyroscope error.
Due to the inapplicability of using the external equipment (i.e., rotation table) in several practical fields, calibration schemes without the needs of expensive or cumbersome equipment are desirable and significant. Fong [
8] developed an in-field hand-held calibration approach. This algorithm firstly generates multiple quasi-static stages, and compares attitude determined by the accelerometer outputs and the Strapdown inertial navigation algorithm with a cost function to calibrate the gyroscope. However, this approach needs the user to keep IMU stationary under different orientations to guarantee the accuracy. The static stage is judged by the threshold and the value selection is not discussed. You [
9] introduced the pseudo-measurement concept and considered it as reference to perform the calibration. This method makes use of the constraint that the IMU’s position remains constant and velocity equals to zero when it is rotating strictly around its measurement center. The loosely-coupled integration navigation model was employed to estimate the inertial sensor biases and scale factor errors. Nevertheless, the pseudo-measurement (i.e., position, velocity), which is imposed as reference signal in the calibration, is weak correlated to sensor error; thus, the sensor error will not become well observable and realizable unless the IMU has experienced a continuous and suitable dynamic rotation. Moreover, this method is designed to use the gyroscope and the accelerometer triads of the IMU to calibrate each other, but the errors of both sensors are coupled together, and cannot be accurately estimated. The non-orthogonal error calibration is neglected in this work. Li [
10] proposed a multi-level constrains autonomous gyroscope bias calibration algorithm. This approach consists of various constrains including pseudo-observation updates, the accelerometer and magnetometer measurement model, and magnetic disturbance detection, to contribute the bias estimation and is applied in pedestrian navigation scenario, while this approach only considers the sensor bias error and ignores the scale factor error and non-orthogonal error. These two kinds of error are proportional to the rotational velocity, which means that larger angular velocity introduces larger sensor error. Therefore, the estimated bias error is coupled with other error sources and became unreliable. Sachin [
11] explored an in-package calibration approach and made use of a piezoelectric multi-modal mechanical stimuli stage to achieve the in-situ calibration. Umar [
12] proposed in-field MEMS IMU calibration algorithm without support of external support; the rotation along vertical axis scheme is not considered and the sensor error’s observability is not analyzed. Farhad [
13] provided an approach to use nonlinear model and transformed unscented Kalman filter (TUKF) to perform the low-cost MEMS IMU calibration procedure, but a rotation table is must needed. Additionally, the introduced gyroscope in-self calibration studies lack research work in analyzing the main error sources of MEMS sensor and providing theoretical calibration experiment design principles. Pablo [
14] introduces a temperature-dependent calibration algorithm to calibrate triaxial sensors and develops an electromechanical prototype to perform the approach. Compared with this algorithm, our method does not need to consider the temperature element as the whole calibration procedure can be accomplished in short time without temperature variation and as such gyroscope bias error does not vary. Additionally, any other testing device is unnecessary.
This paper proposes a novel low-cost MEMS gyroscope in-self calibration algorithm without the support of external equipment. Comparing with previous works, this method can identify the main error source of MEMS gyroscope, including bias, scale factor error, non-orthogonal error. We analyze different levels MEMS gyroscope error characteristics and the sensor measurement model and propose to calibrate the error under different dynamic conditions. Kalman filter is employed to design the calibration model, the system observability is analyzed, and the state vector observable conditions are determined. Thus, the IMU rotation scheme can be reasonably designed and implemented to calibrate the sensor errors in a quick and effective way. The main difference between the proposed algorithm and previous studied approaches are listed in
Table 1.
The main advantages and contributions of the proposed method include: (1) It is an easy, convenient and novel approach to calibrate 9 gyroscope error parameters during short term (approximately 3–5 min); (2) The system observability is analyzed, and the sensor error observable conditions are obtained. Hence, the optimal calibration experiment can be reasonably and theoretically designed. (3) This approach does not require the support of external equipment and only needs to employ the pre-calibrated accelerometer output as reference signal. Moreover, it does not require other aiding information, such as GPS, magnetometer.
2. Main Error Sources of MEMS Gyroscope
Generally, gyroscope suffers from various error sources, such as bias, scale factor error, non-orthogonal error, acceleration errors (g-sensitivity), non-linearity, quantization error, and random errors [
1]. Due to different manufacturing levels and chip production technologies, some kinds of sensor errors are dominant, while several others only have limited contribution. Therefore, it is critical to find out the main error sources of MEMS gyroscope and take them into consideration. We review the datasheet of different levels MEMS gyroscope (i.e., consumer level, high level), and summarize the sensor errors in
Table 2,
Table 3 and
Table 4.
Table 2 lists the gyroscope characteristics of consumer-level (low level) IMU, MPU-9255/9150 [
14,
15].
Table 3 and
Table 4 provide the gyroscope characteristics of high-level inertial measurement units ADI16367 [
16] and IMU-440 [
17].
According to the comparison of different levels MEMS gyroscope performance, the bias, scale factor error and non-orthogonal error are considered as the main error sources. The bias is at least 1°/s for the high-level MEMS gyroscope and is 5°/s for the consumer-level sensor. An uncompensated gyroscope bias in the sensor measurement will introduce an angle error (in roll or pitch) that is proportional to time t. Accordingly, an error proportional to and will be involved in velocity and position respectively. The bias error compensation determines the solution performance and is an essential part in navigation algorithm.
The scale factor error is at least 1%, which means that it introduces 1°/s error if the rotation velocity is 100°/s and the error will enlarge with the increase of angular velocity. The non-orthogonal error, which denotes that the three axes are not perfectly aligned to the coordinate and the rotation in one axis will be deduced in the other two axes, is approximately 1 degree. In this assumption, if the three axes rotation velocities are 100°/s, the non-orthogonal error will introduce 1.4 degrees measurement error to sensor output [
3]. Hence, although the scale factor error and non-orthogonal error of high-level MEMS gyroscope is lower than that of consumer-level sensor, the measurement error caused by these errors is large and cannot be ignored.
For the nonlinearity error, it is 0.1% and is the least error among MEMS gyroscope error characteristic. The effect of the nonlinearity error is much less than that caused by other errors. For instance, its error is only 0.1°/s when the rotation velocity is 100°/s. Therefore, for the calibration algorithm proposed in this paper, we only consider the bias, scale factor error and non-orthogonal error, and can safely ignore the nonlinearity error.
In addition, this comparison also presents the effect of temperature on the gyroscope performance. For the consumer-level IMU, MPU-9255/9150, in the temperature range of −40 °C to +85 °C, the sensitivity scale factor variation is 4%, and the variation of Zero Rate Output (ZRO) is up to 20–30°/s. The scale factor error change of ADI1367 over temperature is 40 ppm/°C, and the bias variation with temperature is 0.01°/s/°C. The environmental conditions, such as the temperature variations and added voltage, will negatively impact the measurement performance of the MEMS gyroscope. Therefore, aiming to derive a more reliable navigation solution, it is more important to calibrate the MEMS gyroscope especially for the low-cost consumer-level, before usage in different application and environmental conditions.
5. Test and Results
Simulated and practical experiments have been carried out to test and verify the proposed calibration algorithm. In simulated experiment, we first design the sensor rotation sequence to generate true sensor data according to observability analysis and add the preset sensor error to data which is used to perform the calibration approach. In practical experiment, the rotation follows the same sequence as that performed in simulation. In each experiment, the converge of estimated scale factor error and non-orthogonal error and their corresponding element in P matrix are drawn, compared and analyzed. In simulation experiment, we compare the estimated sensor error and preset error parameter to derive the absolute error and relative error. In practical experiment, the attitude calculated by sensor data with and without error compensation are compared to demonstrate the validation of calibrated parameter and all the figures are plotted in Matlab.
5.1. Simulation Experiment
Aiming to derive a reliable gyroscope error calibration result, the IMU is designed to rotate along vertical axis first to estimate the non-orthogonal error and consequently along horizontal axis to estimate the scale factor error based on the system observability analysis. The rotation scheme design is described in the
Table 6.
The IMU keeps static with zero attitude in the first 10 s and rotates with respect to
z-axis in clockwise and counterclockwise directions. Then the IMU rotates 90 degrees along
y-axis to move the
x-axis vertical to horizontal plane and rotates with respect to
x-axis. Consequently, the IMU separately rotates along
x,
y,
z-axes in horizontal plane.
Table 6 lists the designed rotation sequence including the time period, direction and rotating axis.
The gyroscope error including scale factor error, non-orthogonal error, ARW, and the accelerometer error Velocity Random Walk (VRW) are simulated according to the consumer level MEMS sensor performance and listed in
Table 7. These error parameters are substituted into the sensor measurement model to generate the output and are used for calibration.
Figure 1 shows the simulated inertial sensor measurement and
Figure 1a,b separately illustrate the rotation and acceleration. The blue, red and yellow lines denote the measurement in
x,
y,
z axes. The proposed calibration algorithm is employed to estimate the sensor error and the initial state vector and variance-covariance matrix
P are set as:
The initial state is set as zero-vector due to the lack of sensor error prior knowledge. The
P matrix is set based on the maximum sensor error. The error estimation result is drawn in
Figure 2.
Figure 2 shows the sensor error estimation result,
Figure 2a denotes the scale factor error and
Figure 2b shows the non-orthogonal error result. The blue, red and yellow line denote the error of
x,
y and
z axes.
Figure 3 shows the elements of
P matrix,
Figure 3a,b denote the elements corresponding to the scale factor error and the non-orthogonal error;
Figure 3c,d denote the elements corresponding to attitude error and heading error. The reason for investigating the elements of covariance matrix
P is that if its diagonal element experiences a large decrease from its initial value, the corresponding state becomes observable and its observability is large [
20].
As shown in
Figure 3, because the IMU keeps static in the first 10 s, the state vector is not observable, and the diagonal element of P matrix does not change. Starting from 10 s, the IMU rotates with respect to
z-axis, the
converge to the reasonable value and their corresponding
P matrix elements decrease dramatically. When the IMU rotates along x axis vertically beginning from 40 s, the
begins to converge and its corresponding
P matrix element decreases. The non-orthogonal error estimation result verifies the observability analysis that rotating along vertical axis is able to make the non-orthogonal error observable and achieve a reliable calibration result.
For the scale factor error, the IMU rotates with respect to the x-axis and z-axis separately starting from 80 s and 126 s, then the and begin to converge and their corresponding P matrix elements experience a large decrease simultaneously. The scale factor error estimation result also demonstrates the observability analysis that rotating along the IMU horizontal axis is beneficial to make the scale factor error observable and estimate this error.
For the attitude error (i.e., pitch error, roll error), the two parameters are observable in the filter and is unrelated to the system dynamic condition. Hence, the
P matrix elements corresponding to these two errors converge after the filter begins to work. The heading error is unobservable during the process, because the system measurement vector is uncorrelated to the heading error and cannot provide helpful correction, which explains that the its corresponding P matrix element diverges in the calibration procedure. In addition, the bias, scale factor error and non-orthogonal error estimation results are listed in
Table 8 and
Table 9. The absolute error and relative error compared with true value are also provided.
The gyroscope error calibration result is reasonable and reliable. The maximum relative error is 6.8%, and the minimum relative error is only 1%. Moreover, if the random noise of inertial sensor can be decreased in the simulated process, a more accurate result can be acquired.
Additionally, we utilize the singular value decomposition (SVD) of the observability stripped observation matrix to evaluate the degree of observability of each state. We separately calculate the singular value of the observability matrix with and without the observable state according to analysis result.
Table 10 and
Table 11 give the result.
Table 10 and
Table 11 list the singular value of the SOM when the IMU rotates under different dynamic motion. In order to analyze the single state observability, we separately calculate the singular values with full states (9 states) and chosen states (6 or 7 states) and make the comparison. The zero singular values are ignored and only the non-zero values are listed in the tables.
As described in tables, two singular values 9.8 are available in each group. The reason is that the pitch error and roll error are always observable during the procedure, and 9.8 is their singular value. Hence, only need to analyze the other values. When the IMU is rotating with respect to the z-axis, the singular values of SOM (Stripped Observability Matrix) with the full states are 8.52 and 8.50. While the singular value become 0.61935 and 0.375294 when the states and are not considered in the observability matrix. It shows that the system observability degree decreases dramatically and only the attitude errors are observable in this condition. Meanwhile, it demonstrates that and are observable when the IMU rotates along the z-axis vertically. Based on this analysis and the comparison of singular values under various dynamic conditions, it comes to the same result with the observability analysis that the scale factor error is observable when the IMU rotates horizontally and the non-orthogonal error is observable when the IMU is rotating vertically.
5.2. Practical Experiment
We employ the consumer level MESM sensor MPU-9150 in practical experiment to test the proposed calibration algorithm. The MPU-9150 is a 9-axis inertial sensor which includes 3-axis gyroscope, 3-axis accelerometer and 3-axis magnetometer. The rotation sequence follows the designed scheme described in simulation experiment that rotating along the vertical axis first and then along the horizontal axis. The collected data is illustrated in
Figure 4.
Figure 4 illustrates the collected inertial data in practical experiment.
Figure 4a,c show the gyroscope and accelerometer measurement.
Figure 4b shows the gyroscope measurement of static period in the first 10s. The rotation data of static period is averaged to derive the sensor bias. The initial state vector and covariance matrix
P is set the same as that in the simulated experiment. The sensor error calibration result is shown in
Figure 5.
Figure 5 shows the sensor error estimation result,
Figure 5a denotes the scale factor error and
Figure 5b shows the non-orthogonal error result. The blue, red and green lines denote the errors of
x,
y and
z axes.
Figure 6 shows the element of
P matrix,
Figure 6a,b denote the elements corresponding to the scale factor error and non-orthogonal error;
Figure 6c,d denote the elements corresponding to the attitude error and heading error.
Due to the IMU keeps static in the first 10 s, the sensor errors (i.e., scale factor error, non-orthogonal error) are not observable and cannot be well estimated. After the static period, the IMU starts to rotate along z-axis vertically, the begin to converge and their corresponding P matrix diagonal elements experience large decrease. Starting from 30 s, the IMU rotates along x-axis vertically and its corresponding P matrix decreases. The IMU starts to rotate along x, y, z axis separately approximately since 52 s, 72 s, 90 s, and the scale factor errors, also begin to gradually converge from these time epochs. Meanwhile, their corresponding P matrix diagonal elements decrease.
In order to test the validation of calibration algorithm, we rotate the IMU in free style and separately calculate the attitude using the sensor data with and without error compensation. The attitude is computed with the orientation integration algorithm and the results are compared with the reference. The attitude calculation results are illustrated in the following figures.
Figure 7 shows the attitude calculation result,
Figure 7a,c,e show the roll, pitch, heading results and
Figure 7b,d,f show the attitude results in the selected periods for better comparison. The blue line denotes the attitude result calculated by the inertial sensor data which has been compensated by the error parameters derived from proposed calibration approach. The red line denotes the attitude calculated by the data in which only the bias has been removed, and the green line denotes the reference.
As shown in the right side three figures which have been enlarged in selected periods, the attitude with error compensation (blue line) is closer to the reference (green line) and the attitude without error compensation (red line) drifts away from the reference. The attitude comparison demonstrates the validation of gyroscope error estimation result because the attitude performance has been improved through well sensor error compensation, while the attitude without error compensation has a poorer performance. The attitude error result and its statistical result are shown in
Figure 8 and
Table 12.
Figure 8 shows the attitude error result,
Figure 8a–c separately denote the pitch, roll and heading errors. The blue and red line respectively denote the attitude calculated with and without sensor error compensation.
Table 12 lists the error statistical result of the two groups attitude result and illustrates that the attitude result with error compensation has an overall better performance.
As shown in
Figure 8, in the first 8 s during which the IMU keeps static, the attitude errors of the two groups are approximately same and almost equal to zero. Then when the IMU begins to rotate, the attitude error curves become different and it is obvious that the attitude with error compensation performed well than that without error compensation.
During the static period, due to the bias error has been well estimated and removed according to the gyroscope output average, the performances of two groups attitude are nearly same. As analyzed in the MEMS sensor error source section, the scale factor and non-orthogonal errors are proportional to the angular velocity. Therefore, during the rotating stage, these two errors begin to affect the calculation result, and the inertial data with error compensation constrains the negative effect and leads to a more reliable solution. While the sensor data without error compensation suffers from the error effect and the attitude calculated by this group data will drift faster and has a poor performance.
The proposed calibration algorithm is implemented through Kalman filter. The dynamic and measurement model are all expressed in linear form, the state and measurement vector dimension are separately 9 and 3 which is not large; thus, the approach’s complexity is O(9) and does not occupy much computation resource. In addition, sequential measurement update can be applied in filter to avoid calculating the inverse of matrix. Hence, the algorithm only needs limited computing resources and can be embedded in sensor’s internal processor to implement error calibration without support of external CPU.