working blender motion control camera rig! - Suzans Dolly

(rylangrayston) #1

suzanns dolly.blend … down load this and check it out ---->r72 suzanns dolly.blend (828 KB)

Well ive been working on this 4 axis motion controlled camera dolly in my spare
time for over a year now. Now that im actually getting some usable footage
out of it i figure its a good time to share it with everyone.

Here is a little video demoing some of what the rig can do
Watch closely for the change in focus between the red candle and the white one!
I love this thing! Hopefully Ill have time to post another video detailing
how to use it, thats the best part in my opinion!

Im calling it “Suzanns Dolly”
It is by no means done. There are still some glitches and it really needs a blender gui.
This form post also a cry for help! being that this is approx the 5 th python script iv ever
done and certainly the first worth sharing, I am in way over my head!
So coders please dish out the constructive criticism and lots of it but
also with the understanding that I may not have the skills to implement your
suggestions! and of course i would love it if some people with more bpy experience
would join me on this project!

4 Axis Camera Rig:
dolly, pan, tilt and focus/zoom

Time Lapse Mode:
-any delay in 1 second increments
-take pic while the rig is completely still
-and or take motion blur pics the shutter will be open while the rig moves

Animated Control:
- a key framed/animated model of the camera rig
in blender sends its animated motion to the real camera rig.
The real camera rig dose whatever the animated model dose.

Manual Control:
animated control is nice but far more useful
is Manual control. I recommend using a wireless key board with a neck
strap! the dolly can be moved around with the key board its positions
can be inserted at different times. This is very handy and intuitive!
It is very much like driving a remote control car! This is also the
way that professional camera rigs like Milo are key framed.

Blue-Tooth Wireless:
Operates 200 ft away from the controlling computer.

Although this rig dose time lapse it also moves quite fast and
can certainly replace an actual camera operator in many situations!

Belt Driven:
Each axis of the rig is driven with timing belts allowing you to swap
different sized pulleys for better speed vers torque and accuracy ratio

Adjustable Base Plate:
adjustable base plate allowing you to balance any dlsr camera
and a unique belt system that fits any lens enabling you to use
the 4th axis for zoom focus or even aperture!

Its quite possible to build one of these for around 400 bux!

kits … shoot me an email at rylangrayston if you would like me to send you
a dolly kit (all parts included), I can make some up but ill have to charge around 900 per kit
to cover my expenses as I live very far away from my hacker space! Ether way I certainly dont mind
selling a few, I understand not everyone has access to a cnc router! and it would be great for the project
if I wasn’t the only one with one of these things!!

Futrue goals for the suzans dolly

  • blender gui … so you dont have to operate it from the terminal
    -code it to communicate with the L6470 stepper driver ( i will be doing this next!)
    the L6470 driver will alow for much faster and smother operation and allow for the use
    of bigger stepper motors two!
    -add more axis and keyed lighting controls
    -real time motion tracking
    -home page for the project where people can get resources and offer to help out (any one want to help out with this?)

well I guess ill just end with a thank you to blender artists form and a few of the members on here( you know who you are)
that have helped me out with various little bpy quires of mine Thank there is no way i could have got this far without you

Also thankyou to all those that created blender, this is one program that I can honestly say has changed my hole life!!

Rylan Grayston


r71 suzanns dolly.blend (830 KB)

(Eibriel) #2

Amazing work!! Congratulations!

It’s a shame that the code on BLendswap and Blender Tracker is missing :frowning:

Sadly I can’t find my addon on my own computer, if it is still useful for you I can continue searching


(rylangrayston) #3

Eibriel man GREAT to here from you! … I was trying to get ahold of you for a long time now!
Was realy hopeing we could work on this together

I did have your code almost a year ago I think but i knew so little about python back then that i couldn’t even understand it!

so i just wrote from scratch … ill have to look on my old hard drive maybe I still have a copy of your code somewhere!

(gaalgergely) #4

wow, sir!
you just have made some seriously cool s&£t! right there…:open_mouth:
nice results, i’m looking forward to see how the community will take this further.

(rylangrayston) #5

thanks gaalgergely !

Just dropping in here to post this link … Suzanns dolly make it to Hack a day!

and it is also being discussed on the time skapes form

(rylangrayston) #6

and here it is on EE Times!

(rylangrayston) #7

some people are asking for a parts list … here you go

quad stepper dirver
arduino pro mini

pan tilt and zoom steppers

dolly stepper

all timing belts and pulleys

the chaise was made on a cnc router.

camera is a lumix gh2

(chrh) #8

Hi rylangrayston

This is looking really interesting. :slight_smile:

I’m starting out with only one axis (Tilt), and then adding more later on. But unfortunately I’m not a coder, so I’m a bit stuck…
I’m guessing that I may need to change or add somthing to lines 71, 79, 80, 81, 82 or 83 in the script.

When I press “Run Script” the terminal returnes:
line 80, in <module>
ImportError: No module named ‘serial’
Error: Python script fail, look in the console for now…

(rylangrayston) #9

this means that you need to install the python serial modual in your blender scripts directory …

(chrh) #10

Thanks rylangrayston
It took a bit of time to figure this out, but it’s connecting to to the Arduino now.:slight_smile:

I’m working in Blender 2.68a on a Win XP, 32 bit laptop. I blanked out line 71, and changed line 84 to: Serial_Port = serial.Serial(3, 9600, timeout = 1) and that seemed to do the trick.

But there is a strange problem. The script runs just fine for a while, but then it stops and (depending on which command) returnes the following:

(When mooving back to 0 seconds):

Trackback (most recent call last):
File “(parth to the .blend\script)”, line 875, in (module)
File “(parth to the .blend\script)”, line 726, in play_from_frame_to_destination_frame
ZerroDivisionError: float division by zero
Error: Python script fail, look in the console for now…

blend_file_thumb failed to create thumbnail: unknown


(When playing forward):

Trackback (most recent call last):
File “(parth to the .blend\script)”, line 981, in (module)
File “(parth to the .blend\script)”, line 743, in play_from_frame_to_destination_frame
ZerroDivisionError: float division by zero
Error: Python script fail, look in the console for now…

blend_file_thumb failed to create thumbnail: unknown

If I then press run script the terminal returnes an “Error 5” (denying access to COM4). I have to restart Blender to run the script again.

By the way, I have made this little change to the script:

251 import math
252 from math import pi
254 def deg(Euler):
255 ‘’’
256 when paused a rotation in eulers this functon returns the equivolent
257 number in deg.
258 ‘’’
259 return Euler * 180/pi
261 def euler(deg):
262 ‘’’ when paused a number in degrees will return that number in eulers’’’
263 return deg / 180 * pi