Discount Satellite Imagery

I purchased my first drone, a 3D Robotics IRIS+, at a discount this past Christmas. Although I thought of the IRIS+ as a compromise when I first purchased it, I have since fallen in love with it. Unfortunately it's since been discontinued by 3DR, but 3D printing resources have been open sourced by 3DR, which can be used for either replacement parts or to build a whole drone from scratch.

Camera Setup

I'm also using a now-discontinued Canon S110 digital camera with my drone, mounted downward facing for the "satellite imagery" angle. The camera runs the CHDK custom firmware and the KAP UAV script. The firmware optimizes the shutter speed / processing and allows for control of the camera via USB cable.

In addition to the camera and firmware, setting this up required a custom camera mount bracket as well as camera trigger and UBEC cables. The end result is quality imagery from the camera, with image capture triggered via remote control. CHDK also adds a neat feature to turn the camera off after a set time, which will close the lens before landing.

Flight Control

Out of the box the IRIS+ is radio controlled. Dronekit provides a way to interface with the autopilot via radio and control flight programatically using Python. In order to capture the top down imagery, I needed to be able to move the drone to a specific point and signal the camera to capture an image. I put together a first attempt with Argon, a simple console application to control my drone from a shell on my Macbook.

Measuring Scale

In order to take images to use for image stitching, I needed to be able to determine the size of the area underneath the camera. I picked up some soccer cones and paracord, measured and cut a ten meter piece of paracord, and used this to space the cones appart before taking pictures. Once the images are back on my Macbook, I use GIMP to measure the distance in pixels between the cones in the image. I had the best results taking a number of images at a few different altitudes and averaging the pixel/meter conversions.

click image to enlarge

Image Stitching

I started off doing some experimentation with OpenCV to stitch the images from my drone. Although this worked, it lacked the tooling to get the best quality out of my images. I did some searching around and found Autopano. Autopano not only handles the stitching, but provides an entire image editing suite for assembing stitched images. The image below is the end result of the toolchain I've created. Be sure to click on it to view it full sized.

click image to enlarge

published on 2016-09-13
updated on 2016-09-13