Paparazzi Autopilot for Linux

This project has been inactive since I left Rutgers in July 2010. I currently contribute to the ArduPilot Project. -pat

Pat Hickey and Bradley Lord

The Paparazzi project is a complete hardware and software solution for controlling model aircraft. It is a large and mature open source project with a successful user community. The Paparazzi project has developed microcontroller-based autopilot hardware, the latest release of which is the Tiny v2.

While the Tiny is very capable as a standalone autopilot, we wanted a system that would be easier to integrate with a Linux based camera system, and could be built with off the shelf hardware.

Bradley Lord and I ported the Paparazzi autopilot code from the Tiny 2 hardware to Linux. Using an off the shelf single board computer and USB devices, we've duplicated the functionality of the Tiny with the exception of PPM input. The current state of the project is a very bare port of the Paparazzi airborne code, but we're working to improve the compilation system and make Paparazzi a better Linux citizen.

We currently have the Paparazzi airborne code running using the following hardware:

This project is still in development, and is probably unsuitable for use without some major work. If you'd like to make use of the code, it is released under the same GPL2 License as the Paparazzi project.

The following features are in progress:

Images - Click to Enlarge

We're currently using a 60 size trainer borrowed from our flight instructor (Thanks Larry Kosinar of Tri-County RC Club) as the autopilot test bed. We'll be moving to a 10ft wingspan plane soon for Rutgers University's entry into the 2010 AUVSI UAS Competition.

Left to right: voltage regulator, Pololu servo controller and mux with Futaba 2.4GHz receiver, Beagleboard flight computer, Ublox LEA-5H based GPS with Sparkfun FTDI adapter, Xbee Pro 2.4Ghz modem with Sparkfun Xbee Explorer adapter.

Thermopile-based attitude sensor, mounted to fuselage. The analog amplification circuit is located on each sensor, so they are simply plugged into an Arduino's ADCs to communicate with the computer.

The beagleboard is packaged for flight in an anti-static bag, wrapped in foam rubber. Only power, RS232, and a single USB port are used.

System schematic: view bigger as image, pdf.

Powered Belkin USB hub located in rear of fuselage, along with Hawkins wifi adapter. GPS is velcroed to fuselage ceiling and Xbee is velcroed to fuselage floor. The wifi adapter and Xbee have separate RP-SMA 2.4Ghz antennas on 30cm extensions so they can be located at opposite ends of the plane.

The rear of the plane with all devices installed. We isolated everything we could in foam rubber for vibration resistance.

Front of fuselage, top view: flight computer sits alongside 1500mAh 11.1v LiPo battery in front of the servo tray. The R/C receiver and servo output electronics are located underneath.

Everything packed in and running: Thinkpad is running Paparazzi ground station, Acer is logged into flight computer over wifi running top.

Making use of this code:

You can download the latest release at github. Please contact us if you have interest and want to follow our progress or submit changes.

You'll want to go to the Paparazzi wiki and follow their installation instructions. If you're using Ubuntu as your development machine (we are) make sure you install the paparazzi-dev and paparazzi-arm7 packages, as both are needed to build the source tree. (We're not using the -arm7 packages or any cross compiler - c code is compiled natively on the flight computer.)

Clone our git repository and set your PAPARAZZI_HOME and PAPARAZZI_SRC variables to point to it. It based off the Paparazzi svn trunk rev 4543 (05 Feb 10). We haven't integrated our changes back into the subversion tracking system because we don't use subversion, and we made enough changes to the files in sw/airborne that it won't be compatible with the trunk any more. We removed a lot of extraneous files to keep the download size small, so you may want to check out what the trunk offers as well.

Familiarize yourself with the following directories and configuration files. Our changes have been made to the trunk in these places: