I built a life-size Gonk (GNK) Power Droid from scratch in my basement. This project exposed me to lots of new building materials, tools and techniques, along with some old, familiar ones. Total build time was 11 months.
After finishing my R2-D2, I was eager to start building another robot, and wanted to stay within the Star Wars universe. I briefly considered a Mouse Droid, but quickly settled on a Gonk Droid because of the opportunity to work with a biped platform, which I had never done before.
According to Wookiepedia”:
GNK power droids were effectively power generators with legs and a very simple artificial intelligence so they could understand rudimentary commands. They were commonly found on under-developed worlds that did not have an expansive power grid, or in mobile military operations. They often made a low honking noise that sounded like the word “gonk,” resulting in the nickname gonk droid or simply gonk.
My daughter has lovingly named him “Cronk the Gonk”. Cronk has a long list of impressive features including:
- Remote Control using a “hidden” controller and a modified Wii Nunchuck
- Biped propulsion
- Playback of sound effects and music
- “Steam” spray
- On-board FPV camera, microphone, 5 GHz Transmitter, and DVR
- USB plugs for charging mobile devices
- Battery capacity display
Additional design goals included:
- Easier to transport than R2-D2 (smaller, lower weight, etc.)
- Easy maintenance and access to components
- Long-lasting battery
- Easily hidden remote control
I’m aware of the great work that James from XRobots has done building a Gonk Droid. I became aware of this series of videos toward the end of my build. While I love the work he does, he took a very different approach than I did, and he has access to a lot of different tools than I. I learned a lot by watching, but was unable to directly apply any of his advice on this project.
I started to tackle this project as I have all my other robots – at the drafting table. I did an orthographic projection to capture the scaled design of all sides.
Next, I made a full scale paper replica and taped it together. I made some adjustments to make it look proportioned to the legs I selected.
After some research, I selected Smooth-On’s FOAM-iT Series of castable, rigid urethane foam and felt it would be a good fit for my needs. I chose FOAM-iT 4 to get the balance of rigidity and weight I was seeking. The goal was to produce a very light weight, but rigid body that the legs could support while walking.
I built custom forms out of plywood to use to create the body. I added plywood designs on the inside to get the pattern I was seeking. I built an inner form attached to the lid so that the end result would be hollow, and the body would be 2+ inches thick.
There was a LOT of frustration working with this material as I evaluated multiple release agents, cleaning solvents and finishing products. Measuring the proper amount of A and B agents to mix to create the foam is part art and part science. I learned the hard way that the foam expands with incredible force and can easily break through forms. It also gets really hot when expanding, and is very sticky making clean-up a challenge.
After creating the top half, bottom half and 2 feet from foam, some grooming was required to clean up the foam blocks. I built 2 different hot-wire cutters using Nichrome wire and a Variac power supply. This got the job done, but was hard work, and produced lots of thick, nasty smoke (unlike other types of foam that allows hot wires to cut effortlessly). I used a knife to do the remaining cuts.
I also carved out some shapes from the bottom to support the waist bar, on/off switch and audio speakers. I used 8x 2.5″ stand-offs to connect the waist beam to the plywood base inside the bottom of the body.
Next, I applied a thin coat of Rosco Foamcoat and sanded it down to an almost-smooth finish. I didn’t want it perfect because I wanted to give a distressed look. I then applied multiple coats of Behr Marqui Matte (1 Qt) – Hematite N640 -6° paint.
I proceeded to install the electronics inside the body. By planning ahead, I found I had lots of space to accommodate all the components. I took the opportunity to attempt to balance the weight by selecting the placement of the components when possible.
To make a great robot, I knew I needed to pack it full of electronics to really bring it to life.
Remote Control: Rather than a traditional RC controller/receiver like I’ve used for my other robots, I thought I could build my own in order to accommodate my basic needs. I created a controller using an Arduino Fio v3 and Xbee module. I modified a Wii Nunchuck by adding 3 buttons and an extra wire. The design allows me to be discrete when controlling Cronk and hide the wire under my clothes. The receiver is an Xbee shield on an Arduio Mega that acts as the brain of Cronk because it drives most of the functions.
Legs: The legs are a biped robot platform kit I bought from a Chinese vendor. I chose the kit because it includes servos with the highest torque rating I could find. I really rolled the dice on this one because I had no idea if they would be powerful enough to support the body. The kit also came with a servo controller board that could handle up to 16 servos and on-board memory that can store the choreography. The kit also included aluminum connectors for the servos to provide structure. It has jumper pins to allow either a serial connection or a direct USB interface. I used the USB interface to figure out the choreography, and the serial connection to trigger the choreography from the on-board Arduino Mega. This interface was the reason why I needed to step up to the Arduino Mega – it only works with 119,200 bps serial connection which is not supported with Software Serial.
Audio: I settled on 4 sounds that were triggered by one of 4 buttons on the Wii Nunchuck. I chose the Adafruit Audio FX Mini module with 2MB of storage. I used Audacity to create the WAV files and uploaded them to the board via a USB connection. I paired the Audio FX module with an Adafruit Class D amplifier board. I learned from experience that even if the audio sounds loud enough in my workshop, it won’t be loud enough on a con floor. So, I opted for a 20W amp that included a volume knob so I could really crank the volume in loud venues. I mounted a pair of 4″ speakers onto the outside bottom of the body and angled them outward in hopes the sound would bounce up. I put grills on top of each speaker to protect them.
Spray: While researching the Gonk, I came across this cute video of a Gonk costume that had a “steam” effect. I thought that would be a lot of fun to incorporate into my build. I attempted to use an e-cigarette and a fan to blow the smoke out, but it did not give the effect I was seeking. I also attempted a water spray effect, but that also did not work. Finally, I found an inverted CO2 duster can gave me the effect I was seeking. Unfortunately, these cans are quite heavy, so I opted for a small 3.5 oz can. I don’t get as many pulls, but it is a good compromise. I made a custom bracket using 1/4″ plastic sheet bent using the plastic bend table I created for K-9. I mounted a Standard Size servo to the top of the bracket and connected a wire to the trigger to pull “down” and trigger the spray. The bracket allows me to easily replace the can. The down side to firing liquid CO2 is that it gets very cold and is corrosive. I have to be careful not to fire it when anyone is too close or they will get frostbite. Also, adjusted the Arduino Mega to only allow a trigger 1 minute after the last so that I don’t do it too often and allow warm-up in between.
Source Code: Here is a link to the Arduino Source Code
Next, the challenge of balancing while standing/walking. I knew this would be the toughest part of the project because there were so many unknowns. After carving off all the extra foam that I dared, and doing everything possible to minimize the body weight, it was time to put them onto the leg platform.
The moment of truth – to my surprise and delight, they legs were able to hold the weight! Unfortunately, it had trouble keeping front-to-back balance and lacked the feedback mechanism to adjust the leg servo motors to keep it upright and level. I investigated a Head Lock Gyro, but that was not effective. Then, I purchased some 3-axis accelerometer boards, but they were also ineffective. Finally, I attempted to weight down the feet to provide counter-balance, but the servos were not powerful enough to lift the leg. Ultimately, I concluded that the servos lacked the torque to properly correct for the tilt by themselves.
After much inner turmoil, I concluded that the best approach would be to build some training wheels to help stabilize him while walking. I did my best to make the wheels as low-profile as possible (to avoid moving too far away from the movie appearance) using various Actobotics parts. At first,I tried to use only a pair of rear support wheels, but finally concluded that a front pair would also be required. I selected 4″ omni wheels to allow movement in any direction as the robot moves forward or turns.
While I’m frustrated that I had to use the wheels, they do solve many issues. One thing I’ve learned is that everyone loves to touch the robots – without the training wheels, I would be concerned he would continually tip over. Also, the floors tend to be uneven and training wheels mean I don’t have to have “perfect” conditions to operate him. Next, training wheels mean extended battery life, and I don’t have to worry about him falling when the batteries get low (the leg motors only support the weight when they have power). Finally, the spray effect does generate some backward force which could knock him back if not braced.
Once the training wheels were installed securely, the process of teaching Cronk to walk was fairly straightforward. I tried several walking techniques in order to get consistent movement and direction. The key to good propulsion was the grip at the bottom of the feet. To achieve that, I painted Flex Seal on the soles of his feet. I uploaded the choreography for each of the movements onto the Servo controller board. I connected it via Serial connection to the Arduino Mega and configured it to relay signals transmitted from the remote control.
The final result is a robot that embodies most of my original design goals. It weighs about 20 lbs and stands at 1 meter tall.
The video below provides a brief walk-through of all the features.
I’ve started to build a gantry platform that fits inside the body of Cronk to shift the center of gravity and help him balance while he walks. I’m hopeful that this technique will help me to get rid of a least one set of training wheels.
Failing that, I might try to use a spinning wheel gyro inside the body to help with the balance.