Editor's note: This article was originally published in December 2016 and has been updated to include additional information.
Over the past few years, interest in civilian, military, and commercial drones has grown rapidly, which has also driven the maker community's interest in open source drone projects.
The list of unmanned aerial devices (UAVs) that fit the moniker of drone seems to be constantly expanding. These days, the term seems to encompass everything from what is essentially a cheap, multi-bladed toy helicopter, all the way up to custom-built soaring machines with incredibly adept artificial intelligence capabilities.
Most people are looking for something in the middle. They'd like a flying vehicle that is large enough to support a decently long flight time, hold a camera or other data capture device, and perhaps be able to control some (or all) of its flight autonomously using pre-programmed coordinates or real-time data.
The premade devices in this space vary greatly in both price and build quality, and most of the ones I've seen use proprietary software and hardware. But you don't have to go this route! The drone-building community has created many software and hardware projects under open licenses that allow you to build, repair, customize, and experiment with your own drone, or to supplement the use of drones in some other way. Let's take a look at some of those projects.
Paparazzi UAV is a GPLv2 licensed project that combines both the software and hardware needed to build and fly an open source vehicle under open licenses. Its primary focus is autonomous flight, and it's designed to be portable to allow operators to easily take their devices into the field and program their flights across a series of waypoints. Source code and releases of the software components can be found on GitHub, and tutorials for adapting it to off-the-shelf or custom-built hardware can be found on the project's wiki.
ArduPilot claims it's "the most advanced, full-featured, and reliable open source autopilot software available." That's probably not blowing smoke: it's installed in more than 1 million drones and other UAVs, including airplanes, helicopters, boats, and submarines, and it has a large number of contributors working on the project. Its features include advanced data-logging, analysis, and simulation tools, and it's supported by a broad ecosystem of third-party sensors, companion computers, and communication systems.
ArduPilot founded the Dronecode project (described below), but split from it in 2016 over disagreements around open source licensing; ArduPilot is licensed under GPLv3, which co-founder Craig Elder says leads to greater collaboration because all code changes must be openly published, unlike Dronecode's BSD license. ArduPilot's source code is available on GitHub.
The Dronecode project is a Linux Foundation-sponsored project working to build a common open source platform for UAV development. It's been through a lot of changes in the last few years, but today it serves as the governance structure for the components of the overall platform, where the project's actual development occurs. Those components include the PX4 autopilot flight control system, the MAVLink robotics communication toolkit, and the QGroundControl user interface for flight control, mission planning, and configuration, all of which have individual GitHub repositories.
The LibrePilot software suite is designed to control multi-copters and other radio-controlled drones. The project's roots lie in the Open Pilot UAV software project, and its goals are to support research and development of software and hardware for vehicle control and stabilization, unmanned autonomous vehicles, and robotics applications. LibreProject's founders are committed to creating an open and collaborative environment, including working with similar projects. The main project is hosted on BitBucket and it's licensed under GPLv3.
Flone is a cool project that basically turns a smartphone into a drone. It combines a digitally fabricated airframe with software that allows an Android smartphone on the ground to control the one strapped onto the airframe via Bluetooth. It is licensed under GPLv3 and its source code resides on GitHub. English-speaking developers and drone enthusiasts should know that the project is based in Spain and most of the documentation and other materials are in Spanish.
So you've used a drone to capture a bunch of overhead imagery of an area of interest. Now what? OpenDroneMap may be able to help. This software takes this aerial imagery and helps you process it into point clouds, digital surface and elevation models, or just orthorectify the imagery (in essence, line up the imagery to a known coordinate system for further analysis).
Grab the source or a beta release on GitHub under a GPLv3 license, as well as a sample data set, and see whether it's a good fit for you; the project's wiki has more information. OpenDroneMap is designed to be run in Linux and can be run with Docker to avoid needing the exact configuration environment the project was built for.
DronePan is an iOS app (with an Android app on the way) that automates panoramic photography with DJI drones. As Preston Ward explained in an Opensource.com article, DronePan, "temporarily takes control of the [drone's] aircraft heading and camera angle. After a simple tap or two, DronePan begins shooting 15 to 25 photos automatically with the proper overlap required for an aerial spherical panorama. When the panorama is complete, users resume manual control and can fly to other locations to shoot more panoramas." DronePan is licensed under the GPLv3 license; you can access its source code on GitHub.
Drone Journalism Lab operations manual
One of the more interesting ways drones are impacting everyday life is in journalism, especially amateur investigative journalism, bringing an eye to the sky to document what's going on in the world around us. The Drone Journalism Lab at the University of Nebraska-Lincoln exists to educate journalists about how drones can be used legally and ethically as a part of the journalistic process. To further that goal, the project has open sourced its operations manual, available on GitHub or as a PDF, under a Creative Commons license to bring best practices to any news organization hoping to use a drone to further its reporting capabilities.
This is definitely an incomplete list of open source drone projects; others you may want to check out include MatrixPilot and AdaPilot. Since we plan to add to this list, please let us know what other open source or open hardware drone projects are out there. Which ones are targeted towards relative beginners, and which ones are going to take more effort and commitment to put to use? Share your insights in the comments below.