Flight Control Subsystem


The objective of this project is to design and prototype a small-scale unmanned aerial vehicle (UAV), offering dual-channel real-time video, data logging, and waypoint tracking. To accomplish such goals, the Flight Control system shall provide four modes of operation Stabilize, Fly by Wire, Return to Launch, and Loiter along customizable flight paths. Routes can be preprogrammed or modified mid-flight from the base station. With the completion of a system to monitor and maintain flight, the Flight Control system will contribute to the final integration of the system with the remaining UAV divisions.

Table of Contents: 

    Introduction and Background

    A. Unmanned Aerial Vehicle

    An Unmanned Aerial Vehicle (UAV) is an aircraft functioning autonomously without a pilot onboard and can be of variable size, shape, design, and functionality in addition to being a simple drone, remotely controlled by a pilot. A full-featured UAV offers remote sensing, automatic stabilization, GPS navigation, surveillance and reconnaissance, and programmable mission paths. The U.S. Department of Defense has termed a UAV an Unmanned Aerial System (UAS) to reflect the integration of a ground station and other elements beyond the aircraft itself. Therefore, this project could be described as a UAS in addition to the more-commonly accepted name UAV.

    B. Parts of a Plane

    In a typical airframe design of a plane, the fuselage provides the body support, as shown in Figure . The engine, or propeller in this case, is located at the nose of the plane, while the rudders and elevators are positioned at the tail. The wings branch from the fuselage at the point of payload center of gravity, and house the ailerons on the rear of each wing.

    C. Flight Axes

    Three major axes influence the flight of an aircraft including Pitch, Roll, and Yaw, as shown in Figure 2. Rotation about the x- horizontal axis is controlled via the elevators, while the ailerons maintain rotation about the y-horizontal axis, or Roll. Lastly, the Yaw axis exists in the z-direction and is controlled through rudder movements.

    Excessive rotation about any of these axes results in an increased difficulty in maintaining flight, especially for amateur flyers. Uncontrolled rotation about the Yaw is known as a “Tailspin,”, and around the Roll axis is called a “Barrel-Roll.” Amateur pilots typically cannot overcome a Tailspin due to the lack of ability to regain forward-facing flight.

    D. Basics of Plane Flight

    In order to be affected by such axes, the aircraft must first obtain flight through a mixture of forces acting on the vehicle, as illustrated in Figure 3. Lift exists as the upward force generated from air circulation around the wings, while Gravity combats this with downward force pulling toward the ground due to payload within the frame. Thrust is produced by the engine, pushing the plane forward against Drag—the force opposing forward movement.

    E. Generating Lift

    Before the aircraft can achieve flight through these forces, lift must be generated from lower pressure air above the wing and higher pressure below the wing. Figure 4 shows the typical movement of air around the wing. As the top surface curves, the compressed air above the wing is pulled toward the back of the wing, generating lift.

    F. Global Positioning System

    The Global Positioning System (GPS) was initially developed by the U.S. Military before being released for commercial use in the 1980s. This satellite-based navigation system consists of 24 currently-operating GPS satellites over the Earth, functioning regardless of weather conditions on the ground. The service does not require subscription or setup charges to provide real-time information including altitude, latitude, and longitude. A receiver must obtain a signal from three or more GPS satellites to deduce the position via triangulation. Essentially, triangulation is the process by which the receiver compares the time difference between signal receipts.

    Problem Definition

    The goal of the research project was to design a small-scale UAV, incorporating the need to maximize flight range and minimize power consumption. The complete vehicle design was divided into subdivisions for the students to work as groups: embedded systems, base station, camera, communications, and flight control. To achieve this overall goal, the Flight Control Group is responsible for building a UAV flight control system using an onboard microcontroller with multiple sensors.

    Concept Generation/Requirements Specification

    A. Purpose and Concept

    The purpose of the Flight Control system was to monitor and maintain the flight of the aircraft toward waypoints, while providing a stable platform for aerial reconnaissance. In completing this task, the flight control system contributed to autonomous flight to the UAV Undergraduate Research Project Fellowship.

    B. Requirements Specification

    In order to complete the design process and simulations, knowledge of control system design, system interfacing, and signal processing, as well as basic experience in logic board programming was required. Research of American and European MAV and UAV flight competition descriptions and rules has helped to form the goals and designs for this project. Similar projects, such as the DelFly Micro by DIY Drones, have provided insight to the components and functionality of the aircraft.

    The flight time is to be a maximum of 20 minutes, due the constraints of the Cessna 182 Pro plane, and shall involve complex flight maneuvers, such as Figure 8s. In addition, the UAV is expected to fly autonomously along pre-designated, customizable routes and capture images at specified locations. The flight control system shall provide sensor information for the base station.

    C. Engineering Constraints and Regulations

    The Office of the Provost at the University of North Texas provided the funding for this fellowship project through the Undergraduate Research Initiative administered by the Honors College, in addition to offering exposure at University Scholars Day and opportunities for enrichment activities.

    Safety of the individuals and property involved was of the upmost importance, with checklists on the ground before launch to ensure that the aircraft would function as anticipated and that the missions were planned responsibly. As practicing engineers, the group recognized and committed to obey the Engineering Code of Ethics and Standards set forth by IEEE.

    Flying in the National Airspace required that the aircraft be designed under compliance with the FAA regulations for Small Unmanned Aircraft Systems enforced by the Flight Standards District Office for Denton County. Only amateurs can operate an autonomous aircraft without a Certificate of Authorization, and the following regulations apply: keep flight below 400 feet, keep the aircraft within unassisted visual line of sight, have a pilot in control at all times to switch to manual command, and avoid built-up areas and airports.

    UAV flight is regulated by the FAA under the provision of US Public Law codified within Code of Federal Regulations Title 14 – Aeronautics and Space and CFR Title 14 Chapter 1 FAA (DOT) Part 91 General Operating and Flight Rules. For information on the regulations outlined by the RTCA, Inc. SC-203 Committee of the UAV MarketSpace, reference Appendices A-E.

    The team encountered several real-world constraints requiring the students to handle out-of-stock products, product specifications limiting the goals, and permissions involved with funding and purchasing operations. Experiences such as these prepare the group members for projects in the industry and increase the understanding of the importance of hands-on experience in more aspects than design alone.

    Preliminary Design Stages

    The flight control group consisted of two Electrical Engineering students, coupled with Aaron Jones from the Computer Engineering department. The original design of a 30 minute minimum flight time, automated flight to main campus, and remote flights was revised due to government constraints and regulations governing UAVs. Flying the plane out of visual sight was no longer a possibility, nor flight over construction areas or built-up clusters. In addition, the maximum flight time was set at 20 minutes by the Cessna 182 Pro aircraft specifications selected by the fellowship members.

    A. Parts Selection Process

    Before choosing a board for the Flight Control, the group set beginning goals for the functionality. Such objectives included a PathTracker feature to track paths covered, gyros for stability, GPS, memory for preset route programming, and monitoring of altitude, airspeed, and remaining power level in the battery.

    There were several ways to approach the design of the flight control, such as buying individual parts versus purchasing an inclusive board. If parts were bought individually, the team risked compatibility issues, code length, and complexity in integration.

    The alternative, ArduPilot, was the more appropriate decision for this particular project because it meets compatibility for all of the original design goals. For example, the ArduPilot offers data logging to serve as PathTracker and the board features auxiliary analog input for additional components. As a compliment to the ArduPilot board, separate components were selected including 3-axis stabilization, 2-4Hz GPS, pitot airspeed, and sensors for voltage, amperage, and watt levels.

    B. Components

    The components for the Flight Control system included the Cessna 182-Pro Series, ArduPilot Controller Board, ArduPilot Shield V2 Kit, the official ArduPilot FTDI Cable, U-blox5 GPS, and the AttoPilot XYZ Horizon Sensors.

    a. Plane Considerations and Decisions

    Upon detailed discussion among the entire fellowship team, a Radio Controlled aircraft was determined to be the most desirable aerial vehicle. Features of interest included electric-power, Ready-to-Fly, high payload capacity, large wingspan and wing area, inexpensive, and ease of use for amateur pilots.

    The fellowship chose to implement the UAV on an airplane frame, rather than a helicopter, for greater weight tolerance and longer flight time. In addition, constructing the aircraft out of Styrofoam or plastic was considered. Using an electric power plane avoided complexity in power source conversion issues, but required consideration of power consumption, weight, and dimensions of each of the individual components. After researching the options, the fellowship proceeded with a pre-crafted, electric power plane to ensure a stable foundation for the additional components for autonomous flight.

    To meet desired plane requirements, the group selected the Cessna 182-Pro Series, shown in Figure 5, with a 4-Channel Receiver, electric-power, Ready-to-Fly, and a true-scale durable frame. The plane featured a Himag motor providing 40% more power than a standard speed 480. The Cessna Pro operates on a 2200 mAh Lipoly 7.4 volt that offers a minimum of 20 minutes of run time. In addition, a 2.4 GHZ DSM radio for reduced-glitch flight allows a range of up to 5500 feet. The new wing design featured two aileron servos (one for each aileron) for more precise control and quicker response times. This aircraft is designed for stability and capability of maintaining flight at slow speeds, allowing novice pilots to easily master flight mechanics. The specifications for the plane are as follows: wing span of 32.5 inches, length of 28.5 inches, weight of 22.7 ounces, Himag 480 motor, 4 channel 2.4 GHZ receiver, two 9 gram micro servos, Peak/Balanced charger, and a 2200 mAh ll.1v battery.

    Upon further discussion with industry hobbyists, a larger frame would provide greater stability for amateur flyers and they expressed little concern for the durability of Styrofoam.

    b. ArduPilot Controller Board

    The ArduPilot Controller board, shown in Figure 6, was used as the main platform for the flight control system due to the functionality and availability of open-source support. The blogs hosted by Chris Anderson of DIYDrones provided a means of communication with experienced hobbyists familiar with the components and troubleshooting procedures.

    Based on the Arduino open-source hardware platform, ArduPilot is a full-featured autopilot using infrared (thermopile) sensors or an Inertial Measurement Unit (IMU) for stabilization and GPS for navigation. The ArduPilot features include: use for an autonomous vehicle, built-in hardware failsafe that uses a multiplexer chip and ATTiny processor to toggle control from the RC system to the autopilot, ability to reboot the main processor in mid-flight, multiple 3D waypoints (limited only by memory), altitude controlled with the elevator and throttle, a 6-pin GPS connector for the 4Hz uBlox5 or 1hz EM406 GPS module, six spare analog inputs (with ADC on each) and six spare digital input/outputs for additional sensors.

    Furthermore, the board supported the addition of wireless modules for real-time telemetry and was based on a 16MHz Atmega328 processor. The total onboard processing power was approximately 24 MIPS. The 30mm x 47mm board could be powered by either the RC receiver or a separate battery. Four RC-in and –out channels could be processed by the autopilot, in addition to the autopilot on/off channel. The board offered LEDs for power, failsafe (on/off), status and GPS satellite lock.

    Programmability and use required the free Arduino IDE to edit and upload the code to the board. The Arduino environment simplified the code production, modification, and upload procedures for the ArduPilot. Capable of running on Windows, Mac OS X, and Linux, the environment was composed in Java and based on Processing, avr-gcc, and other open source software.

    c. ArduPilot Shield V2 Kit with Airspeed Sensor

    The ArduPilot Shield V2 Kit introduces the capability of monitoring height, speed, and battery level. The kit in Figure 7 includes: ArduShield Board, Female Pin Headers, Male Pin Headers, Pitot Tube, custom-made FMA cable, Housing Connector Header, Three-Servo Extension, Bind Plug, Reset button, and extra wire.

    With a compact design that matched the ArduPilot board, compatibility issues were reduced and the following features pertained: on-board differential pressure sensor (MPXV5004DP) for airspeed measurement, 3.3V Voltage Regulator, voltage divider to measure battery level (up to 4 cell LIPOs), dedicated port for infrared sensors, support for 3Volts GPS including 3v3 TTL conversion, and mirrored status LED’s for Power, Status and GPS Lock. The Bind Plug served as an Auto-Shutdown GPS to eliminate the need to unplug the GPS when uploading new code or writing to the ArduPilot with the FTDI cable. Figure 8 shows a closer image of the Shield Board, where the black hub atop the board is the pitot tube connection.

    d. ArduPilot FTDI Cable

    Programming for the I/O controller board was accomplished via the ArduPilot FTDI cable shown in Figure 9. The polarity of the cable is visible through the ArduPilot “BLK” (black) and “GRN” (green) color labels. The TX/RX signals are 3.3volts, allowing greater flexibility, and the power supply is 5volts through the red wire.

    e. GPS Module

    Originally, the autopilot system was designed using the 20 Channel EM-406A SiRF III Receiver with Antenna to provide accurate GPS readings at a rate of four per second, in Figure 10. The unit weighed 16g including cable, offered extremely high sensitivity of 159dBm and 10m Positional Accuracy (5m with WAAS). The module required only 1s Hot Start, 38s Warm Start, 42s Cold Start, and 70mA at 4.5-6.5V. This was the smallest complete module available (30mm x 30mm x 10.5mm), outputting NMEA 0183 and SiRF binary protocol.

    However, through excessive testing and troubleshooting, the group concluded that the EM-406A module lacked reliability and failed to operate under controlled conditions. Therefore, the design was upgraded to utilize the GS407 U-Blox5 GPS operating at 2Hz, shown below in Figure 11. The module features a u-Blox 5H chipset with a Sarantel omni-directional Geo-helix S-type active antenna, at a real 2Hz refresh rate that can be used up to 4Hz over fifty channels. The unit supports UBX, NMEA and USB&NMEA with high immunity to RF interference while offering firmware upgradable capability.

    f. GPS Adapter and Cable

    In order to use the U-Blox5 with the ArduPilot Shield board, a uBlox adapter and cable were required. Figure 12 shows the uBlox GS406/GS407 adapter. The adapter converts to EM406A or easy to use pin headers (-,+,Tx,RX), and is configurable for servo connectors (-,+,S), thereby easily adaptable to the system overall. The required power supply for the adapter is 3.3V or 5V-12V. The on-board 3.3V power regulator ensure proper power supply from the ArduPilot Shield board, with a rechargeable backup battery, a small GPS profile similar to that of the Shield board. The EM406 Connector makes this unit ArduPilot-Ready with regular pin holes for easy integration.

    The EM-406/uBlox Adapter Cable in Figure 13 is a 15cm communication cable that mates with the EM406, EM401 and uBlox Adapter. The length is ideal for a UAV project where the GPS module may be a distance away from the controller board. The cable has two 6-pin JST connectors with 1mm pitch and is wired pin 1 to pin 1.

    g. XYZ Horizon Sensors

    Stabilization was achieved via the AttoPilot XYZ Horizon sensors, which act as both a gyroscope and an accelerometer, shown in Figure 14. The XY sensors are located on the right, while the left of the image is the Z component sensor. These thermopile, infrared sensors are less accurate than most commercial UAV autopilot systems including Inertial Measurement Units (IMUs) or Inertial Navigation Systems (INS); however, the compatibility issues are simplified. The sensors are used to determine the orientation of the aircraft with respect to temperature difference analysis of the ground and are compatible with ArduPilot and Range Video OSD. The Op-AMP gain is set to 1000x (1Mohms/1kohms).

    C. Cost Analysis

    Funding for this project was generously provided by the Undergraduate Research Initiative Grant from the Office of the Provost at the University of North Texas. The costs of the individual final parts for the flight control system are summarized in Table 1, totaling to $270.55 USD, excluding shipping and rush costs.

    Purpose Product Quantity Unit Cost (USD)
    Flight Control main board ArduPilot UAV Controller Board 1 24.95
    Altimeter, airspeed, and battery level sensor ArduPilot Shield V2 Kit 1 48.90
    GPS GS407 U-Blox5 GPS 2Hz 1 89.90
    GPS configuration uBlox Adapter 1 19.50
    GPS configuration EM 406/uBlox Adapter Cable 1 2.25
    Stabilization gyros AttoPilot XY and Z Horizon Sensors 1 114.60
    Programming FTDI Cable 1 19.90


    Design Process

    A. Configuration

    The controller board was pre-programmed for manual and automatic flight modes through interfacing the pilot board with the aircraft’s servo system. Manual mode allowed for complete user control of the flight, while automatic allowed the aircraft to fly independent of user control through stabilization and guidance maneuvers. The block diagram for the flight control system is shown in Figure 15.

    Figure 16 illustrates the preliminary design of the desired autopilot system, in which two main divisions house several functions: Flight Control and Flight Plan. The Flight Control division supports the battery monitor, pitot tube, altitude, and gyros. This component operated based on navigation directions from the Flight Plan division, consisting of the GPS, digital compass for failsafe, beacon for image recognition, and radar for object detection during flight to avoid crashing. The data logging function in memory keeps an accurate record of flight path. Error transmissions and status conditions would be achievable through the hammer board to base station.

    B. Functionality

    The group designed the autopilot system in Figure 17 as fully automated as possible by using three divisions of control over the aircraft: the ArduPilot, the human pilot, and the station pilot. This was accomplished by insuring that the ArduPilot system had all the functionality necessary to operate the plane without human interaction. The ArduPilot system had complete control over the engine and all onboard servo motors as long as the mode of operation was autonomous. The human pilot on the ground was in control of the plane as much, or as little, as he chose by maintaining full control over selecting manual or automated mode. In addition, the human pilot was responsible for the takeoff and landing of the plane. The station pilot was responsible for sending the ArduPilot system the GPS coordinates that allow for flight and aerial surveillance to take place. Also, the station pilot was responsible for handling any surveillance video that the plane captured.

    To understand the actions under certain conditions, the group analyzed scenario diagrams such as those shown in Figures 18 and 19. Figure 18 illustrates how the autopilot system entered Loiter mode to circle about a single position when the GPS lock was lost during flight. When the GPS signal was broken, the ailerons positioned for a right turn with a steady throttle and servos until a signal was regained.

    Figure 19 analyzes the scenario when the aircraft reached a waypoint. The Waypoint Counter was incremented and a signal was sent through the hammerboard to base station indicating that the waypoint was reached. The ArduPilot then requested the position, altitude, and airspeed from the sensory components through a looped process. The direction of the plane was continually altered though the servos, while the airspeed was maintained through the motor signal.

    C. Sub-System Code

    This project utilized the ArduPilot v2.5.04 code for the ArduPilot microcontroller, and was based on the Arduino platform. The code ArduPilot v2.5.04 allows for the many modes of autonomous flight that the group design desired. To customize the code for the components, the EasyStar Configuration File shown in Figure 20 required alterations. Within this code is the basic setup procedure for the Autopilot system including U-Blox GPS protocol, inverting the pitch for reversed servos, under a Normal mixing mode and input voltage of 5.2 V to the ArduPilot.

    The initialization file for the autopilot system is shown below in Figure 21. The code checks all of the onboard sensors and then calculates the current location, speed, and orientation of the aircraft. The code stabilizes and maneuvers the plane based on the autonomous flight mode that the plane is currently in.

    D. Modes of Operation

    The ArduPilot flight control system allows for four modes of autonomous flight: Stabilize, Fly by Wire, Return to Launch, and Loiter. In the Stabilization mode, the ArduPilot system controls the roll axis and allows the human pilot to control the pitch and yaw axis. With the Fly by Wire mode, the ArduPilot is in complete control and the human pilot monitors the flight from the ground. In Return to Launch, the ArduPilot system returns the plane to the home location specified pre-flight by the base station pilot. Finally, the Loiter mode holds the plane in a circling pattern to allow for the human pilot to regain control or to allow the base station pilot to upload a new flight mission. With all of these flight mode options, the flight control system used was able to achieve all of the group’s autonomous flight goals.

    E. Mission Planning

    One advantage to the ArduPilot system was the Config Tool provided by DIYDrones for Mission Planning with the ArduPilot system. The Tool allows for up to 48 waypoints and uses a satellite view which helped tremendously with the Discover Park location on the UNT north campus and was used to create sample missions around the building within walking distance. This tool allowed us to identify landmarks for simplified validation of waypoint arrival.

    The ‘H’ icon signified the home location and could be dragged to the appropriate starting location of the mission, thus allowing the test routes to start outside of Discover Park, rather than beginning from the design lab location. Setting the Home position in the Config Tool did not set the Home coordinate in the ArudPilot in order to ensure safety by dynamically creating the Home location at the field as part of the startup procedure. Additional waypoints were inserted via point-and-click selection, with the ending waypoint connected back to Home for completing the mission. The mission cycled through until AutoPilot was disengaged.

    The “Over Terrain” option, when selected, offered the ability to contact a government website to determine the actual altitude above sea-level at each waypoint, and then try to maintain the altitude above Home at each of the subsequent waypoints in the mission. Without this option checked, the ArduPilot would attempt to maintain the set value above Home, regardless of the ground appearance and value in relation to sea-level.

    The “Radius Limit” defined the required radial proximity in feet to the target waypoint before counting a hit and incrementing the waypoint count. The “Max Speed” and “Max Altitude” displayed the maximum values from the previous mission flight. “Roll Trim” and “Elevator Trim” were means for counteracting the variation in airframe and its tendencies from that of the assumed specifications.

    Once all desired waypoints were programmed, the route was uploaded to the board via the FTDI cable and clicking the “Write” button in the Config Tool. To view and modify the currently loaded mission from the board, the “Read” button must have been selected before adding any additional waypoints to the path.

    The missions could be planned and programmed in the design lab at Discovery Park before heading to the field due to the storage of missions in the non-volatile memory on the ArduPilot. Thus, the system allowed for avoidance of losing the route when powering down the ArduPilot system after configuration with the Config Tool.

    The design of the Base Station configuration tool reflected the functionality of the DIYDrone ArduPilot Config Tool for simplified system integration in Testing Phase 3.

    F. Field Setup

    Using the ArduPilot to control the throttle reduced the field setup process to merely a wait-for-lock situation with the GPS. Upon power-up, the system automatically began searching for the GPS signals required for the GPS lock. The GPS fix blue LED flashed until a lock was acquired, then the light became a solid illumination when a consistent lock was achieved. The home location and flight settings were transferred from non-volatile memory to the cache.

    G. Error Transmissions

    In the event that an error occurred during flight, the AutoPilot system needed to make a decision of the next course of action. Thus, safe flight for the UAV was ensured through detection of low battery, change in direction, waypoint reached, change of altitude, change of speed, or loss of control, as shown in Figure 22.

    If a system malfunction occurred during flight, the system would employ error code transmissions to the hammerboard and consider a Return Home route based on stored checkpoints. For example, if the GPS failed or the system approached low battery, warning codes would be generated for transmission to the base station. Priorities Transmissions would also be incorporated to inform the base station when critical versus warning errors occurred and the course of action. Figure 23 illustrates the process of error checking in the autopilot system, beginning with checking for a GPS lock and autopilot status verification. If GPS or Autopilot failed, then the system needed to combat a spiral descent, return to home, and alert base station. If the plane was too far away, the system checked the current position versus the Flight Plan, and updated the onboard flight path.


    A. Sub-System Prototype

    The prototype of the Flight Control system simply included the individual components integrated as a single subsystem as the AutoPilot, separate from the plane. The prototype and final system underwent four stages of testing for verifying functionality and compatibility. The prototype was to be capable of monitoring airspeed, height, battery level, and stabilization. In addition, the system was aware of the GPS readings and the desired waypoints.

    B. Overall Aircraft Prototype

    For the overall prototype, all electronic systems were attached to the plane, allowing the UAV to fly with and without manual control from the base station. The UAV was a robotic control system responsible for flying to a point and relaying visual reconnaissance. The base station will send instructions via the long range Bluetooth extender modules to the UAV, which would then follow the instructions and send feedback back to the base station via the same Bluetooth connection. The preliminary prototype was termed the Duct Flyer by the team, due to its resilience to numerous crashes during flight testing. Figure 24 shows the initial plane prototype after 13 crashes.

    The final prototype incorporated all of the UAV subsystems aboard the plane, as shown in Figure 25. The configurations and integration procedures are discussed in a later section of this report, providing additional photography of the orientation of equipment aboard the aircraft prototype.

    The wings of the final prototype were reinforced due to concerns for payload support across the body of the plane, as shown in Figure 26. Straightened clothes-hanger wire was glued within an etched groove with clear packaging tape for additional adhesive.

    Testing Platform

    The testing process was divided into four phases to ensure complete functionality of the system as whole, as well as the individual group components.

    A. Phase One: Individual Components Testing

    The first phase involved testing each part or circuit of the sub-system individually to verify that each element met the requirements. Each component of the flight control system was powered up to verify that the component functioned as anticipated. To begin phase one, the group ran troubleshooting procedures with the Raw_GPS_tester to extract the hxidecimal vaues at the GPS serial port to determine if the module was receiving signals from GPS transmitters. Through the use of the EM406_tester, the group determined that the EM406A module was insufficient for the requirements of the system due to unreliability and apparent malfunction. The module would randomly acquire a lock, and it did not show any successful or obvious pattern between functionality indoors versus outdoors. Several versions of the code were tried before selecting the v2.5.04 code, due to the complications with the GPS module.

    Proceeding with the upgraded U-Blox module, the group conducted debugging with case diagrams and scenario diagrams to understand the progression of the ArduPilot code and functionality. The upgraded module achieved successful locks both indoors and outdoors, with few complications from compatibility. The output signals of the ArduPilot system were monitored through the Arduino IDE COM4 Serial Reader results. The latitude, longitude, and GPS calculated airspeed results are shown in Figure 27 below, illustrating the use of case statements and additional signal prints, along with the successful GPS lock within the Senior Design lab at Discovery Park.

    The position acquired from the U-Blox GPS shown above was confirmed with Google Maps, as shown below in Figure 28. The location was almost exact within Discovery Park, as the lock was acquired in the Senior Design lab in the Computer Engineering wing.

    Verification of the sensory components continued with testing the aileron response based on the thermopile sensor readings. The readings from the COM4 pane supporting alterations in IR data from the XYZ sensors are shown in Figure 29, while the aileron servo response to the body heat is shown in Figure 30. Notice that the thermopiles are sensing greater heat from the right side of the plane, simulating a sharp clockwise roll towards the ground, and the system is correcting the movement by raising the left aileron to pull the plane back to the left for stabilization in the roll axis. The pitot tube readings are displayed below in Figure 31 as ASP and the steady throttle reading with THH.

    Since each of the individual components were functioning properly, the group proceeded to Phase Two of the testing platform to validate subsystem integration.

    B. Phase Two: Sub-Systems Testing

    Once each system was assembled, the full autopilot system was tested, separate from the remaining subsystems, to insure that the system functioned correctly. The Systems Testing phase checked for the desired functionality of the flight control system, once the system was fully integrated. If the phase two test failed, the system was evaluated to determine if the failure was an individual part or system wide.

    To conduct Phase Two testing, the group programmed several missions to the board and reviewed the system awareness of stabilization and navigation readings as a whole autopilot subsystem. The Mission Planning feature with the Config Tool from ArduPilot allowed programmability at this early stage in design, while the COM4 Serial Reader results provided real-time visual system status and actions. The pre-programmed sample mission was as shown in Figure 32, while a section of the system awareness results are shown in Figure 33.

    The system results below illustrate the ArduPilot’s awareness of real-time data from the GPS, thermopile sensors, mission status, throttle, and distance to waypoint. Therefore, Phase Two testing was successfully completed.

    C. Phase Three: Systems Integration Testing

    After all the electronic parts were added to the plane, the third testing phase checked for complete functionality between subsystems with the plane remaining on the ground. Communication failures in the third phase of testing resulted in an evaluation of the communication protocols used by the systems. Figure 34 shows all subsystems mounted in the cockpit of the plane, with the exception of the images of sensory and video mounts (shown in the integration section of the report).

    Figure 35 below shows the abbreviated COM4 system response through the ground simulation with all subsystems. The excerpts illustrate the movement of mission waypoints from the memory to the cache for execution and the progression from one waypoint to the next once the plane is within the acceptable radius limit of 15 feet. The autopilot system guided the plane through the mission, looping back to the first waypoint once all points had been reached.

    Another abbreviated version of these COM4 results was captured to verify awareness and reactions of the sensory components aside from navigation. Figure 36 below shows the alterations made by the autopilot system in order to reach the waypoint progressions from the above code. Such alterations are seen in the roll and pitch values, which are controlled by the ArduPilot through the servos connections. The throttle maintained a constant speed through the walkthrough, which was as expected. With successful subsystem integration, the group proceeded to Phase Four of testing for in-flight verification of functionality.

    D. Phase Four: Overall System Testing

    The fourth phase of testing originally involved both indoor and outdoor courses, requiring tight maneuvers within the Denton, Texas area. This phase was a series of designated flights under varying, non-extreme weather conditions to prove that the design meets specifications. In order to test various aspects of flight, the group proposed several stages: Preset Flight Routes, Special Landings, Road Chase, and Double Blind.

    The Preset Flight Routes division tested the automatic mode of the flight control system by requiring the autopilot system to guide the plane in flight to each of the pre-programmed waypoints. This test was similar to that of Phase Three, except the systems were tested in the air with autopilot engaged. For this phase, the group uploaded the mission in Figure 37 to the ArduPilot and completed field setup near the home location, as shown in Figure 38.

    Under the time constraints to confirm that goals had been achieved for the project course purposes, the datalogging function was not complete in time for the first execution of Phase Four testing. Therefore, the results of the COM4 read for sensory data and navigation records are not available at this time for the test flight.

    However, through analyzing the videos of the flight and pictures of the resulting damage after landing, the group can reach some informative conclusions about the subsystems and the associated payload. For example, Figures 39 and 40 show how the overall fuselage and tail stayed in-tact, with damage mostly to the wing and nose of the plane. The video of the flight seems to reveal that the hold-throttle value set in the autopilot was too low for the Cessna’s payload. Therefore, in future testing situations the max throttle to hold while autopilot is engaged should either be set to a higher value, or simply set to match the throttle value last used in the manual mode prior to switching into autopilot mode.

    A closer look at the wing damage after the crash is shown in Figure 41 below. It appears that the wing could not support the payload, despite the reinforcements. After discussion at the end of the project, the group determined that balsa wood would have provided greater stability to the wing support due to the resistance to bending over that of wire.

    Figure 42 shows that, after a violent landing, the systems inside were still fully operational and unharmed. The status light was indicating autopilot mode and the GPS lock light was still illuminated. In addition, the cameras were transmitting video from their mounts aboard the fuselage and nose. In correcting the autopilot throttle amount to produce efficient thrust and repairing the wing with greater support, the test flights to follow this shall provide more conclusive results for the system by reaching all waypoints.

    Although the plane successfully flew through waypoints in autopilot mode with the subsystems aboard, the fellowship is currently in the process of continuing Phase Four testing to ensure full functionality of the systems. Such continued effort would require the manual mode to be challenged in the Special Landings stage by the user landing the plan at a target position, using camera assistance. Landing in a particular target zone based on stored waypoints would test the assisted mode of the flight control system. In addition, the UAV’s landing capabilities could be tested by landing on concrete, asphalt, grass, and dirt.

    Another test for the manual mode is the Road Chase stage, in which the plane “follows” a marked car or beacon based on control from the base station. This will be done at Discovery Park due to the FAA constraints given in section 2-C.

    The Double Blind testing stage would have consisted of completely remote flight to test the automatic mode of the flight control system configuration, in which we would not see the plane for take-off, flight, nor landing. However, we cannot proceed with this stage of testing due to government regulations requiring the plane be in visual sight at all times of flight.

    Sub-System Integration

    The ArduPilot Controller board is the hub that interlinks the subcomponents of the autopilot system. The 6-pin GPS connector attaches the uBlox adapter (thus the U-Blox5 GPS) to the red ArduPilot board, while the four RC-in channels are used for the manual control. The Shield Kit provides connectivity for the sensory components. Assembly was required in order to achieve communication and integration between the components, and the guidance was provided by DIYDrones through the manual. To begin, the connectors highlighted in blue in Figure 43 below were soldered to the red controller board and a wire was wrapped to connect the throttle.

    Next, the students soldered infrared sensor ports to the blue Shield board and placed the pins in the headers to maintain alignment. Then the pins were soldered into the Shield, including the FTDI port, as shown below in Figure 44. The Shield was then mounted onto the Controller board, as shown in Figure 45.

    Next, the reset button (left), bind plug (right), and secondary FTDI port (lower) were soldered in the locations shown from an overhead view in Figure 46. Polarity was especially important for these components, and can be attributed as shown below.

    After soldering the critical connections, the group attached the ArduPilot inputs, including those to the servos, to the RC receiver with female-to-female cables. The resultant circuitry is shown below in Figure 47.

    After assembling all the ArduPilot Controller board, Shield board, and sensory connections, the team began prototyping the placements of the components aboard the Cessna frame. Figure 48 shows the location of the reset button on the side of the fuselage, under the back of the right wing, providing some protection from accidental triggering.

    The camera group contacted the flight control group for assistance with identifying a mounting procedure for the nose camera. After carefully looking at the orientation of the camera and desired functionality, the flight controls members mounted the nose camera on the prototype plane as shown below in Figure 49. A piece of paper wrapped around the camera and pulled through the cut-hole in the nose-cone provided the necessary tension and support necessary to keep the camera firmly in place. However, the location was in close proximity to the powerful engine motor, which did lead to shaky images and signal interference. Under future designs, the camera location and mounting procedure should be reanalyzed for further stability at this vulnerable position on the plane. The camera group successfully mounted the belly camera with limited interference from the servos located inside the fuselage, as shown in Figure 50.

    The location of the horizon sensors was critical for accurate telemetry, where the XY sensors needed to be positioned firmly, flat against the fuselage. Upon further analysis of the prototype, the XY sensors shown below in Figure 51 need to be turned approximately 35 degrees in order to maintain proper XY-axes orientation with respect to the body of the plane. The Z horizon sensor, located farther toward the tail of the aircraft, appears to be mounted correctly and providing accurate data. The overall mounting of the thermopile sensors was successful in that they were firmly intact and could acquire adequate readings.

    Integration with the base station and camera systems software is to be implemented further, however the prototype of integration is shown below in Figure 52. This setup was used in the preliminary stages of Phase Four testing.

    The Cessna 182 model provided sufficient room for inserting the additional components to alter the plane toward automatic flight. The GPS antenna can be seen on the far left side of Figure 53, with the RC receiver and ArduPilot hub cascading to the right. From this overhead view, the nose of the plane is to the left, while the tail is to the right. A closer view of the GPS mount within the cockpit of the fuselage is shown in Figure 54. Most of the equipment was kept in place using Velcro-strips and electrical tape for added support.

    Field setup required integration as well, where the mission was uploaded to the board and camera system engaged. The field setup of the second prototype is shown below in Figures 55 and 56. Securely attaching the wing and aileron cords was critical to full system operation, as well as the communication between the subsystems.

    Project Schedule

    At the beginning of the project, the overall UAV project composed a collaborative timeline of goals, as shown in Figure 57. Due to realistic, unforeseen constraints with parts availability and purchasing permissions affiliated with a sponsored project, the timeline served as a guideline rather than a set schedule.


    Upon completion of the research project, the flight control system offers an autopilot system with four modes of operation: Stabilize, Fly by Wire, Return to Launch, and Loiter along customizable flight paths. With the completion of a system to monitor and maintain flight, the Flight Control system will contribute to the final integration of the system with the remaining UAV divisions. Under future development, the routes can be preprogrammed or modified mid-flight from the base station.

    A. Demonstrations and Documentations

    The final project demonstration for the course was held at the end of the semester, at which time the group shall provide a final report from each subdivision in the UAV Fellowship and an inclusive parts document. A flight over the University of North Texas main campus at a lower altitude, with Dean’s approval, for faculty and student viewing was considered. In addition, publishing the aerial reconnaissance snapshot of the Administration Building on the school website would be desirable.

    B. Presentations

    In addition to the progress and final presentations for the course, the members conducted a presentation to the faculty, students, and visitors at the University of North Texas Scholars Day event.

    Future Goals and Recommendations

    One of the most influential aspects of completing a project is to derive ideas and suggestions for future implementation. For instance, the conducting group could test stabilization of the AutoPilot system without throttle control to minimize the influence of this component. Future designs could investigate behaviors and constraints under variable climate conditions. The current design is unstable in wet or cold conditions, which could also be improved with the use of IMUs instead of heat-sensitive thermopile sensors. In addition, the group intended to design a fifth mode of assisted operation for automated landing and take-off purposes. Image recognition and additional image processing features could also be implemented at the base station under future designs. Dr. Namuduri voiced his aspiration to form a flock of UAVs to function in military formations.

    Real-World Applications

    The design of a small-scale electric power UAV is not only beneficial to familiarizing the group with engineering practices, but also helps to bring realization of real world applications of our profession and the ethical issues thereby associated. Such applications of UAV design pertain to civilian level through crop monitoring, irrigation, traffic monitoring, and “return to home” safety measures for when RC aircrafts fly out of range of radio contact. Additionally, the design of UAVs could assist in civilian services such as firefighting and police surveillance from a safer distance. Military uses would be another form of UAV utilized in special operations and potentially resupplying soldiers in the field.

    Ethical Issues

    The Engineering Code of Ethics and Standards set forth by IEEE outline a foundation of moral and ethical rules to be adhered to by all studying and practicing engineers. Therefore, we must consider the code at the utmost importance and abide by the IEEE guidelines.

    Through the design and simulation in this project, we recognize several ethical issues that could arise including: improper or unauthorized use, possible use in terrorism, and privacy concerns. Furthermore, the instances of failure would introduce conflict between the institution(s) or individual(s) at fault. In many situations the answer may not be as clear, and so begins a cycle of blame and little resolution to those affected.

    With the recent movement toward environmentally cognizant design and implementation, the team attempted to identify and use low power components running off of the same battery unit. In addition, the smallest airframe possible was utilized for such power consumption considerations. An introduction of a new electronic system device inevitably consumes power and leaks useful current throughout operation, thus the design affects the environment. However, the effects imposed are what need increased research and analysis.

    Undergraduate Research Enrichment Activity

    Part of the funding from the Provost’s Undergraduate Research Initiative and the Honors College was used to fund a day-trip to the Johnson Space Center in Houston, TX after project completion in May 2010. This opportunity to meet with aeronautical and systems engineers certainly expanded the experience and knowledge of the group members.