Automated Panoramic Tripod Head for Gigapixel Imaging

RC-Servo based pan/tilt platform for panoramic imaging

I'm developing  automated panorama-platforms for quite a while now, starting with this very simple Platform in 2008.
It was automated (based on a Conrad C-Control  Pro)  and pretty fast (about 4 seconds/image). However, it was mechanically not very robust and had to account for this with large overlaps,  and  sometimes mechanical problems resulted in missing columns in the panorama.

Then I bought an astronomic Goto-Mount for small telescopes, one that is often is used for panorama imaging. This mount is rocksteady and can be remotely operated either from a mobile phone or from a netbook. Climbing up on one of the smaller bavarian mountains I realized that this platform is very heavy and  its really slow, the best imaging rate I could achieve was about 7 seconds/image -  too slow for gigapixel imaging.

I remembered the advantages of RC-Servos -  they are simple and they are  fast. At this time I was playing with Arduino Boards and I discovered Phil Warners Panoduino - a Panorama platform that is using an Arduino Controller.
Phil is using  servo gearboxes from ServoCity which  make the panorma platform very stable.
I have copied his basic design, however  I also made heavy use of my Makerbot Thing-O-Matic 3D printer, which makes construction of mechanics parts a lot easier.

In my setup the  Arduino controller (Mega2560) is only used for communications. It connects the bluetooth-to-serial module with the Pololu micro serial servo controller and it provides the remote shutter signal for operating my Canon Power Shot G9 (via USB - CHDK remote shutter). Actually, using the Mega2560 is complete overkill, but its comfortable.
My  panorama acquisition software (currently running on an asus netbook) is written in C#. It features the selection of camera parameters (focal length etc.), number of rows/columns, navigation via mouse click, setting of start and end point. It sends commands (mainly the this is the commands for the pololu servo controller + one command for the remote shutter) to a serial port (which actually is a bluetooth port).

My camera is a Powershot G9  with a 2x teleconverter. The remote shutter is operated via the cameras USB port. For this purpose the camera has to be run with CHDK (the Canon Hack Development Kit).

For panorama acquistion I use the Manual Mode of the camera. The focus is normally  adjusted manually to infinity (in this case I use only one trigger pulse  with a length of about 40 ms).
Another option is to use the manual mode and the with the safety focus enabled (in the cameras main menu). In this case the camera can adjust the focus within a small range around the manual setting. This requires two pulses - one for focusing and one for triggering the shutter.

Update - New Generation Electronics (Dec 2012)

Electronics Scheme

  • A minigorilla mobile power supply is light, has a high battery capacity of 9000 mAh, provides large enough currents 3A max. and displays the battery status.
  • A UBEC (Battery Elimination Circuit) provides enough power (at 5V) for the servos (thus preventing jitter at large loads), and prevents unnecessary power consumption.
  • The pololu micro maestro servo controller provides smooth (accelerated) servo motion, serial communication via one of the Arduino Megas UARTs.
  • An accelerometer (LSM303) continously measures the motion state of the platform. Its directly mountet on the camera support, thus sensing any motion, vibration etc. The sensor tells when the camera has completely finished the motion - only then the shutter is released. This is faster than fixed settling times.  So far I have achieved to  take about 40 to 45  images per minute, higher rates might well be feasible. Communication is via I2C.
  • Bluetooth modul: I use an extented range bluetooth module F2M03GXA (which I previously used on my quadcopter for telemetry purposes).  However, a standard standard Arduino bluetooth shield should do equally well. Application is simple: On the Arduinos side it is connected to a serial ports and the Netbook also sees  a serial port (which can easily be accessed from .NET programs).
  • New camera: The Lumix FZ200 superzoom camera provides a (35 mm equiv. ) focal length of 600 mm (at f/2.8), and has 12fps (continous shooting).
  • Remoteshutter Control Circuit:
    For the Lumix FZ200 (and some other Lumixes) this works well:
    Instead of mechanical switches I use optocouplers as described here:
    If you want to use a Canon Powershot you can install the CHDK firmware (thats just on one partition on the SD-Card and thus considered to be reversible) and use the cameras USB-Port for triggering the shutter:

  • Control-Software  - new features: "Pause" - if somebody is walking by right in front of the camera, "one column back" to repeat the previous column.

The following photos  show the  outdated setup with the Canon Powershot G9, and a heavy NiMH battery pack.


The black plastic parts (right angle, end pieces, electronic box and the tripod adaptor) are printed with my Makerbot Thing-O-Matic 3d printer. Pretty robust ABS-Parts... An advantage of this design: I can easily disassemble the two legs of the angled platform (thus the platform fits easily into a bagpack).

Some examples of gigapixel panoramas I have taken with this platform


web counter