# Attitude Determination Using a MEMS-Based Flight Information Measurement Unit

^{*}

Department of Aerospace Engineering, Tamkang University, Tamsui, New Taipei City 25137, Taiwan

Author to whom correspondence should be addressed.

Received: 6 December 2011 / Revised: 19 December 2011 / Accepted: 19 December 2011 / Published: 22 December 2011

(This article belongs to the Section Physical Sensors)

Obtaining precise attitude information is essential for aircraft navigation and control. This paper presents the results of the attitude determination using an in-house designed low-cost MEMS-based flight information measurement unit. This study proposes a quaternion-based extended Kalman filter to integrate the traditional quaternion and gravitational force decomposition methods for attitude determination algorithm. The proposed extended Kalman filter utilizes the evolution of the four elements in the quaternion method for attitude determination as the dynamic model, with the four elements as the states of the filter. The attitude angles obtained from the gravity computations and from the electronic magnetic sensors are regarded as the measurement of the filter. The immeasurable gravity accelerations are deduced from the outputs of the three axes accelerometers, the relative accelerations, and the accelerations due to body rotation. The constraint of the four elements of the quaternion method is treated as a perfect measurement and is integrated into the filter computation. Approximations of the time-varying noise variances of the measured signals are discussed and presented with details through Taylor series expansions. The algorithm is intuitive, easy to implement, and reliable for long-term high dynamic maneuvers. Moreover, a set of flight test data is utilized to demonstrate the success and practicality of the proposed algorithm and the filter design.

Obtaining an accurate vehicle attitude is essential for airplane navigation and control applications. The effectiveness of navigation and control is determined by the degree of precision of the navigation and control systems, including inertial measurement units. Traditional units—such as gimbaled gyroscopes, laser gyroscopes, and fiber optic gyroscopes and accelerometers—provide high-precision information for navigational calculations [1]; they are, however, expensive and bulky. With the maturation and advancement of semiconductor manufacturing technology, MEMS sensors are increasingly used in flight attitude calculations [2–9].

The attitude of the aero-vehicle can be determined by integrating the angular rates (pitch, roll, and yaw rates) of the vehicle. Nevertheless, accuracy requirements usually cannot be satisfied by using the inexpensive MEMS sensors. Therefore, some forms of Kalman filtering or complementary fusion algorithms are normally employed to provide more accurate and reliable attitude angles in the MEMS attitude determination systems. The pitch and roll angles can be estimated by using the gravity components from the measurement of the accelerometers [2]. Gravity acceleration cannot be determined accurately from the accelerometer measurements, especially in long-term high dynamic maneuvers. To increase the accuracy and reliability of the attitude determination, a considerable number of advanced fusion technologies using MEMS sensors were proposed in the literature. Using a triad of rate gyros fused with an ultra-short baseline, the differential GPS attitude determination system was presented in [2]. In [4], a gyro-free attitude determination was discussed by using accelerometers, magnetic sensors, and GPS as the primary sensors. A fuzzy logic based closed-loop strapdown attitude system for UAV is presented in [5]. In [7], a constrained Kalman filter was developed to eliminate the effects of kinetic accelerations in the y and z axes in the body frame, while using a differential speed signal to correct the kinetic acceleration of the x axis. A gain-scheduled complementary filter augmented by an acceleration-based switching architecture was proposed in [9] to provide robust performance, even when the vehicle is subject to strong acceleration. A miniature MEMS-based attitude and heading reference system, which makes use of an extended Kalman filter with adaptive gain, and with accelerometers and magnetic sensor as the measurements, was presented in [10]. A precision attitude determination employing a multiple model adaptive estimation scheme was reported in [11]. A Linear Fusion Algorithm for Attitude Determination Using Low Cost MEMS-Based Sensors is considered in [12]. In [13], an integrated MEMS INS/GPS and intelligent artificial neural network with Rauch-Tung-Striebel smoother scheme was proposed for position and orientation determination.

This study considers the utilization of a low-cost MEMS-based flight information measurement unit to determine attitude. The main contribution of this paper is that an attitude estimation algorithm is proposed using MEMs sensors. In the proposed algorithm, an extended Kalman filter is used instead of the classical channel-wise complementary filters for attitude estimation. Specifically, the roll and pitch angles computed from the gravity force decomposition, and the heading angle determined from the electronic compass unit, are selected as the measurement of the Kalman filter. This is not commonly used in airplane attitude determination. The immeasurable gravity accelerations are deduced from the outputs of the three axes accelerometers, the relative accelerations, and the accelerations due to body rotation. The proposed attitude determination algorithm employed the evolution of the four elements of the quaternion method as the dynamical model for the Kalman filter. The constraint of the four elements of the quaternion method is thus treated as a perfect measurement and is integrated into the filter design. By adopting a coupled and time-varying approach, the proposed algorithm performs well under different dynamic maneuvers. The proposed attitude estimation algorithm is intuitive and easy to implement, and due to the vehicle dynamics has been considered in the gravity computation, the algorithm can handle the situation of the long-term high dynamic maneuvers. Detailed derivations establish the approximations of the time varying noise variances of the measured signals.

The proposed algorithm is demonstrated through a set of flight test data collected from the in-house designed MEMS-based attitude determination system. The duration of the flight covers a total of 3,620 s. Details of the evolutions of the attitude angles are examined and explored in the paper. The results show the long-term stability and practicality of the proposed attitude estimation algorithm.

The determination of attitude considered in this study is based on a set of signals measured from an in house-designed Flight Information Measurement Unit (FIMU) [14] and a GPS receiver. The main function of the FIMU system is to measure the required signals for navigation computation and estimation; this includes the accelerations, angular rates, magnetic fields, differential pressures, static pressure, and temperature in a real-time and continuous manner. Hence, the receiver (an on-board computer) can use this information to calculate the vehicle’s attitude, heading, airspeed, altitude, angle of attack, and temperature information. The basic system structure is shown in Figure 1.

To avoid or reduce electromagnetic interference during the measurement process (because the magnetic sensor is extremely sensitive to its ambient disturbances), the FIMU is split into two separate units, namely, an inertial and air data measurement unit, and an electronic compass unit. On the one hand, the inertial and air data measurement unit provides the capability for three-axis accelerations, three-axis angular rates, airspeed, altitude, temperature, and angle of attack measurements. The compass system, on the other hand, measures the magnitude of the external magnetic fields. A Microchip PIC micro-controller is used in each measuring unit to perform data acquisition and signal processing, and to transfer the results to the host system for further analysis and processing. An image of the FIMU is shown in Figure 2.

Determination of flight attitude involves the computation of aircraft pitch angle, roll angle, and yaw angle. Pitch angle and roll angle can be computed through the measured aircraft accelerations and body rates from the accelerometers and rate gyros. The heading angle is determined by computing the magnetic heading: a magnetic sensor measures the magnetic field, and corrects for the magnetic declination. With the measured three axes acceleration signals and pitch, roll, and yaw rate information—the pitch and roll angles can be determined either by computing the gravitational acceleration components on the body axes, or by using the Euler quaternion method [15]. Computation of the gravitational acceleration components provides long-term accuracy, although it is accompanied by high noise contents. The quaternion method, however, provides low noise contents and fast response to changes in the input signals, but tends to drift with time due to gyro bias errors. The results of pitch and roll computations (derived from gravitational acceleration components and the quaternion method) are mixed by means of complementary filtering, which is performed by implementing sensor data fusion techniques. This sensor data fusion technique can also be incorporated for heading computation by mixing the heading information from both the compass system and from the Euler quaternion method.

For example, assume that at a certain instant, the pitch angle of the aircraft is θ, roll angle is ϕ, and the gravitational force components along the body axes (X-, Y-, and Z-axis) are g_{x}, g_{y}, and g_{z} respectively, as shown in Figure 3 [1]. The relationship between the gravitational acceleration components and the attitude angle are:

$$\left[\begin{array}{c}{g}_{x}\\ {g}_{y}\\ {g}_{z}\end{array}\right]=\left[\begin{array}{c}-g\text{sin}\theta \\ g\text{sin}\varphi \text{cos}\theta \\ g\text{cos}\varphi \text{cos}\theta \end{array}\right]$$

Knowing g_{x}, g_{y}, and g_{z}, the roll angle ϕ and pitch angle θ can be computed from:

$$\varphi ={\text{tan}}^{-1}\left(\frac{{g}_{y}}{{g}_{y}}\right),\theta ={\text{tan}}^{-1}\left(\frac{-{g}_{x}\text{cos}\varphi}{{g}_{z}}\right)$$

There are alternative ways to obtain ϕ and θ from Equation (1). They are mathematically equivalent. Computation of the gravity vector
$\mathrm{g}=\sqrt{{\mathrm{g}}_{x}^{2}+{\mathrm{g}}_{y}^{2}+{\mathrm{g}}_{z}^{2}}$ is avoided by using Equation (2). But g_{x}, g_{y}, and g_{z} cannot be measured directly during flight. The accelerations measured from the accelerometers are the total accelerations along the X-, Y-, and Z-axis (a_{x},a_{y},a_{z}). The relationship between the measured accelerations (a_{x},a_{y},a_{z}) and the gravitational force components, as shown in Figure 4 [1], are:

$$\begin{array}{l}{a}_{x}=\dot{U}+(\mathit{Wq}-\mathit{Vr})+{g}_{x}\\ {a}_{y}=\dot{V}+(\mathit{Ur}-\mathit{Wp})+{g}_{y}\\ {a}_{z}=\dot{W}+(\mathit{Vp}-\mathit{Uq})+{g}_{z}\end{array}$$

For magnetic heading computation, assume that the components of the Earth’s magnetic field along the X-, Y-, and Z-axis are H_{X}, H_{Y}, and H_{Z}, respectively. Furthermore, the resolved components of H_{X}, H_{Y}, and H_{Z} in the horizontal plane along the heading axis H_{1} and at right angles to the heading axis H_{2} (as shown in Figure 5) are given by [1]:

$${H}_{1}={H}_{X}\text{cos}\theta +{H}_{Y}\text{sin}\varphi \text{sin}\theta +{H}_{Z}\text{cos}\varphi \text{sin}\theta $$

$${H}_{2}={H}_{Y}\text{cos}\varphi -{H}_{Z}\text{sin}\varphi $$

Thus, the magnetic heading of the aircraft ψ_{M} is:

$${\psi}_{M}={\text{tan}}^{-1}\frac{{H}_{2}}{{H}_{1}}$$

If the local magnetic declination is ψ_{md}, the aircraft heading can be determined from ψ = ψ_{M} + ψ_{md}.

A common method used to compute the attitude angle is the Euler quaternion method [15], which uses the four symmetrical Euler parameters to define the aircraft attitude. The relationship between the attitude angles and the four parameters are:

$$\left[\begin{array}{c}\varphi \\ \theta \\ \psi \end{array}\right]=\left[\begin{array}{c}{\text{tan}}^{-1}(\frac{2({e}_{0}{e}_{1}+{e}_{2}{e}_{3})}{{e}_{0}^{2}-{e}_{1}^{2}-{e}_{2}^{2}+{e}_{3}^{2}})\\ {\text{sin}}^{-1}2({e}_{0}{e}_{3}-{e}_{1}{e}_{2})\\ {\text{tan}}^{-1}(\frac{2({e}_{0}{e}_{3}+{e}_{1}{e}_{2})}{{e}_{0}^{2}+{e}_{1}^{2}-{e}_{2}^{2}+{e}_{3}^{2}})\end{array}\right]$$

The four parameters are subjected to the following constraint equation:

$${e}_{0}^{2}+{e}_{1}^{2}+{e}_{2}^{2}+{e}_{3}^{2}=1$$

The dynamics of the four parameters regarding the aircraft body rate (p,q,r) are characterized in the following form:

$$\left[\begin{array}{c}{\dot{e}}_{0}\\ {\dot{e}}_{1}\\ {\dot{e}}_{2}\\ {\dot{e}}_{3}\end{array}\right]=0.5\cdot \left[\begin{array}{cccc}0& -p& -q& -r\\ p& 0& r& -q\\ q& -r& 0& p\\ r& q& -p& 0\end{array}\right]\left[\begin{array}{c}{e}_{0}\\ {e}_{1}\\ {e}_{2}\\ {e}_{3}\end{array}\right]$$

Therefore, the attitude angle in Equation (7) may be calculated by solving Equation (9). Only body information—(p,q,r) directly measured from rate gyros—is required to solve Equation (9). However, when MEMS gyros are used for body rate measurement, long-term drift is usually encountered due to gyro bias errors and integral operation for solving Equation (9).

As discussed in the previous section, the attitude computed from the gravitational force components provides long-term accuracy with high noise contents. The Euler quaternion method, however, provides less noisy results but suffers from a long-term drift problem. Either method alone may be inadequate for attitude computation. Hence, in this study, the extended Kalman filter [16] is implemented to integrate the attitude computation from the gravitational force components and from the Euler quaternion method.

The Kalman filter is a model-based estimation technique. The dynamics that characterize the relationship between the aircraft body rate (pitch, roll, and yaw rates) and the four parameters of the quaternion method described in Equation (9) comprises the dynamic model of the Kalman filter. The relationship between the attitude angle and the four parameters in Equation (7) is chosen as the output equation of the filter. Thus, the dynamic system can be expressed as:

$$\begin{array}{l}\dot{x}=\mathit{Ax}+w\\ y=h(x)+v\end{array}$$

$$A=\left[\begin{array}{cccc}0& -\frac{p}{2}& -\frac{q}{2}& -\frac{r}{2}\\ \frac{p}{2}& 0& \frac{r}{2}& -\frac{q}{2}\\ \frac{q}{2}& -\frac{r}{2}& 0& \frac{p}{2}\\ \frac{r}{2}& \frac{q}{2}& -\frac{p}{2}& 0\end{array}\right];h(x)=\left[\begin{array}{c}{\text{tan}}^{-1}(\frac{2({e}_{0}{e}_{1}+{e}_{2}{e}_{3})}{{e}_{0}^{2}-{e}_{1}^{2}-{e}_{2}^{2}+{e}_{3}^{2}})\\ {\text{sin}}^{-1}2({e}_{0}{e}_{3}-{e}_{1}{e}_{2})\\ {\text{tan}}^{-1}(\frac{2({e}_{0}{e}_{3}+{e}_{1}{e}_{2})}{{e}_{0}^{2}+{e}_{1}^{2}-{e}_{2}^{2}+{e}_{3}^{2}})\\ {e}_{0}^{2}+{e}_{1}^{2}+{e}_{2}^{2}+{e}_{3}^{2}\end{array}\right]$$

The measurements of pitch angle θ and roll angle ϕ are determined from the gravitation force components Equation (1), while the heading angle ψ is determined from the measured magnetic heading Equation (6), and is corrected with local magnetic declination. The gravitation force components (g_{x},g_{y},g_{z}) are determined from Equation (3), that is:

$$\begin{array}{l}{g}_{x}={a}_{x}-\left[\dot{U}+(\mathit{Wq}-\mathit{Vr})\right]\\ {g}_{y}={a}_{y}-\left[\dot{V}+(\mathit{Ur}-\mathit{Wp})\right]\\ {g}_{z}={a}_{z}-\left[\dot{W}+(\mathit{Vp}-\mathit{Uq})\right]\end{array}$$

Except the measurement of accelerations (a_{x},a_{y},a_{z}) and body rates (p,q,r), the velocities (U,V,W) and velocities’ rates (U̇, V̇, Ẇ) along the body axes are also required. This information can be determined from:

$$\begin{array}{l}U={V}_{T}{(1+{\text{tan}}^{2}\alpha +{\text{tan}}^{2}\beta )}^{\frac{-1}{2}}\\ V={V}_{T}{(1+{\text{tan}}^{2}\alpha +{\text{tan}}^{2}\beta )}^{\frac{-1}{2}}\text{tan}\beta \\ W={V}_{T}{(1+{\text{tan}}^{2}\alpha +{\text{tan}}^{2}\beta )}^{\frac{-1}{2}}\text{tan}\alpha \end{array}$$

$$\begin{array}{lll}\left[\begin{array}{c}U\\ V\\ W\end{array}\right]\hfill & =\hfill & \left[\begin{array}{ccc}1& 0& 0\\ 0& \text{cos}\varphi & \text{sin}\varphi \\ 0& -\text{sin}\varphi & \text{cos}\varphi \end{array}\right]\left[\begin{array}{ccc}\text{cos}\theta & 0& -\text{sin}\theta \\ 0& 1& 0\\ \text{sin}\theta & 0& \text{cos}\theta \end{array}\right]\left[\begin{array}{ccc}\text{cos}\psi & \text{sin}\psi & 0\\ -\text{sin}\psi & \text{cos}\psi & 0\\ 0& 0& 1\end{array}\right]\left[\begin{array}{c}{V}_{N}\\ {V}_{E}\\ {V}_{D}\end{array}\right]\hfill \\ \hfill & =\hfill & \left[\begin{array}{ccc}\text{cos}\psi \text{cos}\theta & \text{sin}\psi \text{cos}\theta & -\text{sin}\theta \\ -\text{sin}\psi \text{cos}\varphi +\text{cos}\psi \text{sin}\theta \text{sin}\varphi & \text{cos}\psi \text{cos}\varphi +\text{sin}\psi \text{sin}\theta \text{sin}\varphi & \text{cos}\theta \text{sin}\varphi \\ \text{sin}\psi \text{sin}\varphi +\text{cos}\psi \text{sin}\theta \text{cos}\varphi & -\text{cos}\psi \text{sin}\varphi +\text{sin}\psi \text{sin}\theta \text{cos}\varphi & \text{cos}\theta \text{cos}\varphi \end{array}\right]\left[\begin{array}{c}{V}_{N}\\ {V}_{E}\\ {V}_{D}\end{array}\right]\hfill \end{array}$$

The velocities’ rates (U̇, V̇, Ẇ) are computed from (V̇_{N}, V̇_{E}, V̇_{D}) through the coordinate transformation as in Equation (14) for (U,V,W). The velocities’ rates (V̇_{N}, V̇_{E}, V̇_{D}) are computed from (V_{N}, V_{E}, V_{D}) by the linear approximation V̇_{N} = [V_{N}(n) – V_{N}(n – 1)] / Δt, V̇_{E} = [V_{E}(n) – V_{E}(n – 1)] / Δt, and V̇_{D} = [V_{D}(n) – V_{D}(n – 1)] / Δt. The angle of attack and sideslip sensors are not installed on the airplane when conducting the flight test for this research. Therefore, the results of using Equation (13) to compute the inertial velocity components are not investigated in this paper.

For real time computation, the dynamical system in Equation (10) is expressed in discrete time representation as:

$$\begin{array}{c}x(n+1)=F(n)x(n)+w(n)\\ y(n)=h[x(n)]+v(n)\end{array}$$

$$\begin{array}{c}F(n)=\left[\begin{array}{cccc}\text{cos}\left(\frac{\Vert \vartheta \Vert}{2}\right)& -\frac{\mathrm{\Delta}P(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)& -\frac{\mathrm{\Delta}Q(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)& -\frac{\mathrm{\Delta}R(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)\\ \frac{\mathrm{\Delta}P(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)& \text{cos}\left(\frac{\Vert \vartheta \Vert}{2}\right)& \frac{\mathrm{\Delta}R(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)& -\frac{\mathrm{\Delta}Q(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)\\ \frac{\mathrm{\Delta}Q(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)& -\frac{\mathrm{\Delta}R(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)& \text{cos}\left(\frac{\Vert \vartheta \Vert}{2}\right)& \frac{\mathrm{\Delta}P(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)\\ \frac{\mathrm{\Delta}R(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)& \frac{\mathrm{\Delta}Q(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)& -\frac{\mathrm{\Delta}P(n)}{\Vert \vartheta \Vert}\text{sin}\left(\frac{\Vert \vartheta \Vert}{2}\right)& \text{cos}\left(\frac{\Vert \vartheta \Vert}{2}\right)\end{array}\right]\\ \vartheta =\left[\begin{array}{ccc}\mathrm{\Delta}P& \mathrm{\Delta}Q& \mathrm{\Delta}R\end{array}\right],\Vert \vartheta \Vert =\sqrt{{\left(\mathrm{\Delta}P\right)}^{2}+{\left(\mathrm{\Delta}Q\right)}^{2}+{\left(\mathrm{\Delta}R\right)}^{2}}\end{array}$$

$${H}_{n}={\frac{\partial h}{\partial x}|}_{{\widehat{x}}^{-}}=\left[\begin{array}{cccc}\frac{\partial \varphi}{\partial {e}_{0}}& \frac{\partial \varphi}{\partial {e}_{1}}& \frac{\partial \varphi}{\partial {e}_{2}}& \frac{\partial \varphi}{\partial {e}_{3}}\\ \frac{\partial \theta}{\partial {e}_{0}}& \frac{\partial \theta}{\partial {e}_{1}}& \frac{\partial \theta}{\partial {e}_{2}}& \frac{\partial \theta}{\partial {e}_{3}}\\ \frac{\partial \psi}{\partial {e}_{0}}& \frac{\partial \psi}{\partial {e}_{1}}& \frac{\partial \psi}{\partial {e}_{2}}& \frac{\partial \psi}{\partial {e}_{3}}\\ 2{e}_{0}& 2{e}_{1}& 2{e}_{2}& 2{e}_{3}\end{array}\right]$$

With all the necessary information available, the last step of the iteration loop is to perform the measurement update of the state estimate ${\widehat{x}}_{n}^{+}$ and estimation-error covariance ${P}_{n}^{+}$. Details of the process and measurement noises are presented in the following section.

In the Kalman filter design, we use the covariances of the process noise and measurement noise as design parameters to achieve minimum variance of the estimation error. Hence, we must determine the variances of the process and measurement noises as precisely as possible. For the attitude determination considered in this study, the process noises are mainly derived from the outputs of the gyros (p,q,r). Assuming that that p = p̄ + p̃, q = q̄ + q̃, and r = r̄ + r̃, with p̄, q̄, and r̄ the mean of p, q, and r respectively, and p̃, q̃, and r̃ are the deviations of p, q, and r, Equation (9) can be written as:

$$\begin{array}{lll}\left[\begin{array}{c}{\dot{e}}_{0}\\ {\dot{e}}_{1}\\ {\dot{e}}_{2}\\ {\dot{e}}_{3}\end{array}\right]\hfill & =\hfill & \frac{1}{2}\cdot \left[\begin{array}{cccc}0& -(\overline{p}+\tilde{p})& -(\overline{q}+\tilde{q})& -(\overline{r}+\tilde{r})\\ (\overline{p}+\tilde{p})& 0& (\overline{r}+\tilde{r})& -(\overline{q}+\tilde{q})\\ (\overline{q}+\tilde{q})& -(\overline{r}+\tilde{r})& 0& (\overline{p}+\tilde{p})\\ (\overline{r}+\tilde{r})& (\overline{q}+\tilde{q})& -(\overline{p}+\tilde{p})& 0\end{array}\right]\left[\begin{array}{c}{e}_{0}\\ {e}_{1}\\ {e}_{2}\\ {e}_{3}\end{array}\right]\hfill \\ \hfill & =\hfill & \frac{1}{2}\cdot \left[\begin{array}{cccc}0& -\overline{p}& -\overline{q}& -\overline{r}\\ \overline{p}& 0& \overline{r}& -\overline{q}\\ \overline{q}& -\overline{r}& 0& \overline{p}\\ \overline{r}& \overline{q}& -\overline{p}& 0\end{array}\right]\left[\begin{array}{c}{e}_{0}\\ {e}_{1}\\ {e}_{2}\\ {e}_{3}\end{array}\right]+\frac{1}{2}\left[\begin{array}{ccc}-{e}_{1}& -{e}_{2}& -{e}_{3}\\ {e}_{0}& -{e}_{3}& {e}_{2}\\ {e}_{3}& {e}_{0}& -{e}_{1}\\ -{e}_{2}& {e}_{1}& {e}_{0}\end{array}\right]\left[\begin{array}{c}\tilde{p}(t)\\ \tilde{q}(t)\\ \tilde{r}(t)\end{array}\right]\hfill \end{array}$$

The second term on the right hand side is considered as the process noise w(t) in this study. In the sequel, φ̄ represents the expectation or mean of the signal φ, and φ̃ indicates the deviation from the mean value.

For a discrete time system, the process noise w(n) is:

$$w(n)=\frac{1}{2}\left[\begin{array}{ccc}-{e}_{1}& -{e}_{2}& -{e}_{3}\\ {e}_{0}& -{e}_{3}& {e}_{2}\\ {e}_{3}& {e}_{0}& -{e}_{1}\\ -{e}_{2}& {e}_{1}& {e}_{0}\end{array}\right]\left[\begin{array}{c}\tilde{p}(n)\\ \tilde{q}(n)\\ \tilde{r}(n)\end{array}\right]$$

It is simple to show that the variance of the process noise is ${L}_{n-1}{Q}_{n-1}{L}_{n-1}^{T}$ with:

$${L}_{n-1}=\frac{1}{2}\left[\begin{array}{ccc}-{e}_{1}& -{e}_{2}& -{e}_{3}\\ {e}_{0}& -{e}_{3}& {e}_{2}\\ {e}_{3}& {e}_{0}& -{e}_{1}\\ -{e}_{2}& {e}_{1}& {e}_{0}\end{array}\right],{Q}_{n-1}=\left[\begin{array}{ccc}{\sigma}_{p}^{2}& 0& 0\\ 0& {\sigma}_{q}^{2}& 0\\ 0& 0& {\sigma}_{r}^{2}\end{array}\right]$$

$$\tilde{R}=\left[\begin{array}{ccc}{\sigma}_{\theta \varphi}^{2}& 0& 0\\ 0& {\sigma}_{\psi}^{2}& 0\\ 0& 0& {\sigma}_{C}^{2}\end{array}\right]$$

$$\left[\begin{array}{c}{\tilde{g}}_{x}\\ {\tilde{g}}_{y}\\ {\tilde{g}}_{z}\end{array}\right]={M}_{\mathit{xyz}}\xi $$

$$\begin{array}{lll}{M}_{\mathit{xyz}}\hfill & =\hfill & \left[\begin{array}{cccccccccccc}1& 0& 0& -1& 0& 0& 0& r& -q& 0& -W& V\\ 0& 1& 0& 0& -1& 0& -r& 0& p& W& 0& -U\\ 0& 0& 1& 0& 0& -1& q& -p& 0& -V& U& 0\end{array}\right]\hfill \\ \xi \hfill & =\hfill & {\left[\begin{array}{llllllllllll}{\tilde{a}}_{x}\hfill & {\tilde{a}}_{y}\hfill & {\tilde{a}}_{z}\hfill & \tilde{\dot{U}}\hfill & \tilde{\dot{V}}\hfill & \tilde{\dot{W}}\hfill & \tilde{U}\hfill & \tilde{V}\hfill & \tilde{W}\hfill & \tilde{p}\hfill & \tilde{q}\hfill & \tilde{r}\hfill \end{array}\right]}^{T}\hfill \end{array}$$

The roll angle ϕ and pitch angle θ are computed from:

$$\varphi ={\text{tan}}^{-1}\left(\frac{{g}_{y}}{{g}_{z}}\right),\theta ={\text{tan}}^{-1}\left(\frac{-{g}_{x}\text{cos}\varphi}{{g}_{z}}\right)$$

Expanding the function $\left(\frac{{\mathrm{g}}_{y}}{{\mathrm{g}}_{z}}\right)$ in the Taylor series about the mean values and neglecting the second and higher order terms, the deviation of $\left(\frac{{\mathrm{g}}_{y}}{{\mathrm{g}}_{z}}\right)$ can be approximated by:

$$\tilde{\left(\frac{{\mathrm{g}}_{y}}{{\mathrm{g}}_{z}}\right)}=\left[\begin{array}{lll}0\hfill & \frac{1}{{\mathrm{g}}_{z}}\hfill & -\frac{{\mathrm{g}}_{y}}{{\mathrm{g}}_{z}^{2}}\hfill \end{array}\right]\left[\begin{array}{l}{\tilde{\mathrm{g}}}_{x}\hfill \\ {\tilde{\mathrm{g}}}_{y}\hfill \\ {\tilde{\mathrm{g}}}_{z}\hfill \end{array}\right]$$

To determine ϕ̃, the function $\varphi ={\text{tan}}^{-1}\left(\frac{{\mathrm{g}}_{y}}{{\mathrm{g}}_{z}}\right)$ is also expanded in a Taylor series, and the deviation ϕ̃ is approximated as:

$$\tilde{\varphi}=\frac{1}{1+{\left(\frac{{\mathrm{g}}_{y}}{{\mathrm{g}}_{z}}\right)}^{2}}\tilde{\left(\frac{{\mathrm{g}}_{y}}{{\mathrm{g}}_{z}}\right)}=\left[\begin{array}{lll}0\hfill & \frac{{\mathrm{g}}_{z}}{{\mathrm{g}}_{y}^{2}+{\mathrm{g}}_{z}^{2}}\hfill & -\frac{{\mathrm{g}}_{y}}{{\mathrm{g}}_{y}^{2}+{\mathrm{g}}_{z}^{2}}\hfill \end{array}\right]\left[\begin{array}{l}{\tilde{\mathrm{g}}}_{x}\hfill \\ {\tilde{\mathrm{g}}}_{y}\hfill \\ {\tilde{\mathrm{g}}}_{z}\hfill \end{array}\right]$$

Similarly, the deviation of $\left(\frac{-{\mathrm{g}}_{x}\text{cos}\varphi}{{\mathrm{g}}_{z}}\right)$ can be approximated by:

$$\begin{array}{lll}\left(\frac{-\tilde{{\mathrm{g}}_{x}\text{cos}}\varphi}{{\mathrm{g}}_{z}}\right)\hfill & =\hfill & -\frac{\text{cos}\varphi}{{\mathrm{g}}_{z}}{\tilde{\mathrm{g}}}_{x}+\frac{{\mathrm{g}}_{x}\text{cos}\varphi}{{\mathrm{g}}_{z}^{2}}{\tilde{\mathrm{g}}}_{z}+\frac{{\mathrm{g}}_{x}\text{sin}\varphi}{{\mathrm{g}}_{z}}\tilde{\varphi}\hfill \\ \hfill & =\hfill & -\frac{\text{cos}\varphi}{{\mathrm{g}}_{z}}{\tilde{\mathrm{g}}}_{x}+\frac{{\mathrm{g}}_{x}\text{cos}\varphi}{{\mathrm{g}}_{z}^{2}}{\tilde{\mathrm{g}}}_{z}+\frac{{\mathrm{g}}_{x}\text{sin}\varphi}{{\mathrm{g}}_{z}}\left[\begin{array}{lll}0\hfill & \frac{{\mathrm{g}}_{z}}{{\mathrm{g}}_{y}^{2}+{\mathrm{g}}_{z}^{2}}\hfill & -\frac{{\mathrm{g}}_{y}}{{\mathrm{g}}_{y}^{2}+{\mathrm{g}}_{z}^{2}}\hfill \end{array}\right]\left[\begin{array}{l}{\tilde{\mathrm{g}}}_{x}\hfill \\ {\tilde{\mathrm{g}}}_{y}\hfill \\ {\tilde{\mathrm{g}}}_{z}\hfill \end{array}\right]\hfill \\ \hfill & =\hfill & \left[\begin{array}{ccc}-\frac{\text{cos}\varphi}{{\mathrm{g}}_{z}}& \frac{{\mathrm{g}}_{x}\text{sin}\varphi}{{\mathrm{g}}_{y}^{2}+{\mathrm{g}}_{z}^{2}}& \frac{{\mathrm{g}}_{x}\text{cos}\varphi}{{\mathrm{g}}_{z}^{2}}-\frac{{\mathrm{g}}_{x}{\mathrm{g}}_{y}\text{sin}\varphi}{{\mathrm{g}}_{z}({\mathrm{g}}_{y}^{2}+{\mathrm{g}}_{z}^{2})}\end{array}\right]\left[\begin{array}{l}{\tilde{\mathrm{g}}}_{x}\hfill \\ {\tilde{\mathrm{g}}}_{y}\hfill \\ {\tilde{\mathrm{g}}}_{z}\hfill \end{array}\right]\hfill \end{array}$$

Thus, the deviation of $\theta ={\text{tan}}^{-1}\left(\frac{-{\mathrm{g}}_{x}\text{cos}\varphi}{{\mathrm{g}}_{z}}\right)$, after a Taylor series expansion and neglecting the higher order terms, can be obtained as:

$$\begin{array}{lll}\tilde{\theta}\hfill & =\hfill & \frac{1}{1+{\left(\frac{-{g}_{x}\text{cos}\varphi}{{g}_{x}}\right)}^{2}}\left[\begin{array}{ccc}-\frac{\text{cos}\varphi}{{g}_{z}}& \frac{{g}_{x}\text{sin}\varphi}{{g}_{y}^{2}+{g}_{z}^{2}}& \frac{{g}_{x}\text{cos}\varphi}{{g}_{z}^{2}}-\frac{{g}_{x}{g}_{y}\text{sin}\varphi}{{g}_{z}({g}_{y}^{2}+{g}_{z}^{2})}\end{array}\right]\left[\begin{array}{l}{\tilde{g}}_{x}\hfill \\ {\tilde{g}}_{y}\hfill \\ {\tilde{g}}_{z}\hfill \end{array}\right]\hfill \\ \hfill & =\hfill & \left[\begin{array}{ccc}\frac{-{g}_{z}\text{cos}\varphi}{{g}_{x}^{2}{\text{cos}}^{2}\varphi +{g}_{z}^{2}}& \frac{{g}_{x}{g}_{z}^{2}\text{sin}\varphi}{({g}_{y}^{2}+{g}_{z}^{2})({g}_{x}^{2}{\text{cos}}^{2}\varphi +{g}_{z}^{2})}& \frac{({g}_{y}^{2}+{g}_{z}^{2}){g}_{x}\text{cos}\varphi -{g}_{x}{g}_{y}{g}_{z}\text{sin}\varphi}{({g}_{y}^{2}+{g}_{z}^{2})({g}_{x}^{2}{\text{cos}}^{2}\varphi +{g}_{z}^{2})}\end{array}\right]\left[\begin{array}{c}{\tilde{g}}_{x}\\ {\tilde{g}}_{y}\\ {\tilde{g}}_{z}\end{array}\right]\hfill \end{array}$$

Defining:

$${M}_{\varphi \theta}=\left[\begin{array}{ccc}0& \frac{{g}_{z}}{{g}_{y}^{2}+{g}_{z}^{2}}& -\frac{{g}_{y}}{{g}_{y}^{2}+{g}_{z}^{2}}\\ \frac{-{g}_{z}\text{cos}\varphi}{{g}_{x}^{2}{\text{cos}}^{2}\varphi +{g}_{z}^{2}}& \frac{{g}_{x}{g}_{z}^{2}\text{sin}\varphi}{({g}_{y}^{2}+{g}_{z}^{2})({g}_{x}^{2}{\text{cos}}^{2}\varphi +{g}_{z}^{2})}& \frac{({g}_{y}^{2}+{g}_{z}^{2}){g}_{x}\text{cos}\varphi -{g}_{x}{g}_{y}{g}_{z}\text{sin}\varphi}{({g}_{y}^{2}+{g}_{z}^{2})({g}_{x}^{2}{\text{cos}}^{2}\varphi +{g}_{z}^{2})}\end{array}\right]$$

Then:

$$\left[\begin{array}{c}\tilde{\varphi}\\ \tilde{\theta}\end{array}\right]={M}_{\varphi \theta}\left[\begin{array}{c}{\tilde{g}}_{x}\\ {\tilde{g}}_{y}\\ {\tilde{g}}_{z}\end{array}\right]={M}_{\varphi \theta}{M}_{\mathit{xyz}}\xi $$

Thus, the variance of pitch and roll angles, ${\sigma}_{\theta \varphi}^{2}$, is:

$$\begin{array}{lll}{\sigma}_{\theta \varphi}^{2}\hfill & =\hfill & E\left[\left({M}_{\varphi \theta}{M}_{\mathit{xyz}}\xi \right){\left({M}_{\varphi \theta}{M}_{\mathit{xyz}}\xi \right)}^{T}\right]={M}_{\varphi \theta}{M}_{\mathit{xyz}}E\left[{\xi \xi}^{T}\right]{M}_{\mathit{xyz}}^{T}{M}_{\varphi \theta}^{T}\hfill \\ \hfill & =\hfill & {M}_{\varphi \theta}{M}_{\mathit{xyz}}{R}_{\varphi \theta}{M}_{\mathit{xyz}}^{T}{M}_{\varphi \theta}^{T}\hfill \end{array}$$

$${R}_{\varphi \theta}=\mathit{diag}\left[\begin{array}{llllllllllll}{\sigma}_{{a}_{X}}^{2}\hfill & {\sigma}_{{a}_{Y}}^{2}\hfill & {\sigma}_{{a}_{Z}}^{2}\hfill & {\sigma}_{\dot{U}}^{2}\hfill & {\sigma}_{\dot{V}}^{2}\hfill & {\sigma}_{\dot{W}}^{2}\hfill & {\sigma}_{U}^{2}\hfill & {\sigma}_{V}^{2}\hfill & {\sigma}_{W}^{2}\hfill & {\sigma}_{p}^{2}\hfill & {\sigma}_{q}^{2}\hfill & {\sigma}_{r}^{2}\hfill \end{array}\right]$$

The variance of the heading angle
${\sigma}_{\psi}^{2}$ can be obtained in a similar manner. To determine the heading angle, H_{1} and H_{2} are computed based on the filtered roll and pitch angles. Thus, the deviations of H̃_{1} and H̃_{2} can be expressed as:

$$\begin{array}{lll}\left[\begin{array}{c}{\tilde{H}}_{1}\\ {\tilde{H}}_{2}\end{array}\right]\hfill & =\hfill & {M}_{H12}\left[\begin{array}{c}{\tilde{H}}_{X}\\ {\tilde{H}}_{Y}\\ {\tilde{H}}_{Z}\end{array}\right]\hfill \\ {M}_{H12}\hfill & =\hfill & \left[\begin{array}{ccc}\text{cos}\theta & \text{sin}\theta \text{sin}\varphi & \text{cos}\varphi \text{sin}\theta \\ 0& \text{cos}\varphi & -\text{sin}\varphi \end{array}\right]\hfill \end{array}$$

Hence the deviation of $\left(\frac{{H}_{1}}{{H}_{2}}\right)$ can be approximated by:

$$\tilde{\left(\frac{{H}_{2}}{{H}_{1}}\right)}=\frac{1}{{H}_{1}}{\tilde{H}}_{2}-\frac{{H}_{2}}{{H}_{1}^{2}}{\tilde{H}}_{1}=\left[\begin{array}{cc}-\frac{{H}_{2}}{{H}_{1}^{2}}& \frac{1}{{H}_{1}}\end{array}\right]\left[\begin{array}{c}{\tilde{H}}_{1}\\ {\tilde{H}}_{2}\end{array}\right]$$

Therefore, the deviation of the magnetic heading ${\psi}_{M}={\text{tan}}^{-1}\left(\frac{{H}_{2}}{{H}_{1}}\right)$ after a Taylor series expansion can be approximated by:

$$\begin{array}{lll}{\tilde{\psi}}_{M}\hfill & =\hfill & \frac{1}{1+{\left(\frac{{H}_{2}}{{H}_{1}}\right)}^{2}}\tilde{\left(\frac{{H}_{2}}{{H}_{1}}\right)}=\frac{{H}_{1}^{2}}{{H}_{1}^{2}+{H}_{2}^{2}}\left[\begin{array}{cc}-\frac{{H}_{2}}{{H}_{1}^{2}}& \frac{1}{{H}_{1}}\end{array}\right]\left[\begin{array}{c}{\tilde{H}}_{1}\\ {\tilde{H}}_{2}\end{array}\right]={M}_{\psi}\left[\begin{array}{c}{\tilde{H}}_{1}\\ {\tilde{H}}_{2}\end{array}\right]\hfill \\ {M}_{\psi}\hfill & =\hfill & \left[\begin{array}{cc}-\frac{{H}_{2}}{{H}_{1}^{2}+{H}_{2}^{2}}& \frac{{H}_{1}}{{H}_{1}^{2}+{H}_{2}^{2}}\end{array}\right]\hfill \end{array}$$

Thus, the variance of the heading angle ${\sigma}_{\psi}^{2}$ is:

$$\begin{array}{lll}{\sigma}_{\psi M}^{2}\hfill & =\hfill & E\left\{\left({M}_{\psi}{M}_{H12}\left[\begin{array}{l}{\tilde{H}}_{X}\hfill \\ {\tilde{H}}_{Y}\hfill \\ {\tilde{H}}_{Z}\hfill \end{array}\right]\right){\left({M}_{\psi}{M}_{H12}\left[\begin{array}{l}{\tilde{H}}_{X}\hfill \\ {\tilde{H}}_{Y}\hfill \\ {\tilde{H}}_{Z}\hfill \end{array}\right]\right)}^{T}\right\}\hfill \\ \hfill & =\hfill & {M}_{\psi}{M}_{H12}{R}_{\psi}{M}_{H12}^{T}{M}_{\psi}^{T}\hfill \end{array}$$

To evaluate the design of the flight information measurement unit and the extended Kalman filtering for attitude determination, the system is tested on an ultralight aircraft. The test data—including the three axes body rates (p,q,r), accelerations (a_{x},a_{y},a_{z}), magnetic field (H_{X},H_{Y},H_{Z}), and information from GPS receiver—are recorded during flight test. The flight was performed in Central Taiwan at approximately 120.44 degrees East Longitude and 23.77 degrees North Latitude area. The flight trajectory is shown in Figure 8. The evolutions of the attitude, including pitch, roll, and heading angles are shown in Figure 9. The attitude angles (directly generated from the measured data and computed after the Kalman filtering) are both shown in Figure 9. The duration of the flight covers a total of 3,620 s. The results are further examined and discussed below. In particular, during certain time intervals, the aircraft performed specific flight trajectories: during the time interval 1,106–1,130 s, the aircraft was making a left turn; from 1,420–1,430 s, the aircraft ascended; the aircraft descended during the time interval 2,340–2,380 s; during the time interval 2,600–2,675 s, the aircraft was making a right turn; from 2,745–2,755 s, the aircraft was in level flight with wing wiggling; and from 2,810–2,900 s, the aircraft was in S-turn maneuver. Much of the noisy signals of the attitude angles in the followings figures are the results deduced from the measurement, whereas the less noisy signals are the results of the filtered signals.

The results for nearly level flight with wing wiggling (intentionally performed) are shown in Figure 10. In this phase, the altitude was sustained at approximately 392 to 393 meters height, as shown in Figure 10(a). The roll angle, as shown in Figure 10(c), responded as commanded. Figure 10(d) shows the tendency of turning to the left. The average of the roll angles in Figure 10(c) is negative, which confirms that the airplane is turning left slowly. The results also show that the time delay of the attitude estimation is approximately 0.5 s due to filter computation. Figure 11 indicates the results for the climbing up condition. During the time period of 1,420 to 1,430 s, the airplane climbed from 1,009 m to 1,019 m height. The results during the descent flight (time duration 2,340 to 2,380 s) are shown in Figure 12. In this descent flight phase, the altitude decreases from 290 to 190 m height. Evolutions of the pitch angle in Figure 12(b) are all positive, with an average of roughly 10 degrees (which is normal for aircraft descent flight). Figure 13 shows the results when the airplane made a left turn. The data from the GPS receiver, as shown in Figure 13(a), indicate that the airplane is turning left. When making a left turn, the airplane banks to the left before starting to turn. The results in Figure 13(c), negative roll angles, show that the airplane rolls to the left, which confirms that the airplane is turning to the left. The heading angle changes from approximately 200 degrees to 60 degrees in Figure 13(d), which verifies that the airplane is making a left turn. Figure 14 presents the results when the airplane made a right turn. In the right turning phase, the airplane has a positive roll angle, which is evident in Figure 14(c). During the time period from 2,810 to 2,900 s, the airplane made an S-turn. Evolutions of the attitude angles during this maneuver are shown in Figure 15. Figure 15(a) shows the trajectory of the S-turn maneuver from the GPS data. During this particular maneuver, the airplane makes a left turn before following with a right turn. Figure 15(c) shows that the roll angle turns to a negative value first, then returns to zero degrees for the left maneuver. Thereafter, it turns positive before returning to zero degrees for a right turning operation. The heading angle shown in Figure 15(d) starts from approximately 340 degrees and gradually decreases to roughly 25 degrees, then increases back to 335 degrees, which correctly corresponds to the S-turn operation.

From the above examinations, we demonstrated that the proposed attitude determination algorithm estimates the attitude angles successfully. The algorithm is also reliable for long-term and high-dynamic maneuvers.

To further investigate the performance of the proposed attitude estimation method, the innovation around ±3 standard deviations (extracted from the innovation covariance) and the quaternion norm constraint in Equation (8) are examined. Figure 16(a–c) represent the results of the innovation when the airplane made a left turn. Figure 16(d–f) are the results for nearly level flight with wing wiggling. At some points, the innovation exceeds the boundaries of the ±3 standard deviations. This is due to the fact that the extended Kalman filter is an approximate solution. It relies on the linearization to propagate the mean and covariance of the state. The norms of the quaternion computed from the extended Kalman filter for all over the duration of flight are displayed in Figure 17. The results show that the constraint optimization is well performed.

Because there is no primary standard, the proposed attitude estimation algorithm is also tested using a motion platform under a controlled environment. An image of the test arrangement is shown in Figure 18. A cantilever beam is mounted atop the motion platform. A specially designed movable mounting plate is constructed at the end of the beam. The IMU is placed on plate. The mounting plate is arranged in such a way that the IMU is mounted with 0 degree pitch angle and −20 degrees roll angles. An on-board computer is mounted on top of the center of the motion platform to record the outputs from the IMU during the test.

The motion platform is controlled to perform uniform circular motion with an angular velocity of 0.873 rad/s. Under this test condition, the velocities (U,V,W) and accelerations (U̇, V̇, Ẇ) along the body axes of the IMU are U = 0.4466 m/s, V = W = 0 m/s, and U̇ = V̇ = Ẇ 0 m/s^{2}. Using these velocity and acceleration information together with the accelerations measured from the accelerometers and the body rates from the gyro outputs, the pitch angle and roll angle are computed by using each of the gravity force components, the Euler quaternion method (which can be considered as a direct 6-DOF mechanization for attitude determination [18]), and the proposed extended Kalman filtering. The results are shown in Figure 19. The results in Figure 19 indicate that the gravity force decomposition will provide accurate results of 0 degree pitch angle and −20 degrees roll angle but suffer from noisy contents. The roll angle is correctly deduced from the quaternion computation with less noisy contents. However, the pitch angle tends to diverge. The results using the proposed extended Kalman filtering provide both accurate and less noisy results for the pitch and roll angles.

This study presented attitude determination using a low cost MEMS-based flight information measurement unit. The proposed attitude estimation algorithm is intuitive, easy to implement, and reliable for long-term high dynamic maneuvers. The algorithm utilized the evolution of the four elements of the quaternion method as the dynamical model for the Kalman filter. The roll and pitch angles (computed from the gravity force decomposition) and the heading angle (determined from the electronic compass unit) are selected as the measurements of the Kalman filter. The immeasurable gravity accelerations are deduced from the outputs of the three axes accelerometers, the relative accelerations, and the accelerations due to body rotation. The constraint of the four elements of the quaternion method is treated as perfect measurement and is integrated into the filter design. Approximations of the time varying noise variances of the measured signals are established with detailed derivations. The proposed algorithm is successfully demonstrated through a set of flight test data collected from the in house-designed MEMS based attitude determination system. To improve the performance of the attitude estimation, estimation of the gyro drift and velocity derivatives can be included into the Kalman filter formulation with the expense of computation demands.

This research is supported by the National Science Council, Taiwan, Republic of China, under Grant No. NSC99-2212-E-032-012.

- Collinson, R.P.G. Introduction to Avionics; Chapman & Hall: London, UK, 1996. [Google Scholar]
- Demoz, G.E. A Low-Cost GPS/Inertial Attitude Heading Reference System (AHRS) for General Aviation Applications. Proceedings of IEEE Position Location and Navigation Symposium, Palm Spring, CA, USA, 20–23 April 1998.
- Caruso, M.J. Application of Magnetic Sensors for Low Cost Compass Systems. Proceedings of IEEE Position Location and Navigation Symposium, San Diego, CA, USA, 13–16 March 2000.
- Demoz, G.E.; Abriel, G.; Elkaim, H.; Powell, J.D.; Parkison, B.W. A Gyro-Free Quaternion-Based Attitude Determination System Suitable for Implementation Using Low Cost Sensors. Proceedings of IEEE Position Location and Navigation Symposium, San Diego, CA, USA, 13–16 March 2000.
- Hong, S.K. Fuzzy Logic Based Closed-Loop Strapdown Attitude System for Unmanned Aerial Vehicle (UAV). Sens. Actuat. A Phys
**2003**, 107, 109–118. [Google Scholar] - Demoz, G.E. Design of Multi-Sensor Attitude Determination Systems. IEEE Trans. Aerospace Electron. Syst
**2004**, 40, 627–649. [Google Scholar] - Wang, L.; Xiong, S.; Zhou, Z.; Wei, Q.; Lan, J. Constrained Filtering Method for MAV Attitude Determination. Proceedings of IEEE Instrumentation and Measurement Technology Conference, Ottawa, ON, Canada, 17–19 May 2005.
- Euston, M.; Coote, P.; Mahony, R.; Kim, J.; Hamel, T. A Complementary Filter for Attitude Estimation of a Fixed-Wing UAV. Proceedings of IROS IEEE/RSJ International Conference on Intelligent Robots and Systems, Nice, France, 22–29 September 2008.
- Yoo, T.S.; Hong, S.K.; Yoon, H.M.; Pa, S. Gain-Scheduled Complementary Filter Design for a MEMS Based Attitude and Heading Reference System. Sensors
**2011**, 11, 3816–3830. [Google Scholar] - Wang, M.; Yang, Y.; Ronald, R.H.; Zhang, Y. Adaptive Filter for a Miniature MEMS Based Attitude and Heading Reference System. Proceedings of IEEE Position Location and Navigation Symposium, Monterey, CA, USA, 26–29 April 2004.
- Lam, Q.M.; Crassidis, J.L. Precision Attitude Determination Using a Multiple Model Adaptive Estimation Scheme. Proceedings of IEEE Aerospace Conference, Big Sky, MT, USA, 3–10 March 2007.
- Zhu, R.; Sun, D.; Zhou, Z.; Wang, D. A Linear Fusion Algorithm for Attitude Determination Using Low Cost MEMS-Based Sensors. Measurement
**2007**, 40, 322–328. [Google Scholar] - Chiang, K.-W.; Chang, H.-W.; Li, C.-Y.; Huang, Y.-W. An Artificial Neural Network Embedded Position and Orientation Determination Algorithm for Low Cost MEMS INS/GPS Integrated Sensors. Sensors
**2009**, 9, 2586–2610. [Google Scholar] - Shiau, J.-K.; Ma, D.-M.; Wu, T.-H.; Huang, L.-H. Design of a MEMS-Based Flight Information Measurement Unit for UAV Application. J. Emerg. Trend. Eng. Appl. Sci
**2011**, 2, 190–197. [Google Scholar] - Baruh, H. Analytical Dynamics; McGraw-Hill: Singapore, 1999. [Google Scholar]
- Simon, D. Optimal State Estimation; Wiley: Hoboken, NJ, USA, 2006. [Google Scholar]
- Farrell, J.; Barth, M. The Global Positioning System & Inertial Navigation System; McGraw Hill: Singapore, 1999. [Google Scholar]
- Phillips, W.F. Mechanics of Flight, 2nd ed; Wiley: Hoboken, NJ, USA, 2010. [Google Scholar]

© 2012 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/3.0/).