# An Improvement Strategy on Direction Cosine Matrix based Attitude Estimation for Multi-Rotor Autopilot Nazia Ahsan Dilshad ? & Mohammed Kawser Jahan ? Abstract-In present days, autonomous multi-rotor copters are increasingly becoming popular due to its advantages in terms of multi-purpose functionalities, robustness, high dynamic response and more significantly inexpensive costs of development and usage. However, real-time attitude estimation is a key component which needs to have further development for better control and precise navigation to drive these unmanned aerial vehicles reliably. This paper presented an approach to improve the method of attitude estimation by Direction Cosine Matrix for multi-rotor copters that is based on low cost MEMS inertial sensors, a magnetometer and a commercial GPS receiver. In connection with the Direction Cosine Matrix attitude estimation scheme, a novel algorithm design for dealing with limitations on attitude sensing accuracy and reducing latency in real-time is proposed. The design is insensitive to noise or loss of GPS signals. The viability of the proposed design is demonstrated by an experimental scenario with real-time attitude information under different observations. From the experiment, some issues have been noticed and their reasons have been discussed. # i. INTRODUCTION Author ? ?: Department of Electrical and Electronic Engineering American International University -Bangladesh, Dhaka, Bangladesh. e-mails: ndilshad@hotmail.com, kawser.j.raihan@ieee.org The DCM is the matrix of rotation between a Cartesian coordinate frame, which is rigidly fixed in the aircraft body, and a reference Cartesian coordinate frame. This matrix is also known as rotation matrix (denoted by R) [1]. The DCM is a 3×3 matrix, whose nine elements are not independent. Like any rotation matrix, DCM is a proper orthogonal matrix, which implies six constraints connecting the nine elements. In spite of the redundancy created by the constraints, the DCM is a convenient rotation representation because the equations that describe the vector measurement model and the aircraft kinematical model are linear in DCM [1]. The DCM IMU estimation is a popular attitude estimation method that has been developed for model airplanes by William Premerlani and Paul Bizard [2]. According to this method a rate gyro is required to derive attitudes by integrating the rigid body kinematic equations, accelerometer is required to provide gravity direction and GPS is essential to get the YAW reference. This paper is organized as follows. Section III addresses the problem definition. Section IV describes the improvement strategy on DCM based attitude estimation for multi-rotor autopilot which includes hese days unmanned flying robots or unmanned aerial vehicles (UAVs) are gaining popularity because of their wide range of applications. One type of UAV with a strong potential for both indoor and outdoor applications, is the multi-rotor copter. This special type of rotorcraft has the capability of vertical takeoff and landing (VTOL), as well as the ability to achieve rapid and stable motion in every direction. For these characteristics, multi-rotorcraft is suitable for hands-off autonomous operation within cluttered environments such as small buildings or caves and has many applications including surveillance, search and rescue, exploration in hazardous T in autopilot module for controlling multi-rotorcraft is the most critical challenge that engineers face while developing such aircraft. The attitude estimator is widely known as inertial measurement unit (IMU). Lowcost IMU systems are mainly based on micro-electromechanical systems (MEMS) technology. A typical IMU is equipped with 3-axis accelerometers, 3-axis rate gyroscopes and 3-axis magnetometers. Due to the limitations in sensing technologies and embedded processing, an IMU system cannot perform with zero error. Developing the control law with a better attitude estimating method can effectively improve the system performance and flight stability. Several attitude estimation methods have been developed in this research field, and direction cosine matrix (DCM) based attitude estimation is one of them. An improvement strategy on this estimation method is depicted in this paper. by human command, and therefore autopilot system with suitable control algorithm is required to make them stable. However, building a real-time attitude estimator coordinate system modification, step by step formation of rotation matrix for the modified coordinate systems, experimental analysis on using magnetometer-heading instead of GPS-heading, discussion on magnetometer error compensation and fusing reference vectors from GPS, and development of a new attitude estimation algorithm. The experimental results and analysis on the developed system are presen ted and discussed in Section V to validate and evaluate the system's usability . ii. NOMENCLATURE Some of the notations which have been used in this paper to understand the mechanical and mathematical relationships are presented in this section: In real world, the original technique of DCM based attitude estimation suffers some unavoidable problems. As any of these problems can cause occasional malfunctions, it cannot be used as a standalone process without support from a strong attitude data from gyroscope which includes angles of roll, pitch and yaw. As gyroscope drifts over long time periods, it is necessary to take reference attitude data repeatedly to minimize its errors before calculating the final flight angles. So the accelerometer is used to get the reference vector of roll and pitch and the GPS is used to get the reference vector of yaw. GPS signal availability is essential for running the whole process because the IMU will lose its track over time without GPS. Since the transient response of GPS is not fast enough, the original technique of DCM based attitude estimation is not suitable for VTOL aircrafts. VTOL aircrafts are dynamically very sensitive along their yaw axis and this makes controlling the movement along yaw axis very hard. It is not possible to overcome this issue with any slow process like GPS. Magnetometer is a device for locating the direction of earth's magnetic poles with faster transient response than GPS system. So it can be used as the reference sensing element for yaw movement in VTOL aircraft. But in most cases, output data from magnetometer has offset values so using this device cannot help the estimation process with accurate data like GPS. Magnetometer outputs true values of earth's magnetic field only when it stays parallel to the ground and that means magnetometer will give wrong orientation data when the aircraft stays tilted to the ground. Also, magnetometer data gets distorted because of the nearby power lines as erroneous data will be produced if magnetometer cannot distinguish earth's true magnetic field due to interference of external magnetic and electric fields. In today's market, the coordinate system followed by the orientation sensing devices does not match with the conventional coordinate system used in the original DCM IMU estimation method and this will cause inconvenience for any autopilot system developer. Another drawback of this method is that it takes a lot of time to process the output. DCM based attitude estimation method is more stable and provides accurate result than any other method. But still it is not suitable for multi-rotor crafts due to the issues mentioned above. So improving its methodology is necessary to use it for multi-rotor crafts. # iv. IMPROVEMENT STRATEGY The objective of improving the DCM based attitude estimation process by developing its algorithm to the next level of advancement is to make it suitable to use in real-time control processor of any autopilot module of multi-rotorcraft. The step-by-step development approaches are described below. # a) Coordinate System Modification The conventional coordinate system that was used to develop the rotation matrix of DCM IMU algorithm consists of two Cartesian coordinate frames, Fig. 1 : The conventional coordinate system [2] In conventional coordinate system the ?? ?? and ?? ?? axes, ?? ?? and ?? ?? axes, and ?? ?? and ?? ?? axes are directed towards forward, right, and downward direction respectively. If both the frames are rotated 180 degree along forward axis then the coordinate system will match with the coordinate system followed by the commercially available IMU hardware. So the inertial axes about the centre of gravity (CG) of aircraft body are: ? ?? ?? axis -positive forward ? ?? ?? axis -positive to left, perpendicular to ?? ?? axis ? ?? ?? axis -positive upwards, perpendicular to ?? ?? -?? ?? plane According to the Euler theorem, the orientation of the aircraft body fixed frame (?? ?? ) with respect to the earth fixed frame (?? ?? ) can be described by three consecutive rotations of ?? ?? along each of its axis, whose order is arbitrary, but the same axis may not be used twice in succession. The rotation sequences are usually denoted by three numbers, 1 for x-axis of ?? ?? , 2 for y-axis of ?? ?? , and 3 for z-axis of ?? ?? . Among the twelve valid rotation sequences, we have proposed to choose the rotation sequence 132 or x?z?y for obtaining the attitude of aircraft in modified coordinate system. So the three consecutive rotations have been accomplished in the following order, assuming that the aircraft is initially positioned in such a way that the body frame is parallel to the earth frame: ? Rotating the body about ?? ?? axis through roll angle (?) ? Rotating the body about ?? ?? axis through yaw angle (-?) ? Rotating the body about ?? ?? axis through pitch angle (-?) In the previous section, the rotation sequence that has been proposed is the 132 or x?z?y. So considering a rotation from F reference frame to F''' reference frame, the first rotation that is illustrated in Fig. 3, is about x-axis through an angle ?? ?? which is positive according to the right hand rule about the x-axis. With two rotations to go, the resulting alignment in general is oriented with neither of F or F''', but some intermediate reference frame (the first of two) denoted F'. Since the rotation was about x, x' is parallel to it but neither of the other two primed axes are. ? ?? ?? ? ?? ?? ? ?? ?? ? ? = ? cos ???? ? cos ???? ? cos ???? ? cos ???? ? cos ???? ? cos ???? ? cos ???? ? cos ???? ? cos ???? ? ? ? ?? ?? ?? ?? ?? ?? ? = ? cos 0 ?? cos 90 ?? cos 90 ?? cos 90 ?? cos ?? ?? cos(90 ?? + ?? ?? ) cos 90 ?? cos(90 ?? ? ?? ?? ) cos ?? ?? ? ? ?? ?? ?? ?? ?? ?? ? ? ? ?? ?? ? ?? ?? ? ?? ?? ? ? = ? 1 0 0 0 cos ?? ?? ? sin ?? ?? 0 sin ?? ?? cos ?? ?? ? ? ?? ?? ?? ?? ?? ?? ? = ?? ?? (?? ?? ) (1) The next rotation that is shown in Fig. 4, is through an angle ??? ?? about the z'-axis of the first intermediate reference frame to the second intermediate reference frame, F''. Angle ?? ?? is negative according to the right hand rule about the z-axis. Note that z'' = z', and neither x'' or z'' are necessarily axes of either F or F'''. -? z -? z y' y'' x' x'' Fig. 4 : Clockwise rotation from the reference frame F' to F'' For this rotation, we can write: ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? = ? cos ?? ? ?? ?? cos ?? ? ?? ?? cos ?? ? ?? ?? cos ?? ? ?? ?? cos ?? ? ?? ?? cos ?? ? ?? ?? cos ?? ? ?? ?? cos ?? ? ?? ?? cos ?? ? ?? ?? ? ? ?? ?? ? ?? ?? ? ?? ?? ? ? = ? cos(??? ?? ) cos(90 ?? ? ?? ?? ) cos 90 ?? cos(90 ?? + ?? ?? ) cos(??? ?? ) cos 90 ?? cos 90 ?? cos 90 ?? cos 0 ?? ? ? ?? ?? ? ?? ?? ? ?? ?? ? ? ? ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? = ? cos ?? ?? sin ?? ?? 0 ?sin ?? ?? cos ?? ?? 0 0 0 1 ? ? ?? ?? ? ?? ?? ? ?? ?? ? ? = ?? ?? ??? ?? ?(2) The final rotation that is illustrated in Fig. 5 is about y'' through angle -?? ?? and the final alignment is parallel to the axes of F''. Angle ?? ?? is negative according to the right hand rule about the y-axis. ? = ?? ?? (?? ?? ) (3) It is known that the DCM is the product of three sequential rotations, so we can derive our desired DCM using the above results of all three sequential rotations. Later, the relation between the direction cosine matrix and rotation angles was found by replacing angle ?? ?? , ?? ?? , and ?? ?? by ? (roll angle), ? (pitch angle) and ? (yaw angle) respectively. Finally the resultant matrix of direction cosines was used to rotate vectors, such as directions, velocities, accelerations, and translations by multiplying with each other. However, the R matrix is also called the DCM, because each entry is the cosine of the angle between an axis of the plane and an axis on the ground: A three-axis magnetometer has been used instead of using the GPS as the primary source to get the reference vector of yaw. In the process, the gyro sensor has been used to get the total orientation change along all three axes which include change in the yaw axis and the magnetometer checks the course over ground in every 125ms and detects the drifts of yaw information of gyro sensor for canceling out the drift to achieve a yawlock performance. After analyzing the timing for measuring input, we have found that magnetometer took 1.289ms for each measurement [3]. ?? = ?? ?? (?? ?? ) × ?? ?? (?? ?? ) × ?? ?? (?? ?? ) = ? cos ?? ?? cos To analyze the magnetometer data, we have collected real time sensor readings for each of the three axes over time under specific orientations such as positive x-axis, positive y-axis, and positive z-axis, all of them were separately towards North direction. Figure 7 shows the superimposition of measured magnetic fields for all three of the above mentioned arrangements: # b) Magnetometer Error Compensation A low cost magnetometer works very well in clean magnetic environments, but this device is strongly influenced by its orientation or any magnetic perturbations produced by nearly available ferrous material or radio waves from mobile phone, loud speakers. In the magnetometer-heading experiment it has been observed that the magnetometer needs to be held flat to function properly. Tilting would result in less accurate readings because magnetometer only uses two of the axes of earth's magnetic field. When this device is not parallel to these axes, the amount of magnetism felt by it will change based on the misalignment of the magnetometer to these axes. Magnetic disturbances were also observed during the experiment which developed a constant magnetic field component along each axis of the sensor outputs. To compensate these errors, the following processes were executed: i. Tilt compensation It is necessary to include the third axis, z, in magnetometer-heading calculation which can provide the magnetic field lost by the other two axes when they are out of alignment. So at first, a triple axis accelerometer has been used in parallel with the magnetometer to know how much the magnetometer is tilted. This was done for integrating the z-axis measurement properly to correct the tilt. The roll and pitch angles which can be calculated from accelerometer data, are never 0 ?? when the device is tilted. If ?? ?????? , ?? ?????? and ?? ?????? are the measurement values for their respective axes (x, y, z) of the magnetometer and ?? ???????? and ?? ???????? are the compensated values, then: X COMP = X MAG . cos(pitch) + Z MAG . sin(pitch)(5) Y COMP = X MAG . sin(roll). sin(pitch) + Y MAG . cos(roll) ? Z MAG . sin(roll). cos(pitch) So, Heading = arctan (?? ???????? / ?? ???????? ) i. Iron distortion compensation Iron distortions can be categorized as two types: hard iron and soft iron effects. Hard iron distortions arise from permanent magnets, magnetized iron or steel nearby the magnetometer and remain constant and in a fixed location relative to the magnetometer for all heading orientations. To compensate for hard iron distortion, the offset in the origin of each of the reading scale is necessary to be determined. So for all three axes, these offsets were Global Journal of Researches in Engineering ( ) F Volume XIV Issue VIII Version I Fig. 6 : Timing Analysis of HMC5843 Magnetometer [3] calculated by taking into account the minimum and maximum values as Eqn. 8 and using it on the readings of magnetometer on all three axes after rotating the magnetometer platform in a circle for each of the three axes [4] . The soft iron distortion is the effect of electromagnetic fields, which causes the ideal sphere of the 3D environment created by all the readings of the magnetometer to become an oval shape. It is necessary to perform the soft iron calibration in the firmware after the magnetometer values have been read and hard iron calibration has been done. OFFSET Reading = MAX Reading +MIN Reading 2 (8) e) Fusing References from GPS GPS provides a drift-free reference vector for the yaw orientation of the aircraft over the long term. The reasons why GPS has not been used as the primary source of reference vector for yaw information are: ? The transient response of the magnetometer is much faster than the GPS. ? The GPS device must move in order to provide direction information. ? The yaw reference cannot be updated under GPS denial environment. In the attitude estimation process, magnetometer has been used for yaw reference vector and over a period of time the readings are jammed with offset values for various reasons. So when the GPS is available to calculate the heading information, the course over ground is collected from GPS and used to compensate the readings of magnetometer. While using the GPS signal, reporting latency and filtering have been taken into account. The procedure that has been followed to obtain the course over ground information using a low-cost GPS receiver is: ? First: Three consecutive GPS positions had been measured. ? Second: Those position measurements had been compared to obtain two velocity measurements ? Third: The velocity measurements had been used to calculate the average velocity over a short period. of multi-rotor aircrafts. The proposed attitude estimation algorithm calculates the orientation of an aircraft, in respect to the rotation of the earth by using rotation matrices. Figure 8 In this algorithm, the gyro sensor is the primary sensor used to calculate the orientation of a rigid body. Since gyro sensor's readings have different offsets depending on which direction the gyro sensor is facing; when these readings are integrated After taking all these approaches into account, a new development over the attitude estimation algorithm of [5] have been proposed for better flight performance over time, it causes the integral result to drift. The accelerometer is not affected by drift; therefore, it has been used as an orientation reference of that rigid body to compensate the roll-pitch error (i.e. gyro's offset error). After error compensation, the magnetometer's readings has been used to calculate the heading (i.e. yaw movement) of that rigid body. To refresh the measured yaw information with true values over long time period, the GPS signal has also been used when the signal is available and ready to generate valid yaw information. # Global Journal of Researches in Engineering ( ) F Volume XIV Issue VIII Version I The procedure of the test is, first the system remained static for calculating the real-time attitude initials on ground. During this part of the test, no calibration was done so that the impact of the algorithm on unprocessed input data from sensor with random offset values can be observed. By writing a script, 5700 samples of the measured data has been collected in Matlab for 10 minutes and plotted on a graph (Fig. 9) with a time vector. After the attitude calculation converges with the aid of proper calibration process, the results found were more precise, static and valid for the same event. Figure 10 show that the estimated roll and pitch angle stays zero after some random fluctuations for a few seconds. Meanwhile, the yaw angle also stays static with a very little value. In the final part of the test, the device was flown and allowed to hover throughout the test. Meanwhile, the readings were captured in Matlab simultaneously. The duration of this test was also 10 minutes (600 seconds). The real-time attitude estimation depicted in Fig. 11, portrays that estimated attitude information holds a very little noise which occurred mostly due to the disturbance from external sources. It was observed that the roll and pitch angle remained much more stable than the yaw parameter and the yaw reading behaved like a wave. Therefore, accelerometer, magnetometer and GPS receiver all these devices allow the system to calculate the rotation correction matrix. Afterwards, a proportional plus integral feedback controller has been used on the correction matrix to remove the drift from the gyro sensor's readings. The compensated gyro sensor's readings, W, are then passed onto another process known as normalization and kinematics. The rotation matrix's columns are unit vectors which is why the gyro readings have been normalized before calculating the kinematics portion. Once normalized, the gyro readings along with the previous rotation matrix are used to calculate the current rotation matrix by using Equation 17 for updating the direction cosine matrix from gyro signals in the 'Computing Direction Cosines From Gyro Signals' section in [1]. Finally, the rotation angles (roll, pitch and yaw) are calculated from the updated rotation matrix by the following equations which were generated from Equation 4 # EXPERIMENTAL RESULTS AND ANALYSIS The proposed design of attitude estimation algorithm is required to validate and evaluate before considering its usability in real world. This is why realtime attitude reading test has been performed under different conditions. A 9DoF MEMS based IMU hardware setup has been made by following the modified coordinate system. This setup includes a 3-axes digital gyro sensor -ITG3200, a 3-axes digital accelerometer -BMA180 and a 3-axes magnetometer -HMC5843. Along with a 5Hz 66-channel GPS receiver -LS20031, the 9DoF IMU setup has been integrated into a quad-rotor copter that can hover in the air for more than 10 minutes. In this test, the real-time attitude data from the implemented prototype have been passed through the wireless serial data communication with 115200 baud rate to computer for performance observation in Matlab. From these test results, it can be concluded that the proposed algorithm can impressively deal with the MEMS gyro drifts with better consistency. So, this test validates the proposed design algorithm and strategy. # vi. CONCLUSIONS This paper presented an improved attitude estimation method based on the Direction Cosine Matrix. This estimator is built for attitude control and stabilization of multi-rotor autopilot systems. The unresolved issues that still exist can be corrected and considered for future improvements. Future applications will be presented with the integration of position, attitude and altitude estimation based on GPS/IMU/computer vision/ ultrasonic sound, resulting in an estimator of twelve degrees of freedom that will be used for tracking and navigation. ![of gravity FPU: Flight Processing Unit IMU: Inertial Measurement Unit PID: Proportional Integral Derivative YAW: Twist or oscillation about a vertical axis VTOL: Vertical takeoff and landing Attitude: Roll, pitch and yaw Heading: Aircraft's nose direction R: Rotation Matrix ?: Roll angle ?: Pitch angle ?: Yaw angle ?: Angular Rate Vector W: Gyro sensor readings ?? ?? : Earth frame, which is attached to the ground ?? ?? , ?? ?? , ?? ?? : Axes of earth frame ?? ?? : Body fixed frame, which is attached to the aircraft ?? ?? , ?? ?? , ?? ?? : Axes of body fixed frame (??, ??, ??) ?????? : Measured values of X, Y, Z axes (??, ??, ??) ???????? : Compensated values of X, Y, Z axes ð??"ð??" ?? : Angular rate on x-axis in ?? ?? -frame ?? ?? : Acceleration on x-axis in ?? ?? -frame I 3 : 3 × 3 Identity matrix iii. PROBLEM DEFINITION](image-2.png "DCM") ![Improvement Strategy on Direction Cosine Matrix based Attitude Estimation for Multi-Rotor Autopilot Global Journal of Researches in Engineering ( ) to the aircraft body, and the other one (?? ?? , ?? ?? , ?? ?? ) is the earth's frame of reference.](image-3.png "An") 2![Fig. 2 : The modified coordinate system b) Rotation Matrix Formation](image-4.png "Fig. 2 :") 3![Fig 3 : Anti-clockwise rotation from the reference frame F to F' Now to describe this rotation, we can write:](image-5.png "Fig 3 :") ![Improvement Strategy on Direction Cosine Matrix based Attitude Estimation for Multi-Rotor Global Journal of Researches in Engineering ( )](image-6.png "An") 7![Fig. 7 : Magnetometer outputs (raw magnetic field vs. time).](image-7.png "Fig. 7 :") ![is a visual representation of the proposed attitude estimation algorithm. The input devices that were used in the algorithm are: ? Triple-axis gyro sensor: It measures angular velocity. ? Triple-axis accelerometer: It measures earth's gravitational field minus acceleration. ? Triple-axis magnetometer: It measures earth's magnetic field. ? GPS receiver: It measures drift free orientation and position information.](image-8.png "") 8![Fig. 8 : Proposed attitude estimation algorithm for multi rotor aircrafts](image-9.png "Fig. 8 :") For describing the final rotation, we can write:?? ?? ????? ?? ??? ?? ?? ???? = ??? ?? ????? ?? ????? ?? ??cos???? ?? ?cos 90 ?? cos???90 ?? ? ?? ?? ???? ?? ???cos 90 ??cos 0 ??cos 90 ??? ? ?? ?? ???cos?90 ?? ? ?? ?? ? cos 90 ??cos???? ?? ??? ?? ???? ?? ???cos ?? ?? 0 ?sin ?? ???? ?? ??? ? ?? ?? ???? = ?010? ? ?? ?? ???? ?? ???sin ?? ?? 0 cos ?? ???? ?? ??x''x'''-? yz''-? yz'''Fig 5 : Clockwise rotation from the reference frame An Improvement Strategy on Direction Cosine Matrix based Attitude Estimation for Multi-RotorAutopilotGlobal Journal of Researches in Engineering?? ???? ?? ???? ?? ????? = ? ?? ???? ?? ???? ?? ?????(4)?? ???? ?? ???? ?? ????? = ? cos ?? cos ð??"ð??" sin ð??"ð??" ?sin ?? cos ð??"ð??" ? cos ?? cos ?? sin ð??"ð??" + sin ?? sin ?? cos ?? cos ð??"ð??" sin ?? cos ?? sin ð??"ð??" ?cos ?? sin ?? cos ?? sin ?? sin ð??"ð??" + sin ?? cos ?? cos ð??"ð??" sin ?? sin ?? sin ?? sin ð??"ð??" ?sin ?? cos ð??"ð??" © 2014 Global Journals Inc. (US) reference. The initial task of this process is to gather raw as shown in figure1, one frame (?? ?? , ?? ?? , ?? ?? ) is rigidly fixed © 2014 Global Journals Inc. (US) Year 2014 © 2014 Global Journals Inc. (US) Year 2014 © 2014 Global Journals Inc. (US) The authors would like to convey very special thanks to Prof. Dr. Tafazzal Hossain, Vice President (Academics) and Prof. Dr. A. B. M. Siddique Hossain, Dean (Faculty of Engineering), American International University-Bangladesh, for their valuable advice and encouragement. The authors would also like to acknowledge their undergraduate project and thesis supervisor, Rezwan Ahmed, Assistant Professor, Department of Computer Science, American International University-Bangladesh, for his support and helpful suggestions regarding the subject matter. * Direction cosine matrix estimation from report DChoukroun HWeiss IYBar-Itzhack YOshman February 2012 Texas Instruments Inc Texas * vector observations using a matrix Kalman filter IEEE Trans. Aerosp. Electron. Syst 46 1 1 2010 * Direction Cosine Matrix IMU: Theory WPremerlani PBizard May 2009 Tech. Rep * AQ. flight software timing, Carancho Engineering November 2010 unpublished * Compensating for Tilt, Hard-Iron, and Soft-Iron Effects Konvalin 2009 * Nine axis sensor fusion using the Direction Cosine Matrix Algorithm on the MSP430F5xx Family EMacias DTorres SRavindran Application vii. ACKNOWLEDGMENT