Today I want to share how I created a few huge, Gigapixel photos, using a DIY panoramic head. Actually, it is not a panoramic head, because it not only goes right and left, but also up and down.
I’ve been a big fan of panoramic photography and of landscape in general for a long time. But four years ago I was climbing a mountain and the view from the top simply took my breath away. I felt an urgent need to share the image with people who don’t climb and therefore will never get access to such views.
Here is the thing though, standard photos do not have enough details. Our eyes have far more resolution that your standard digital camera, so a new project began: I wanted to build an awesome Gigapan Robot — a custom, automated panoramic head for DSLRs.
I got inspired by some pro grade products, but could not find one that fit my two main needs: total control and A LOT of weight. The idea is to move a Nikon D90 (about 650 grams) body mounted with a Sigma 150–500mm lens (1.9 Kg) at small increments on two axis overlapping images in both the vertical and horizontal axis.
Giga-Panoramic Robot V1.0
Incidentally, just a few days prior to climbing, my friends (Alex & Joan) gave a quick rundown on Arduino: a small micro controller with open source software and a lot of expansion options like control motors and sensors that interact with inputs and outputs just like a small PLC.
I’ve had some PLC experience so I was up for the task. Only two minor items remained: learn Arduino and build a robot.
My first step was to buy an Arduino UNO and a stepper motor. This stepper motor moves by small increments, around 200 steps for a complete turn. If I can control the movement of the motor, I can control the movement of the camera. Now I just needed the write the software.
It took me six months, but I eventually finished my robot — it was time to test it out.
My first photo — 1098 shots nearing 10 GigaPixels — turned out okay after rendered with AutoPanoGiga.
But while the final results were good photo-wise, I needed to make some improvements to reduce the weight and size of the robot. It was impossible to bring the robot over the mountains. To get it up I would have had to split the thing between more than a handful of people since it weighed over 35 kilos.
Giga-Panoramic Robot v2.0
Next step was to do some software optimizations, install two wheels, and add aluminum. Now it’s easier to lag around. Unfortunately, I still had a big risk of damaging a stepper motor while hiking on rough terrain in the mountains, so I decided to re-design Version 1.5 again over the next winter.
For the version 2.0 I used a geared stepper motor for the horizontal axis movement, and stronger motor for the others axis.
For control I am still using an Arduino platform and switches so I can modify the settings of the robot (stuff like zoom, camera type, overlap %, and more).
With this robot I created a 99GPx Gigaphoto of my village, Súria, a potash village in the center of Catalonia, near Barcelona. It is made out of 4520 single shots. And the magnification is astounding: Nikon d5200 body + Sigma 150–500 @ 500 mm + 1.4x teleconverter.
Both robots are heavy and they both weight about a ton — or at least this is how it feels). Another caveat is the difficulty to move with the needed accessories (battery for the robot, lens, camera, tools, support for the robot), so finally I decide to create a new robot which would be cheaper and lighter.
Giga-Panoramic Robot XS
Building on the experience I accumulated building the previous two robots, I tried to optimize all sizes and weights. It was time to design the Panoramic Robot XS!
For this robot I used an aluminum box to install the x-axis stepper and all electronics parts (Arduino MEGA2560R3, two L298N drivers for the steppers motors, a relay for remote camera shot switch, a step-down voltage converter to reduce the 12v of UPS battery to 5v of the motors NEMA–17, switches, LCD, plugs, etc…)
This is the parts list:
- Metal plate (1-1.5 mm): We need a plate approximately 800 x 200 mm.
- Metal box. I use an aluminum Hammond 1590FBK.
- Two NEMA-17 stepper motors. I spend a lot of time trying to find it! The problem appears of the height of the box. I use a Kysan 1040222 bought on eBay.
- One Arduino MEGA2560.
- One LCD i2c screen of 20×4 characters.
- Two L298N drivers for Arduino control.
- DC to DC Step down converter with 12/24v input and 5v 10A output.
- Belt GT2 and two pulleys of 36 teeth. Same kind used in 3-D printers.
- Bearing Unit Conveyor Roller
Finally, it was time to drill a lot of holes in the aluminium box and start assembling.
I used a metal plate to support the Y axis, and we fixed the camera using a 1/4–20 bolt. Since this place will only perform with one camera, we wanted to make it fixed on the camera’s Nodal Point. The nodal point would then correspond to the center of both axis.
For the horizontal and vertical axis, it was easy, we only needed to calculate the distance from the hole to the center of both axis. The difficult part is finding the d3 value. You can use this guide, or just Google it.
Now, again, it was time to assemble the electronic parts, wire the steppers motors, the drivers and connect power supply.
And the last step was uploading the Arduino code. If you are building this and need the code, please contact with me (via the comments or the contact details supplied below).
Using this newest robot, I created Gigaphotos of about 30 GPx. This is the resolution I get using a Nikon d5200+ Tamron 70–300 @300mm. It takes about 1,000 per panorama. If you thought the camera part was hard, wait till you feed 1,000 photos to your computer ;).
I have another, stronger robot optimized for a Sigma 150–500mm lens. The electronics and code are the same, I only had to change the mechanics of it to support more weight. With the bigger robot I can create 99 GPx photos composed of over 4500 shots each.
About the author: Xavier Gonzalo is a climber and a photographer based in Spain. You can see his panoramic work here. You can also read more about his panoramic robots (in Spanish/Google translated) here. Lastly, you can visit Xavier’s Youtube Channel here. This post originallyhere