[american institute of aeronautics and astronautics aiaa guidance, navigation and control conference...

18
Design and Implementation of a Low-Cost Aided Attitude and Heading Reference System Ph. Martin * and E. Sala¨ un ´ Ecole des Mines de Paris, 75272 Paris Cedex 06, France In this paper we propose a nonlinear observer (i.e. a “filter”) to estimate the posi- tion and velocity vectors and the orientation of a flying rigid body, using measurements from low-cost Earth-fixed position and velocity, inertial and magnetic sensors. It has by design a nice geometrical structure appealing from an engineering viewpoint; it is easy to tune, computationally very economic, and with guaranteed (at least local) convergence around every “smooth” trajectory. Moreover, it sensibly behaves in the presence of mag- netic disturbances. We illustrate its good performance on experimental comparisons with a commercial system, and demonstrate its simplicity by implementing it on an 8-bit mi- crocontroller. Nomenclature ˜ e i Orthonormed frame, i=1,2,3 ω Instantaneous angular velocity vector, rad/s ω 0 ,X 0 R 3 -vectors ω b Constant vector bias on gyroscopes, rad/s A Constant gravity vector in North-East-Down coordinates, A = ge 3 , m/s 2 a Specific acceleration vector (all the non-gravitational forces divided by the body mass), m/s 2 a 0 ,h 0 Scalars (a 0 > 0) a s Positif constant scaling factor on accelerometers B Earth magnetic field in NED coordinates, B = B 1 e 1 + B 3 e 3 ,T e i Unit vectors pointing respectively North, East, Down, i=1,2,3 h b Constant scalar bias on altitude measurement provided by the barometric sensor, m p 0 ,q 0 Unit quaternions q Unit quaternion representing the orientation of the body-fixed frame with respect to the Earth-fixed frame V,X Velocity and position vectors of the center of mass with respect to the Earth-fixed frame, m/s,m I. Introduction Aircraft, especially Unmanned Aerial Vehicles (UAV), commonly needs to know its orientation, velocity and position to be operated, whether manually or with computer assistance. When cost or weight is an issue, using very accurate inertial sensors for “true” (i.e. based on the Schuler effect due to a non-flat rotating Earth) inertial navigation is excluded. Instead, low-cost systems –sometimes called velocity-aided Attitude and Heading Reference Systems (AHRS)– rely on light and cheap “strapdown” gyroscopes, accelerometers and magnetometers “aided” by position and velocity sensors (provided for example in body-fixed coordinates by an air-data or Doppler radar system, or in Earth-fixed coordinates by a GPS engine). Then, the various measurements are “merged” according to the motion equations of the aircraft assuming a flat non-rotating Earth, usually with a linear complementary filter or an Extended Kalman Filter (EKF). For more details * Professor, Centre Automatique et Syst` emes, [email protected], AIAA Member. PhD Student, Centre Automatique et Syst` emes, [email protected], AIAA Member. 1 of 18 American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit 18 - 21 August 2008, Honolulu, Hawaii AIAA 2008-7169 Copyright © 2008 by the American Institute of Aeronautics and Astronautics, Inc. All rights reserved.

Upload: erwan

Post on 16-Dec-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

Design and Implementation of a Low-Cost Aided

Attitude and Heading Reference System

Ph. Martin∗ and E. Salaun†

Ecole des Mines de Paris, 75272 Paris Cedex 06, France

In this paper we propose a nonlinear observer (i.e. a “filter”) to estimate the posi-tion and velocity vectors and the orientation of a flying rigid body, using measurementsfrom low-cost Earth-fixed position and velocity, inertial and magnetic sensors. It has bydesign a nice geometrical structure appealing from an engineering viewpoint; it is easyto tune, computationally very economic, and with guaranteed (at least local) convergencearound every “smooth” trajectory. Moreover, it sensibly behaves in the presence of mag-netic disturbances. We illustrate its good performance on experimental comparisons witha commercial system, and demonstrate its simplicity by implementing it on an 8-bit mi-crocontroller.

Nomenclature

ei Orthonormed frame, i=1,2,3ω Instantaneous angular velocity vector, rad/sω0, X0 R3-vectorsωb Constant vector bias on gyroscopes, rad/sA Constant gravity vector in North-East-Down coordinates, A = ge3, m/s2

a Specific acceleration vector (all the non-gravitational forces divided by the body mass), m/s2

a0, h0 Scalars (a0 > 0)as Positif constant scaling factor on accelerometersB Earth magnetic field in NED coordinates, B = B1e1 +B3e3, Tei Unit vectors pointing respectively North, East, Down, i=1,2,3hb Constant scalar bias on altitude measurement provided by the barometric sensor, mp0, q0 Unit quaternionsq Unit quaternion representing the orientation of the body-fixed frame with respect to the Earth-fixed

frameV,X Velocity and position vectors of the center of mass with respect to the Earth-fixed frame, m/s,m

I. Introduction

Aircraft, especially Unmanned Aerial Vehicles (UAV), commonly needs to know its orientation, velocityand position to be operated, whether manually or with computer assistance. When cost or weight is an issue,using very accurate inertial sensors for “true” (i.e. based on the Schuler effect due to a non-flat rotatingEarth) inertial navigation is excluded. Instead, low-cost systems –sometimes called velocity-aided Attitudeand Heading Reference Systems (AHRS)– rely on light and cheap “strapdown” gyroscopes, accelerometersand magnetometers “aided” by position and velocity sensors (provided for example in body-fixed coordinatesby an air-data or Doppler radar system, or in Earth-fixed coordinates by a GPS engine). Then, the variousmeasurements are “merged” according to the motion equations of the aircraft assuming a flat non-rotatingEarth, usually with a linear complementary filter or an Extended Kalman Filter (EKF). For more details

∗Professor, Centre Automatique et Systemes, [email protected], AIAA Member.†PhD Student, Centre Automatique et Systemes, [email protected], AIAA Member.

1 of 18

American Institute of Aeronautics and Astronautics

AIAA Guidance, Navigation and Control Conference and Exhibit18 - 21 August 2008, Honolulu, Hawaii

AIAA 2008-7169

Copyright © 2008 by the American Institute of Aeronautics and Astronautics, Inc. All rights reserved.

Page 2: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

about avionics, various inertial navigation systems and sensor fusion, see for instance the books Refs. 1–4and the references therein.

While the EKF is a general method capable of good performance when properly tuned, it suffers severaldrawbacks: it is not easy to choose the numerous parameters; it is computationally expensive, which is aproblem in low-cost embedded systems; it is usually difficult to prove the convergence, even at first-order,and the designer has to rely on extensive simulations.

An alternative route is to use an ad hoc nonlinear observer as proposed in Refs. 5–11. In the absenceof a general method, the main difficulty is of course to find such an observer. In this paper, we use therich geometric structure of the flying rigid body problem to derive an observer by the method developedin Ref. 12, building up on the preliminary work Ref. 11. We propose a general observer structure able tohandle the various possible sensors, and which supersedes the previous works Refs. 6–11. It has by design anice geometrical structure appealing from an engineering viewpoint; it is easy to tune, computationally veryeconomic, and with guaranteed (at least local) convergence around every “smooth” trajectory. Moreover,it sensibly behaves in the presence of magnetic disturbances. We illustrate its good performance on exper-imental comparisons with the commercial Microbotics MIDG II system, and demonstrate its simplicity byimplementing it on an 8-bit Atmel AVR microcontroller.

II. Physical equations and measurements

A. Motion equations

The motion of a flying rigid body (assuming the Earth is flat and defines an inertial frame) is described by

q =12q ∗ ω

V = A+ q ∗ a ∗ q−1

X = V.

The first equation describes the kinematics of the body, the second is Newton’s force law. It is customaryto use quaternions (also called Euler 4-parameters) instead of Euler angles since they provide a globalparametrization of the body orientation, and are well-suited for calculations and computer simulations.For more details about this section, see any good textbook on aircraft modeling, for instance Ref. 13, andsection VIII for useful formulas used in this paper.

B. Measurements

We use four triaxial sensors, yielding twelve scalar measurements: 3 gyros measure ωm = ω + ωb, where ωbis a constant vector bias; 3 accelerometers measure am = asa, where as > 0 is a constant scaling factor;3 magnetometers measure yB = q−1 ∗ B ∗ q; the position and velocity vectors X and V are provided bythe navigation solutions yX and yV of a GPS engine (the GPS velocity is obtained from the carrier phaseand/or Doppler shift data, and not by differentiating the GPS position, hence is of rather good quality).A barometric sensor provides also a measurement of the altitude yh = 〈X, e3〉 − hb, where hb is a constantscalar bias. Of course, all these measurements are also corrupted by noise.

There is some freedom in the modeling of the sensors imperfections. A simple first-order observabilityanalysis reveals that up to ten unknown constants can be estimated. The five extra constants could be usedto model three imperfections on yV and two on yB , or one on yB and one more on am. Nevertheless, it isnot possible to use them to model three imperfections on am: in particular if we write am = a+ ab, with aba constant vector bias, only two components of ab are observable; moreover, only one imperfection on amcan be estimated without relying on the possibly disturbed magnetic measurement yB . The choice adoptedhere, 3 biases on the gyros, one scaling factor on the acceleros and one bias on the altitude measurement,ensures that in level flight the estimated velocity equals the measured velocity (see §IV.B).

2 of 18

American Institute of Aeronautics and Astronautics

Page 3: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

C. The considered system

To design our observers, we therefore consider the system

q =12q ∗ (ωm − ωb) (1)

V = A+1asq ∗ am ∗ q−1 (2)

X = V (3)ωb = 0 (4)as = 0 (5)

hb = 0 (6)

where ωm and am are seen as known inputs, together with the outputyV

yX

yh

yB

=

V

X

〈X, e3〉 − hbq−1 ∗B ∗ q

. (7)

This system is observable provided B × (q ∗ am ∗ q−1) 6= 0 since all the state variables can be recoveredfrom the known quantities ωm, am, yV , yX , yh, yB and their derivatives. Indeed from (2), as = ‖am‖

‖yV −A‖ andam

‖am‖ = q−1 ∗ yV −A‖yV −A‖ ∗ q. Thus we know the action of q on the two known vectors B and yV − A, which

are independent by the above assumption; this completely defines q in function of yB , yB , am. Finallyωb = ωm − 2q−1q is determined from (1) and hb = 〈yX , e3〉 − yh from (7).

III. The nonlinear observer

A. Invariance of the system equations

There is no general method for designing a nonlinear observer for a given system. When the system hasa rich geometric structure the recent paper Ref. 12 provides a constructive method to this problem. Inshort, when a system of state dimension n is invariant by a transformation group of dimension r ≤ n, themethod yields the general invariant preobserver. More importantly, the error between the estimated andactual states is described in suitable invariant coordinates by a system of dimension 2n − r; in particular,the error system has dimension n when the group has dimension n. This result, which is reminiscent of thelinear case, greatly simplifies the convergence analysis.

In our case, the transformation generated by constant rotations and translations in the earth-fixed andbody-fixed frame

ϕ(p0,q0,X0,ω0,a0,h0)

q

V

X

ωb

as

hb

=

p0 ∗ q ∗ q0p0 ∗ V ∗ p−1

0

p0 ∗ (X +X0) ∗ p−10

q−10 ∗ ωb ∗ q0 + ω0

asa0

hb + h0

ψ(p0,q0,X0,ω0,a0,h0)

ωm

am

A

B

=

q−10 ∗ ωm ∗ q0 + ω0

a0q−10 ∗ am ∗ q0

p0 ∗A ∗ p−10

p0 ∗B ∗ p−10

ρ(p0,q0,X0,ω0,a0,h0)

yV

yX

yh

yB

=

p0 ∗ yV ∗ p−1

0

p0 ∗ (yX +X0) ∗ p−10

yh − h0 + 〈X0, e3〉q−10 ∗ yB ∗ q0

is easily seen to be a transformation group. There are 2 ∗ 3 + 2 ∗ 3 + 2 ∗ 1 = 14 parameters: the two unitquaternions p0, q0, the R3-vectors X0, ω0 and the two scalars a0, h0. So, the transformation group has one

3 of 18

American Institute of Aeronautics and Astronautics

Page 4: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

dimension less than the system (1)–(6). To have the same dimension, we could consider another scaling v0for the transformation on V , which would lead only to a kind of gain normalization.

The system (1)–(6) is indeed invariant by the transformation group since

˙︷ ︸︸ ︷(q ∗ q0) = q ∗ q0 =

12

(q ∗ q0) ∗((q−1

0 ∗ ωm ∗ q0 + ω0)− (q−10 ∗ ωb ∗ q0 + ω0)

)˙︷ ︸︸ ︷

(V + V0) = V = A+1

asa0(q ∗ q0) ∗ (asq−1

0 ∗ am ∗ q0) ∗ (q ∗ q0)−1

˙︷ ︸︸ ︷(q−1

0 ∗ ωb ∗ q0 + ω0) = q−10 ∗ ωb ∗ q0 = 0

˙︷ ︸︸ ︷(asa0) = asa0 = 0

˙︷ ︸︸ ︷(hb + h0) = hb = 0,

whereas the output (7) is compatible sincep0 ∗ V ∗ p−1

0

p0 ∗ (X +X0) ∗ p−10

〈p0 ∗ (X +X0) ∗ p−10 , p0 ∗ e3 ∗ p−1

0 〉 − (hb + h0)(p0 ∗ q ∗ q0)−1 ∗ (p0 ∗B ∗ p−1

0 ) ∗ (p0 ∗ q ∗ q0)

= ρ(p0,q0,X0,ω0,a0,h0)

V

X

〈X, e3〉 − hbq−1 ∗B ∗ q

.

Velocity measurements yv in the body-fixed frame can commonly be provided by an air-data system ora Doppler radar. Since yv = q−1 ∗ V ∗ q, this new output is also compatible:

(p0 ∗ q ∗ q0)−1 ∗ (p0 ∗ V ∗ p−10 ) ∗ (p0 ∗ q ∗ q0) = ρ(p0,q0,X0,ω0,a0,h0)

(q−1 ∗ V ∗ q

).

The nonlinear observer described in this paper can be adapted to also use measurements in the body-fixedframe.

Notice also that from a physical and engineering viewpoint, it is perfectly sensible for an observer usingmeasurements expressed in the body-fixed frame not to be affected by the actual choice of coordinates, i.e. bya constant rotation in the body-fixed frame. Similarly, a translation of the gyro bias by a vector constant inthe body-fixed frame and a translation of the position measurements by a vector constant in the Earth-fixedframe should not affect the observer. This is precisely what the method of Ref. 12 achieves.

B. Construction of the observer

In this section, we detail the steps to construct the general invariant observer, which consists in a general-ization of the observer described in Ref. 14. In a first lecture, the reader can go directly to §C to get theequations of the observer.

We solve for (p0, q0, X0, ω0, a0, h0) the normalization equations

p0 ∗ q ∗ q0 = 1

p0 ∗ ei ∗ p−10 = ei

p0 ∗ (X +X0) ∗ p−10 = 0

q−10 ∗ ωb ∗ q0 + ω0 = 0

asa0 = 1hb + h0 = 0

to find the moving frame γ(q,X, ωb, as, hb, e1, e2, e3) defined by the equations

q0 = q−1 ∗ p−10

X0 = −Xω0 = −p0 ∗ q ∗ ωb ∗ q−1 ∗ p−1

0

h0 = −hb + 〈X, e3〉

4 of 18

American Institute of Aeronautics and Astronautics

Page 5: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

where p0 represents the rotation between the two frames (e1, e2, e3) and (e1, e2, e3).Then we can find the 10 scalar invariant errors, which correspond to the projections of the output error

ργ(q,X,ωb,as,hb,e1,e2,e3)

yVyXyB

− ργ(q,X,ωb,as,hb,e1,e2,e3)

yVyXyB

on the new frame (e1, e2, e3) and to the output error related to yh, which is directly invariant. We get

EV i = 〈yV − yV , ei〉EXi = 〈yX − yX , ei〉

Eh = 〈X −X, e3〉 − hb + hb

EBi = 〈B − q ∗ yB ∗ q−1, ei〉,

where i = 1, 2, 3. We detail for instance how to get Evi:

〈ργ(q,X,ωb,as,hb,e1,e2,e3)

(yV

)− ργ(q,X,ωb,as,hb,e1,e2,e3)

(yV

), ei〉 = 〈p0 ∗ yV ∗ p−1

0 − p0 ∗ yV ∗ p−10 , ei〉

= 〈yV − yV , p−10 ∗ ei ∗ p0〉

= 〈yV − yV , ei〉.

We get also the 9 scalar complete invariants, which correspond to the projections of

φγ(q,X,ωb,as,hb,e1,e2,e3)

(V)

and ψγ(q,X,ωb,as,hb,e1,e2,e3)

(ωm

am

)on the new frame (e1, e2, e3). We find

IV i = 〈V , ei〉Iωmi = 〈q ∗ (ωm − ωb) ∗ q−1, ei〉

Iami = 〈 1asq ∗ am ∗ q−1, ei〉 with i = 1, 2, 3.

Notice that IV i, Iωmi, Iami, EV i, EXi, EBi’s and Eh are functions of the estimates and the measure-ments. Hence, they are known quantities, which can be used in the construction of the pre-observer. It isstraightforward to check they are indeed invariant. For instance,

EBi(p0 ∗ q ∗ q0, p0 ∗B ∗ p−10 , q−1

0 ∗ yB ∗ q0) = 〈p0 ∗B ∗ p−10 − (p0 ∗ q ∗ q0) ∗ (q−1

0 ∗ yB ∗ q0) ∗ (p0 ∗ q ∗ q0)−1, ei〉= 〈B − q ∗ yB ∗ q−1, ei〉= EBi(q, B, yB).

To find invariant vector fields, we solve for w(q, V,X, ωb, as, hb) the 14 vector equations (i = 1, 2, 3)Dϕγ(q,X,ωb,as,hb,e1,e2,e3)

q

V

X

ωb

as

hb

· w(q, V,X, ωb, as, hb) =

ei

00000

,

0ei

0000

,

00ei

000

,

000ei

00

,

0000e13

0

,

00000e14

.

Since Dϕ(p0,q0,X0,ω0,a0,h0)

q

V

X

ωb

as

hb

·

δq

δV

δX

δωb

δas

δhb

=

p0 ∗ δq ∗ q0p0 ∗ δV ∗ p−1

0

p0 ∗ δX ∗ p−10

q−10 ∗ δωb ∗ q0a0δas

δhb

,

5 of 18

American Institute of Aeronautics and Astronautics

Page 6: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

this yields the 14 independent invariant vector fields

ei ∗ q00000

,

0ei

0000

,

00ei

000

,

000

q−1 ∗ ei ∗ q00

,

0000

ase13

0

,

00000e14

, i = 1, 2, 3.

Indeed for instance the equations p0 ∗ δq ∗ q0 = ei gave us

δq = p−10 ∗ ei ∗ q

−10 = (p−1

0 ∗ ei ∗ p0) ∗ (q0 ∗ p0)−1 = ei ∗ q.

It is easy to check that these vector fields are indeed invariant.The general invariant pre-observer then reads

˙q =12q ∗ (ωm − ωb) +

3∑i=1

( 3∑j=1

(lV ijEV j + lXijEXj + lBijEBj) + lhiEh)ei ∗ q

˙V = A+

1asq ∗ am ∗ q−1 +

3∑i=1

( 3∑j=1

(mV ijEV j +mXijEXj +mBijEBj) +mhiEh)ei

˙X = V +

3∑i=1

( 3∑j=1

(nV ijEV j + nXijEXj + nBijEBj) + nhiEh)ei

˙ωb = q−1 ∗( 3∑i=1

( 3∑j=1

(oV ijEV j + oXijEXj + oBijEBj) + ohiEh)ei)∗ q

˙as = as( 3∑j=1

(rV jEV j + rXjEXj + rBjEBj) + rhEh)

˙hb =

3∑j=1

(sV jEV j + sXjEXj + sBjEBj) + shEh,

where the lV ij , lXij , lBij , lhi, mV ij , mXij , mBij , mhi, nV ij , nXij , nBij , nhi, oV ij , oXij , oBij , ohi, rV j , rXj ,rBj , sV j , sXj , sBj ’s, rh and sh are arbitrary scalars, which possibly depend on EV i, EXi, EBi, Eh, IV i, Iωmi

and Iami’s. Noticing3∑i=1

( 3∑j=1

(lV ijEV j))ei = LV EV

where EV = V − V and LV is the 3× 3 matrix whose coefficients are the lV ij ’s, and defining EX , EB , LX ,Lh, LB , MV , MX , Mh, MB , NV , NX , Nh, NB , OV , OX , Oh, OB , RV , RX , RB , Rh, SV , SX , Sh and SB inthe same way, we can rewrite the pre-observer as

˙q =12q ∗ (ωm − ωb) + (LV EV + LXEX + LhEh + LBEB) ∗ q

˙V = A+

1asq ∗ am ∗ q−1 + (MV EV +MXEX +MhEh +MBEB)

˙X = V + (NV EV +NXEX +NhEh +NBEB)˙ωb = q−1 ∗ (OV EV +OXEX +OhEh +OBEB) ∗ q˙as = as(RV EV +RXEX +RhEh +RBEB)˙hb = (SV EV + SXEX + ShEh + SBEB).

6 of 18

American Institute of Aeronautics and Astronautics

Page 7: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

C. The general invariant observer

The general invariant observer writes

˙q =12q ∗ (ωm − ωb) + (LV EV + LXEX + LhEh + LBEB) ∗ q (8)

˙V = A+

1asq ∗ am ∗ q−1 + (MV EV +MXEX +MhEh +MBEB) (9)

˙X = V + (NV EV +NXEX +NhEh +NBEB) (10)˙ωb = q−1 ∗ (OV EV +OXEX +OhEh +OBEB) ∗ q (11)˙as = as(RV EV +RXEX +RhEh +RBEB) (12)˙hb = (SV EV + SXEX + ShEh + SBEB), (13)

where LV , LX , LB , MV , MX , MB , NV , NX , NB , OV , OX , OB are 3 × 3 matrices, RV , RX , RB , SV , SX ,SB are 1× 3 matrices, Lh, Mh, Nh, Oh are 3× 1 matrices and Rh, Sh are scalars whose coefficients possiblydepend on EV , EX , EB , Eh, IV , Iωm and Iam with the invariant output

EV = V − yVEX = X − yXEB = B − q ∗ yB ∗ q−1

Eh = 〈X, e3〉 − hb − yh

and the complete invariant

IV = V

Iωm= q ∗ (ωm − ωb) ∗ q−1

Iam =1asq ∗ am ∗ q−1.

The pre-observer is indeed invariant by considering the projection of the output errors EV , EX and EBon the frame (e1, e2, e3). As a by-product of its geometric structure, the pre-observer automatically has adesirable feature: the norm of q is left unchanged by (8), since LV EV + LXEX + LhEh + LBEB is a vectorof R3 (see section VIII); moreover as remains positive.

D. Error equations

The state error is given by

η

ν

χ

β

α

λ

= ϕγ(q,V,X,ωb,as,hb)

q

V

X

ωb

as

hb

− ϕγ(q,V,X,ωb,as,hb)

q

V

X

ωb

as

hb

=

q ∗ q−1 − 1V − VX −X

q ∗ (ωb − ωb) ∗ q−1

as

as− 1

hb − hb

.

It is in fact more natural –even completely equivalent– to take η = q ∗ q−1 (rather than η = q ∗ q−1 − 1), sothat η(x, x) = 1, the unit element of the group of quaternions. In the same way, we take α = as

asto keep α

in R+. As we did in the preceding subsection, it can be easily checked that α, λ and the projections of η, ν,

7 of 18

American Institute of Aeronautics and Astronautics

Page 8: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

χ and β on the frame (e1, e2, e3) are invariant. Hence for (i, j) = 1, 2, 3,

〈˙︷ ︸︸ ︷

ηeiη−1, ej〉 = 〈η ∗ ei ∗ η−1 − η ∗ ei ∗ η−1ηη−1, ej〉

= 2〈(−12ηβη−1 + LV EV + LXEX + LBEB + LhEh)× (ηeiη−1), ej〉

〈ν, ei〉 = 〈Iam − αη−1 ∗ Iam ∗ η +MV EV +MXEX +MBEB +MhEh, ei〉〈χ, ei〉 = 〈ν +NV EV +NXEX +NBEB +NhEh, ei〉〈β, ei〉 = 〈(η−1Iωm

η)× β + η−1 ∗ (OV EV +OXEX +OBEB +OhEh) ∗ η, ei〉α = α(RV EV +RXEX +RBEB +RhEh)

λ = SV EV + SXEX + SBEB + ShEh.

Since we can write

EV = ν

EX = χ

EB = B − η ∗B ∗ η−1

Eh = 〈χ, e3〉 − λ,

we find as expected that the error system

˙︷ ︸︸ ︷ηeiη

−1 = 2(−12ηβη−1 + LV EV + LXEX + LBEB + LhEh)× (ηeiη−1) (14)

ν = Iam − αη−1 ∗ Iam ∗ η +MV EV +MXEX +MBEB +MhEh (15)χ = ν +NV EV +NXEX +NBEB +NhEh (16)

β = (η−1Iωmη)× β + η−1 ∗ (OV EV +OXEX +OBEB +OhEh) ∗ η (17)

α = α(RV EV +RXEX +RBEB +RhEh) (18)

λ = SV EV + SXEX + SBEB + ShEh (19)

depends only on the invariant state error (η, ν, χ, β, α, λ) and the “free” known invariants IV , Iωmand

Iam, but not on the trajectory of the observed system (1)–(6). The error system (14)–(19) is invariant by

considering the projection of the equations (14)–(17) on the frame (e1, e2, e3).The linearized error system around (η, ν, χ, β, α, λ) = (1, 0, 0, 0, 1, 0), i.e. the estimated state equals the

actual state, is given by

δη = −12δβ + (LV δEV + LXδEX + LBδEB + LhδEh)

δν = −2Iam × δη − δαIam + (MV δEV +MXδEX +MBδEB +MhδEh)δχ = δν + (NV δEV +NXδEX +NBδEB +NhδEh)

δβ = Iωm× δβ + (OV δEV +OXδEX +OBδEB +OhδEh)

δα = (RV δEV +RXδEX +RBδEB +RhδEh)

δλ = (SV δEV + SXδEX + SBδEB + ShδEh)

where

δEV = δν

δEX = δχ

δEB = −δη ∗B ∗ η−1 − η ∗B ∗ (−η−1 ∗ δη ∗ η−1) = 2(η ∗B ∗ η−1)× (δη ∗ η−1) = 2B × δηδEh = 〈δχ, e3〉 − δλ.

8 of 18

American Institute of Aeronautics and Astronautics

Page 9: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

IV. Choice of the observer parameters

A. Choice of the gain matrices

The linearized error system without correction terms turns out to be decoupled into 4 independent subsystems(see §C) when Iam

is constant and Iωm= 0 (in particular when the aircraft is in level flight). To ensure a

simple tuning, the gain matrices should respect this decoupling. On the other hand, the Earth magnetic fieldis quite perturbed in urban areas, which are usual sites for a small UAV. We do not want these magneticdisturbances – which unavoidably corrupt the heading estimation – to affect too much the attitude, velocityand position estimations. Thus the idea is to rely on the magnetic measurement yB as little as possible.

Therefore we choose

LV EV = −lV Iam× EV LXEX = 0 LBEB = lB〈B × EB , Iam

〉IamLhEh = 0

MV EV = −mV EV MXEX = 0 MBEB = 0 MhEh = −mhEhe3

NV EV = 0 NXEX = −nXEX NBEB = 0 NhEh = −nhEhe3OV EV = oV Iam

× EV OXEX = 0 OBEB = −oB〈B × EB , Iam〉Iam

OhEh = 0RV EV = rV 〈Iam

, EV 〉 RXEX = 0 RBEB = 0 RhEh = −rhEhSV EV = 0 SXEX = 0 SBEB = 0 ShEh = shEh

with (lV , lB ,mV ,mh, nX , nh, oV , oB , rV , rh, sh) > 0.

B. Equilibrium points of the observer equations

When the observer have converged, the equations (17)–(19) of the observer write

OV EV +OBEB = 0RV EV +RhEh = 0

ShEh = 0.

With the choice of gain matrices above, it leads to

Iam× EV = 0 and 〈Iam

, EV 〉 = 0.

So, even if the model is wrong, for example if the Earth magnetic field is perturbed, the observer equationsensure V = V once it has converged. This important property led us to consider the fourth bias as inaddition to the usual biases ωb on the gyros. Similar conclusion is not possible with the Euler angles even ifwe consider another additional biases: EB = 0 does not ensure that the yaw angle, for example, is correctlyestimated.

C. First-order approximation and coordinate change

Considering the gain matrices described above, the linearized error equations around the equilibrium point(1, 0, 0, 0, 1, 0) write

δη = −12δβ − lV Iam

× δEV + lB〈B × δEB , Iam〉Iam

δν = −2Iam × δη − δαIam −mV δEV −mhδEhe3

δχ = δν − nXδEX − nhδEhe3δβ = Iωm

× δβ + oV Iam× δEV − oB〈B × δEB , Iam

〉Iam

δα = rV 〈Iam, δEV 〉 − rhδEh

δλ = shδEh

with

δEV = δν

δEX = δχ

δEB = 2B × δηδEh = 〈δχ, e3〉 − δλ.

9 of 18

American Institute of Aeronautics and Astronautics

Page 10: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

We change the coordinates in order to have the estimated specific acceleration vector Iam vertical. Letη0 be this frame rotation defined by

η−10 ∗ Iam

∗ η0 = −kA, where k > 0 (20)

η−10 ∗B ∗ η0 = B with B = (B1 0 B3). (21)

It follows

η = η−10 ∗ η ∗ η0 ν = η−1

0 ∗ ν ∗ η0χ = η−1

0 ∗ χ ∗ η0 β = η−10 ∗ β ∗ η0

e′

i = η−10 ∗ ei ∗ η0.

The error system then becomes

δ ˙η = 2δη × (η−10 ∗ η0)− 1

2δβ + klVA× δEV + k2lB〈B × δEB , A〉A

δ ˙ν = 2δν × (η−10 ∗ η0) + 2kA× δη + kδαA−mV δEV −mhδEhe

3

δ ˙χ = 2δχ× (η−10 ∗ η0) + δν − nXδEX − nhδEhe

3

δ˙β = 2δβ × (η−1

0 ∗ η0) + Iωm× δω − koVA× δEV − k2oB〈B × δEB , A〉A

δα = −rV k〈A, δEV 〉 − rhδEhδλ = shδEh

with

δEV = δν

δEX = δχ

δEB = 2B × δη

δEh = 〈δχ, e′

3〉 − δλ.

We suppose now that the system is moving along “smooth” trajectory, i.e η0 and Iωm are first orderterms. All the terms of the form ·× (η−1

0 ∗ η0) then disappear and k is now constant. The error system splitsinto three decoupled subsystems and one cascaded subsystem:

• the longitudinal subsystems δ ˙η2δ ˙ν1δ

˙β2

=

0 klV g − 12

−2kg −mV 00 −koV g 0

δη2δν1

δβ2

δ ˙χ1 = δν1 − nXδχ1

• the lateral subsystems δ ˙η1δ ˙ν2δ

˙β1

=

0 −klV g − 12

2kg −mV 00 koV g 0

δη1δν2

δβ1

δ ˙χ2 = δν2 − nXδχ2

• the vertical subsystem δ ˙ν3δα

δ ˙χ3

δλ

=

−mV kg −mh mh

−kgrV 0 −rh rh

1 0 −(nX + nh) nh

0 0 sh −sh

δν3

δα

δχ3

δλ

10 of 18

American Institute of Aeronautics and Astronautics

Page 11: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

• the heading subsystem

(δ ˙η3δ

˙β3

)=

(−2k2g2lBB

21 − 1

2

2k2g2oBB21 0

)(δη3

δβ3

)+

(2k2g2lBB3B1

−2k2g2oBB3B1

)δη1.

Thanks to this decoupled structure, the tuning of the gains lV , lB ,mV ,mh, nX , nh, oV , oB , rV , rh, sh isstraightforward. Obviously the lateral, longitudinal and vertical subsystems do not depend on the magneticmeasurements, so will not be affected if the magnetic field is perturbed.

D. Influence of magnetic disturbances on static behavior

We now investigate how the equilibrium point (1, 0, 0, 0, 1, 0) is modified when the magnetic field is (statically)perturbed. We show that only the yaw angle ψ is affected while all the other variables, in particular theattitude angles φ, θ, remain unchanged. Here the Euler angles φ, θ, ψ correspond to the error quaternion ηin the new frame (20)-(21).

The equilibrium points (η, ν, χ, ω, α, λ) are defined by

(lV kA× ν + lB〈B × EB , kA〉kA) ∗ η − 12η ∗ ω = 0

−kA+ αη−1 ∗ kA ∗ η −mV ν −mh(〈χ, e

3〉 − λ)e′

3 = 0

ν − nX χ− nh(〈χ, e′

3〉 − λ)e′

3 = 0

η−1 ∗ (−oV kA× ν − oB〈B × EB , kA〉kA) ∗ η + (η

−1 ∗ Iω ∗ η)× ω = 0

rV 〈kA, ν〉α− rh(〈χ, e′

3〉 − λ) = 0

sh(〈χ, e′

3〉 − λ) = 0.

We ensure ω = 0 by choosing LV EV + LBEB colinear to OV EV +OBEB , that is oV

lV= oB

lB, σ. This

implies ν = 0, αη ∗A ∗ η−1 −A = 0, 〈B × EB , kA〉 = 0, 〈χ, e′

3〉 − λ = 0 and χ = 0.Finally (η, ν, χ, ω, α, λ) = (η, 0, 0, 0, 1, 0); moreover φ = θ = 0 and ψ is determined by 〈B × EB , kA〉 = 0,

where the Euler angles φ, θ, ψ correspond to the error quaternion η.

V. Simulation results

We first illustrate on simulation the behavior of the invariant observer

˙q =12q ∗ (ωm − ωb) + (LV EV + LXEX + LhEh + LBEB) ∗ q + ε(1− ‖q‖2)q

˙V = A+

1asq ∗ am ∗ q−1 + (MV EV +MXEX +MhEh +MBEB)

˙X = V + (NV EV +NXEX +NhEh +NBEB)˙ωb = q−1 ∗ (OV EV +OXEX +OhEh +OBEB) ∗ q˙as = as(RV EV +RXEX +RhEh +RBEB)˙hb = (SV EV + SXEX + ShEh + SBEB)

with the choice of gain matrices described in §IV.A. The added term ε(1− ‖q‖2)q is a well-known numericaltrick to keep ‖q‖ = 1. Notice this term is invariant.

We choose here time constants around 10s by taking lV = oV = 4e− 2, lB = oB = 1e− 3, mV = 5,mh = 0.2, rV = 1e− 2, rh = 8e− 4, nX = 0.8, nh = 0.9, sh = 0.4 and ε = 1. The system follows the trajec-

11 of 18

American Institute of Aeronautics and Astronautics

Page 12: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

tory defined by

as = 1.1 and hb = 1 ωb =

0.01−0.012

0.08

V =

3− 4 cos(0.23t)3− 5.6 cos(0.25t+ π/4)−1− 3.4 sin(.02t)

ωm =

sin(0.5t+ π/5)sin(0.3t+ π/4)− sin(0.2t+ π/3)

,

which is quite representative of a small UAV flight. The states are initialized far from their true values. Att = 35s, the magnetic field is changed from B = (1 0 1)T to B = (0.7 0.7 0.8)T .

Though we have no proof of convergence but local, the domain of attraction seems to be large enough,see figure 1. As expected, only the estimated yaw angle ψ is strongly affected by the magnetic disturbance.Because of the coupling terms Iωm and Iam , there is some dynamic influence on the other variables.

0 10 20 30 40 50 60 70

−100

0

100

Euler angles

Rol

l ang

le, °

0 10 20 30 40 50 60 70−100

0

100

Pitc

h an

gle,

°

0 10 20 30 40 50 60 70

−100

0

100

Time, s

Yaw

ang

le, °

real φestimated φ

real θestimated θ

real ψestimated ψ

(a) Estimated Euler angles

0 10 20 30 40 50 60 700

5

10

Velocity

Vx,

m/s

0 10 20 30 40 50 60 700

5

10

Vy,

m/s

0 10 20 30 40 50 60 70−8

−6

−4

−2

0

Time, s

Vz,

m/s

real Vxestimated Vx

real Vyestimated Vy

real Vzestimated Vz

(b) Estimated velocity

0 2 4 6 8 100

20

40

Position

X, m

0 2 4 6 8 100

20

40

60

Y, m

0 2 4 6 8 10

−40

−20

0

Time, s

Z, m

real Xestimated X

real Yestimated Y

real Zestimated Z

(c) Estimated position

0 14 28 42 56 70−30

0

30

60

Time, s

ωb, °

/s

Estimated biases (ωb,a

s,h

b)

0 14 28 42 56 700

0.4

0.8

1.2

a s, hb, m

Roll biasPitch biasYaw bias

Estimated as

Estimated hb

(d) Estimated biases

Figure 1. Observer validation (simulation)

VI. Experimental results

We now compare the behavior of our observer with the commercial INS-GPS device MIDG II from Mi-crobotics Inc. For each experiment, we first save the raw measurements from the MIDG II gyros, acceleros

12 of 18

American Institute of Aeronautics and Astronautics

Page 13: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

and magnetic sensors (at a 50Hz refresh rate), the position and velocity provided by the navigation solutionsof its GPS engine (at a 5 Hz refresh rate) and the raw measurements from a barometer module IntersemaMS5534B (at a 12.5 Hz refresh rate). A microcontroller on a development kit communicate with thesedevices and send the measurements to a computer via the serial port (see figure 2). On Matlab Simulink,we feed offline the observer with these data and then compare the estimations of the observer to the esti-mations given by the MIDG II (computed according to the user manual by some Kalman filter). In orderto have similar behaviors and considering the units of the raw measurements provided by the MIDG II, wehave chosen lV = 2.8e− 5,lB = 1.4e− 6, mV = 9e− 3, mh = 5e− 4, nX = 1e− 3, nh = 5e− 2, oV = 4e− 7,oB = 2e− 8, rV = 9.4e− 11, rh = 1e− 9, sh = 5e− 3 and ε = 1.

Figure 2. Experimental protocol

A. Dynamic behavior (figure 3)

We wait a few minutes until the biases reach constant values, then move the system in all directions. Theobserver and the MIDG II give very similar results (figures 3(a)–3(d)). On the figure 3(d), it is in facthb + 148m that is represented to plot as and hb on the same axis. We can also notice on the figure 3(b) thatthe estimation of VZ given by our observer seems to be closer to the real value than the estimation providedby the MIDG II: we know that we let the system motionless at t = 42s, which is coherent with our estimatedVZ .

B. Usefulness of the observer correction terms (figure 4)

As explained in §IV.A we have chosen the correction terms such as:

• the magnetic measurements essentially correct the yaw angle and its corresponding bias, i.e. theheading subsystem

• the GPS measurements essentially correct the attitude and vertical subsystems

• the barometric measurements essentially correct the vertical subsystem.

We highlight this property as well as the importance of correction terms on the following experiment.Once the biases have reached constant values, the system is left at rest during 50 minutes:

• for t < 500s the results are very similar for the observer and the MIDG II (figure 4).

• at t = 500s the “magnetic correction terms” are switched off, i.e. the gains lB and oB are set to0. The yaw angle estimated by the observer diverges because the corresponding bias is not perfectlyestimated. Indeed, these variables are not observable without the magnetic measurements. The othervariables are not affected (figure 4).

13 of 18

American Institute of Aeronautics and Astronautics

Page 14: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

0 10 20 30 40 50 60

−20

0

20

40Euler angles

Rol

l ang

le, °

0 10 20 30 40 50 60

−20

0

20

Pitc

h an

gle,

°

0 10 20 30 40 50 60

−150

−100

−50

Time, s

Yaw

ang

le, °

φ MIDG II

estimated φ

θ MIDG II

estimated θ

ψ MIDG II

estimated ψ

(a) Estimated Euler angles

0 10 20 30 40 50 60

−0.5

0

0.5Velocity

Vx,

m/s

0 10 20 30 40 50 60−0.5

0

0.5

Vy,

m/s

0 10 20 30 40 50 60

−0.2

0

0.2

time(s)

Vz,

m/s

Vx MIDG IIestimated Vx

Vy MIDG IIestimated Vy

Vz MIDG IIestimated Vz

(b) Estimated velocity

0 10 20 30 40 50 60−3

−2

−1

Position

X, m

0 10 20 30 40 50 60

0

0.5

1

1.5

Y, m

0 10 20 30 40 50 60

−0.5

0

0.5

1

Time, s

Z, m

X MIDG IIestimated X

Y MIDG IIestimated Y

Z MIDG IIestimated Z

(c) Estimated position

0 13 26 39 52 65−1

−0.3333

0.3333

1

Time, s

ωb, °

/s

Estimated biases (ωb,a

s,h

b)

0 13 26 39 52 650.4

0.6667

0.9333

1.2

a, h

, m

Roll biasPitch biasYaw bias

Estimated as

Estimated hb

(d) Estimated biases

Figure 3. Dynamic behavior (experiment)

14 of 18

American Institute of Aeronautics and Astronautics

Page 15: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

• at t = 1250s the “GPS correction terms” are also switched off, i.e. lV ,mV ,nX ,oV and rV are set to 0.We consider also that hb is constant since there is no GPS measurements to correct its estimation. Theestimated angles, velocities and positions of the attitude subsystem now diverge too. Zooming aroundt = 1250s, we see on the figure 4(d) that the estimated pitch angle diverges with a slope correspondingto the almost-constant difference between the estimated and actual pitch biases. This explains whythe estimated velocity VX diverges quadratically in time.

• at t = 2100 the “barometric correction terms” are also switched off, i.e. mh,nh,rh and sh are set to 0.All the estimated angles, velocities and positions now diverge (figure 4).

0 500 1000 1500 2000 2500 3000

−15

−10

−5

0

Euler angles

Rol

l ang

le, °

0 500 1000 1500 2000 2500 3000

−5

0

5

10

Pitc

h an

gle,

°

0 500 1000 1500 2000 2500 3000135

140

145

150

Time, s

Yaw

ang

le, °

φ MIDG II

estimated φ

θ MIDG II

estimated θ

ψ MIDG II

estimated ψ

(a) Estimated Euler angles

0 500 1000 1500 2000 2500 3000−200

0

200

400

Velocity

Vx,

m/s

0 500 1000 1500 2000 2500 3000

0

200

400

Vy,

m/s

0 500 1000 1500 2000 2500 3000

0

100

200

Time, s

Vz,

m/s

Vx MIDG IIestimated Vx

Vy MIDG IIestimated Vy

Vz MIDG IIestimated Vz

(b) Estimated velocity

0 500 1000 1500 2000 2500 3000

0

10

20x 10

4 Position

X, m

0 500 1000 1500 2000 2500 3000

0

10

20x 10

4

Y, m

0 500 1000 1500 2000 2500 3000

0

2

4x 10

4

Time, s

Z, m

X MIDG IIestimated X

Y MIDG IIestimated Y

Z MIDG IIestimated Z

(c) Estimated position

1150 1200 1250 1300 1350

−0.50

0.5Measured pitch angular rate

°

1150 1200 1250 1300 1350

−3.5−3

−2.5Pitch angle

°

1150 1200 1250 1300 1350

−202

Vx measured by the GPS

cm/s

1150 1200 1250 1300 1350−4

−2

0

Vx

Time, s

m/s

θ MIDGII

estimated θ

Vx MIDGIIestimated Vx

(d) Zoomed view at t = 1250s

Figure 4. Usefulness of correction terms (experiment)

C. Influence of magnetic disturbances (figure 5)

Once the biases have reached constant values, the system is left motionless for 60s. At t = 76s a magnet is putclose to the sensors for 10s. As expected, only the estimated yaw angle is affected by the magnetic disturbance(figure 5); the MIDG II exhibits a similar behavior. For the experiments related to the figures 5(a)–5(c) weused the constant gain values detailed above. We notice that the yaw angle estimated by our algorithm ismore affected by the disturbance that the estimation provided by the MIDG II. Indeed, our gain values areconstant whatever the magnetic field is. If the norm of the magnetic measurements change, which means thatthere is some magnetic disturbance, we would like this to affect the gain values of the magnetic correctionterms. A first possibility is to consider the gains lB and oB divided by ‖yB‖2, supposing ‖yB‖2 6= 0. On the

15 of 18

American Institute of Aeronautics and Astronautics

Page 16: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

figure 5(d) we see that the estimated yaw angle is really less disturbed, and is now close to the estimationgiven by the MIDG II.

0 10 20 30 40 50 600

0.2

0.4

0.6Euler angles

Rol

l ang

le, °

0 10 20 30 40 50 600.3

0.4

0.5

0.6

Pitc

h an

gle,

°

0 10 20 30 40 50 60

−60−40−20

020

Time, s

Yaw

ang

le, °

φ MIDG II

estimated φ

θ MIDG II

estimated θ

ψ MIDG II

estimated ψ

(a) Estimated Euler angles

0 10 20 30 40 50 60

−2

0

2

4

Velocity

Vx,

cm

/s

0 10 20 30 40 50 60

−4

−2

0

2

4

Vy,

cm

/s

0 10 20 30 40 50 60

−20246

Time, s

Vz,

cm

/s

Vx MIDG IIestimated Vx

Vy MIDG IIestimated Vy

Vz MIDG IIestimated Vz

(b) Estimated velocity

0 10 20 30 40 50 60−3

−2

−1

0

Position

X, m

0 10 20 30 40 50 60−1.6

−1.4

−1.2

−1

Y, m

0 10 20 30 40 50 60−2

−1

0

Time, s

Z, m

X MIDG IIestimated X

Y MIDG IIestimated Y

Z MIDG IIestimated Z

(c) Estimated position

0 10 20 30 40 50 60

−5

0

5

10

15

20

25Estimated yaw angle

Time, s

Yaw

ang

le, °

ψ MIDG II

estimated ψ

(d) Estimated yaw angle with adapted magnetic gains

Figure 5. Magnetic disturbances (experiment)

VII. IMPLEMENTATION ON AN 8-BIT MICROCONTROLLER

In the preceding section, we validated the Matlab Simulink implementation of our observer. To demonstrateits computational simplicity, we have also implemented it on an 8-bit microcontroller (Atmel ATmega128running at 14.745MHz on development kit STK500/501). The computations are done in C with the standardfloating point emulation. The microcontroller is fed with the MIDG II raw data at a 50Hz rate (inertial andmagnetic sensors at a 50Hz refresh rate and the GPS navigation solutions at a 5 Hz refresh rate) and withthe Intersema MS5534B raw data at a 50 Hz rate with a 12.5 Hz refresh rate. We have used a simple Eulerexplicit approximation for the integration scheme.

The experimental protocol was the following:

1. move the sensors in all directions and save the MIDG II and Intersema raw measurements and estima-tions at 50 Hz

2. use of xPCTarget to feed the ATmega with these data at 50Hz via a serial port and send at the sametime the estimated variables given by the microcontroller via a serial port to a computer

3. save these estimations

16 of 18

American Institute of Aeronautics and Astronautics

Page 17: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

4. compare offline the estimations given by the microcontroller and those given by the observer writtenin the Matlab embedded function

This protocol can be illustrated by the figure 6 where xPCTarget has been replaced by the MIDG II.

Figure 6. Experimental protocol

We obtain the results of the figure 7. The two estimations are very similar. We see on the bottom plotsthe discretization at 50Hz due to the microcontroller.

120 125 130 135 140 145 150 155 160

−20

0

20

40

Estimated Roll angle

Rol

l ang

le, °

φ Atmega

φ Matlab

127.52 127.54 127.56 127.58 127.6 127.62 127.64 127.66 127.68 127.7

4

5

6

7

8

Rol

l ang

le, °

Time, s

φ Atmega

φ Matlab

(a) Estimated Roll angle

120 125 130 135 140 145 150 155 160−0.4

−0.2

0

0.2

0.4

Estimated Vy

Vy,

m/s

Vy AtmegaVy Matlab

127.52 127.54 127.56 127.58 127.6 127.62 127.64 127.66 127.68 127.70.05

0.1

0.15

0.2

0.25

Vy,

m/s

Time, s

Vy AtmegaVy Matlab

(b) Estimated velocity

Figure 7. Comparison ATmega/Matlab (experiment)

VIII. Appendix: quaternions

Thanks to their four coordinates, quaternions provide a global parametrization of the orientation of arigid body (whereas a parametrization with three Euler angles necessarily has singularities). Indeed, to anyquaternion q with unit norm is associated a rotation matrix Rq ∈ SO(3) by

q−1 ∗ ~p ∗ q = Rq · ~p for all ~p ∈ R3.

17 of 18

American Institute of Aeronautics and Astronautics

Page 18: [American Institute of Aeronautics and Astronautics AIAA Guidance, Navigation and Control Conference and Exhibit - Honolulu, Hawaii ()] AIAA Guidance, Navigation and Control Conference

A quaternion p can be thought of as a scalar p0 ∈ R together with a vector ~p ∈ R3,

p =

(p0

~p

).

The (non commutative) quaternion product ∗ then reads

p ∗ q ,

(p0q0 − ~p · ~q

p0~q + q0~p+ ~p× ~q

).

The unit element is e ,

(1~0

), and (p ∗ q)−1 = q−1 ∗ p−1.

Any scalar p0 ∈ R can be seen as the quaternion

(p0

~0

), and any vector ~p ∈ R3 can be seen as the

quaternion

(0~p

). We systematically use these identifications in the paper, which greatly simplifies the

notations.We have the useful formulas

p× q , ~p× ~q =12

(p ∗ q − q ∗ p)

(~p · ~q)~r = −12

(p ∗ q + q ∗ p) ∗ r.

If q depends on time, then q−1 = −q−1 ∗ q ∗ q−1.Finally, consider the differential equation q = q ∗ u+ v ∗ q where u, v are vectors ∈ R3. Let qT be defined

by

(q0

−~q

). Then q ∗ qT = ‖q‖2. Therefore,

˙︷ ︸︸ ︷q ∗ qT = q ∗ (u+ uT ) ∗ qT + ‖q‖2 (v + vT ) = 0

since u, v are vectors. Hence the norm of q is constant.

References

1Collinson, R., Introduction to avionics systems, Kluwer Academic Publishers, 2nd ed., 2003.2Kayton, M. and Fried, W., editors, Avionics navigation systems, Wiley, 2nd ed., 1997.3Grewal, M., Weill, L., and Andrews, A., Global positioning systems, inertial navigation, and integration, Wiley, 2nd ed.,

2007.4Farrell, J. and Barth, M., The global positioning system and inertial navigation, McGraw-Hill, 1998.5Thienel, J. and Sanner, R., “A coupled nonlinear spacecraft attitude controller and observer with an unknown constant

gyro bias and gyro noise,” IEEE Trans. Automat. Control , Vol. 48, No. 11, 2003, pp. 2011–2015.6Mahony, R., Hamel, T., and Pflimlin, J.-M., “Complementary filter design on the special orthogonal group SO(3),” Proc.

of the 44th IEEE Conf. on Decision and Control , 2005, pp. 1477–1484.7Hamel, T. and Mahony, R., “Attitude estimation on SO(3) based on direct inertial measurements,” Proc. of the 2006

IEEE International Conf. on Robotics and Automation, 2006, pp. 2170–2175.8Martin, P. and Salaun, E., “Invariant observers for attitude and heading estimation from low-cost inertial and magnetic

sensors,” Proc. of the 46th IEEE Conf. on Decision and Control , 2007.9Mahony, R., Hamel, T., and Pfimlin, J.-M., “Non-linear complementary filters on the Special Orthogonal Group,” IEEE

Trans. Automat. Control , 2008.10Martin, P. and Salaun, E., “Design and implementation of a low-cost attitude and heading nonlinear estimator,” Proc.

of the 5th International Conf. on Informatics in Control, Automation and Robotics, 2008.11Martin, P. and Salaun, E., “An invariant observer for Earth-velocity-aided attitude heading reference systems,” Proc. of

the 17th IFAC World Congress, 2008.12Bonnabel, S., Martin, P., and Rouchon, P., “Symmetry-preserving observers,” IEEE Trans. Automat. Control , 2009,

Preliminary version arxiv.math.OC/0612193.13Stevens, B. and Lewis, F., Aircraft control and simulation, Wiley, 2nd ed., 2003.14Bonnabel, S., Martin, P., and Rouchon, P., “A non-linear symmetry-preserving observer for velocity-aided inertial navi-

gation,” Proc. of the 2006 American Control Conf., 2006, pp. 2910–2914.

18 of 18

American Institute of Aeronautics and Astronautics