Kinect Feedback for Quadrotor Hover.

Project Overview

As part of a lab outreach effort, I developed a small quadrotor platform to display for the annual National Robotics Week event at Chicago's Museum of Science and Industry. The hardware for the quadrotor is a small remote control toy commercially available. To allow for custom control code, I replaced the control board with a custom PCB containing a PIC32 microcontroller, wireless chip, and motor drivers. The goal of the quadrotor was to hover autonomously as part of an exhibit station using feedback from a Microsoft Kinect.

The PIC32 control code running on the quadrotor is available on Github: https://git.io/adwquad

Hardware Details

The quadrotor platform uses four simple brushed DC motors for the rotors. I chose to drive them with simple N-channel MOSFETs with a PWM signal. A pair of motors is run using a single 2-channel package. Wireless communication to a computer station is implemented using a XBEE wireless chip over a serial communication protocol. A PIC32 chip serves as the main controller on-board the quadrotor, receiving position feedback from the computer station connected to the Kinect. The loop rate on the Kinect feedback is 30Hz.

Controller Details

A simple LQR controller runs on the quadrotor itself from a reduced model representing the inertial properties of the quadrotor. On-board feedback is provided from a 6-axis gyro/accelerometer package using a complementarity filter for position control. For autonomous hover, absolute position feedback is necessary to prevent significant drift; therefore, the Kinect is used to provide that feedback. The Point Cloud Library (PCL) is used for data processing from the Kinect signal. A Euclidean cluster extraction algorithm is then used to extract the point cloud for the quadrotor and a centroid calculation is made to determine the quadrotor position.

Related Projects.