Conducted at the Flight Dynamics and Control Laboratory at The George Washington University from Jan. 2013 to May 2014
From January 2013 to May 2014, I performed research in the Flight Dynamics and Control Laboratory (FDCL) at The George Washington University’s School of Engineering and Applied Science. Dr. Taeyoung Lee was both my research advisor and the head of FDCL. During my senior year at GW, I joined FDCL as an undergraduate research assistant to aid in UAV development, specifically to design a printed circuit board for quadrotors to handle power distribution and communication interfacing. After graduating in May 2013, I began pursuing an independent research topic for my Master's Thesis: landing a quadrotor on a flat inclined surface autonomously using a novel low-cost laser-and-camera system to estimate the relative ground plane angle and altitude. Below you may find more detailed explanations of my work in FDCL.
A quadrotor is a popular type of unmanned aerial vehicle (UAV) having two pairs of counter-rotating blades. Traditionally, quadrotors take off and land from uninclined flat ground; a quadrotor is an underactuated system, so hovering is only possible at an uninclined attitude. However, it may be desirable for a quadrotor to have the capability to land on an inclined surface. For example, landing a quadrotor on the deck of a ship in rough waters could be a challenging task since the landing surface’s inclination oscillates with time. To carefully land a quadrotor on a flat inclined surface, knowledge of the surface’s orientation with respect to the quadrotor is required. To this end, a new onboard system is proposed which utilizes a camera along with inexpensive laser modules to estimate the distance to the ground plane along with its relative angle. The camera and laser modules are fixed to the quadrotor frame, and the camera detects the projections of the laser modules on the ground surface using brightness detection, which is not very computationally expensive. With the coordinates of the laser dot centroids, geometrical considerations yield the altitude of the quadrotor and the relative ground plane angle. This information can then be used to design an aggressive landing trajectory to align the quadrotor’s attitude to the landing surface at touch down.
The goal of the image processing scheme is to turn a raw image from the onboard camera into eight pairs (or however many laser modules are being used) of coordinates indicating the locations of the laser dots in the 2D image plane. A raw frame is acquired and manipulated in OpenCV to convert it to a binary image based on pixel brightness. Since the laser dots are much brighter than the surroundings (image parameters such as exposure time may need to be adjusted based on the lighting situation), only the pixels representing the laser dots will be white in the binary image; all other pixels are set to black. OpenCV is then used to detect contours, or closed shapes, in the binary image. Once the contours are obtained, their centroids are calculated and treated as the coordinates of the laser dots in the 2D image plane. Geometric relations have been derived to relate these 2D coordinates to the true 3D world coordinates.
To obtain an estimate of the altitude and normal vector describing the ground plane, the set of coordinates are input to a nonlinear least squares algorithm, which requires the derived geometric relations along with known information such as the quadrotor’s attitude and vectors describing the laser positions and orientations. In this way, an optimal estimate can be calculated from multiple redundant measurements, and a weighting matrix can be implemented to improve results based on statistical uncertainties.
The proposed system is developed for a custom-built quadrotor. The quadrotor is assembled from a commercially-available frame made of carbon fiber and fitted with 3D printed plastic parts to accommodate the unique features. A Gumstix Overo Computer-on-Module (COM) runs embedded Linux and handles control, communication, and image processing. Four brushless DC motors serve as actuators and are controlled by commercial electronic speed controllers (ESC’s); motor commands are sent via I2C. Controller and image processing code is written in C with the OpenCV library along with libdc1394. The controller code was largely written previously by other members of FDCL (Dr. Daewon Lee and Farhad Goodarzi, with modifications by Evan Kaufman), but all image processing code was written by myself for this system. A CMOS camera is mounted to the underside of the quadrotor along with eight laser modules. Data from an onboard inertial measurement unit (IMU) is fused with data from Vicon Motion Capture cameras to precisely obtain the quadrotor’s position, attitude, and angular velocity during flight. The electronic interface board linking the various components of the system was developed by myself and is discussed more below.
When I joined in early 2013, FDCL lacked an electrical engineer or someone with experience designing printed circuit boards (PCB’s). Since multi-rotor craft often require custom electronics for power distribution and communication interfacing, I was tasked with learning some basics of embedded electronics and PCB design in CadSoft EAGLE PCB. Using this software, I designed a PCB for the lab’s quadrotors that distributes power from a battery to each of the four motors and shifts voltage levels for I2C and serial communication. The latest version was tailored to my vision system and can power eight laser modules along with a camera. Renders of this board design are given below courtesy of OSH Park, the service used to produce the boards. I assembled the boards myself using surface mount soldering, another skill I developed for the lab. A photograph of a completed board is also provided below.