# Attitude Determination Algorithms through Accelerometers, GNSS Sensors, and Gravity Vector Estimator

Authors: Raúl de Celis; Luis Cadarso
Journal: International Journal of Aerospace Engineering
 (2018)

---

## Abstract

Aircraft and spacecraft navigation precision is dependent on the measurement system for position and attitude determination. Rotation of an aircraft can be determined measuring two vectors in two different reference systems. Velocity vector can be determined in the inertial reference frame from a GNSS-based sensor and by integrating the acceleration measurements in the body reference frame. Estimating gravity vector in both reference frames, and combining with velocity vector, determines rotation of the body. A new approach for gravity vector estimations is presented and employed in an attitude determination algorithm. Nonlinear simulations demonstrate that using directly the positioning and velocity outputs of GNSS sensors and strap-down accelerometers, aircraft attitude determination is precise, especially in ballistic projectiles, to substitute precise attitude determination devices, usually expensive and forced to bear high solicitations as for instance G forces.


---

## Body

## 1. Introduction

Obtaining precise attitude information is essential for navigation and control. The effectiveness of navigation and control is determined by the degree of precision of navigation and control systems, including inertial measurement units [1]. There is an extensive body of literature regarding attitude estimation using various sensor inputs [2].Traditionally, in order to obtain accurate values for determining attitude, expensive and/or weighty units, such as laser or fiber optic gyroscopes and accelerometers, or their MEMS equivalent must be employed. Moreover, when high-demanding maneuvers are performed, this equipment may become extremely expensive.Other methods, based on very precise and advanced carrier-phase single-frequency GNSS attitude determination algorithms or multi-GNSS developments of integrating GNSS systems for attitude determination, are not possible to be applied on these artillery devices due the small space available on the vehicle. At present, the best carrier-phase-based method for GNSS attitude determination is the multivariate constrained MC-LAMBDA method. This method is currently the best performing attitude determination method as was demonstrated in land, sea, and air experiments. Example publications describing such actual real-world GNSS-attitude determination results can be found in [3–6]. The underlying theory and advanced algorithms for much of the above-referred integer-ambiguity-resolved carrier-phase GNSS attitude determination methods can be found in [7–9]. Multi-GNSS developments of integrating GNSS systems for attitude determination are stated in [10, 11].It is well known that the attitude of an aero-vehicle can be determined, starting from an initial condition, by integrating the angular rates (pitch, roll, and yaw rates) of the vehicle and propagating them forward time. Nevertheless, accuracy requirements usually cannot be satisfied by using inexpensive sensors [1]. This problem becomes even more important when the vehicle cannot be reused: low-cost attitude determination systems are of key importance for these applications. For example, Gebre-Egziabher et al. [12] describe an attitude determination system that is based on two measurements of nonzero, noncollinear vectors. Using the Earth’s magnetic field and gravity as the two measured quantities, a low-cost attitude determination system is proposed. Gebre-Egziabher et al. [13] develop an inexpensive attitude heading reference system for general aviation applications by fusing low-cost automotive-grade inertial sensors with GPS. The inertial sensor suit consists of three orthogonally mounted solid-state-rate gyros. Eure et al. [14] describe an attitude estimation algorithm derived by postprocessing data from a small low-cost inertial navigation system recorded during the flight of a subscale commercial off-the-shelf UAV. Estimates of the UAV attitude are based on MEMS gyro, magnetometer, accelerometer, and pitot tube inputs.Henkel and Iafrancesco [15] state that low-cost GNSS receivers and antennas can provide a precise attitude and drift-free position information, but accuracy is not continuous. Inertial sensors are robust to GNSS signal interruption and very precise over short time frames, which enables a reliable cycle slip correction, but low-cost inertial sensors suffer from a substantial drift. The authors propose a tightly coupled position and attitude determination method for two low-cost GNSS receivers, a gyroscope and an accelerometer, and obtain a heading with an accuracy of 0.25°/baseline length (m) and an absolute position with an accuracy of 1 m. Similar developments may be found within space vehicles, for example, in [16]. In [17], the use of an inertial navigation system (INS) and a multiple GPS antenna system for attitude determination of an off-road vehicle is developed, and in [18], attitude determination using the GPS carrier phase has been applied successfully to aircrafts in experiments by a number of researchers.Also, improved algorithms for estimating attitude in case of failures have been proposed in the literature. For example, Soken and Hajiyev [19] introduce algorithms with filter gain correction for the case of measurement malfunctions. Two different algorithms are proposed and applied for the attitude estimation process of a pico satellite. The results of these algorithms are compared for different types of measurement faults in different estimation scenarios, and recommendations about their applications are given. Another example is exposed in [20]. This algorithm is based on interacting multiple models (IMM) extended Kalman filters (EKF) using a star sensor and gyroscope data. In Liu et al. 2011, a computationally efficient nonlinear attitude estimation strategy is based on the vector observations for satellites.However, as stated in [21], many of the presented methods such as those employing local magnetic field vectors are only valid for estimating the orientation of a slow-rotation body. On the other hand, for high spin rate bodies, electromagnetic interactions degrade magnetic measurements. In the research described in this paper, two measured quantities are used to obtain attitude information for high dynamic and high spin rate vehicles: speed and gravity vectors. They are obtained in two different reference frames using a GNSS sensor and a strap-down accelerometer.


### 1.1. Contributions

The main contributions of this paper are twofold. First is the development of a novel algorithm which avoids the use of gyroscopes for attitude determination. This is purposed to decrease costs in attitude sensors and even to improve attitude determination by applying filtering techniques, especially for artillery device applications, where high acceleration conditions increase the price of precise attitude determination devices such as gyroscopes. Second is the development of an estimation method in order to obtain the gravity vector in body axes. This estimator is motivated by the need of having two vectors expressed in two different triads in order to determine attitude changes. Flight nonlinear simulations are performed to determine real attitude and compare it to the estimated attitude obtained from the algorithms. The applicability of the proposed solution for aircraft flight navigation, guidance, and control or for ballistic rocket terminal guidance, where attack and side-slip angles or total angle of yaw are relatively small, is also demonstrated.This paper is organized as follows. Section2 describes the problem in detail. Section 3 is devoted to the estimation of the gravity vector. The attitude determination algorithm is detailed in Section 4. Flight dynamics and sensor models are briefly described in Section 5. Section 6 shows simulation results. Conclusions and references follow.


## 1.1. Contributions

The main contributions of this paper are twofold. First is the development of a novel algorithm which avoids the use of gyroscopes for attitude determination. This is purposed to decrease costs in attitude sensors and even to improve attitude determination by applying filtering techniques, especially for artillery device applications, where high acceleration conditions increase the price of precise attitude determination devices such as gyroscopes. Second is the development of an estimation method in order to obtain the gravity vector in body axes. This estimator is motivated by the need of having two vectors expressed in two different triads in order to determine attitude changes. Flight nonlinear simulations are performed to determine real attitude and compare it to the estimated attitude obtained from the algorithms. The applicability of the proposed solution for aircraft flight navigation, guidance, and control or for ballistic rocket terminal guidance, where attack and side-slip angles or total angle of yaw are relatively small, is also demonstrated.This paper is organized as follows. Section2 describes the problem in detail. Section 3 is devoted to the estimation of the gravity vector. The attitude determination algorithm is detailed in Section 4. Flight dynamics and sensor models are briefly described in Section 5. Section 6 shows simulation results. Conclusions and references follow.


## 2. Problem Description

Attitude determination is a fundamental field in aircraft engineering, as maneuvers in order to change vehicle trajectories are governed by aerodynamic forces, which depend directly on ship orientation angles. Furthermore, attitude in the artillery rocket terminal phase is vital as it determines factors as penetrability of payload or avoidability of countermeasures for the artillery rocket. Therefore, developing algorithms to improve attitude determination is a cornerstone in precise guidance, navigation, and control research.One of the techniques to determine attitude is to calculate it from the director cosine matrix (DCM) which determines completely the rotation of a body between two reference frames. In order to obtain this DCM, a geometrical plane defined in both reference triads must be obtained. Every geometrical plane is defined by two vectors, and therefore, knowing the same two vectors expressed in the two reference frames, DCM may be calculated.


### 2.1. Triad Definition

Two axis systems are defined in order to express forces and moments: north-east-down (NED) axes and body (B) axes. NED axes are defined by subindexNED. xNED→ is pointing north, zNED→ is perpendicular to xNED→ and pointing nadir, and yNED→ is forming a clockwise trihedron. Body axes are defined by subindex B. xB→ is pointing forward and contained in the plane of symmetry of the rocket, zB→ is perpendicular to xB→ pointing down and contained in the plane of symmetry of the rocket, and yB→ is forming a clockwise trihedron. The origin of body axes is located at the center of mass of the rocket.


### 2.2. Involved Vector Determination

If a GNSS sensor device is equipped on the aircraft, velocity vector can be directly expressed from the sensor velocity output on the NED triad. Expression for velocity in NED is defined in (1), where vxNED, vyNED, and vzNED are the components of this velocity in NED axes.
(1)vNED→=vxNED,vyNED,vzNEDT.The same velocity vector expressed in body triad can be obtained from a set of accelerometers equipped on the ship, one on each of the axes. These devices are able to measure acceleration. After integration of each of the components along time, velocity vector is obtained, which is expressed in (2), where axB, ayB, and azB are the components of the acceleration in body axes and ωb→ describes angular velocity expressed in body axes.
(2)vB→=vB→t=0+∫axB,ayB,azBT+ωB→×vB→dt.Another vector expressed in two bases is required in order to define the rotation. Gravity vector is very simple to determine in NED triad as it is always parallel tozNED→, as it is shown in (3), where g is the gravity acceleration, which is fixed constant in this model (9.81 m/s2). Note that precision may be increased using more complicated models, that is, it can be modeled depending on latitude and longitude of the aircraft.
(3)gNED→=g0,0,1T.The keystone of the presented attitude determination method is determining gravity vector in body axes. Methods to calculate this gravity vector are developed in [22]. For example, by determining the constant component of the measured acceleration employing a low pass filter, where jerk in body axes is calculated by derivation of acceleration, then, it is integrated in order to obtain the nonconstant component of acceleration, and, by subtracting this nonconstant component from the measured acceleration, gravity vector is estimated. However, this method is not valid when the aircraft rotates. Another method to obtain gravity vector is by integrating the mechanization equations [23] and manipulating consequently the resulting equations. Again, gyros are needed in order to implement this method.In the next section, a new estimation method, which is valid for nonrotating and rotating aircrafts and which does not need gyros, is presented.


## 2.1. Triad Definition

Two axis systems are defined in order to express forces and moments: north-east-down (NED) axes and body (B) axes. NED axes are defined by subindexNED. xNED→ is pointing north, zNED→ is perpendicular to xNED→ and pointing nadir, and yNED→ is forming a clockwise trihedron. Body axes are defined by subindex B. xB→ is pointing forward and contained in the plane of symmetry of the rocket, zB→ is perpendicular to xB→ pointing down and contained in the plane of symmetry of the rocket, and yB→ is forming a clockwise trihedron. The origin of body axes is located at the center of mass of the rocket.


## 2.2. Involved Vector Determination

If a GNSS sensor device is equipped on the aircraft, velocity vector can be directly expressed from the sensor velocity output on the NED triad. Expression for velocity in NED is defined in (1), where vxNED, vyNED, and vzNED are the components of this velocity in NED axes.
(1)vNED→=vxNED,vyNED,vzNEDT.The same velocity vector expressed in body triad can be obtained from a set of accelerometers equipped on the ship, one on each of the axes. These devices are able to measure acceleration. After integration of each of the components along time, velocity vector is obtained, which is expressed in (2), where axB, ayB, and azB are the components of the acceleration in body axes and ωb→ describes angular velocity expressed in body axes.
(2)vB→=vB→t=0+∫axB,ayB,azBT+ωB→×vB→dt.Another vector expressed in two bases is required in order to define the rotation. Gravity vector is very simple to determine in NED triad as it is always parallel tozNED→, as it is shown in (3), where g is the gravity acceleration, which is fixed constant in this model (9.81 m/s2). Note that precision may be increased using more complicated models, that is, it can be modeled depending on latitude and longitude of the aircraft.
(3)gNED→=g0,0,1T.The keystone of the presented attitude determination method is determining gravity vector in body axes. Methods to calculate this gravity vector are developed in [22]. For example, by determining the constant component of the measured acceleration employing a low pass filter, where jerk in body axes is calculated by derivation of acceleration, then, it is integrated in order to obtain the nonconstant component of acceleration, and, by subtracting this nonconstant component from the measured acceleration, gravity vector is estimated. However, this method is not valid when the aircraft rotates. Another method to obtain gravity vector is by integrating the mechanization equations [23] and manipulating consequently the resulting equations. Again, gyros are needed in order to implement this method.In the next section, a new estimation method, which is valid for nonrotating and rotating aircrafts and which does not need gyros, is presented.


## 3. Gravity Vector Estimation

The gravity vector estimation method presented here depends on the aerial platform on which it will be employed. This means that the method must be adjusted for the aircraft of interest. Without loss of generality, the estimation method detailed in this section (and also Sections5 and 6) is particularized for a four-canard-controlled spinning rocket. But, using the applicable flight mechanics equations, it may be applied to other aircraft.The estimated gravity vector may be expressed as in (4), where its components in body axes are shown.
(4)gB→=gxB,gyB,gzBT.In order to describe the estimator, the gravity vector must be modeled as a subtraction between accelerations measured by accelerometers in body axes (AB→) and an estimation of the aerodynamic and control forces expressed also in body axes. Equation (5) describes this estimator as a particularization of Newton-Euler equations, where Fai→ describes aerodynamic and inertial forces, Fcontrol→ describes control forces, and m describes aircraft mass.
(5)gB→=AB→−1mFai→+Fcontrol→.In order to computegB→, Fai→, Fcontrol→, and ωB→ must be estimated exclusively from data obtained from GNSS sensors and accelerometers. First of all, the Mach number (M) and angle of attack (α), which are shown in (6), are estimated from accelerometer data. This hypothesis is completely valid for small angles of attack, which is the case for the flights described in this paper. The Mach number and angle of attack must be calculated in order to estimate forces and moments involved on aircraft flight. Speed of sound is obtained as a function of altitude (azNED) employing the International Standard Atmosphere (ISA) model. This altitude is directly obtained from the GNSS positioning output of the sensor.
(6)M=vB→azNED,α=acosvB→⋅xB→vB→.Passive aerodynamic and inertial forces (Fai→) are calculated according to
(7)Fai→=D→+L→+MF→+P→+C→,where D→ is the drag force, L→ is the lift force, MF→ is the Magnus force, P→ is the pitch damping force, and C→ is the Coriolis force.Each of these forces is estimated by the expressions in (8), where ρzNED is the air density as a function of altitude using the ISA model, d is the rocket caliber, CD0M is the drag force linear coefficient, CDa2M is the drag force square coefficient, CLaM is the lift force linear coefficient, CLa3M is the lift force cubic coefficient, CmfM is the Magnus force coefficient, Ix and Iy are the rocket inertia moments in body axes, CNqM is the pitch damping force coefficient, and Ω is the earth angular velocity vector. Note that aerodynamic coefficients are dependent of the Mach number, which was calculated in (6).
(8)D→=−π8d2ρzNEDCD0M+CDα2Mα2vB→vB→,L→=−π8d2ρzNEDCLαMα+CLα3Mα2⋅vB→2⋅xB→−xB→⋅vB→vB→,MF→=−π8d3ρzNEDCmfMIxIxωB→⋅xB→xB→+IyxB→×ωB→×xB→⋅xB→xB→×vB→,P→=−π8d3ρzNEDCNqMIyvB→2⋅IxωB→⋅xB→xB→+IyxB→×ωB→×xB→×xB→,C→=−2mΩ→×vB→.In order to estimate the required forces to estimate the gravity vector, angular velocity is required. Newton-Euler equations are used in order to estimate angular velocity (see (9)), where IB is the rocket inertia tensor defined in (10), Mai→ are the passive aerodynamic moments which actuate on the projectile, and Mcontrol→ are the moments generated by control surfaces. Passive aerodynamic moments are defined in (11), where O→ is the overturn moment, PM→ is the pitch damping moment, MM→ is the Magnus moment, and S→ is the spin damping moment.
(9)ωB→=IB−1∫Mai→+Mcontrol→−ωB→×IBωB→dt,(10)IB=Ix000Iy000Iy,IB−1=1Ix0001Iy0001Iy,(11)Mai→=O→+PM→+MM→+S→.Each of the aerodynamic moments is estimated in (12), where CMαM is the overturning moment linear coefficient, CMα3M is the overturning moment cubic coefficient, CMqM is the pitch damping moment coefficient, CmmM is the Magnus moment coefficient, and CspinM is the spin damping moment coefficient.
(12)O→=π8d3ρzNEDCMαMα+CMα3Mα2⋅vB→2vB→×xB→,PM→=π8d3ρzNED1IyCMqMvB→⋅IxωB→⋅xB→xB→+IyxB→×ωB→×xB→−IxωB→⋅xB→xB→+IyxB→×ωB→×xB→⋅xB→xB→,MM→=π8d4ρzNED1IyCmmM⋅IxωB→⋅xB→xB→+IyxB→×ωB→×xB→⋅xB→⋯vB→⋅xB→xB→−vB→,S→=π8d4ρzNED1IyCspinMvB→IxωB→⋅xB→xB→+IyxB→×ωB→×xB→⋅xB→xB→.Similarly, control forces and moments in body axes for each of the four fins must be estimated. For this purpose, the similar model as defined in [24] is employed, but with some modifications in the aerodynamics. The first modification is that the effective incidence aerodynamic speed on each of the four fins must be estimated.The mathematical expressions for incidence aerodynamic speed decomposition are defined in(13)veffxi→=vB→−vB→⋅ubi→ubi→,∀i∈1,2,3,4,veffyi→=vB→−vB→⋅ubi→ubi→−vB→−vB→⋅ubi→ubi→⋅xb→xb→,∀i∈1,2,3,4,where i denotes the fin and veffxi→ and veffyi→ are the aerodynamic speed minus the fin-span component of the aerodynamic speed and the perpendicular component of veffxi→ to xb, respectively, ub1→=0,0,−1, ub2→=0,−1,0, ub3→=0,0,1, and ub4→=0,1,0.The effective angle of attack for each fin (αeffi) may be expressed for each fin as the sum of the local angle of attack, αi, and fin deflection, δi (see the following equation).
(14)αeffi=αi+δi=sinveffyi→⋅uFNi→⋅acosveffxi→veffxi→⋅xb→+δi,∀i∈1,2,3,4,where uFN1→=0,1,0, uFN2→=0,0,−1, uFN3→=0,−1,0, and uFN4→=0,0,1.And finally, the control force provided by each fin (CFi→) is given in
(15)CFi→=18signαeffid2ρπveffxi→2CNαwcosαeffi+2d2πSexpsin2αeffiuFNi→cosδi−xb→sinδi,where d is the rocket caliber, ρ is the air density, CNαw is the aerodynamic coefficient of the normal force for a fin, and Sexp is the characteristic surface of airfoil.The total control force (Fcontrol→) is expressed as follows:
(16)Fcontrol→=∑i=1i=4CFi→.The control moment provided by each fin (CMi→) may be expressed as follows:
(17)CMi→=daxMxb→+dlatubi→×CFi→,where daxM is the longitudinal distance, parallel to xb, of the airfoil center of pressure (CP) to the rocket center of mass (CG), which depends on the Mach number (M). dlat is the lateral distance, which is orthogonal to xb and parallel to ubi for each fin, from the airfoil center of pressure to the rocket center of mass; it is supposed to be constant in this model.The total control momentMcontrol→ is given as follows:
(18)Mcontrol→=∑i=1i=4CMi→.Finally, note that each of the aerodynamic coefficients defined in this section is dependent on the Mach number; an interpolation (Table1) based on experimental data for the geometry of the rocket analyzed is provided next.Table 1
Aerodynamic coefficient interpolation table in function of the Mach number.
M
C
D
0
C
D
α
2
C
L
α
C
L
α
3
C
m
f
C
N
q
C
M
α
C
M
α
3
C
M
q
C
m
m
C
s
p
i
n
C
N
α
w
0.00
0.27
10.74
8.01
19.82
−0.59
50.81
−35.58
−16.65
−225.73
3.02
−0.04
0.00
0.40
0.25
10.88
8.17
19.55
−0.64
53.25
−35.72
−18.09
−232.75
3.29
−0.04
0.42
0.60
0.24
11.10
8.43
19.12
−0.70
57.43
−36.00
−20.39
−245.32
3.57
−0.04
0.43
0.70
0.24
11.24
8.60
18.83
−0.72
60.31
−36.21
−21.82
−254.10
3.71
−0.03
0.44
0.80
0.23
11.40
8.79
18.49
−0.75
63.80
−36.51
−23.39
−264.85
3.84
−0.03
0.44
0.90
0.23
11.45
8.98
17.28
−0.78
67.93
−36.57
−18.48
−276.57
3.98
−0.03
0.45
1.00
0.41
15.12
8.93
44.05
−0.81
71.38
−35.99
15.39
−287.82
4.12
−0.03
0.45
1.10
0.48
15.09
8.99
43.00
−0.83
76.53
−35.54
19.12
−302.58
4.25
−0.03
0.45
1.20
0.46
14.77
8.74
42.60
−0.86
75.29
−35.33
28.92
−304.31
4.39
−0.03
0.44
1.50
0.41
13.99
8.10
41.97
−0.94
86.55
−27.05
26.25
−289.17
4.80
−0.03
0.40
2.00
0.35
13.02
7.28
41.27
−1.07
110.51
−17.62
24.77
−267.48
5.49
−0.02
0.35
2.50
0.30
12.69
6.86
42.25
−1.07
134.47
−13.03
12.50
−255.33
5.49
−0.02
0.30After this previous mathematical development, the gravity vector can be estimated on body axes (gB→) just by accelerometer data and a set of coefficients that are preloaded on the rocket guidance, navigation, and control system.


## 4. Attitude Determination Algorithm

In order to simplify the calculus, an orthonormal base must be defined in both axis systems, B and NED. This orthonormal base is defined by unitary vectorsi→, j→, and k→ expressed in both bases and defined by the following expressions:
(19)iNED→=vNED→vNED→,jNED→=vNED→×gNED→vNED→×gNED→,kNED→=iNED→×jNED→iNED→×jNED→,iB→=vB→vB→,jB→=vB→×gB→vB→×gB→,kB→=iB→×jB→iB→×jB→.After defining an orthonormal base in the two systems of axes, the expression to determine the DCM is indicated in (20), where iB→,jB→,kB→ is a 3 × 3 square matrix composed of orthonormal vectors in the body triad, iNED→,jNED→,kNED→ expresses the same concept in the NED triad, and DCMB,NED is the director cosine matrix that transforms the NED triad into a body triad.
(20)iB→,jB→,kB→=DCMB,NEDiNED→,jNED→,kNED→.The DCM matrix can be solved from (20) as it is shown in (21). Note that employing an orthonormal base simplifies the calculation of the inverse matrix as it is the transposed matrix.After obtaining the director cosine matrix, the rotation must be characterized. The most suitable method to express this rotation is through quaternions, as they avoid any possible singularities on the poles of rotation. The matrix equation that relatesDCMB,NED and quaternions is shown in (22), where qi for i=0,3 are the quaternions and Mj,k for j=1,3 and k=1,3 are the DCM matrix coefficients.The expressions in (23) may be used in order to solve quaternions.
(21)DCMB,NED=iB→,jB→,kB→iNED→,jNED→,kNED→−1=iB→,jB→,kB→iNED→,jNED→,kNED→T,(22)DCMB,NED=M1,1M1,2M1,3M2,1M2,2M2,3M3,1M3,2M3,3=q02+q12−q22−q322q1q2+q0q32q1q3−q0q22q1q2−q0q3q02−q12+q22−q322q2q3+q0q12q1q3+q0q22q2q3−q0q1q02−q12−q22+q32,(23)q0=121+Tr,ifTr>0,12C1M2,3−M3,2,ifTr≤0andM1,1≥M2,2andM1,1≥M3,3,12C2M3,1−M1,3,ifTr≤0andM2,2>M1,1andM2,2>M3,3,12C3M1,2−M2,1,ifTr≤0andM3,3>M2,2andM3,3>M1,1,q1=12C0M2,3−M3,2,ifTr>0,121+M1,1−M2,2−M3,3,ifTr≤0andM1,1≥M2,2andM1,1≥M3,3,12C2M1,2+M2,1,ifTr≤0andM2,2>M1,1andM2,2>M3,3,12C3M3,1+M1,3,ifTr≤0andM3,3>M2,2andM3,3>M1,1,q2=12C0M3,1−M1,3,ifTr>0,12C1M1,2+M2,1,ifTr≤0andM1,1≥M2,2andM1,1≥M3,3,121+M2,2−M1,1−M3,3,ifTr≤0andM2,2>M1,1andM2,2>M3,3,12C3M2,3+M3,2,ifTr≤0andM3,3>M2,2andM3,3>M1,1,q3=12C0M1,2−M2,1,ifTr>0,12C1M3,1+M1,3,ifTr≤0andM1,1≥M2,2andM1,1≥M3,3,12C2M2,3+M3,2,ifTr≤0andM2,2>M1,1andM2,2>M3,3,121+M3,3−M1,1−M2,2,ifTr≤0andM3,3>M2,2andM3,3>M1,1,where Tr, C0, C1, C2, and C3 are defined in (24).
(24)Tr=M1,1+M2,2+M3,3,C0=11+Tr,if1+Tr>0,0,else,C1=11+M1,1−M2,2−M3,3,if1+M1,1−M2,2−M3,3>0,0,else,C2=11+M2,2−M1,1−M3,3,if1+M2,2−M1,1−M3,3>0,0,else,C3=11+M3,3−M1,1−M2,2,if1+M3,3−M1,1−M2,2>0,0,else.It is known that quaternions themselves are enough to express rotations without singularities, but it is also known that conceptually, they are difficult to be visualized. An easier manner to define these rotations is by means of Euler angles. Concretely, the most common aeronautical rotation is defined by the roll (ϕ), pitch (θ), and yaw (ψ) angles. The expressions that relate quaternions with Euler angles are defined by (25).
(25)ϕ=atan2q2q3+q0q1q02−q12−q22+q32,θ=asin−2q1q3−q0q2,ψ=atan2q1q2+q0q3q02+q12−q22−q32.These Euler angles obtained from measurements may be used to characterize rotations and angular velocities in navigation guidance and control algorithms.


## 5. Flight Dynamics and Sensor Model

The flight dynamics model in [24] is employed. The equations of motion are integrated using a fixed time step Runge-Kutta scheme of fourth order to obtain a single flight trajectory. A set of ballistic simulated shots, with no wind perturbations, is performed varying shot angles from 15° to 75° taking 1° steps and also varying initial azimuth angles from 0° to 360° taking 45° steps. An example of these trajectories for a maximum range of 45°, minimum range of 15°, and maximum height of 75° for the whole set of azimuth shots is shown in Figure 1.Figure 1
Trajectories for initial pitch shot angles of 15°, 45,° and 75° and 8 different azimuths.GNSS sensors are modeled, based on a u-blox series 7 sensor, adding a white noise of null average and maximum absolute value ofmp = 3 m for position values and for velocity of mv = 0.01 m/s to the simulated position and velocity obtained from the model.Accelerometers are modeled as second-order systems, based on MTi 1-series accelerometer, with a natural frequency of 300 Hz and a damping factor of 0.7. A white noise of null average and maximum absolute value ofma = 10−3 m/s2 and a bias of 10−3 m/s2 is added. Note that accelerometers will provide acceleration in body axes, which will be employed on the determination of the velocity vector in body axes.The modeling of the sensors has been based on relatively low-cost equipment. This fact will induce significant errors on measurements, which will determine the suitability of the attitude calculation method. However, as it is shown in the following section, the results are accurate enough for terminal guidance tasks in artillery.


## 6. Simulation Results

Simulation results are presented using the nonlinear flight dynamics model [24] in order to demonstrate suitability of attitude determination algorithm. A set of ballistic simulated shots was performed as defined in the previous section, in order to compare real (denoted with subindex “real”) and estimated attitudes. MATLAB/Simulink R2016a on a desktop computer with a processor of 2.8 GHz and 8 GB RAM was used.In order to compare the estimated attitude against the real or estimated attitude, gravity vector, and angular velocity vector, the following expressions are represented in Figures2, 3, and 4: ϕreal−ϕ, θreal−θ, and ψreal−ψ for the attitude; gB→real−gB→ for the gravity vector; and ωB→real−ωB→ for the angular velocity. Note that real magnitudes are obtained by simulation results and are compared against the magnitudes obtained by algorithms defined on the previous sections which are represented by the second terms on the last expressions.Figure 2
Comparison between estimated and real magnitudes for Euler angles for a shot angle of 45 deg and azimuths of 0° (left), 45° (center), and 90° (right).Figure 3
Comparison between estimated and real magnitudes for gravity vector for a shot angle of 45 deg and azimuths of 0° (left), 45° (center), and 90° (right).Figure 4
Comparison between estimated and real magnitudes for aircraft angular velocity for a shot angle of 45 deg and azimuths of 0° (left), 45° (center), and 90° (right).All these figures represent results for a shot angle of 45° and three different azimuth angles: 0°, 45°, and 90°. Note that a larger amount of simulations have been performed, as it was defined previously, but they are not shown in figures because the results are virtually the same and in order to simplify the comprehension of the paper.Note that in the worst of the situations the difference between real and estimated attitude, which is the goal of these algorithms, is very precise for the pitch and yaw angles and precise for the roll angle which assures the applicability of the algorithms for the sensors employed and its associated noises for rocket terminal guidance applications.In order to quantify the error made in each of the shots along the whole simulated trajectories, the root mean squared errors (RMSEs) for each of the 3 Euler angles (RMSEϕθ0,AZ0, RMSEθθ0,AZ0, and RMSEψθ0,AZ0), for each of the three components of gravity vector in body axes (RMSEgxBθ0,AZ0, RMSEgyBθ0,AZ0, and RMSEgzBθ0,AZ0), and for each of the three components of angular velocity vector in body axes (RMSEωxBθ0,AZ0, RMSEωyBθ0,AZ0, and RMSEωzBθ0,AZ0) are calculated in (26), (27), and (28), respectively. This error depends on the shot launch angle (θ0) and azimuth (AZ0).
(26)RMSEϕθ0,AZ0=∮ϕreal−ϕ2dσ∮dσ,RMSEθθ0,AZ0=∮θreal−θ2dσ∮dσ,RMSEψθ0,AZ0=∮ψreal−ψ2dσ∮dσ,(27)RMSEgxBθ0,AZ0=∮gxBreal−gxB2dσ∮dσ,RMSEgyBθ0,AZ0=∮gyBreal−gyB2dσ∮dσ,RMSEgzBθ0,AZ0=∮gzBreal−gzB2dσ∮dσ,(28)RMSEωxBθ0,AZ0=∮ωxBreal−ωxB2dσ∮dσ,RMSEωyBθ0,AZ0=∮ωyBreal−ωyB2dσ∮dσ,RMSEωzBθ0,AZ0=∮ωzBreal−ωzB2dσ∮dσ.Figures5, 6, and 7 show the previously defined root mean squared errors computed for the whole trajectory (z-axis) depending on shot angle (x-axis) and for the 8 azimuths (y-axis).Figure 5
Representation of Euler angle RMSE along the whole trajectory for each shot angle and for the 8 azimuths tested.Figure 6
Representation of gravity vector RMSE along the whole trajectory for each shot angle and for the 8 azimuths tested.Figure 7
Representation ofzB angular velocity vector RMSE along the whole trajectory for each shot angle and for the 8 azimuths tested.Note that the obtained root mean squared errors for all the measures of interest presented in this paper are small enough to consider the proposed algorithm for estimating attitude of high dynamic vehicles at a low cost. First of allRMSEψθ0,AZ0 is contained between 0° and 5⋅10−3°, RMSEθθ0,AZ0 is contained between 0° and 4⋅10−5°, and RMSEϕθ0,AZ0 is contained between 0° and 4⋅10−2°. These results verify that the algorithms applied to this concrete set of sensors and attitude determination vectors (vi→ and gi→ for i=B,NED) are more precise in the measurements related with the pitch and yaw angles and less precise for the roll angle. Note that in an axis-symmetric aircraft such as rockets or missiles, the roll angle can be handled by autopilot easily [24]. Root mean squared errors for gravity vector and angular velocity prove that estimations resolved by the methods explained in this paper are precise enough, as RMSEs are small.Table2 shows the root mean squared errors for the 3 Euler angles for different shot angles and azimuths, which is basically the numerical values of Figure 5. The first column shows the shot angle and the second one the displayed error (RMSEϕθ0,AZ0, RMSEθθ0,AZ0, and RMSEψθ0,AZ0). The rest of the columns show the numerical values of the errors for different azimuths. In order to present a significant result for the whole method, root mean squared errors have been calculated for the values shown on the surface represented by Figure 5. In order to accomplish this task, the last column, named total, shows the root mean squared errors for the set of azimuths represented on the same row. Similarly, the last three rows represent the root mean squared errors for the set of shot angles represented on the same column. Finally, the three values of the bottom-right corner can be considered as an estimation of the whole error of the attitude calculation algorithms.Table 2
Root mean squared errors along the whole trajectory for a set of shot angles and for the 8 azimuths tested and calculation of a representative mean parameter.
Shot angle (deg)
AzimuthAZ0 (°)
0
45
90
135
180
225
270
315
Total
15
R
M
S
E
ϕ
θ
0
,
A
Z
0
1.23E − 02
1.75E − 02
1.90E − 02
1.63E − 02
1.09E − 02
5.96E − 03
3.87E − 03
5.59E − 03
4.48E − 03
15
R
M
S
E
θ
θ
0
,
A
Z
0
7.26E − 04
9.87E − 04
1.30E − 03
8.81E − 04
6.23E − 04
1.34E − 03
1.47E − 03
1.04E − 03
3.84E − 04
15
R
M
S
E
ψ
θ
0
,
A
Z
0
6.97E − 06
1.79E − 06
7.32E − 06
7.99E − 06
8.79E − 06
3.14E − 07
4.55E − 06
1.02E − 05
2.41E − 06
30
R
M
S
E
ϕ
θ
0
,
A
Z
0
1.16E − 02
1.41E − 02
2.02E − 02
1.76E − 02
1.21E − 02
6.45E − 03
4.11E − 03
5.61E − 03
4.48E − 03
30
R
M
S
E
θ
θ
0
,
A
Z
0
8.87E − 04
2.08E − 03
9.12E − 04
8.19E − 04
2.35E − 04
1.01E − 03
1.45E − 03
1.08E − 03
4.14E − 04
30
R
M
S
E
ψ
θ
0
,
A
Z
0
1.45E − 05
6.86E − 06
6.73E − 06
1.14E − 05
5.97E − 06
3.19E − 07
6.82E − 06
1.52E − 05
3.42E − 06
45
R
M
S
E
ϕ
θ
0
,
A
Z
0
1.05E − 02
1.34E − 02
1.47E − 02
1.42E − 02
1.27E − 02
6.72E − 03
3.80E − 03
5.43E − 03
3.87E − 03
45
R
M
S
E
θ
θ
0
,
A
Z
0
4.71E − 04
2.82E − 03
2.78E − 03
1.64E − 03
5.85E − 04
1.31E − 03
2.48E − 03
2.15E − 03
7.01E − 04
45
R
M
S
E
ψ
θ
0
,
A
Z
0
1.11E − 05
5.01E − 06
1.12E − 05
2.09E − 05
1.27E − 05
3.28E − 07
6.64E − 06
1.49E − 05
4.21E − 06
60
R
M
S
E
ϕ
θ
0
,
A
Z
0
9.64E − 03
1.25E − 02
1.37E − 02
1.45E − 02
9.96E − 03
7.09E − 03
4.97E − 03
6.44E − 03
3.67E − 03
60
R
M
S
E
θ
θ
0
,
A
Z
0
6.09E − 04
2.24E − 03
2.40E − 03
2.73E − 03
1.89E − 03
2.28E − 03
1.30E − 03
1.40E − 03
6.96E − 04
60
R
M
S
E
ψ
θ
0
,
A
Z
0
1.05E − 05
4.08E − 06
1.31E − 05
1.52E − 05
1.49E − 05
4.45E − 06
6.97E − 06
1.43E − 05
4.00E − 06
75
R
M
S
E
φ
θ
0
,
A
Z
0
9.92E − 03
1.19E − 02
1.28E − 02
1.21E − 02
1.14E − 02
6.57E − 03
4.93E − 03
9.80E − 03
3.63E − 03
75
R
M
S
E
θ
θ
0
,
A
Z
0
1.50E − 03
2.05E − 03
2.01E − 03
1.38E − 03
2.10E − 03
1.38E − 03
2.10E − 03
2.54E − 03
6.79E − 04
75
R
M
S
E
ψ
θ
0
,
A
Z
0
1.07E − 05
3.48E − 06
9.69E − 06
1.49E − 05
1.22E − 05
3.24E − 06
1.43E − 05
1.54E − 05
4.04E − 06
Total
R
M
S
E
ϕ
θ
0
,
A
Z
0
1.14E − 03
1.55E − 03
1.74E − 03
1.60E − 03
1.15E − 03
6.59E − 04
4.76E − 04
7.44E − 04
4.30E − 04
Total
R
M
S
E
θ
θ
0
,
A
Z
0
1.39E − 04
2.12E − 04
2.99E − 04
2.33E − 04
1.77E − 04
2.48E − 04
3.24E − 04
2.58E − 04
8.59E − 05
Total
R
M
S
E
ψ
θ
0
,
A
Z
0
1.13E − 06
3.34E − 07
1.13E − 06
1.61E − 06
1.10E − 06
1.64E − 07
1.08E − 06
1.53E − 06
3.95E − 07


## 7. Conclusions

A novel low-cost approach for estimating attitude of aerial platforms has been proposed. This approach is based on the measurement of two different vectors: speed and gravity vectors. They are measured and estimated in two different reference frames using a GNSS sensor and a set of accelerometers. A new estimation method for obtaining the gravity vector in body axes has also been presented.The presented algorithm is of special interest for high dynamic vehicles where other low-cost approaches, such as the ones using magnetometers, especially in ballistic rockets or unmanned air vehicles are not suitable due electronic interferences with other electronic equipment.Nonlinear simulations based on ballistic rocket launches are performed to obtain ideal attitude and compare it to the attitude obtained by the proposed approach. Computational results show that errors are small enough to consider the presented algorithm as a good candidate for use within a control algorithm. Concretely, the total root mean square errors defined in Table2 are below 10−2° for the three attitude angles in the totality of tested cases. It is demonstrated that through the attitude determination algorithm proposed, precision is maintained. Note that the needed low-cost components make this approach highly interesting for nonreusable vehicles such as ballistic rockets.



---

*Source: 5394057-2018-02-04.xml*