Drew's walking robot
This is a 4 legged robot I built to entertain and to learn more about how to build robots. It uses eight cheap MG996R servos, two in each leg, controlled by a Pololu 8 channel servo control board and a pair of XBee Pro radios. The robot is basically just a puppet, with no on-board intelligence and the walking and leg gestures controlled directly by the operator. The structure of the robot is actually quite simple, using as few mechanical and electrical parts as I can get away with. My main challenge has been making this robot work reliably for an entire weekend of walking around and entertaining crowds at conventions, the cheap servos tend to self-destruct in various ways.
The base structural plate is made from a single piece of waterjet-cut steel. Structural items (servos and the outer shell) attach to threaded holes in this steel plate. The front indicator lamp, made from a uranium-glass marble surrounded by half a dozen UV LEDs, is connected by copper wire bend and soldered around the front of the steel frame.
The main-body shell is a three inch copper tank float from McMaster-carr, carved up with a dremel tool and attached to the steel frame with screws and right-angle aluminum mounts. The charging jack and external antenna attach to holes in the upper half of the copper float. Most of the electrical components - battery, voltage regulator, power choke, radio receiver, servo control board, and a lot of wiring - are just sort of stuffed inside the main body. There's not much spare room in there.
The top side is mostly wiring, the power switch, battery protection circuit and voltage regulator.
The radio and control parts are on the bottom rear. The battery is wedged in vertically, and runs top to bottom inside the robot. I'm using some spring tubing I found in a junkyard to bundle the servo wires together, and routing them along the frame arms to the knee joints.
The control logic on the robot consists of a Pololu 8-channel serial servo control board, and an XBee Pro mounted to it via a Sparkfun XBee Regulated explorer board, and some ungainly dead-bug wiring and assembly. The radio link sends the servo positions as a serial data stream. The SSC interprets the serial commands and sends out the position data to the 8 servos.
Each leg has two cheap MG996R servos, both modified to add a second hinge point on the rear of the case. The leg knee section is made from a piece of 2" aluminum tubing.
The outer leg assembly is a bit of waterjet-cut steel and steel tubing, and a homemade shock absorber mechanism, and a brass cabinet knob for each foot.
Radio controll is by a pair of XBee Pro boards. The control logic is all on the transmitter side. I use a pair of joysticks in handmade wooden enclosures for control, and 4 pushbuttons to control walking mode and trigger gestures. A previous version of this robot used a pair of Wii Nunchuks, but I really didn't like how the joysticks felt. Now I'm using joysticks salvaged from an old RC airplane controller, which give much better fine-motion control and have mechanical center adjustments and adjustable centering force.
Mixing logic is done in a FunnelIO board which the XBee plugs into. The robot is basically a puppet, there's no intelligence or automation in it other than the various mixing algorithms used to translate joystick input to servo position.
I built the first version of this over a decade ago, and I've rebuilt it a dozen times since then. I actually can't even remotely give an estimate of how many hours I've put into this thing over the years.
Walks, dances, waves, rolls over, breaks
- Actuators / output devices: MG996R servos
- Control method: XBee radio control with custom control scheme, completely non-autonomous
- CPU: FunnelIO
- Operating system: Arduino clone
- Power source: 2 cell 1000mAH LiPoly battery pack (8.4V) in robot, 1 cell 100mAh in transmitter
- Programming language: Arduino
- Sensors / input devices: 2 analog joysticks, some buttons and switches
- Target environment: Carpeted floors