Control Engineering and Applied Informatics 111
provided. NaveGo is based upon the mathematical model
exhibited in (Gonzalez et al., 2015), which is a model com-
piled from recognized authors in the field of navigation.
NaveGo is written in MATLAB language and is provided
as a free open-source toolbox (Navego, 2015).
In the reviewed literature few papers have points in com-
mon with this work, and none is so comprehensive. In
(Giroux et al., 2003), (Wenling et al., 2010), (Liansheng
and Tao, 2011), and (Zhang et al., 2012) only mathemat-
ical models of a SINS are shown. Works from (Esposito
et al., 2007) and (Lijun et al., 2008) exhibit an INS sim-
ulator, but none of them expose complete mathematical
models. Although simulation results are shown in all these
works, most do not expose a validation method to assess
the proposed simulator, except in (Giroux et al., 2003).
Thus, to the best of the authors’ knowledge, NaveGo is
the most complete work about a simulation environment
of low-cost integrated navigation systems.
The method to validate NaveGo evaluates the perfor-
mances of three pairs of INS systems. Each pair is com-
posed of both simulated and real sensors. In (Toth et al.,
2011) several IMU and a GPS were logged on field. A
DGPS was also implemented. A reference data set is
formed fusing a navigation-grade IMU and DGPS. Three
real MEMS IMU are chosen to represent MEMS IMU
from low to high qualities. Simulation of the three MEMS
IMU and GPS is carried out by using the reference data
set. Sampling times between simulated and real sensors
are matched. Then, simulated data sets are corrupted
with noises according to the error characteristics from real
sensors. Finally, RMS errors from both simulated and real
INS are compared for each MEMS IMU.
The rest of this article is organized as follows. Section 2
shows the mathematical models to simulate of proposed
sensors. Section 3 presents the Kalman filter equations
used in NaveGo. Section 4 provides the main algorithm
of NaveGo. Section 5 displays simulation results for a
particular case. Section 6 exposes the validation method
for NaveGo. Finally, in Section 7 concluding remarks
are commented. Additionally, in Appendix the functions
included in the toolbox are listed.
2. SENSORS SIMULATION
This section explains how gyroscopes, accelerometers, and
a GPS receiver are simulated.
First, some comments about mathematical notation.
Equations presented in this work are in the discrete-time
domain, except otherwise stated. Besides, variables with
subscript (−) correspond to the former interval sample,
t
(k−1)
. On the other hand, variables with subscript (+)
belong to the later interval sample, t
(k+1)
. Noisy measure-
ments have as superscript a tilde (
∼
). Estimated variables
based upon noisy measurements have as superscript a
hat (
∧
). A skew symmetric matrix operator is defined as
S
{3×3}
= [r ×] where r
{3×1}
is a vector (Farrell, 2008, Eq.
B.15). Lastly, the symbol ’◦’ means entry-wise product.
A trajectory generator is needed to provide the following
true input data to the simulator,
T = [e, p, v
n
, a
n
, t
S
] , (1)
where vectors e = {e
i
}
k
S
i=1
, p = {p
i
}
k
S
i=1
, v
n
= {v
n
i
}
k
S
i=1
,
a
n
= {a
n
i
}
k
S
i=1
, and t
S
= {t
i
}
k
S
i=1
are discrete-time se-
quences and have a number of elements equal to k
S
.
True attitude vector e = [φ, θ, ψ] contains row, pitch,
and yaw angles, respectively. p is the true position vector
mechanized in local North-East-Down (NED) coordinate
system (Cai et al., 2011, Sec. 2.2.3). v
n
and a
n
are
true velocity and acceleration vectors, respectively, both
mechanized in the vehicle-carried NED coordinate system
(Cai et al., 2011, Sec. 2.2.4). Finally, t
S
is the simulation
time vector.
2.1 Gyroscopes
Outputs from three ideal orthogonal gyroscopes are ex-
pressed as (Titterton and Weston, 2004, Eq. 3.29),
ω
b
ib
= ω
b
nb
+ C
b
n
(ω
n
ie
+ ω
n
en
) . (2)
Vector ω
b
nb
= [ω
x
, ω
y
, ω
z
]
T
represents the turn rate of the
body frame (b-frame) with respect to the navigation frame
(n-frame) expressed in body axes, i.e., the orientation of
the vehicle respect to the b-frame.
Since ω
n
ie
, ω
n
en
, and C
b
n
can be obtained from (Titterton
and Weston, 2004, Eq. 3.72, 3.74, and 3.63), respectively,
it can be seen from (2) that ω
b
nb
is the only missing term to
generate gyroscopes outputs. ω
b
nb
can be obtained doing
some mathematical manipulations.
Matrix C
n
b
can be updated at each simulation time step
doing (Titterton and Weston, 2004, Eq. 3.36–3.38),
C
n
b(+)
= C
n
b
(I + δΨ) (3a)
δΨ = [δe ×] . (3b)
δe
{3×1}
is a vector that contains incremental values of
true Euler angles, projected along the b-frame, between
simulation time steps t
(k)
and t
(k+1)
. In the limit, and
dividing δΨ by δt, the simulation time step (Titterton and
Weston, 2004, Eq. 3.40),
lim
δt→0
δΨ
δt
= Ω
b
nb
, (4)
where Ω
b
nb
= [ω
b
nb
× ]. Therefore, in order to obtain ω
b
nb
,
δΨ must be clear in (3a). Pre multiplying both sides of (3a)
by C
nT
b
, and recalling that C
n
b
is an orthogonal matrix and
as result C
nT
b
C
n
b
= I, yields,
C
nT
b
C
n
b(+)
=
I
z }| {
C
nT
b
C
n
b
(I + δΨ) (5a)
=⇒ δΨ = C
nT
b
C
n
b(+)
− I (5b)
= C
b
n
C
bT
n(+)
− I . (5c)
C
b
n
can be computed using e (Titterton and Weston, 2004,
Eq. 3.47).