Page 9
More on . . How to make a Robot Walk
This information has been adapted from an excellent site by A Miller.
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.
Width:
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.
Connection:
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.
We are going to make a minor detour here (you may have noticed we don’t have the MicroCore connected to anything yet).
This section covers connecting the Nv net to the Muscles - the motors. The following is a Low Current solution. High current motors and drives present a whole new set of problems that, trust me, you don’t want to deal with right now. Besides, the MicroCore does its best when driving through a low gain system.
By now you should have familiarized yourself with the basic 6 Nv MicroCore circuit. But a few calculations will show that with two motors and two directions, 4 Nv’s would seem appropriate. For basic walking functionally 4 of the 6 available Nv’s in a 74C14 chip (40106) are needed in a two motor walker (although 6 makes for a whole new set of behaviours), so rebuild the basic circuit to get this…
Have no fear, the other two Nv’s will be useful later…
The 74ALS245 is an Octal bus transceiver designed for data transmission. We are going to use it to drive Motors. If you’ve chosen your Motor/Gear combination properly, this won’t be a problem. If you look up a TTL data book you’ll see the ‘245 has 8 bi-directional non-inverting amplifiers each capable of driving 50mA, a direction pin (Dir) for selecting the direction of the signal through the chip and an enable pin (E).
If you tie the Dir pin to +ve and the E pin to -ve, you can essentially think of the chip as 8 active drivers going from left to right like this graphic… A data book will show you more but for the purposes of driving your legs this’ll do…
The ALS version has been found to be the best for current, feedback etc…
CMOS such as HCT, HC, C will work but they loose a little in the feedback. They do consume less power so for solar applications they are the better choice…
If you are building a battery walker use ALS where-ever you can and contrary to what some people will tell you, they are still available.
If you’ve tested your motors you will probably find they need a little more than 50mA to do anything useful. And with a few calculations, you’ll see there are 2 drivers available for each Nv, so gang them together like this…
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…
So now you have a 4 Nv loop set up and a 4 channel driver set up. The next step is to glue them together and add the motors. 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.
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…
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.
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.
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.
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.
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’llcall 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°.
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.
Quick Links
Legal Stuff
Social Media