More on . . How to make a Robot Walk
This information has been adapted from an excellent site by A Miller.
P1 P2 P3 P4 P5 P6 P7 P8 P10 P11 P12
ADDING THE LEGS
Leg shape and configuration will vary greatly between machines. A few things to bear in mind are:Contact point:
This is the most important aspect of leg design. The shape of the leg is less important than where it touches the ground. By placing your robot on a sheet of graph paper as shown above you can get symmetrical contact points.
Try to make the legs at least 2/3 the length of your robot, this of course will depend on the available torque. It has also been shown that making the back legs slightly wider than the front helps stability.
Make sure your legs are connected with something structurally sound, krazy glue doesn’t cut it. If you can't solder the legs directly to the output shaft then try and find some sort of locking ring or set- screw that will fit. Look for brass gears or pulleys that have their own set-screw and then you can solder the legs directly to the brass.
Angle: By angling the legs slightly forward they will have the ability to "ratchet" over obstacles.
Your legs will change shape several times before you are finished so it's best to make a set of "test" legs that are easily recoupable before you use the good materials. 12 or 14 gauge household copper wire makes effective re-configurable "Gumby" legs.
MAKING IT WALK:
Have no fear, the other two Nv's will be useful later...
The ALS245 Driver:
The result is four drives capable of 100mA each. Good, but not great.... So if you need more, double your output by stacking a few chips like this...
Power on the whole thing, stabilize the loop (use the PIN and PNC buttons to get a "One Process"), and watch this animation:
If things aren't right, change the polarity of one of the motors and it should work.
Convergence, or the subtle art of falling over.....
This is where we try and make your pile of wire and batteries walk. This is kind of the counter-intuitive part of the whole thing. Most people are of the misunderstanding that in order for a Robot to remain on its feet it has to be balanced at all times. This is the train of thought that leads to so many 6 leg walkers; three legs is a stable platform from which to move your other three. Although this is in some cases successful, it makes for a robot that doesn't adapt well. Walking should be thought of as controlled falling. Static Balance is not the key, rather it's Dynamic Imbalance.....
Methods of adjustment...
There are several ways to make your walker stumble around. All of which are in some way related to the center of gravity of your bug. None is more important than the others nor is it possible to make it walk without adjusting all of them.
Nv Time value: You'll note that in its raw state the Nv is just an RC time value (but remember it is not a constant, it adjusts itself according to load). So at a base level you can change the Duration of Rotation of each of the motors. One Meg Ohm is the default value, it is just a good starting point. You can adjust the values as high as 20 Meg Ohm or as low as a few k Ohms. By changing the duration of the leg's movement you change where it stops. If you think of the Walker as a first class lever (there are three classes of levels and the first class is the see-saw class) and the feet as fulcrums, you'll see that the position of the leg when it stops is crucial to which direction it tips.
Weight Redistribution: This one is obvious. By moving the components from front to back you change the Center of gravity. The batteries are a good candidate for this since they are invariably the heaviest thing on the bug.
Leg Shape: This is the thing most likely to change dramatically. By bending the legs back and forth you change the fulcrum point and thus the balance. Remember that contact point is more critical than leg shape.
What it should be achieving: The easiest way to get an idea about what the legs should be doing is to step through the motions manually ….. This is where the compliance thing comes in. If you can’t move the legs manually then the motors are not going to provide an appropriate feedback to the MicroCore…
By twisting the front leg CW approx 45° off center and the back leg approx 30° CW you have what we’ll call start position. The Walker should now be balanced with its front left foot in the air and be just on the verge of tipping forward onto it.
This is where the dynamic imbalance thing comes in, the bot Literally falls over onto its front foot.
You should be able to tell if it is at the tip point by giving its butt a little tap, it should tip to the front foot and stay tipped. If it doesn’t, try moving the battery forward or back in order to find the balance point (leg configuration will come later). The next step (literally) may or may not be obvious. By moving the back legs CCW you will move the fulcrum back, thus making the front tip down and the rear right foot raise off the ground. Keep rotating it until you have moved it 60° or so. The front two feet and the back left one should be flat on the ground and the rear right will be just off the ground towards the front of the walker.
The walker has just completed a half a cycle (two Nv processes).
Now, by moving the front leg CCW 90° you will provide lift and drive with the front left foot and raise the right side of the front into the air just to the tipping point. Now it's time for the rear to produce the drive forward that tips the walker forward and raises the rear left foot while stepping. This is done by rotating the rear CW 60°.
Finale! One walking cycle and a full loop around the MicroCore….
Now go through the process a few more times manually with the power off, and familiarize yourself with what it should be doing. You may have to move the battery around and change the legs a little. But remember that Symmetry is VERY important. In order for both sides to be doing the same thing you need to have the feet contacting the same place with respect to the body (how the leg gets there isn’t as important). The body should also sit flat when all feet are down and the legs are straight out. If the body leans, then one leg is shorter than the others and your bug will limp.
On the next page we will show how to connect a 4 Nv MicroCore circuit to two motors via a 74HC245 octal buffer chip.