Geoweaver is a student designed (team members Jia Wu, Mary Sek, and Jeff Maeshiro) robot created in the Creative Architecture Machines advanced options studio at the California College of the Arts (CCA) in San Francisco, California, taught by Jason Kelly Johnson of Future Cities Lab and Michael Shiloh. The design is based on a 12-servo hexapod with a glue gun extruder attached, is the culmination of about 60 days of research and prototyping, and, as far as we can Google, is the world's first walking 3D printer. Although the robot's official name is Geoweaver, it also goes by many aliases: Servo Killer, Eater of Shields, Melter of Wires, and Destroyer of Regulators, among many others. It is a very difficult and delicate machine, and is not a project to be tackled for the faint of heart.
But if you do take it upon yourself to accept it's challenges, it's rewards are great: it is a six-legged, walking 3D printer. The center mechanism uses two servos to control the pendulum-like extruder head, allowing it to cover a basic XY plane (though curved to the surface of a sphere, see video above), and one servo for the extrusion gear that forces the glue-sticks through the "print head." All of this can be controlled through the software Rhino 5, with the plug-ins Grasshopper and Firefly (developed by our professor Jason).
First, we must mention an Instructable that aided us at the start of our prototyping, the Hot Glue Gun Extruder for Your CNC Machine or 3D Printer project. It gave us a great starting point for our print head and we were grateful for the leg-up. Second, we utilized this tutorial to figure out how to do spirals in Grasshopper, though the spirals we made came out pretty intense.
Third, here is a video of the 62 day development process with different material tests and trial robot versions.
Lastly, this project was devilishly and deviously difficult and would not have been possible without our professor Jason Kelly Johnson's guidance (even writing a custom Arduino-to-Firefly firmata for us to be able to use the servo shield, see Step 8). And of course our other professor Michael Shiloh's sure-handed advice, most especially with the wheeled toes, a pretty nifty bit of mechanical innovation, if we are permitted to say so. Thanks also to Andrew Maxwell-Parish of CCA's Hybrid Lab (and Instructables Artist In Residence ElectricSlim), your help with our projects was matched only by your enthusiasm for all of them. We are grateful to all three of you for your invaluable help.
Anyway, let's get Instructablesing.
Required Items (tools):
- Vertical band saw
- Phillips/flathead screwdriver in multiple sizes
- Power drill and drill bits
- Wire cutters
- Needle nose pliers
- Measuring instruments, ruler or vastly preferably calipers
- Laser cutter
- 3D printer
- 15 high torque servos (complete with the "+" shaped servo horns and servo center screws that should come with the kit
Bolts and locknuts (about 48 of them), or whatever bolts fit through your servo flange holes (the side holes). At least 3/8'' long (enough for the 1/4'' plastic or Al and a locknut to fit on there)
- 1/8” at 24” x 48” sheet of plywood (for legs/center mechanism)
- 1/4” at 24” x 48” sheet of plywood (for body)
- 2 bags of hot glue
- 1/8” at 11” x 17” sheet of acrylic (for extruder)
- 3 bags of 100ct mini zip ties
- Small gauge wire
- 6 rubber sink washers
Required items (electronics):
- Arduino Uno
- Servo shield
- Male headers
- Jumper wires (or single core wire suitable for breadboards)
- Servo extension cables
Required items (programs):
- Rhino 5
- Grasshopper plugin (for Rhino 5)
- Firefly plugin (for Grasshoppper)
Step 1: Laser Cut/3D Print Parts
*Keep your pieces organized and labeled, this makes it much easier to work. You will need a screwdriver, screws, drill, drill bits, zip ties, tape, sharpie, and nuts/bolts.
*Print or cut out a few extra pieces, they come in handy when one breaks or if you need a stand in piece
Next, 3D print the toes and tail. We used a Type A Next Generation Series 1, printing PLA with a 10% fill (to keep them light).
Step 2: Building the Hip Segment of the Leg
We found that the mechanics alongside the ratio of the pieces are imperative for the hexapod to walk smoothly (not to mention the code), but first you must stabilize the mechanics of the hexapod.
This includes figuring out the encasement's for the each of the motors and their connections to each other. You want the hexapod to be both stable and light.
Also, take into account using slotted or dovetail connections with adjacent slots for quick zip tie connections and use the same dimensions on other parts so you can mix and match if need be. It makes construction fast and secure. Also, take into account the position of the servo. You want to create an environment where there is least torque for the motor, which could mean flipping the servos around, and MAKE SURE that joints are centered with the body of the hexapod. Any offset awkward pieces can affect the code and how the hexapod walks.
If you are using our design and have printed out the parts, use:
and fasten together with zip ties. Make sure that you secure a nut underneath the servo to attach to the body.
*Attach all horns onto servos and label each hip and knee. Preferably, the hips will all be one color tape with annotations, and the knee would be the other color with annotations.
* DO NOT restrict the servo by screwing in the center to any piece until servo is zeroed or calibrated. This could strip the servo, causing it to no longer work.
Step 3: Building the Knee Segment of the Leg
Fasten parts together with zip ties and then secure hip segment to the knee segment, do this for the six legs.
Step 4: Building the Body
Simply laser cut the pieces from the laser cut file. For this step, you will needs parts:
* Note that when using slotted or dovetail connections; make either the male or female end a bit smaller for a snug connection.
Once all the legs are put together, labeled, and zeroed, attached them to the body of the hexapod. You can also attach everything and leave the center servo detached prior to zeroing them. Attach all the pieces together minus the top, then attach the legs. Once the legs are all attached, place the top piece on and secure with zip ties.
Step 5: Building the Center Segment for the Extruder
The final piece to this segment is the dowel. We used a dowel that was 3/8," but you can use whatever thickness you like.
Step 6: Extruder Head
Required items (hardware):
- 3/8" Plywood (~6.5" x 4.5")
- 1 High torque servo (complete with the "+" shaped servo horns and servo center screws that should come with the kit)
- Large plastic gear with teeth that fit your Servo Motor
- 4 Metal Bearings (15mm outside and 6 mm inside)
- 9 to 10 - #8 1.5" Bolts and/or #6 Bolts
- #8/#6 Washers (we used about 20 in this design)
- #8/#6 Lock Washers (I used 2)
- #8/#6 Nuts (8 to 10 used)
- #6 0.5" Screws (we used 4)
- Metal L Bracket 1.5" x 1.5" with 2 holes in each side
- Slotted Metal Bracket ~2" Long (slot needs to be able to fit #6 or #8 screws)
- Mini Hot Glue Gun - Low Temperature
- Mini Hot Glue Sticks - Low Temperature
- Small Zip Ties
- Small piece of ⅛” acryllic
First laser cut all parts in the attached DXF file. Arrange all pieces but do not screw them together yet.
Step 7: Attach Glue Gun Internals
*The screws cannot be too tight or the movement of the glue sticks.
Step 8: Firefly Control Panel
Once in Grasshopper, the controls are color coded: purple is for Geoweaver's dimensions, white is for the walk commands, yellow is for the Arduino control components, and blue is for the print commands. Make sure that the Arudino port number is correct. The walk commands utilize Firefly's "Counter" component to feed numbers into the legs. One of the initially confusing parts may be that in order to "turn on" the walk algorithm you must set the "Run walk/rotate" boolean toggle to False, not True. Included in the file is an animated version of Geoweaver which allows you to simulate and test movement patterns before you attempt to start running servos with it.
Step 9: Tricks
Trick 2: Buy servo extension cables. Extensions can help you connect the cables to the servo easier and helps make things more organized which is very important for a project which uses 15 servos.
Trick 3: Each servo performs differently which will affect the robot's overall performance. You can use Grasshopper to remap when calibrating each servo.