Quite possibly the simplest design for a robot that could (sort of) balance itself on two wheels, without the use of accelerometer, gyroscope or microcontroller.
A great weekend project, and do check out the video to see it in action. And why Domo Kun? Because my other half think it's cute :) You can pretty much change the WobblyBot into any character you like.
UPDATE: The WobblyBot was featured in Hacked Gadget, Engadget and Hack-A-Day!
How It Works
It's about simplifying things and getting back to basics. the goal is to build a balanced robot instead of a robot that balance itself.
The robot is essentially a simple pendulum, with the pivot at the wheel axle. The bottom part of the robot’s body is significantly heavier than the upper part of it. This serves as a counter weight, keeping the entire body upright, hence the balancing act.
The design of the cradle.
The design of the cradle and the upper body frame. You can download my SketchUp file for reference. The build and the diagram is 1:1 scale.
Putting Things Together
The cradle is made from MDF plate riveted to aluminum L bars. No special reason for such selection of materials, they are just stuff I have aplenty. The cradle can be made a whole lot simpler with other materials such as Acrylics.
The length of the cradle is really up to your choosing, but the width is design to fit a D sized battery holder with ease. The exact placement of the batteries are critical since it doubles up as the counterweight for the robot.
The batteries must be placed dead center, length-wise and width-wise. If not the robot will either not able to balance straight up, or it will not be able to move straight forward and backward (because one wheel is carrying more load than the other).
DC Geared Motors used are rated at 12V, 100mA, 130RPM and 58.8mN.m torque. The motor are driven at half the power (around 5.5V and 50mA). I’ll explain why later.
DC Geared Motors are used instead of the a normal DC Motors. They are better suited for this project due to the fact that it produces low RPM, and have enough torque to drive the robot. You will later find out that the robot could end up becoming quite heavy.
The motors are mounted directly to the cradle, note that there are room underneath the motor, this is the space where we will add more counter weight if need be.
The completed cradle. The circuit that drives the motors is mounted on top of the batteries. I initially planned to make my own circuits before laziness strikes and end up hacking an RC Car for the circuit :)
The wheel diameter is 11cm to clear the cradle width. Tried looking looking around for a pair of wheels that fit, unfortunately none were found.
The wheels are cut from 1cm thick MDF. For grip, rings are cut from motorcycle’s tire inner tube and stretched over the circumference of the wheels.
The completed lower part of the robot. The wheels are mounted directly to the motor shaft. At this point you can give a test drive and see if you balance everything just right.
- The robot stalls because the motors do not produce enough torque to drive it.
- Or motor’s torque is too high that cradle starts making full spins, particularly when the robot starts to move from a stationary position.
- Or the robot moves but there are minor swings of the cradle particularly when the robot starts to move from a stationary position, or when it changes direction.
If the cradle makes full spins, either reduce the power to the motors by adding limiting resistors, and/or add more counter weight to the cradle (more tips below). I used both approaches, resistors to limit the power to 5.5V 50mA, and the adding of more counter weight.
The minor swings of the cradle everytime the robot starts to move or change direction is perfectly normal (it’s a WobblyBot after all). The force exerted by the motor’s torque is opposed by the weight of the cradle and both forces will eventually balance out after a few wheel turns.
The Upper Body Frame
The upper body frame is constructed from balsa wood and it is really up to your creativity. The goal is to keep the upper side of the body as lightweight as possible, hence the use of balsa. Glue is used liberally for the joints and staple guns provide the reinforcements.
The frame is held in place on the cradle with brackets on four ends, and top four edges of the frame are slightly tapered to make it easy to slot in the robot’s facade later.
Tuning The WobblyBot Further
The robot should be able to stand straight up when stationary. If it’s leaning either way, simply add/shift more weight to the opposing side. Balance is key. If not the robot will either not able to balance straight up, or it will not be able to move straight forward and backward (because one wheel is carrying more load than the other).
You can also tune the amount of wobble this way, the more counter weight added to the cradle, the less wobbly the robot gets. Keeping in mind that weight must be kept evenly distributed.
Also take note that some more weight will be added to the upper body frame of the robot when you add the facade, so compensate the counter weight accordingly.
It may take several attempts before you hit the right balance between just the right amount of wobble and the right amount of counter weight.
All this tuning and the adding of counter weight will make the robot quite heavy. Be sure to not overdo it and end up straining the motor.
The easiest way to add weight and balance them out is by using these stick-on car wheel balancing lead. Simply stick them onto the cradle.
Making The Facade
This is the part where you can get really creative. The facade is nothing more than a box made from thin cardboards.
Come to think of it, a bunch WobblyBots looking like Pac-Man and Ghosts (Blinky, Pinky, Inky and Clyde) would make a really cool swarm.
Constructing the cardboard facade
The cardboard facade is created in a manner that it can be slotted snugly over the balsa upper body frame. There it sits without any gluing or mounting.
This is for ease of access to the component inside, i.e when you want to switch ON/OFF the robot or when you need to change the batteries.
This work by Chein is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.