Agribotix GoPro Adventure: Part 3 - Rolling Shutter

In our two previous GoPro blogs (Part 1 and Part 2) we've experimented with ways of hacking the GoPro to make it useful as an ag drone camera and pointed out some problems.  We solved most of the problems, but Part 2 left us with a show stopper: the shutter speed of the GoPro can't be set by the user.  It's not a problem in bright sun, but in low light the shutter speed gets as low as 1/60th, which is disaster for an aircraft moving at 15 m/s.

Or is it?  Jimmy was out flying last week right around sunset and he returned some absolutely stunning imagery at around 1/60th.  The shot below is a zoomed-in bit of an image showing a dirt road about 5m wide.  Note the fence posts along the left edge that are sharp.  With the plane flying at 100m AGL and 15 m/s, the camera traveled 0.25m while the shutter was open so the smearing should have been horrible.  But we can't detect any at all.  What happened?

We're still trying to figure it out, but we believe it is due to the rolling shutter on the GoPro's CMOS sensor (and all CMOS sensors).  Normally rolling shutter is considered an annoyance (e.g. propellers that turn into scimitars), but it appears to be saving our bacon in this case.  Our theory (yet to be proven) is that the rolling shutter scans through the entire image in the shutter-open time slot, but every line of pixels is exposed for only a fraction of that time (if this isn't clear, there's a nice little animation in this link).  We're doing some tests on the GoPro with moving objects to try to get a more quantitative handle on it so we should have some more refined ideas soon.

So is there a downside?  Perhaps.  The way we orient the camera on the plane, the bottom of the image has moved forward 25cm relative to its location when the top of the image was exposed.  Effectively we are compressing the aspect ratio of the picture a bit in the landscape direction.  But this is less than 0.25% distortion (25cm in a 100m image size) under the worst case (normally the shutter speed is higher than 1/60, even on dark days).  I expect that the inherent lens distortion is even higher than that.

The jury is still out on this theory and we welcome comments from anyone who perhaps knows more about CMOS rolling shutter issues and/or specifics of the GoPro.  But tentatively we are withdrawing our "show stopper" verdict on the GoPro.  Now if we could only get the cost of the unit down...