Login processing...

Trial ends in Request Full Access Tell Your Colleague About Jove
JoVE Science Education
Aeronautical Engineering

This content is Free Access.


Real-time Flight Control: Embedded Sensor Calibration and Data Acquisition



Source: Ella M. Atkins, Department of Aerospace Engineering, University of Michigan, Ann Arbor, MI


Autopilot allows aircraft to be stabilized using data collected from onboard sensors that measure the aircraft’s orientation, angular velocity, and airspeed. These quantities can be adjusted by the autopilot so that the aircraft automatically follows a flight plan from launch (takeoff) through recovery (landing). Similar sensor data is collected to control all types of aircraft, from large fixed-wing commercial transport aircraft to small-scale multiple-rotor helicopters, such as the quadcopter with four thruster units.

With inertial position and velocity captured by a sensor such as the Global Positioning System (GPS), the autopilot real-time flight control system enables a multicopter or fixed-wing aircraft to stabilize its attitude and airspeed to follow a prescribed trajectory. Sensor integration, calibration, data acquisition, and signal filtering are prerequisites for experiments in flight control.

Here we describe a sensor suite that provides the necessary data for flight control. Signal interfaces and data acquisition on two different embedded computer platforms are described, and sensor calibration is summarized. Single-channel moving average and median filters are applied to each data channel to reduce high-frequency signal noise and eliminate outliers.

In this experiment, data acquisition and sensor calibration for real-time flight control is demonstrated. Several published papers have described the principles of sensor data collection and control, and they have recently focused on sensors for small unmanned aerial vehicles (UAVs) [1-3].


Aircraft must balance their forces and moments through aerodynamics and propulsion systems. As shown in Figure 1a, a fixed-wing aircraft balances four forces in steady flight: aerodynamic lift, aerodynamic drag, propulsion system thrust, and weight. Fixed-wing aircraft either pitch up or down, to climb or descend, and roll either to the left or to the right to turn to a new heading.

As shown in Figures 1b and 1c, a hovering multicopter must balance the upward thrust generated by the thruster units with its weight, while a multicopter flying at an appreciable speed rotates so that its thrust balances aerodynamic drag. To achieve stable flight, aircraft must also balance moments about all three axes. Rotations are defined with the following conventions for three-dimensional (3D) flight:

  1. Roll (Φ) – rotation about the axis pointing toward the front of the vehicle (x), resulting in side to side motion
  2. Pitch (θ) – rotation about the axis running from left to right (y), resulting in a forward and backward tilting motion
  3. Yaw (Ψ) – rotation about the vertical axis (z), which results in a heading angle change

A flight control system issues motor and control surface commands that stabilize the aircraft roll, pitch, yaw attitude, and balance forces, as shown in Figure 1. Commands must be updated reliably and in real-time to assure the aircraft can correct for disturbances such as wind. To achieve and maintain a prescribed attitude, the control system must maintain an accurate estimate of the aircraft’s attitude (roll, pitch, yaw) as well as its changes in attitude over time (angular velocities). Because forces such as lift and drag critically depend on airflow, additional sensing is required to determine airspeed (V in Figure 1) and airflow direction with respect to the aircraft. To follow a prescribed trajectory, the aircraft must also sense its position through a sensor such as a GPS, Aircraft sensors enabling flight control are shown in Figure 2.

Once data is acquired from sensors, the signals are filtered to reduce the impact of noise and outliers on processed data quality. Then the data is aggregated into a full estimate of aircraft state, including 3D positions, linear velocities, orientation (attitude), and angular velocities. The aircraft state is sent to the flight controller, which then updates commands to the aircraft thrusters and/or control surfaces for fixed-wing configurations.

Aircraft Sensors

Aircraft, including fixed-wing and multicopter, rely on a sensor suite known as an inertial measurement unit (IMU) to determine 3D aircraft attitude and angular velocity. An IMU typically consists of three sensor types: accelerometers to measure linear acceleration; rate gyroscopes (gyros) to measure angular velocity; and magnetic field sensors to measure the direction and strength of the local magnetic field. A three-axis IMU, as illustrated in Figure 3, is configured with a three-axis reference coordinate system. A total of nine sensing elements, including three accelerometers, three rate gyros, and a three-axis magnetometer, provide independent measurements of linear acceleration (ax, ay, and az), angular velocity (ωx, ωy, ωz), and magnetic field (mx, my, and mz). An IMU is typically mounted near the aircraft’s center of gravity (CG), with the sensor axes aligned with the aircraft body axes, as shown in Figure 3.

Small IMU sensor packages are now available at a low cost. Each sensor emits an analog voltage, which can then be processed locally or sent directly to a flight computer, as described below. An integrated inertial navigation system (INS) combines an IMU with a GPS receiver. GPS units internally translate satellite signals to estimates of inertial position on the Earth, e.g., latitude, longitude, altitude, and 3D linear velocity of the aircraft represented in a local coordinate frame such as NED (North-East-Down). An IMU alone is capable of stabilizing aircraft attitude; however, with an INS, an aircraft can track a prescribed flight trajectory.

Because aerodynamic forces are strongly dependent on airspeed, V, fixed-wing aircraft require measurements of airflow for good flight controller performance. Flow measurements are collected using an air data system (ADS). In small-scale aircraft, often only airspeed is measured. In high-performance aircraft, measurements of flow direction and speed are required.

A basic pitot-static system [4], which is used to measure aircraft airspeed, V, is shown in Figure 4. The pitot tube itself has a central hole that faces directly into the oncoming flow. This hole is connected through a central tube to one port of a differential pressure sensor. Four holes equally spaced around the outside of the pitot tube are connected through a single peripheral tube to the other port of the differential sensor. The central tube measures stagnation or total pressure, PT, which is the air pressure at a point where flow velocity is zero. The outer tube measures static air pressure, PS, which is associated with the flow moving at freestream airspeed, V. Combined pressure from the four peripheral ports averages the four static pressure measurements to account for flow misalignment with the pitot tube as well as minor flow turbulence. The airspeed is computed from Bernoulli’s equation given atmospheric density ρ:


Dynamic (differential) pressure measured by a pitot tube system is then given by:


Airspeed, V, is then given by:


A five-hole probe [5], shown in Figure 5, provides the ability to measure the freestream flow angle and speed. This probe, an extension of the baseline pitot-static system, also measures PT from a central tube. Four other ports above and/or below and to either side of the central total pressure port typically connect to absolute pressure sensors. The angle of attack, α, matching the pitch angle θ during level flight, is computed from a function comparing the top and bottom pressure measurements:


The calibration function, , is determined by placing the five-hole probe into a (small) wind tunnel, and then curve fitting the wind tunnel pressure data over a series of known angle of attack conditions between the minimum and maximum expected flight values for α. Similarly, side flow (sideslip) angle β, which is typically small, is computed from a function comparing the left and right pressure measurements:


Similarly, the calibration function  is determined by curve fitting wind tunnel pressure data collected over a series of known sideslip angle conditions between minimum and maximum expected flight values for β.

The IMU and ADS enable an aircraft to sense its attitude, angular velocities, and airspeed (and potentially direction). A GPS unit, typically connected either through an off-the-shelf INS or a separate GPS-only interface to a flight computer, provides measurements of inertial position and velocity. A GPS unit [6] aggregates time-of-arrival data from multiple satellites to estimate the receiver position from triangulation. Baseline GPS has a position accuracy on the order of 1-3 meters in open areas; most UAVs host baseline GPS units. GPS can also receive Wide Area Augmentation System (WAAS) signals [7] from a signal source in a local region that reduce position estimation errors to under a meter. GPS positions are measured in Earth’s coordinate system, typically LLA (Latitude, Longitude, Altitude). GPS also provides a local measurement of an aircraft’s 3D velocity relative to the Earth in NED (North-East-Down) or ENU (East-North-Up) Earth-based coordinate systems. GPS units internally compute position and velocity information and communicates these values to an onboard flight computer.

GPS allows an aircraft to follow a flight plan described by waypoints in an Earth-fixed coordinate frame. Many missions, e.g., small UAV surveillance, require the UAV to navigate with respect to a local environment. For this purpose, the UAV may still carry a GPS receiver but will rely on onboard sensors such as cameras, radar, or Lidar, to navigate with respect to a local environment. Many researchers have studied UAV navigation with respect to a local environment using onboard sensors, such as in applications of search and rescue [8] and for small UAV localization in an urban canyon environment where GPS signal reception is unreliable [9].

Data Acquisition (DAQ) and Sensor Calibration

Each IMU and ADS sensor emits an analog voltage that passes through an Analog-to-Digital (A/D) converter then a digital processor or microprocessor. A/D conversion can be performed directly on the flight computer, or a dedicated microprocessor may perform A/D conversion and retransmit data. Because signal is lost over long signal wires, it is advantageous to perform A/D conversion close to the sensor signal source. Therefore, many modern IMUs embed a microprocessor and transmit digitized voltage readings through a (lossless) serial connection. For example, the MPU-9250 hosts the nine IMU sensors (3 accelerometers, 3 rate gyros, 3-axis magnetometer) and a microprocessor on a single printed circuit board. Collected data is then distributed to the flight computer over an I2C serial connection [10].

In this demonstration, we illustrate the use of an IMU with I2C connection and the direct collection of analog data on the flight computer using two embedded computing platforms: a Diamond Systems Athena II and a Beaglebone Blue. They were selected due to their diverse hardware interface capabilities. Both are lightweight and have a small form factor appropriate for installation on a small UAV. The Athena II is a well-established product; its strength is in high-resolution (16-bit A/D) data resolution, which with the lightweight QNX Neutrino real-time operating system, assures reliable data acquisition up to 3 kHz. The Beaglebone Blue, running a variant of Linux, has a lower resolution A/D converter, but it interfaces to a variety of serial devices, including I2C. The Beaglebone is low-cost, has a faster processor, and is compatible with numerous Linux-based applications. It is, therefore, a better general-purpose choice for low-cost experiments. The Athena II is used in this experiment to demonstrate its utility in directly capturing sensor data with application to research-based flight data acquisition, such as in a flexible wing experimental UAV platform [11].

Before deployment for flight control, IMU and ADS sensors must be properly calibrated. End-to-end calibration accounts for voltage scaling and bias as the physical sensor output passes through the A/D converter to the computer and then is translated to MKS (meter-kilogram-second) units:


where the acquired signal,  in volts, is offset by bias voltage, b, and is then scaled by factor m to an MKS unit reading, . IMUs with a serial interface may provide options to collect readings in either volts or MKS units based on the manufacturer’s calibration. Directly acquired sensor data for IMU or ADS requires reading an integer value from each A/D channel (in counts), which is translated to a floating-point voltage reading based on the A/D converter’s resolution (e.g., 12 bits or 16 bits) and full-scale voltage range. To account for imprecisions in both default sensor calibrations and the A/D conversion process, it is typically advantageous to calibrate IMU and ADS once fully integrated into the DAQ pipeline.

For the IMU, accelerometer voltages are scaled to a reading relative to zero acceleration in meters per second squared, and rate gyro voltages are scaled to a reading relative to zero angular velocity in radians per second. Calibration of a magnetometer requires a more careful process that accounts for local disturbance sources [12]. In this experiment, we illustrate the use of a rate table to calibrate rate gyros and accelerometers. Note that in complex environments, a magnetometer may not be accurate despite best efforts at calibration; in these cases, heading is determined through alternate means, e.g., consideration of GPS velocity vector heading.

Signal Filtering

Sensor signals inevitably contain electrical noise as well as noise from physical sources, such as in-flight structural vibration. Such noise typically takes the form of single outliers in the data and high-frequency noise; both can be attenuated with low-level signal filtering. Two commonly applied sensor signal filters [13] are applied in our experiments: a moving average filter to attenuate high-frequency noise and a median filter to reject signal outliers from single-channel sequential signals, or “salt and pepper,” from images. The simple moving average estimates the current signal as the mean value of the most recently acquired n data values in a real-time control scenario; in post-processing, each signal is estimated from an equal number of previous and future data points to avoid time-shift effects. The real-time unweighted moving average estimate usable for flight control is therefore given by:


where  is a single sensor data value at time step k-i and  is the moving average estimate for time step k. A large value for n effectively eliminates high-frequency noise but has the disadvantages of introducing time delay into signal estimates. It can also filter out real, transient signals. To minimize the impact of old data on moving average estimates, data is often linearly or exponentially weighted so that the most recent data points influence moving average results more than older data values.

The median filter for single-channel signals is straightforward. The last d raw data values are collected in an array or set, then the median, i.e., the middle value or average of the two middle values given an even number of values, is returned:


where  is a single sensor data value and  is the median filtered output at time step k. Data subject to both high-frequency noise and outliers are often sequentially processed through both median and moving average filters. To prevent outliers from influencing the moving average result, the median filter is typically applied first. Values for n and d are user-defined but are typically in the range [3, 10] unless data is acquired at much high rates than it is used in control decisions. 


This procedure will illustrate IMU and ADS sensor calibration and integration with flight computers and demonstrate the use of integrated INS and ADS data acquisition and processing using in an outdoor flight facility. End-to-end flight control for a quadrotor operating in the University of Michigan’s M-Air netted flight test facility is demonstrated.

1. Sensor Calibration: Inertial Measurement Unit (IMU)

Sensor calibration is most effective when performed with support from high-quality test equipment. For the 3-axis IMU, calibrate the rate gyro and accelerometer for each axis separately using a precision rate table (Figure 6). The rate table precisely rotates at a user-defined angular velocity. The user issues a series of rate commands, during which the IMU collects the data needed for sensor calibration. The single-axis calibration experiment described below is therefore repeated three times, once for each IMU sensor axis (x, y, z). 

  1. Mount the IMU on the rate table such that the sensor axis being calibrated is directed radially inward or outward.
  2. Measure the distance from the center of the table to the center of the IMU center. This is the reference radius for circular motion. 
  3. Mount the DAQ computer, IMU, and battery directly to the rate table, and connect all components directly.
  4. Set up software to collect IMU rate and acceleration data.
  5. While the rate table is motionless, record rate gyro, and accelerometer bias values.
  6. Conduct a series of experiments with different positive and negative constant rate table rotation rates. Sensor calibrations are expected to be linear. Acquire data at rates of 0 (baseline), ±15, ±30, and ±60 degrees/second. The table can spin at faster rates, but the selected values are sufficient to cover signals expected in typical UAV flight operations.
  7. Collect data from the rate gyro and accelerometer being calibrated for each angular velocity value listed above. Each rotation rate should be established before data is collected to ensure a constant rate is maintained. Collect data over 10 - 15 s, assuming a data collection rate of at least 30 - 100 Hz, to ensure disturbances can be filtered out of final calibration values.
  8. Disconnect and remove the IMU from the rate table and orient it such that the accelerometer being calibrated points down.
  9. Collect +1g data through the computer system. 
  10. Flip the IMU such that the accelerometer being calibrated points up and collect -1g data through the computer system. These extra data points are simple to obtain and can be used to validate each linear calibration curve obtained from rate table data at ±1g.  The 1g value is particularly important to calibrate accurately because linear accelerometer data is used to determine the direction “down” relative to the quadcopter body.
  11. Process the data. Develop linear curve fits for gyro and accelerometer data points, which relates acquired voltages to MKS unit rotational rates (gyro) and linear accelerations (accelerometer). Confirm that calibration error is sufficiently low. Note that the rate table provides direct control of angular velocity for the gyro calibration. The corresponding acceleration, a, induced by the centripetal force of circular motion, can be computed from the specified angular velocity ω and the radius r of the IMU from the rate table center:

2. Quadrotor Flight Experiments

For our final series of experiments, we mount the IMU and pitot system on a quadrotor (shown in Figure 7) and fly in the University of Michigan’s M-Air netted flight facility. The vehicle is stabilized through a port of the Ardupilot open source autopilot package to the Beaglebone Blue (no microprocessor used) and configured before flight through the Mission Planner ground station software. A radio-control transmitter/receiver interface enables the pilot to provide “outer loop” commands for quadrotor altitude, side-to-side motion, and heading to Ardupilot’s “inner loop” flight control law regulating quadrotor roll angle, pitch angle, yaw angle (heading), and altitude. [14] 

Because a quadrotor does not require airspeed feedback to stabilize, Ardupilot only relies on IMU data plus a pressure sensor for altitude, which is calibrated during program initialization relative to the takeoff altitude pressure, to stabilize flight given pilot inputs. A fully autonomous extension of Ardupilot requires inertial position data from GPS or other sensing system (e.g., high-speed motion capture). Because our experiments were performed with quadrotors in constrained environments, the pitot air data system is not necessary.  However, pitot systems are essential for fixed-wing aircraft and multicopters attempting precise flight paths following uncertain windy environments. [15, 16] The flight test procedure is divided into three phases: pre-flight, flight test, and post-flight. This subdivision is similar to the procedures followed by pilots of manned aircraft through the use of well-established cockpit checklists. [17]


  1. Charge batteries and test them before installation.
  2. Establish a clear test environment (indoor or outdoor), and mark the area to assure uninvolved people remain clear. 
  3. Make sure the flight test team is briefed and qualified (trained) to perform the planned test.
  4. If flying outdoors, make sure the aircraft and pilot are registered and certified per FAA regulations. A minimum of three people is required for an open-air test: A pilot in command (PIC), visual observer (VO), and ground station operator. For our tests, the quadrotor will fly in a netted facility outdoors. Two tether operators will assure the vehicle cannot fly away for indoor testing. Note that no specific FAA regulations apply to netted flight testing since the UAV does not occupy an open outdoor space.
  5. Turn on flight computer and ground station laptop. 
  6. Collect preliminary data to ensure that the sensors are functioning properly. The pilot and support team must ensure a clear understanding of the flight plan and that abort/recovery procedures are in place.

Flight Test

  1. Start data acquisition on the ground station.
  2. Confirm flight area is clear/safe. 
  3. Arm thrusters/motors.
  4. Initiate flight test sequence.
  5. Conduct the flight test, with the pilot calling out each step, including as a minimum:
    takeoff (launch), flight mode changes, known waypoint targets or maneuvers, and landing.  Ensure that all personnel are on task and execute emergency procedures (flight termination) as needed. Waypoints and trajectories are specific to each flight. For the quadrotor experiment, we follow moderately aggressive cross and rectangular patterns at a constant altitude and heading, followed by a climb/descent then a yaw sequence. The angular rates and linear accelerations in this flight are easily identified in the data, and they confirm that the IMU and flight controller are functioning correctly.


  1. Disarm motors to assure that they will not accidentally turn on. 
  2. Save and download flight data to archival storage.
  3. Log flight in words per the pilot, VO, and ground station operator feedback.
  4. Check the batteries and charge as needed. 
  5. Recover equipment, and clean the area for the next occupant.

A fixed wing aircraft achieves steady flight by balancing four forces: aerodynamic lift, aerodynamic drag, propulsion system thrust and weight. To achieve stable flight, it must also balance moments about all three axis, the roll, pitch and yaw axis. All rotations are defined as angles about these axis with changes in the roll axis causing side-to-side motion, changes to the pitch axis causing forward and backward tilting motion and changes in the yaw axis causing heading changes.

In order to stabilize the aircraft to any sudden changes like gusts of wind, a flight control system issues motor and control surface commands that must be updated in real-time. Thus, the control system uses various sensors to maintain an accurate measurement of current altitude, meaning the roll, pitch and yaw angles, as well as the air speed. Once data is acquired from the sensors, the signals are filtered to reduce the impact of noise and outliers on processed data quality. The data is then aggregated into a full estimate of aircraft state and used for flight control.

Both fixed wing aircraft and multicopters rely on this control system to monitor and control aircraft altitude. Both also utilizes sensor sweep known as an inertial measurement unit or IMU.

An IMU typically consists of three sensor types: accelerometers to measure linear acceleration, rate gyroscopes to measure angular velocity and magnetic field sensors to measure the direction and strength of the local magnetic field. An IMU is often coupled with a GPS system and mounted near the aircraft center of gravity with the sensor axis aligned with the axis of the aircraft body.

In this lab, we will demonstrate the calibration of a simple IMU using a precision rate table. We'll then mount the calibrated IMU to a multicopter and perform a flight test to view real time and filter data.

In the first part of the experiment, we will calibrate the IMU which contains a rate gyro and accelerometer for each axis using a precision rate table. The rate table precisely rotates at a user defined velocity following a series of rate commands. This enables us to determine the relationship between the voltage readout and velocity.

To begin, mount the IMU on the rate table with screws and orient it such as that the sensor axis being calibrated in this case the X-axis, is directly radially inward or outward. Measure the distance from the table center to the IMU center and use this measurement as the reference radius for circular motion. The IMU is mounted on a data acquisition board. Connect the components directly.

Now, set up the software to collect the IMU rate and acceleration data. Conduct a series of experiments with different positive and negative constant rate table rotation rates with zero used as the baseline measurement. While the rate table is motionless, record the rate gyro and accelerometer by S values. Then, initiate the test and collect the data.

Once all the angular velocities have been tested for that orientation, detach the IMU and reposition it such that the accelerometer is oriented upward. Reattach it, then initiate the test to collect -1 G data. After that, flip the IMU so that the accelerometer is oriented downward and collect +1 G data.

When you have completed the calibration of the x-axis, reposition the IMU so that the z-axis sensor is orientally radially outward and repeat all tests, remembering to position the IMU upwards and downwards to calibrate the accelerometer. Perform the same procedure for the y-axis sensor.

In the next part of the experiment, we will mount the IMU on the quadrotor and fly it inside of a netted flight facility. A radial control transmitter receiver interface enables the pilot to provide commands for altitude, heading, roll angle, pitch angle and yaw angle.

Before starting, charge all batteries and test the components prior to installation on the quadrotor. Then prepare the flight making sure that at least three people, the pilot in command, the visual observer and the ground station operator are all briefed on the flight plans. Bring the quadrotor into the netted flight facility and set it on a flat landing board.

The flight test begins with take off from the origin climbing to a 1.5 m altitude. Then, we'll execute a two meter square flight pattern with a 0.5 m/s reference velocity. The quadrotor pauses prior to each change of position. Then we'll execute segments of higher speed traversals at 0.5, 1, and 1.5 m/s to demonstrate how velocity impacts overshoot.

To begin the flight test, start the data acquisition on the ground station. After confirming that the flight area is clear, arm the motors. Now, initiate the flight test sequence with the pilot calling out each step before performing them beginning with takeoff. Be sure to announce all flight mode changes, known waypoint targets, or maneuvers.

After the flight plan has been executed, alert the rest of the flight team of the final descent and landing of the quadcopter. Then, disarm the motors on the quadcopter. Save and download all flight data and log the flight in the flight logbook. Finally, recover all equipment and clear the area for the next user.

Now let's interpret the results. Starting with the calibration data for the IMU, first we show a plot of rotational speed of the rate table versus the gyro voltage. Note that the rate table provides direct control of angular velocity for the gyro calibration. A linear fit to the data enables the calculation of speed from gyro voltage. In this case, the rate gyro emits a nominal zero speed reading of 2.38 volts.

Finally, let's look at the flight data. Here we show a 30 second lateral acceleration data set for the quadrotor using our calibrated IMU. This plot shows raw and filtered acceleration measurements from the IMU versus time. The data was filtered in order to remove noise from the measurement. You can see that raw noise data is attenuated. However a time delay is present in the filtered data.

In summary, we learned how aircraft control systems use various sensors to measure current altitude and airspeed during flight. We then calibrated a rate gyro and accelerometer and mounted them on a quadrotor before performing flight experiments.


Sensor Calibration

An example of a rate gyro calibration plot is shown in Figure 8. In this case, the rate gyro emits a nominal (zero-speed) reading of 2.38 V. Rate gyro voltage data was collected for six different rotational speeds measured in degrees per second, and a linear curve was fit to this data. As shown, the linear fit provides a very good approximation of all collected data points.

Flight Test Results

Figures 9 shows the raw and filtered data of a 30 s lateral acceleration dataset for a quadrotor flying in an indoor environment. The filter values d and n are relatively large to illustrate the impact of the filtering process clearly. As shown, raw data noise is attenuated. However, a notable time delay is present in the filtered data, e.g., in the (attenuated) positive acceleration trend just before t=5 s.  For this plot, a small negative bias is noted in the overall acceleration trend; this is likely due to a slight pitch in the IMU mount relative to the quadrotor thruster plane such that a small component of gravitational acceleration is noted in the x-axis acceleration measurement.  Such offset is common when aligning sensors only through visual inspection.  

Figure 1. Fundamental Forces Acting on Aircraft. Please click here to view a larger version of this figure.

Figure 2. Data Pipeline from Sensors to Flight Control. Please click here to view a larger version of this figure.

Figure 3. Inertial Measurement Unit (IMU) Sensors and Axis Conventions. Please click here to view a larger version of this figure.

Figure 4. Pitot Tube System for Airspeed (V) Measurement. Please click here to view a larger version of this figure.

Figure 5. Five-Hole Probe System for Airspeed (V), Angle of Attack (a), and Sideslip Angle (b) Measurement. Please click here to view a larger version of this figure.

Figure 6.  IMU Sensor Calibration with a Single Axis Rate Table.  As shown, the z-axis rate gyro voltage can be calibrated directly for each commanded angular velocity, w, and the x-axis accelerometer can be calibrated from centripetal acceleration given angular velocity w and measured radius r from the center of the rate table to the IMU centroid.  The IMU can be rotated and remounted to calibrate measurements from the other rate gyro and accelerometer axes. Please click here to view a larger version of this figure.

Figure 7. Quadrotor platform with Beaglebone Blue used for Flight Testing. Please click here to view a larger version of this figure.

Figure 8.  Rate Gyro Example Calibration Example. Please click here to view a larger version of this figure.

Figure 9.  Example Quadrotor Lateral (x) Accelerometer Data Excerpt for an Indoor Flight using a median filter with d=8 and moving average filter with window n=15.  Raw data is indicated by the blue trend, and filtered data is shown in orange. Please click here to view a larger version of this figure.

Figure 10. Example fixed-wing small UAS GPS, Accelerometer, and Rate Gyro Flight Test Data.  Raw (unfiltered) data is presented to illustrate the need for signal filtering. Please click here to view a larger version of this figure.

Applications and Summary

Here we described the sensor systems, data acquisition, and signal filtering process required to enable fixed-wing and rotary-wing aircraft real-time flight control. This data pipeline is an essential element of all manned and unmanned aircraft autopilot systems. Multicopters require autopilots to stabilize, and aircraft of all types critically rely on real-time data acquisition and flight control for all operations as we move toward increasingly autonomous aircraft systems conducting missions involving airborne data collection and payload transport. While off-the-shelf sensor packages can be integrated, reliability is critical to understand sensor capabilities and limitations in different environments. For example, heavy precipitation or ice can block pitot tubes, and urban canyon structures can block GPS signals.

Additionally, unusual attitudes can require extension to state estimation computations relying on Euler Angle attitude representations. There is an inherent tradeoff between the resilience gained through the integration of extra sensors and the extra cost and weight required to support redundant sensors. The lowest cost small UAVs will likely continue to employ the baseline suite of sensors for flight control described here. While the most reliable aircraft, such as commercial transport and fighter aircraft, base their state estimates on sensors similar to those described here, they rely on triple redundancy and sensor diversity to assure the aircraft flight controller can rely on an accurate state estimate despite the potential for sensor failures or extremely challenging environmental conditions.

Figure 10 shows sample GPS and (raw) IMU time histories taken from a small fixed-wing UAS flight test. GPS data shows the local loitering pattern manually flown by a pilot through a radio control link. The raw IMU time histories show signal but also exhibit substantial signal noise.  This noise results primarily from airframe structural vibrations induced by the propulsion unit (motor) and is typical for fixed-wing small UAS with lightweight wood or composite structures.  Note that the data was collected after vibrationally isolating the IMU from the structure with rubber mounts, providing strong motivation for signal filtering.  In the time response data, takeoff (launch) occurs just after t=100 s, and landing is seen in the large-magnitude data “spikes” occurring just before t=450 s. 


We acknowledge Mr. Prashin Sharma, Mr. Matthew Romano, and Dr. Peter Gaskell of the University of Michigan for their assistance in setting up and conducting experiments.


  1. Langelaan, J.W., Alley, N., and Neidhoefer, J., 2011. Wind field estimation for small unmanned aerial vehicles. Journal of Guidance, Control, and Dynamics, 34(4), pp.1016-1030.
  2. Hallberg, E., Kaminer, I., and Pascoal, A., 1999. Development of a flight test system for unmanned air vehicles. IEEE Control Systems, 19(1), pp.55-65.
  3. Kim, J.H., Sukkarieh, S., and Wishart, S., 2003. July. Real-time Navigation, Guidance, and Control of a UAV using Low-cost Sensors. In Field and Service Robotics, Springer, pp. 299-309.
  4. Gracey, W., 1956. Wind-tunnel investigation of a number of total-pressure tubes at high angles of attack-subsonic, transonic, and supersonic speeds (No. NACA-TN-3641). National Aeronautics and Space Administration (NASA) Langley Research Center, Hampton, VA. (http://www.dtic.mil/get-tr-doc/pdf?AD=ADA377664)
  5. Morrison, G.L., Schobeiri, M.T., and Pappu, K.R., 1998. Five-hole pressure probe analysis technique. Flow Measurement and Instrumentation, 9(3), pp.153-158.
  6. Farrell, J. and Barth, M., 1999. The global positioning system and inertial navigation. New York, NY, USA, McGraw-Hill.
  7. Enge, P., Walter, T., Pullen, S., Kee, C., Chao, Y.C., and Tsai, Y.J., 1996. Wide area augmentation of the global positioning system. Proceedings of the IEEE, 84(8), pp.1063-1088.
  8. Goodrich, M.A., Morse, B.S., Gerhardt, D., Cooper, J.L., Quigley, M., Adams, J.A., and Humphrey, C., 2008. Supporting wilderness search and rescue using a camera‐equipped mini UAV. Journal of Field Robotics, 25(1‐2), pp.89-110.
  9. Rufa, J.R., and Atkins, E.M., 2016. Unmanned aircraft system navigation in the urban environment: A systems analysis. Journal of Aerospace Information Systems, 13(4), pp.143-160.
  10. Paret, D. and Fenger, C., 1997. The I2C bus: from theory to practice. John Wiley & Sons, Inc.
  11. S. Cesnik, C.E., Senatore, P.J., Su, W., Atkins, E.M., and Shearer, C.M., 2012. X-HALE: A very flexible unmanned aerial vehicle for nonlinear aeroelastic tests. AIAA Journal, 50(12), pp.2820-2833.
  12. Vasconcelos, J.F., Elkaim, G., Silvestre, C., Oliveira, P., and Cardeira, B., 2011. Geometric approach to strapdown magnetometer calibration in sensor frame. IEEE Transactions on Aerospace and Electronic Systems, 47(2), pp.1293-1306.
  13. Bovik, A., Huang, T.S., and Munson, D., 1983. A generalization of median filtering using linear combinations of order statistics. IEEE Transactions on Acoustics, Speech, and Signal Processing, 31(6), pp.1342-1350.
  14. Beard, R.W. and McLain, T.W., 2012. Small unmanned aircraft: Theory and practice. Princeton University Press.
  15. Yeo, D., Shrestha, E., Paley, D.A., and Atkins, E.M., 2015. An empirical model of rotorcraft UAV downwash for disturbance localization and avoidance. In AIAA Atmospheric Flight Mechanics Conference, AIAA.
  16. Yeo, D., Sydney, N., and Paley, D.A., 2016. Onboard flow sensing for rotary-wing UAV pitch control in wind. In AIAA Guidance, Navigation, and Control Conference.
  17. Degani, A. and Wiener, E.L., 1993. Cockpit checklists: Concepts, design, and use. Human Factors, 35(2), pp.345-359.
  18. Yeo, D., Henderson, J., and Atkins, E., 2009, August. An aerodynamic data system for small hovering fixed-wing UAS. In AIAA Guidance, Navigation, and Control Conference.


Get cutting-edge science videos from JoVE sent straight to your inbox every month.

Waiting X
simple hit counter