I've been doing aerial photography for a couple of years using a camera rig suspended from a kite line. Strange though it might seem, aside from balloon aerial photography it's the oldest form of aerial photography on record, and works quite well. The bulk of the aerial photography I've done has been under radio control. But there are times and places where radio transmitters are either not allowed (right next to radio telescopes) or simply not handy (hiking or mountain climbing). There are automatic rig controllers out there, but I wanted to make my own.
At the moment it's running on a Baby-Orangutan SV-168, but I'm going to move the code over to an Orangutan in the near future because I'm getting to the point where I need more of a user interface for setup. The only hardware hurdle with the Baby-O was to make a header board that brought each of the I/O pins out to three-pin headers, similar to the layout of the larger Orangutan controllers. Only instead of sockets, it's equipped with pins so standard hobby servos could be plugged in:
This is a better shot, showing its location on the camera rig:
The idea is to pan and tilt the camera through a fixed pattern similar to how a Gigapan platform works. The only difference is that the whole thing is suspended in the air, so the view is a little different. With the right wind and the proper choice of kite, the camera's position can be quite stable with very little wind-induced shake to the rig. It's like having a tripod in the sky.
With one big exception: It's not rigid. So camera and rig-induced shake can happen. Compact digital cameras don't use a flip-mirror, so the camera-induced shake common with DSLRs and medium format cameras isn't a problem. But rig shake is. Using stock servo code, the motion of the pan and tilt servos caused severe rig shake that lasted for over a second. I wrote a new set of servo routines that use a trapezoidal velocity profile to move the servos. This made for much smoother motion, and almost no rig shake at the end of each move. The difference is demonstrated in a video here:
Since making that video I've stripped out most of the delays I'd put into the code to let the rig settle at the end of each move. It shaved a second and a half off of each shot time, making for a much faster pattern. Unfortunately I still haven't had a chance to test this controller in the air. We've been under a weather system for more than a week, and my kites have been grounded. Such is the nature of aerial photography, or really any form of photography. Ah well.
I'll keep posting photos on Flickr as they come up. Here's the set for this controller:
Right now the new servo code has some glitches, mostly dealing with my own sloppy attention to variable types and casting during math operations. Once I've been through it with a fine toothed comb, I'll be more than happy to post it here or (gasp) update the O-Lib code. In any case it'll be free for anyone to use.
And in case anyone wondered where I've been, I've been out flying kites and taking pictures.