Calibration Procedure For An Inertial Measurement Unit Using A 6-Degree-of-Freedom Hexapod
Calibration Procedure For An Inertial Measurement Unit Using A 6-Degree-of-Freedom Hexapod
6-Degree-of-Freedom Hexapod
Øyvind Magnussen, Morten Ottestad and Geir Hovland
ωb = Kω · ωI (5)
Fig. 1. IMU frame relative to the body frame ωI fI − ωI,o − ωI,n
= ω (6)
aT
R
aR
ω
B) Calculate scaling and correlation matrices The final solution to the problem is:
C) Find the location of the inertial measurement units Rx ,
Ry and Rz positions Ωb = K · Ω I
Ωb · ΩTI = K · ΩI · ΩTI
A. Offset Calibration
K = Ωb · ΩTI · (ΩI · ΩTI )−1
The gyroscope bias are removed by calculating the average
output over a period of time, with the gyroscope in a K = Ωb Ω+
I (9)
where Ω+ I is the Moore-Penrose pseudoinverse and will
exist and be unique for any ΩI [4]. This approach (9) is
used in order to calculate the two matrices Ka and Kω . axes, the method will not be able to separate the rotation
around the x and the y-axis. The resultant K-matrix will be
C. Location of the inertial measurement unit
ωb,x 0.5 0.5 0 ωI,x
The last step is to calibrate the position R = [Rx Ry Rz ]T ωb,y = 0.5 0.5 0 · ωI,y
of the IMU relative to CG. The distance vector R can be ωb,z 0 0 1 ωI,z
calculated from (1) and (2) by rotating around one axis at a
time. Rotating around the body frame x-axis yields: and if the phase difference of ωb,x and ωb,y is π rad, the
rotation of the Xb - and Yb -axis will be opposite and a
ab,x = 0 negative sign will occur in the correlation matrix:
2
ab,y = −αb,x · Rz − ωb,x · Ry
ωb,x 0.5 −0.5 0 ωI,x
2
ab,z = αb,x · Ry − ωb,x · Rz ωb,y = −0.5 0.5 0 · ωI,y
ωb,z 0 0 1 ωI,z
and in matrix form:
In order to overcome this, a sine-function with different
ab,x 0 0 frequencies were used.
α
ab,y = −Rz −Ry · b,x
2 (10)
ωb,x ωb,x = A sin (2πfx t)
ab,z Ry −Rz
ωb,y = A sin (2πfy t)
Solving the equations using the approach from eq.(9)
ωb,z = A sin (2πfz t)
resolves two sets of Ry and Rz , because of the structure
of the matrix in eq.(10). Limitations of the Stewart Platform where the amplitude A = 4 degrees and the frequency fx =
results in a very low value of ω 2 compared to α. This makes 0.6 Hz, fy = 0.65 Hz, fz = 0.7 Hz. Using the approach
the estimates of Ry , Rz which are multiplied with the angular from (9) with a number of 10.000 sampled datasets from the
acceleration αx more trustworthy than the same estimates Stewart Platform and the IMU gives:
multiplied with the angular velocity ωx2 . Because of this
result the estimates multiplied with the accelerations are kept 0.95 0.29 0.01
as the final calibrations. The resulting equations are: Kω = −0.29 0.95 0.01 (13)
−0.01 −0.01 1.00
ab,x 0
ab,y = −Rz · αb,x The same approach was followed for the accelerometer. The
(11)
resultant Ka matrix is:
ab,z Ry
0.97 0.27 0.02
Doing this for each of the three axes results in two calcu- Ka = −0.30 0.97 −0.01 (14)
lations for each distance. If the two datasets are identical it 0.01 0.01 1.00
is a verification of the test method of the IMU.
A result of the measured angular velocity wI multiplied
IV. EXPERIMENTS with the correction matrix Kω is shown in Fig. 7, and for
the accelerometer in Fig. 8. The figures are for a different
A. Remove bias dataset than for the calculation of Kω and Ka .
The first experiment was to remove the gyro offsets. The 15
Stewart Platform
offset was calculated as the mean value of 10.000 samples: IMU Corrected
10 IMU Raw
Angular velocity (deg/s)
−0.0043 5
rad
ωI,o = 0.0010 (12) 0
sec
0.0048 −5
−15
0 2 4 6 8 10 12 14 16
The scaling and cross correlation matrix of the gyroscopes Time(s)
Rotation axis Rx Ry Rz
−0.5 ωx : − −0.237 0.227
ωy : 0.362 − 0.233
−1
ωZ : 0.362 −0.239 −
−1.5
0 2 4 6 8 10 12 14 16
Time(s)
Fig. 8. Accelerometer scaling and correction for ab,x , aI,x corrected and
aI,x raw.
A comparison of the measured values with the calculated
ones, shows that the error range is less than 5 mm.
D. Full system test
Assuming the IMU is ideal (scaling is perfect and the axis- A full system test was done in order to verify the cal-
to-axis misalignment is zero) then the resultant K-matrices culated correction matrices and distances. Ka , Kω and the
would be a rotation matrix. A XYZ rotation matrix is defined calculated distances Rx , Ry , Rz was used according to (3)
as [12] and [3]: with rotation about the three body axes Xb , Yb , Zb :
cθI cψI sφI sθI cψI − cφI sψI cφI sθI cψI + sφI sψI ωIC = Kω · ωI (17)
C = cθI sψI sφI sθI sψI + cφI cψI cφI sθI sψI − sφI cψI
−sθI sφcθI cφI cθI ab + ag = Ka · aI − ωIC × (ωIC × R) − ωIC ˙ × R (18)
(15) where ωIC is the corrected rotational velocity measured by
where C is the rotation matrix from the IMU frame to the the gyroscope and ωIC ˙ is the time derivative of the rotational
body frame, c is the cosine function and s is the sine function. velocity.
Inserting the measured values in the rotation matrix C yields: The results are shown in Fig. 9
0.96 −0.29 0 0.8
Stewart Platform
0.6 IMU Corrected
C = 0.29 0.96 0 (16) 0.4
IMU Raw
Acceleration [m/s2]
0 0 1 0.2
−0.2
The measured correction matrices are very close to the ideal −0.4
−0.6
one, Kω is the one which is closest. There are many reasons −0.8
−1.2
with less than 0.2 degrees misalignment of the internal Stewart Platform
IMU Corrected
IMU Raw
axes. Another issue could be that the accelerometer has a 0.5
Acceleration [m/s2]
Platform to use the whole range. The range of the excited −0.5
−1.5
0 2 4 6 8 10 12 14 16
Time(s)
10
9.8
in three steps, where each step was a rotation around the 9.7
9.5
and with a frequency of 0.7 Hz. The same approach as for 9.4
5
acceleration and rotational velocity, respectively. The work
0
presented in this paper demonstrates that a 6-DOF hexapod
−5
is well suited for calibration of an IMU when mounted on a
UAV.
−10
−15
0 2 4 6 8 10 12 14 16
R EFERENCES
Time(s)
[1] M.D Ardema. Newton-Euler Dynamics. Springer, 2005.
15 [2] R.W Beard and T.W McLain. Small Unmanned Aircraft Theory and
Stewart Platform
IMU Corrected Practice. Princeton University Press, 2012.
10 IMU Raw
Angular velocity [deg/s]
V. CONCLUSIONS
This paper has demonstrated a stepwise calibration method
for an ADIS16400 IMU mounted on a UAV by using a 6-
DOF Hexapod motion generator. Separate motion profiles