Sensors: Magnetometer-Augmented IMU Simulator: In-Depth Elaboration
Sensors: Magnetometer-Augmented IMU Simulator: In-Depth Elaboration
3390/s150305293
OPEN ACCESS
sensors
ISSN 1424-8220
www.mdpi.com/journal/sensors
Article
1
French-German Research Institute of Saint-Louis (ISL, Guidance, Navigation and Control
(GNC) Department), 5 rue du Général Cassagnou, Saint-Louis 68300, France;
E-Mail: sebastien.changey@isl.eu
2
Laboratoire MIPS - EA2332, Université de Haute-Alsace, 12 rue des Frères Lumière,
Mulhouse Cedex 68093, France; E-Mails: jean-philippe.lauffenburger@uha.fr (J.-P.L.);
michel.basset@uha.fr (M.B.)
Abstract: The location of objects is a growing research topic due, for instance, to the
expansion of civil drones or intelligent vehicles. This expansion was made possible
through the development of microelectromechanical systems (MEMS), inexpensive and
miniaturized inertial sensors. In this context, this article describes the development of a
new simulator which generates sensor measurements, giving a specific input trajectory. This
will allow the comparison of pose estimation algorithms. To develop this simulator, the
measurement equations of every type of sensor have to be analytically determined. To
achieve this objective, classical kinematic equations are used for the more common sensors,
i.e., accelerometers and rate gyroscopes. As nowadays, the MEMS inertial measurement
units (IMUs) are generally magnetometer-augmented, an absolute world magnetic model is
implemented. After the determination of the perfect measurement (through the error-free
sensor models), realistic error models are developed to simulate real IMU behavior. Finally,
the developed simulator is subjected to different validation tests.
1. Introduction
Accelerometer measurements
Position [f]W
[sBL]L Rate gyroscope measurements
Trajectory Simulator [ωWL]W
Quaternion
Magnetometer measurements
{qBL}L [h]W
Estimation
algorithms
Moreover, additional parameters, like the position of the IMU with respect to the object, allow
simulating measurements of the sensors for the same trajectory in different configurations. The
investigation of multiple IMU systems and complex architectures [6–8] can thus be studied.
Other simulators already exist in the literature: In [9], the focus is on the error models for the
skewed sensors. Indeed, the measurements are not determined from an input trajectory; the error-free
accelerations and rotational speeds are the input of the cited simulator. The outputs then consist of
the skewed measurements. In [10], a simulator is built for different applications: to perform and
test calibration processes and to validate new mathematical models involving IMUs. Unfortunately,
magnetometers are not considered. The validation processes are also generally simple: for the error-free
signals, only a static validation is performed. Meanwhile, the paper shows interesting results for sensor
error modeling, comparing Allan Variance results.
This paper shows a more accurate and complete validation of a magnetometer-augmented IMU
simulator than the previously cited papers. It consists of placing an IMU in a three-axis table, which has
been developed at ISL (French-German Research Institute of Saint-Louis)[11]. The absolute encoders
of the electric engines are used to measure the 3D motion of the table. To validate the simulator that is
even more dynamic in the trajectory, another testing method is proposed, using a validated high dynamic
trajectory simulator.
The outline of the paper is as follows: Section 2 describes the principle and the tools needed to build
the simulator, and Section 3 develops the error-free equations of the measurements. In Section 4, the
sensor error modeling is described. Section 5 shows the simulator validation process, and Section 6
concludes the paper.
2.1. Principle
In this work, a three-axis IMU will be considered, composed of three accelerometers, three rate
gyroscopes and, finally, three magnetometers. As mentioned earlier, the aim of the simulator is to
compute all of the sensor measurements from the IMU according to a measured or an a priori known
object trajectory. The principle of the simulator is shown in Figure 1.
From a trajectory describing the evolution of the spatial position [sBL ]L (the notation rules are
described in Section 2.2 for clarity’s sake) and the angular position with respect to a frame L (using the
Sensors 2015, 15 5296
quaternion {q BL }L ), the simulator determines the accelerations, the rotational speeds and the magnetic
measurements of the IMU sensors in the IMU frame W. Thus, the simulator performs an inverse
modeling of the object dynamics taking account the sensor imperfections, such as drifts, biases, etc.
(see Section 4). Its main purpose is the validation of motion estimation algorithms by comparing the
input trajectory to the estimated one. This trajectory may correspond to a real or simulated motion
allowing the estimation algorithms to be tested under the desired conditions. By adding some information
about the plant, it is also possible to test different positions and orientations of the IMU with respect to
the object. This can be used for redundant IMU systems, as well [12].
2.2. Notations
This section specifies the notation rules used to develop the kinematic model of each sensor. The
notation is mainly inspired by [13] and is detailed in Table 1. For the kinematic equations, the subscripts
refer to a point, and the exponents specify the reference frame.
Notation Rules
x Scalar
x Vector
X Matrix
x̄ (or X̄) Transpose of x (or X)
x̃ (or X̃) Conjugate of x (or X)
Kinematic Variables
sAB Position vector of point A with respect to point B
v IA Velocity vector of point A with respect to frame I
aIA Acceleration vector of point A with respect to frame I
ω EI Rotational speed vector of frame E with respect to frame I
q EI Quaternion expressing the rotation of frame E with respect to frame I
Coordinate Systems
[sAB ]E Position vector sAB expressed in the coordinate system E
EI E
q Quaternion with its vector part expressed in the coordinate system E
[T]EI Transition matrix from coordinate system I to coordinate system E
Numerous reference frames are employed in navigation [13,14]. In this work, the following frames
will be considered (see Figure 2):
• The inertial frame (I) is centered on the Earth. Its third axis is directed to the North Pole. The
other axes are in the equatorial plane. This frame does not rotate with the Earth; therefore, it is
considered to be the inertial reference. To simplify, the inertial frame has the same axes as the
Earth’s frame (E) at time t = 0.
Sensors 2015, 15 5297
• The Earth’s frame (E) is centered on the Earth and follows the Earth’s rotation (constant speed
ω EI ), unlike (I) . Its first axis is directed to the prime meridian in the equatorial plane; the third
axis is directed to the North Pole; and the second completes the orthogonal basis.
• The local coordinate system (L) is located at the center of gravity of the object. Its orientation is
tangent to the surface of the Earth and can be obtained by means of its position with respect to (E)
described by two angles: the latitude (λ) and the longitude (l). The Earth, inertial and local frames
are illustrated in Figure 2a.
• The body frame (B) is related to the object orientation (see Figure 2b). Its orientation with respect
to (L) is given by the classical Euler angles.
• The IMU frame (W) can be misaligned with the body frame. However, (W) is fixed with respect
to (B) and is dependent on its location on the object.
North Pole
l1
L
Prime l2
i3 = e3 l3
Meridian
I=E e2 λ
e1 i2
i1
l B b1
b2
ωEI.t Equator W
b3 w1
w3 w2
(a) (b)
Figure 2. Illustration of the different frames: inertial frame (I), Earth frame (E), local frame
(L), body frame (B) and work frame (W).(a) Inertial, Earth and local frames; (b) Body and
work frames.
Any axis of a frame is named with the lower-case of the frame name and a subscript giving its number,
such that the three vectors of frame (E) are then e1 , e2 and e3 (see Figure 2).
The use of the inertial and Earth’s frames is justified by our choice to simulate long-range or long-term
trajectories. The classical approximation of the flat Earth has then to be removed, and the Earth is no
longer an inertial frame, as it rotates.
Sensors 2015, 15 5298
2.4. Quaternions
2.4.1. Definition
The object orientation can be expressed in multiple ways: Euler angles, quaternion, vector and angle,
etc. The solution selected in sensor modeling work is the quaternion [5]. Quaternions avoid the main
problem of Euler angles: the gimbals lock, which gives some numerical issues for a number of known
orientations. This decision results from the need to have a generic simulation tool performing all kinds
of displacements. In this case, having forbidden orientations is a problem and unacceptable. The notions
necessary for the understanding of this paper are briefly given in this section. Readers who would like to
go into more details can refer to [15].
Introduced by Hamilton, quaternions are hypercomplex numbers with four components: a scalar q0
and three imaginary numbers, q1 , q2 and q3 . One quaternion q can be expressed as:
q = q0 + q1 i + q2 j + q3 k (1)
with vectors i, j and k describing an orthonormal basis. A pure quaternion is a quaternion with a scalar
part q0 equal to zero.
Another way of representing quaternions is to regroup the complex numbers in a vector
q̄ v = [q1 q2 q3 ]. To avoid confusion between vectors and quaternions, brackets {} are used instead of [].
( )
q0
q= (2)
qv
Using this notation, the multiplication between two quaternions, written r = p ⊗ q, gives:
( )
p 0 q 0 − pv · q v
r= (3)
p 0 q v + q 0 pv + pv ∧ q v
The complex part of the quaternion (q v ) is equivalent to a 3D vector. It can be very helpful to represent
rotations: a rotation around an axis d by an angle α can be represented [2] by a unit quaternion (its norm
is equal to one)
α α
q = cos + sin d (4)
| {z 2} | {z2 }
q0 qv
As any combination of rotations can be, in the end, expressed by one unique rotation, quaternions can
then express any complex rotation from one frame to another.
The image x0 of a vector x by a rotation represented by q can be obtained by the following
quaternion product:
x0 = q ⊗ x ⊗ q̃ (5)
where q̃, the conjugate of q, is defined as q̃ = q0 − q v . In Equation (5), the vectors x and x0 are
considered to be pure quaternions, with their components x0 and x00 = 0.
Sensors 2015, 15 5299
In this section, the way of deriving the sensor measurements from the trajectory information is
described considering perfect sensors, i.e., without any errors. The imperfections are described and
added in the next section. The final objective of this research is to obtain pose observers , taking
into account the absolute magnetic reference data. That is why particular interest will be given on the
magnetic field modeling and magnetometer measurement estimation. The objective is also to simulate
any kind of trajectory: short vs. long, high vs. low dynamics, etc. This section competes a description
provided in a previous paper by the present authors [11].
A rate gyroscope measures the rotational speed of the sensor around its sensitive axis with respect to
(I). The measurement is then expressed in the sensor coordinate system (W). It can be determined from
the quaternion and its derivative [15]:
I 1 WI I WI W
q̇ WI
= q ⊗ ω (7)
2
I
As described by Equation (6), q̃ ⊗ q = 1, thus multiplying (7) on the left by q̃ WI gives:
W I I
ω WI = 2 q̃ WI ⊗ q̇ WI
(8)
I
The last step is to determine q WI , such that:
I I I I I
q WI = q WB ⊗ q BL ⊗ q LE ⊗ q EI
(9)
I W
Then, q̇ WI is numerically calculated to finally obtain ω WI . Its vector part ω WI
v is expressed
in (W) and is composed of the three rotational speeds, measured by each sensor.
Sensors 2015, 15 5300
3.2. Accelerometers
An accelerometer measures the specific force applied along its main axis (in frame W) [13]. The
specific force is defined by the sum of all non-gravitational forces applied on the object divided by
the object mass. It is thus the absolute acceleration of the object (aIW ) minus the gravitational field,
such that:
[f ]W = [aIW ]W − [g f ]W (10)
g Gravity force
ae Acceleration due to the rotation of the Earth
G Gravitational constant
M Mass of the Earth
sWE Position of the sensors with respect to (E)
ω EI Rotational speed of the Earth around its axis
The objective is then to determine the expression of [f ]W from the evolution of the object position [sBL ]L ,
which is an input of the simulator. However, the sensors are not positioned at the center of gravity of the object.
Consequently, deriving the position of the object will not lead to the acceleration of the IMU, but to that of the
object. After transferring the input position [sBL ]L in frame (E), the equation of the total acceleration applied to
the IMU is obtained by the following derivation process (for the sake of clarity, it is assumed that all variables are
expressed in the same coordinate system; the brackets [ ]X are then left out) [13]:
dsWI
v IW = (12)
dt I
dsWI
= + ω EI ∧ sWI
dt E
dsWB dsBE
= + + ω EI ∧ sWI
dt E dt E
E dsWB
= vB + + ω BE ∧ sWB + ω EI ∧ sWI
dt B
v IW = v E
B+ω
BE
∧ sWB + ω EI ∧ sWI (13)
Sensors 2015, 15 5301
and:
dv IW
aIW = (14)
dt I
II
I z }| {
dω BE
z}|{
aIW E BE BE
= aB + ∧ sWB + ω ∧ ω ∧ sWB
dt B
+ ω EI ∧ 2 v E BE EI
B + ω ∧ s WB + ω ∧ s WI (15)
| {z }
III
In Equation (15), the acceleration can be divided into three parts: Part I is the acceleration of the object
with respect to the Earth, i.e., the acceleration obtained from the input position of the simulator. Part II is the
acceleration due to the position difference between the IMU and the object center of gravity. By changing the
value of sWB in the input, it is possible to simulate different IMU positions with respect to the object for the same
trajectory. Part III is the acceleration caused by the Earth’s rotation around its axis. These three parts are essential
to the simulator: the first part is obviously needed; the second part is very important as it expresses the different
positions of the IMU with respect to the object (multi-IMU applications rely on this part); and the last part is
needed for long-time trajectories.
Finally, the specific force can be obtained by subtracting Equation (11) from Equation (15).
3.3. Magnetometers
A three-axis magnetometer measures the direction and the intensity of the magnetic field around the sensor. If
this magnetic field is not perturbed, it corresponds to the Earth’s magnetic field. The magnetometer measurements
are the projection of this magnetic field h in the frame (W):
The Earth’s magnetic field is (in the Northern Hemisphere) directed toward the North Magnetic Pole and the
inside of the Earth. The difference in position between the North Magnetic Pole and Geographic North Poles
leads to a non-zero component on the l2 axis. The knowledge of the reference value of the magnetic field is then
primordial for the heading correction of the different pose estimators. With the aim of simulating all kinds of
trajectories, an Earth’s magnetic field model, called the World Magnetic Model [16], has been implemented in the
simulator to provide the reference unperturbed magnetic value for any object position. This model allows also
simulating any movement between the two polar circles. The value of [h]L is given by this model.
This model was obtained by the interpolation of multiple measurement centers all on the Globe and is an
empirical model. This is why it is only valid for five years and is constantly evolving. The implementation of this
model also provides the value of the reference everywhere on the surface of the Earth. This allows simulations of
trajectories everywhere, but also simulations of a long duration.
Sensors 2015, 15 5302
Now that the hypothetical sensor measurements are determined, the imperfections have to be added to produce
realistic sensor outputs. The outputs of the simulator are considered to be calibrated measurements, i.e., the
misalignment and scale factors are assumed to be corrected. The considered sensor errors are biases, sensor
dynamics and multiple types of noises. Thus, the output of a sensor cm is modified compared to the errorless value
c introduced in Section 3. cm can be expressed by adding the error sources:
cm = K ∗ c + b + w (17)
with K the indicating transfer function describing the sensor dynamics, b the bias and w the sensor noise.
The noise w is a white noise. The biases have a constant part, but can evolve during a trajectory. This evolution
is mainly due to random walk and correlated noises [17].
The first modeled imperfection is the dynamics of the sensor. In this work, a first-order transfer function is used
to reproduce the main characteristic, which is the bandwidth. The transfer function considered is:
ωc
K(s) = (18)
s + ωc
with ωc denoting the cut-off pulsation at −3 dB, which can be read on the sensor datasheet. It is a user-defined
parameter in the simulator configuration.
The second type of imperfection is the bias. It can be split into two parts: a constant one (bcst ) and a
time-evolving one (bev ). The constant part can be corrected during a calibration process, but some residuals
can remain.
To model the bias evolution, two processes are used, as suggested in [17]; a first-order Gauss-Markov process
(bgm ) and a random walk (brw ). The first is used to represent a wide number of physical processes. It is an
autoregressive process with a correlation time Tc . The parameters needed are the correlation time and the standard
deviation σgm of the noise. The random walk, on the other hand, is the result of the integration of a white noise.
The standard deviation σrw of the integrated noise has to be specified in the parameters of the simulator. Finally,
the evolving part of the bias is given by:
" # " #" # " q #
∆t
bgm (1 − ∆t
Tc ) 0 b gm σ gm (1 − exp(−2 Tc ))
= + √ uk (19)
brw 0 1 brw σ rw ∆t
k k−1
" #
h i b
gm
bev = 1 1 (20)
brw
k
To simulate a commercially available low-cost IMU, multiple experiments were conducted on one IMU. The
Allan variance was employed as suggested by [18,19] to identify the noise parameters. It is a widely-used
time-domain technique in the modeling of inertial sensor errors, which is able to determine long-term noises.
To perform this approach, the IMU has to remain completely still during several hours. Figure 3 shows a typical
Allan variance plot and its interpretation. The values are extracted from the measurements as explained in [19].
Figure 3a is an hypothetical Allan variance sketch, where the typical noise components are described. The angular
random walk slope illustrates the effect of a white noise. The rate random walk slope is the result of a random walk
noise (cf. the previous section). The correlation noise slope comes from the correlated part of the measurements,
and finally, the bias instability is due to multiple physical noises. As the variance is a function of the time cluster
size, it is possible to interpret the influence of each type of noise: the angular random walk noise is a problem in
short time, but can be reduced by averaging the measurements, while the rate random walk noise affects more the
long-term measurements more. Figure 3b is the result of this calculation on one of the accelerometer of the IMU.
This figure has been made with a 12-hour measurement during which the IMU stayed motionless. By comparing
the two figures, it is clear that not every component of Figure 3a is present in Figure 3b. This is the main reason
why the bias evolution was simulated by superposing of a correlated noise and a random walk process.
−1 −1
10 10
Real data
Angular random walk
An Correlated noise
gu Rate random walk
lar
σ(τ) [sensor unit]
ra
10
−2
nd 10
−2
om
e
wa
Correlated noise slope lop
lk
slo lks
p wa
e m
o
nd
−3 ra −3
10 te 10
Bias instability Ra
−4 −4
10 10
−2 0 2 4 6 −2 0 2 4 6
10 10 10 10 10 10 10 10 10 10
τ [s] τ [s]
(a) (b)
Figure 3. Allan variance sketch and its application to the considered IMU. (a) Sketch of the
Allan variance process. Visible imperfections are described; (b) Application of the Allan
variance on one accelerometer.
Table 2. Numerical results for the standard deviation from the Allan variance applied to the
simulation of a low-cost IMU [20]. Here, unit represents the unit of the sensor output.
As an example, Table 2 shows the results of this procedure for an IMU from SBG Systems [20]. It gathers all
the necessary data for the simulation of the IMU imperfections in the simulator.
5. Simulator Validation
After implementing the Equations (8) and (15)–(17) in MATLAB, a validation process is carried out. The first
part is dedicated to the validation of the kinematic equations. For this purpose, a simulation is performed with a
known trajectory and without imperfections. In the second part, the error model is validated by comparing Allan
variances from simulated and real measurements.
The validation principle is illustrated in Figure 4. An IMU is subject to a trajectory which is perfectly known or
measured. The trajectory information (position and rotation quaternion) is used as the input of the simulator, and
a comparison is performed between the output of the simulator and the recorded measurements. In the following,
two types of validation are performed: hardware and software. The hardware validation uses a real IMU to test the
simulator output against real measurements. The drawback here is the limited dynamics in the trajectory due to the
employed test bed. Thus, a software validation with a validated projectile simulator is performed in a second step.
Position Simulated
Bench Quaternion
Simulator measurements
Trajectory
Comparison
Sensor
IMU
measurements
For the hardware validation, the 3D test bench from ISL is used (see Figure 5). This first validation process
allows us to test our simulations against real data. Using this three-degrees-of-freedom table, measurements of the
angles are very accurate (< 0.1◦ ) and are obtained by the motor coders. The IMU position with respect to the
table impacts the acceleration measurements. If this position is different from the center of rotation, accelerations
due to the rotation can be measured instead of only the gravitational force projection alone. For this validation, the
rotational table is considered as the body frame; the position and the orientation of W with respect to B has to be
placed as a parameter in the simulator.
The performed motion is characterized by the Euler angles illustrated in Figure 6a. This motion is divided
into two parts. The first part, up to t = 100 s, is composed of three pure rotations around each axis separately;
the second part of the movement is an arbitrary rotation around the three axes simultaneously. The measurement
comparisons of each type of sensor are shown in Figure 6b–d. It can be seen that the simulated measurements are
very close to the real ones.
The overall performance of the simulator is shown in the first line of Table 3. The normalized root mean square
error (NRMSE) of the accelerometer measurements are 2.5% at maximum. The rate gyroscopes display an error
below 1.5%, which represents around 6◦ /s. The magnetometers also show errors of less than 3.7%. Even if these
quantities seem to be high, its a comparison to real data from a low-cost IMU, which means that the measurements
include a lot of noise and imperfections.
Sensors 2015, 15 5305
W b1
UMI
B
y2
l3
2
ω1 (rad/s)
5
φ (rad)
0 0
−5
−2
0 20 40 60 80 100 120 140 160 0 20 40 60 80 100 120Measurements
140 160
t (s) t (s) Simulation
2
ω2 (rad/s)
5
θ (rad)
0 0
−5
−2
0 20 40 60 80 100 120 140 160 0 20 40 60 80 100 120 140 160
t (s) t (s)
2
ω3 (rad/s)
5
ψ (rad)
0 0
−5
−2
0 20 40 60 80 100 120 140 160 0 20 40 60 80 100 120 140 160
t (s) t (s)
(a) (b)
0.5
h1 (Gauss)
f (m/s²)
5
0 0
−5
1
−10 −0.5
0 20 40 60 80 100 120Measurements
140 160 0 20 40 60 80 100 120Measurements
140 160
t (s) Simulation t (s) Simulation
0.5
h2 (Gauss)
f (m/s²)
5
0 0
−5
2
−10 −0.5
0 20 40 60 80 100 120 140 160 0 20 40 60 80 100 120 140 160
t (s) t (s)
0.5
h3 (Gauss)
f (m/s²)
5
0 0
−5
3
−10 −0.5
0 20 40 60 80 100 120 140 160 0 20 40 60 80 100 120 140 160
t (s) t (s)
(c) (d)
Figure 6. Plot of the trajectory and the different comparisons of the measurements. (a) Euler
angles describing the movement of the 3D-table; (b) comparison of the measured and
simulated rotational speeds; (c) comparison of the measured and simulated specific forces;
(d) comparison of the measured and simulated magnetometer measurements.
Sensors 2015, 15 5306
Table 3. Normalized root mean square error (NRMSE) of the error from all of the different
validations. All data are given as the percentage of the full scale.
Test bed validation 1.34 1.66 2.58 0.83 1.51 1.06 3.69 2.03 2.40
Cross simulation validation 0.11 1.08 1.08 4.3e−3 1.12e−5 1.28e−5 NA NA NA
While treating another data series, a quick and short motion has been recorded. This movement is illustrated in
Figure 7a. The bench was able to measure the motion correctly, and results are well observed and reproduced by
the simulator. This quick motion shows that if the input is precise enough, the dynamics can be well reproduced.
100 0.5
60 10
hx (Gauss)
0
fx (m/s²)
40
p (°/s)
φ (°)
20 0 0
−100
0
−10
−20 −200
−0.5
89 89.5 90 89 89.5 90 89 89.5 90 89 89.5 90
Reference
t (s) t (s) t (s) t (s)
Simulation
100 0.5
100 10
hy (Gauss)
0
fy (m/s²)
q (°/s)
θ (°)
50 0 0
−100
−200
−10
0 −300
−0.5
89 89.5 90 89 89.5 90 89 89.5 90 89 89.5 90
t (s) t (s) t (s) t (s)
300 100 0.5
10
hz (Gauss)
fz (m/s²)
0
r (°/s)
ψ (°)
250 0 0
−100
−10
200 −0.5
89 89.5 90 89 89.5 90 89 89.5 90 89 89.5 90
t (s) t (s) t (s) t (s)
Figure 7. Simulation of a fast motion. (a) Euler angles; (b) angle rates; (c) specific force;
(d) magnetic field.
The purpose of the second validation is here to endorse the simulator. It follows the same procedure as the
previous validation. The difference lies in the use of another simulator instead of the 3D table. This second
Sensors 2015, 15 5307
simulator deals with a high-dynamics application: gun-launched projectile. This simulator was validated by many
real projectile shots [21].
For the validation process, the performed motion is illustrated in Figure 8a,b. It is the simulation of a 155-mm
caliber shell. The sensors are placed at two calibers from the center of mass of the shell. As shown, the motion is
around 30 km long, and the linear and rotational speeds can exceed 900 m/s and 300 Hz ('1800 rad/s), respectively,
on the main axes.
The results are illustrated in Figure 8c,d. Unfortunately, the magnetometer data are not integrated in the
projectile simulator.
200
φ (°)
0
−200
0 20 40 60 80 100
−12000 t (s)
−10000 50
θ (°)
−8000 0
−50
l3 (m)
−6000 0 20 40 60 80 100
t (s)
−4000
2.5
2 5
−2000
ψ (°)
1.5 x 10
4
0
0 1 −5
0.5
0
500
l2 (m) 1000 0 l (m)
1
0 20 40 60 80 100
t (s)
(a) (b)
0 2000
f (m/s²)
p (rad/s)
−20
−40 1500
−60
1
0 20 40 60 80 100
Reference 0 20 40 60 80 100
Reference
t (s) Simulation t (s) Simulation
5
200
q (rad/s)
f (m/s²)
0 0
−200
2
−5
0 20 40 60 80 100 0 20 40 60 80 100
t (s) t (s)
5
200
f (m/s²)
r (rad/s)
0 0
−200
3
−5
0 20 40 60 80 100 0 20 40 60 80 100
t (s) t (s)
(c) (d)
Figure 8. Validation plots thanks to the projectile simulator. (a) 3D trajectory of the
gun-launched projectile; (b) Euler angles describing the orientation of the gyro-stabilized
projectile. The stabilizing spin is around the first axis; (c) Comparison of the specific forces;
(d) comparison of the rotational speeds.
As it is an uncontrolled trajectory, oscillations keep occurring all along the way. Thus, vibrations can be seen
on radial accelerations and rate gyroscopes. Table 3 (second raw) shows the similarities between the curves. The
values of the errors and standard-deviations are even lower than for the test bed validations. This is due to the
projectile simulator, which also considers perfect sensors and provides error-free measurements. The equations
are then validated even for high-dynamics.
Sensors 2015, 15 5308
This section is dedicated to the error model validation and, precisely, the implemented stochastic model. For
this, the Allan variance is used as follows: multiple simulations of a static IMU are executed, and the Allan variance
is inferred on each measurement. Then, the results are compared to an Allan variance applied to real measurements.
The simulated motion is a steady position during more than 13 h. It is then simulated 25 times to compare
multiple realizations of the stochastic process. The results are illustrated for one magnetometer, one accelerometer
and one rate gyroscope in Figure 9.
Measures
Simulations
−3
10
σ (Gauss)
−4
10
−1 0 1 2 3 4
10 10 10 10 10 10
τ (s)
(a)
Measures Measures
Simulations Simulations
−3
10
−3
10
σ (Gauss)
σ (°/s)
−4
10
−4
10
−1 0 1 2 3 4 −1 0 1 2 3 4
10 10 10 10 10 10 10 10 10 10 10 10
τ (s) τ (s)
(b) (c)
Figure 9. Comparison of Allan variance plots for different simulations and one real
measurement. (a) Accelerometer; (b) rate gyroscope; (c) magnetometer.
As can be observed, the rate gyroscopes seem to display high bias instability (the flat part in Figure 9b), but
no correlated noise. The simulations surround the measurement curves well, especially for the accelerometers
and magnetometers. The latter do not show correlated noise and are mainly composed of white noise (angular
random walk slope) and random walk processes (rate random walk slope). As the simulations are close to the real
measurements, the error model and the values of the parameters are validated.
Sensors 2015, 15 5309
In this paper, a magnetometer-augmented IMU simulator has been developed. Its inputs are the position and
orientation of the object with respect to the local frame, while its outputs are the sensor measurements. Other
parameters can be precisely determined, like the position of the IMU with respect to the object and sensor
imperfections. The used sensors are 3D rate gyroscopes, accelerometers and magnetometers. The modeling
is based on the quaternion representation of the orientations, avoiding singularities from the Euler angles.
Furthermore, the kinematics was used for the determination of the accelerometer measurements. The simulator
shows good results during the validation process. It is now operational for estimation algorithm evaluations.
The results obtained with the simulator are compared to the calibrated measurements of a real IMU. The
validation is performed by means of an accurate 3D rotational table. The different results prove the accuracy of
the simulator, thus validating the equations. As this first validation had low dynamics, another validation process
was performed with a gun-launched gyro-stabilized projectile. The results show a good precision and validate
the equations.
After the determination and the validation of the error-free measurements, the imperfections were implemented.
The typical imperfections modeled here are: sensor dynamics, bias (with a constant part and an evolutive part) and
white noise. The parameter identification of the error model was conducted using the Allan variance technique.
The simulator can now be used to simulate different trajectories to test several estimation algorithms. Thanks to
all of the details that are included in this simulator, the algorithms can be evaluated by following multiple criteria:
the precision of the estimation, the stability regarding long-term navigation, the robustness of the orientation
estimator against the accelerations, etc. It is also possible to simulate a given trajectory with multiple IMUs
performing, then a multi-IMU data fusion, in order to improve the object localization.
Acknowledgments
The authors would like to thank the Alsace Region and the French-German Research Institute of Saint-Louis
for funding this work.
Author Contributions
T.B. and S.C. conceived and designed the experiments; T.B. and J.-P.L. performed the experiments; T.B., M.B.,
S.C. and J.-P.L. analyzed the data; T.B. and J.-P.L. wrote the paper.
Conflicts of Interest
References
1. Kucuk, S.; Bingul, Z. Kucuk, S.; Bingul, Z. Robot kinematics: Forward and Inverse Kinematics. Available
online: http://cdn.intechweb.org/pdfs/379.pdf (accessed on 4 March 2015).
2. Yang, Y. Spacecraft attitude determination and control: Quaternion based method. Ann. Rev. Control
2012, 36, 198–219.
3. Euston, M.; Coote, P.; Mahony, R.; Kim, J.; Hamel, T. A complementary filter for attitude estimation of
a fixed-wing UAV. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and
Systems, Nice, France, 22–26 September 2008; pp. 340–345.
Sensors 2015, 15 5310
4. Fourati, H.; Manamanni, N.; Afilal, L.; Handrich, Y. A Nonlinear Filtering Approach for the Attitude and
Dynamic Body Acceleration Estimation Based on Inertial and Magnetic Sensors: Bio-Logging Application.
IEEE Sens. J. 2011, 11, 233–244.
5. Radix, J. Systèmes Inertiels à Composants Liés "Strap-Down"; Cépaduès-Édition: Toulouse, France, 1991.
(In French)
6. Shim, D.S.; Yang, C.K. Optimal Configuration of Redundant Inertial Sensors for Navigation and FDI
Performance. Sensors 2010, 10, 6497–6512.
7. Bancroft, J.B.; Lachapelle, G. Data fusion algorithms for multiple inertial measurement units. Sensors
2011, 11, 6771–6798.
8. Cheng, J.; Dong, J.; Landry, R.J.; Chen, D. A Novel Optimal Configuration form Redundant MEMS
Inertial Sensors Based on the Orthogonal Rotation Method. Sensors 2014, 14, 13661–13678.
9. Carvalho, G.B.; Theil, S.; Kuga, H.K. IMU: Generic Model Development Approach. Simposio Brasileiro
de Engenharia Inercial. Available online: http://www2.dem.inpe.br/hkk/2007/vsbein019-Gustavo.pdf
(accessed on 27 February 2015).
10. Parés, M.E.; Rosales, J.J.; Colomina, I. Yet Another IMU Simulator: Validation and Applications.
Available online: www.isprs.org/proceedings/2008/euroCOW08/euroCOW08_files/papers/20.pdf
(accessed on 27 February 2015).
11. Brunner, T.; Changey, S.; Pecheur, E.; Lauffenburger, J.P.; Basset, M. Evaluation of attitude estimation
algorithms using absolute magnetic reference data: Methodology and results. In Proceedings of Position,
Location and Navigation Symposium (PLANS) (2014 IEEE/ION), Monterey, CA, USA, 5–8 May 2014;
pp. 212–218.
12. Dorveaux, E. Navigation Magnéto-Inertielle: Principes et Application à un systême Podométrique Indoor.
PhD Thesis, Ecole Nationale Supérieure des Mines de Paris, 10 November 2011.
13. Zipfel, P.H. Modeling and Simulation of Aerospace Vehicle Dynamics, 2nd ed.; American Institute of
Aeronautics and Astronautics: Reston, VA, USA, 2000.
14. Sircoulomb, V. Etude des Concepts de Filtrage Robuste aux méconnaissances de modèle et aux Pertes de
Mesures. PhD Thesis, Nancy-Université, Nancy, France, 2 December 2008. (In French)
15. Goldman, R. Understanding quaternions. Graph. Models 2011, 73, 21–49.
16. Maus, S.; Macmillan, S.; McLean, S.; Hamilton, B.; Thomson, A.; Nair, M.; Rollins, C. The US/UK World
Magnetic Model for 2010–2015; NOAA National Geophysical Data Center: Boulder, CO, USA, 2010.
17. Quinchia, A.G.; Falco, G.; Falletti, E.; Dovis, F.; Ferrer, C. A Comparison between Different Error
Modeling of MEMS Applied to GPS/INS Integrated Systems. Sensors 2013, 13, 9549–9588.
18. Zhao, Y.; Horemuz, M.; Sjöberg, L.E. Stochastic modeling and analysis of IMU sensor errors.
Photogram. Cartogr. Remote Sens. 2011, 22, 437–449.
19. El-Sheimy, N.; Hou, H.; Niu, W. Analysis and Modeling of Inertial Sensors Using Allan Variance.
IEEE Trans. Instrum. Meas. 2008, 57, 140–149.
20. Systems, S. IG-500N GPS Aided AHRS Leaflet, 2008. Available online:
http://www.sbg-systems.com/docs/IG-500N-Leaflet.pdf (accessed on 2 March 2015).
21. Wey, P. The Six and Seven Degrees of Freedom Guided Projectile Trajectory Model. NATO STANREC
4618, 2014.
c 2015 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article
distributed under the terms and conditions of the Creative Commons Attribution license
(http://creativecommons.org/licenses/by/4.0/).