Introduction: 3D Printed Animatronic Puppet
Meet Baby Bastion, the Overwatch inspired animatronic puppet! There's a huge variety of DIY robot projects on the internet, but a lot of them lack a means to express emotion. This instructable has lots of useful mechanisms that will help you take your robot to the next level.
Bastion has a lot of personality for not having a face, but most of it is expressed through complex head and body movements and its responses to a little bird friend it's fascinated by. I wanted to come up with a new character with a human-like face based on this one.
Step 1: How I Learned This Stuff
Through a very strange turn of events, I had the privilege of learning from John Criswell, the lead animatronics designer / fabricator / artist / mad scientist at Jim Henson Studios. To make a long story short, he spent a week with me explaining the process, gave me a pile of half finished puppets, and left me as the supervisor on a low-budget children's movie called Labou.
I haven't been able to use these skills since I quit working in special effects in 2006, so this was a really fun project.
Step 2: Tools + Materials
All of the parts are 3D printed except the ones listed below. It's designed with cheap, small servo motors but it would work much better with expensive metal gear ones. I'll get onto the control system later, but keep in mind that the classic animatronic control method is an off-the-shelf R/C controller and receiver that's comparable with the servos.
- 1/2" Shaft 1 1/8" OD bearing ($13 ea.): https://www.mcmaster.com/#2780t18/=18vtqhq
- Micro Servo (5 pc. for $12): http://www.amazon.com/dp/B015H5AVZG/?tag=instructabl09-20
- Servo Tester ($5 ea.): http://www.amazon.com/dp/B00UMPR54W/?tag=instructabl09-20
- Servo Cable Extender (9 pc. for $8): http://www.amazon.com/dp/B0015H4BIY/?tag=instructabl09-20
- M3 Screws (assorted): http://www.amazon.com/dp/B0716Y5WZZ/?tag=instructabl09-20
- M6 Screws (12mm): http://www.amazon.com/dp/B01D9HJ9IO/?tag=instructabl09-20
- Montana Gold (low pressure acrylic) Spray Paint: https://www.montana-cans.com/en/spray-cans/spray-paint/gold-400ml/montana-gold-400ml-colors
- 2-56 Ball Joint Set: http://www.amazon.com/dp/B001BHEFUM/?tag=instructabl09-20
- 2-56 Threaded Push Rods: http://www.amazon.com/dp/B001BHGCZS/?tag=instructabl09-20
I use a Prusa I3Mk3S for just about everything. It's the best bang for your buck, in my opinion- very well made, 3D printable replacement parts, accurate and reliable.
Step 3: Design + 3D Modeling
Here's a link to the Fusion 360 file- you can download the archive and upload it to Fusion to edit it on your own: https://a360.co/3fVRvCJ
The STL files in this step are ready-to-print, just bring them into any slicer and prepare them for printing.
The PDF file in this step is a multi-page template for the paper craft base. The blue lines are crease lines and the red lines are cut lines.
The design took quite a bit of time to complete, but Fusion was a great tool because I was able to use mechanical joints to test the movement of the parts. The ball joints get a bit finicky when you're previewing the motion, but testing one joint at a time works well with this model.
- Eyelid lever dn.stl
- Eyelid lever up.stl
Step 4: Painting
I wanted this puppet to look weathered like the Bastion character does, so I did some digging and found some really cool weathering techniques.
This instructable by Ossum has some great advice on this topic, but by far the best resource I found was Scale War Machines. It's a goldmine of realistic painting, finishing, and model making techniques.
The head is designed as though it's been through some abuse, so it's got chipped paint, grease stains, and warn corners.
To get this effect I did the following:
- Paint the parts to be weathered with a base coat. Based on the character design, this is chrome. For other kinds of weathering the base coat might want be rust colored.
- Once that coat dries, dab some water on the part then sprinkle salt onto the water. Push the salt into any desired shape.
- Paint the part with a finish coat. I used green to match the character design.
- Once this coat dries, use a stiff brush (a toothbrush would work well) to scrub off the salt. This will come off fairly easily and leave a splotchy base coat showing through with a fuzzy edge and some scattered specs around it. It looks very natural when it's done!
The great thing about a weathered finish is that you don't have to be that careful about keeping it clean and pristine- dents and scrapes just add to the authenticity.
For the skull I used a yellowish white base coat and a solid white top coat with the same technique. For the gunmetal gray parts I just sanded the corners a bit so the white PLA showed through. This gave the effect of warn edges.
Step 5: Neck Bracket
The neck bracket has one servo that drives the bearing gear. It screws into place in the cavity and the servo cable snakes up through the hollow post that the bearing will press fit onto later.
The neck arms glue into place on the sides of the neck.
Step 6: Eye Mechanism
The eyes mechanism is a bracket with a gimbal on the end that the eye attaches to. The eye is a hollow sphere with the back open. The gimbal is assembled with cut paperclip pieces glued into place and it's got two open points that push rods can attach to. One servo drives left and right movement and the other drives up and down movement.
I used paperclips as the push rods for the eye movement because they're cheap, easy to bend, and easy to prototype with. This part takes a bit of trial and error because you have to get the servo horn in the right spot with the push rod at the proper length.
The eyelids are thin pieces that hinge on the sides of the bracket with M3 screws as hinge posts. They have ball terminals on one side that hook up to ball joints on push rods. These push rods are on a small swivel hinge that attaches to a third servo. When the servo moves clockwise, the horn pushes the rods forward, closing the lids with one motion. Counterclockwise opens the lids.
Step 7: Assembly
With the eye assembly finished, the full assembly follows.
The eye assembly attaches to the skull with M3 screws at two points. One goes vertically into a screw hole in the bottom of the skull and the other goes horizontally in the top. These need to be at least 12mm long but other sizes might do the trick.
The jaw assembly has a bracket (part 4 in the diagram) with a cylindrical post on the right side and a servo mount on the left. This lets you snap the jaw into place once the disc horn (part 7) is screwed into the jaw. It's easiest to attach the jaw to the bracket first, then screw it into the skull. These screws should also be about 12mm long.
The side panels attach with M6 screws for aesthetic reasons (the original bastion has big screws in these locations). The eye trim attaches to the skull with two screws through the top. The tolerances are pretty tight here, so make sure the features are cleaned really well.
The neck bracket slides into a pocket in the back of the skull vertically and two M3 screws fasten it in place. The screw caps (part 10) are optional, but they make the piece look a bit cleaner.
The neck swivel bracket (14) has a hole that the bearing gear (15) fits into with some play so it can move freely. If printed accurately, the bearing gear will press fit into place in the bottom of the neck bracket (13) without the need for glue. The bearing (16) press fits into the bearing gear (15) and onto a hollow post inside the neck piece. This allows you to feed the cable from the servo (6) through the neck, bearing, and neck bracket. The neck swivel bracket attaches to the neck with m3 screws, and the neck arms (18) glue into place on the sides of the neck. The end caps are an extra touch to add a little contrast to the piece.
Theres a driver gear (not shown in the diagram) that screws into the servo post and interfaces with the bearing gear to make the head turn.
The neck arms (18) screw into the base with M3 screws through the bottom and a hose bib (20) takes the mesh tube with the servo cables inside it and the 3mm silicon tube that's just there for aesthetic reasons.
That's it, the whole head is assembled! Now all that's left to do is assemble the controller and put everything in place.
Step 8: Controller
The controller is just a 3D printed bank for a bunch of servo testers. The testers take 6V DC power and turn the servos their full range. They also have a tester mode that oscillates them.
This step could be replaced by any store bought RC controller and receiver that's comparable with the servo motors. This is how it's typically done in the film industry and it's much more natural than the setup I've got here. That said, this version is a lot cheaper and it's a very simple way to test out the movement.
The electronics are as simple as can be- just a bunch of servo extenders cut off and wired in parallel with a male DC terminal that a 6V DC adaptor can plug into. I put a switch in line for convenience sake and added a hole for the end of the terminal to poke through.
I took the enclosures off of the servo testers and screwed them into place on the controller board, then used the base to hide all the wiring.
The result looks clean and fits snugly into the flat base I made.
Of course, this would be a great project to control with an Arduino / servo motor shield combo, I'd love to see someone tackle that!
Step 9: Finishing Touches
I made a flat base with cutouts to hold the base and the controller so the piece would sit on a tabletop and added a paper craft cowl in place of shoulders that's similar to the original Bastion design. This part could use some more attention, but I wanted to focus on the head for this project.
If I were to do this project again, I'd change the size of the neck so that I could fit a bigger driver gear. The small gear only turns the head about 10 degrees in total. I'd also like to adda another servo to give the head and up and down motion.
The other thing I'd add would be a roll bar at the top to act as an articulated eyebrow. This is a very expressive feature for any face and makes a huge difference in making a puppet more lifelike.
Thanks for following along, let me know what you think in the comments!