You are on page 1of 15

How to make a Robot Walk

This information has been adapted from an excellent site by A Miller.

Introduction
This section describes how to make a walking robot. The simplest robots are called BEAM ROBOTS. And the simplest walkers are called BEAM WALKERS. They consist of just enough circuitry and mechanics to carry out the intended function, and in this case it is the operation of walking. The simplest circuit to get a robot to carry out the walking function has been designed and patented by one of the earliest developers of Robots, Mark W. Tilden. He gave the name MicroCore to the type of circuit that drives these basic designs. The concept of the MicroCore is pretty clever. Using just a handful of components, you can build the control circuitry for a walking robot that senses its environment and adjusts its gait accordingly. The clever part is the circuit is so simple! A MicroCore consists of a capacitor, a gate, and a resistor. This is called a 'neuron.' Each neuron has an input and an output. The components are connected so that the capacitor and resistor form a delay circuit. If we make the input HIGH, the output take a short time to react. Mouse-over the animation below to see how the Neuron circuit works.

The gate is actually an inverter and it also has the ability to strengthen the pulse. If we connect the output of one neuron to the input of another and take the output of the second to the input of the first we have a complete loop and we have created a BiCore. A circuit can consist of as many gates (inverters) as you want, hooked-up nose to tail. Every 'neuron' of a MicroCore consists of a capacitor, a gate, and a resistor. A circuit containing a number of 'neurons' will produce amazing things. This is what this discussion is all about. If you have a BiCore controlling two wheels, and want the robot to turn right, you have to make the motor on the left run for longer - simply change the resistance for that neuron. If you incorporate 2 photodiodes into the MicroCore, you can make a robot always zigzag its way towards light! This is really impressive and demonstrates how simple "complex behaviour" really is. In this discussion we are going to explain the operation of the . . .

MicroCore
The MicroCore circuit can be likened to a nervous circuit in that it gives life and realism to a robotic shape. The MicroCore circuit is a basic circuit used in the majority of BEAM Biomorphic walkers. To get an idea of the basics of this topic, the following paper was prepared by Mark Tilden:

Biomorphic Robotics and Nervous Net Research: A New Machine Control Paradigm
Mark W. Tilden, Biophysics Division, Los Alamos National Labs Submitted for publication to the EANN '95 Conference Proceedings "Special Track on Robotics." Nervous Net (Nv) technology is a non-linear analog control system that solves real time control problems normally quite difficult to handle with digital methods. Nervous nets are to Neural nets the same way peripheral spinal systems are to the brain. This work has concentrated on the development of Nv based robot mechanisms with electronic approximations of biologic autonomic and somatic systems. It has been demonstrated that these systems, when fed back onto themselves rather than through a computer-based pattern generator, can successfully mimic many of the attributes normally attributed to lower biological organisms. Using Nv nets, highly successful legged robot mechanisms have been demonstrated which can negotiate terrains of inordinate difficulty for wheeled or tracked machines. That non-linear systems can provide this degree of control is not so surprising as the part counts for successful Nv designs. A fully adept insect-walker, for example, can be fully controlled and operated with as little as 12 standard transistor elements. Since the start of research in the winter of 1994, development of this technology has advanced to solving currently difficult sensory and cognitive problems. It is hoped in the coming years Nv systems may do for robot vision (amongst other disciplines) what has been done for autonomous robot vehicles, namely the reduction of currently complex systems down to an inexpensive but robust minimum. Further efforts are also being made to apply this control strategy to the expanding nano-technology field. At the nanometer scale Nv's may prove more feasible than nano-computers for control of self-assembling micro structures. For now, however, Nv research concentrates on problems of scale invariance, proving by example (or exhaustion) this control system can work at all scales, types, and styles of robotic application. The Nv control method could be adapted to most types of machine control, but it has been applied to autonomous robots because of the difficulty conventional control systems have solving the seemingly simple task of negotiating undefined complex environments. The 80 or so "biomorphic" robots (from the terms BIOlogy and MORPHology, and the Latin for "living" and "form") built so far are not "workers" in the traditional sense, but "survivors," in that they fight to solve the immediate problems of existence rather than procedural condition (i.e. they do not follow the rules of an internal program that mimics the external world, but the world itself). Nv control architectures focus on adaptive survival rather than the performance of specific tasks. Once survivability is under control, goals can be superimposed and the machine used as a platform to carry sensors and conventional electronic intelligence. It is believed that these machines, although now in an early stage of development, can within a few years be brought to the point that they can serve as inexpensive, robust, and versatile carriers for a variety of instruments. A vast number of applications would then be possible, including the location and possible clearing of land mines from civilian areas, security, maintenance, medical and prosthetic applications (a cost-effective "walking wheelchair" for example), and even cars with onboard "survival" instincts to save themselves and their passengers, from damaging accidents. Though the Nv based legged devices built so far cannot go everywhere, they can certainly go places not currently accessible to wheeled or tracked vehicles of similar scale. It seems that for handling undefined environments, biomorphic designs are a very

efficient and cost-effective approach. Initially it was thought these devices avoided the problems of an internal world representation by using a reactive or behaviour-based technique. Recent work has shown however that Nv biomorphs instead take a chaotic map of their surroundings onto their process control hierarchy (that is, they dynamically and efficiently adapt to the fractal complexity of their surroundings). This is due to the analog-electronic nature of the devices, the adaptive hardware of their structure, and the topological orientation of their interconnections. The defining characteristic of this adaptation is continuously updated by the immediate fractal complexity of the environment. These devices are "soft" designs, in that the environmental dimension must be absorbed, modified, and acted on for the devices to make successful headway through a complex world. These devices do not use "feedback" in the standard sense, but rather "implex", as the driving forces are augmented by perceived load rather than by a separate regulating path. The result is highly compliant, animal-like machine motions that "negotiate" rather than "bully" their way through environments, resulting in minimal damage to both world and robot. We talk about these devices in the general sense because the precepts of their existence and subsequent design are based upon environmental macros, such as fluidity, turgidity, gravity, scale, materials strength, and many other factors. The power of biomorphic designs is that this information is used as the defining principles to shape appropriate survivor(s) for a particular environment. The machines that emerge are vastly different from any conventional robotic forms. We suspect, at least from the experimental evidence, that this technique embodies a new type of non-linear control paradigm, and at least an entirely new engineering discipline for the matching of competent machines to complex environments. Here, once the problems of existence are ratified, the devices can do unsupervised, long term work without human intervention (some devices have been in continuous operation for over 5 years). The potential for this control paradigm is vast, but it is far from linear, and requires integrated design attempts to pull a competent ability from the Nv nets. To this end, the use of this technology to "evolve" machines from a lesser to a higher operational state has resulted in not only a wide spectrum of devices, but even completely different "species" of creatures, all evolved from a primal "genotype;" the single "cell" creature known as Turbot 1.0. A further advantage is the speed at which this evolution has occurred, indicating that realworld Lamarckian evolution may match the success of many computer models yet seen. The diversity of this technique offers potential solutions to two main research fields, macro and micro robotics, and experimental work has been done to produce adept prototypes for both. The conclusions are that there may be some universal chaos-bounded concepts that bind survivor oriented designs, allowing for the creation and optimization of devices that can do work in any environment, under many situations, using chemically inert, and thereby relatively safe, control techniques (the idea of seeding a wheat field with pest-fighting silicon biomorphs to produce high yield, insecticide-free foodstuffs is an attractive example). Considering that biomorphs may last long enough to replace most forms of long-term damaging chemicals (i.e. pesticides, bleaches, medicines) the potential for the field really opens up. Deployed artificial chemicals perform a task in their immediate area of concentration, and then disperse into the environment where, after a time, they cannot be absorbed adequately. Biomorph machines, made from biodegradable silicon and trace elements, can be made gregarious so they do not of their own volition disperse, and can be absolutely controlled by conventional methods. Whether at micro or macro scales, these designs are not just capable, but competent. Furthermore, as they are self "programming" and non-reproductive, their behaviour is both contained and predictable. Nv biomorphs are something new with a demonstrable potential. Future work will concentrate on how this technology could fill in the cracks between science

fiction and reality by finding out what is feasible now, and how to logically proceed to marketable, capable machines. In the coming years, it is hoped to be possible to demonstrate real machines to assess feasibility for macro and nano robotic applications. Expansions of the fields of robo-biology, robo-morphology, and artificial ecologies will be studied and published, along with extensions of this field from self-repairing processors, new computational paradigms, and even nano-robotic surgeons-in-a-capsule. Biomorphics is new, but it is slowly gaining the maturity and acceptance necessary to become a valid work tool. The basic circuit for a MicroCore consists of a capacitor, a gate, and a resistor. The arrangement of the components is shown in the circuit below. This is called a NEURON.

Mouseover the NEURON circuit below to see how it works. The secret to the operation is this: The capacitor charges and the circuit changes state a short time later. The capacitor and resistor form an arrangement called a DELAY CIRCUIT. The LED has been added to the output of the gate so we can see how and when the circuit operates.

We are interested in the operation of the output AFTER the input has changed. The circuit is just like a spinal cord without anything attached. It is called an Nv circuit. You can't drive motors yet but until you understand the basic states of the MicroCore circuit, the operation of motors will make even less sense than the LEDs. Two Neuron circuits will work when connected head-to-tail and with the output of the second connected to the input of the first:

The operation of the circuit is shown in this animation:

You will notice the capacitor charges via the 1M resistor as the input of the gate is a very high impedance. When the output of a gate goes low, the capacitor is discharged via a diode on the input line of the gate. This diode is a Schottky diode and is designed to prevent the input of the gate going below 0v. The change from one state to the other is almost instantaneous and only one LED is illuminated at a time. We have slowed down the animation to show the gates in action and the two LEDs appear to be off for an instant. This does not actually occur. If we extend this circuit to the 6 inverters of a hex Schmitt Trigger IC, and take the output of the last Nv circuit to the input of the first, we get a circulating pattern. The circuit will always start-up and each alternate LED will be illuminated.

When the circuit is connected to a Robot, the following effect will be produced:

This is known as the Saturated State. This means all Nv's are firing at Max rate. There is a Maximum of 3 Processes. A process is defined as one LED/Nv ON at any one time. Note: there are never two illuminated LEDs side-by-side at the same time. This is the Fermei exclusion feature of the MicroCore and an attribute shared by biological Nv nets. Saturation is the natural Power-on state. It is the crazy-go-nuts state for a Nv Net - like a bug that has had too much coffee. Saturation will occur when the MicroCore encounters a disruption in main power or when too much data is received from sensors or Nu/Nv nets. Fortunately it's easy to get a more stable useful state. Adding a Process Neutralization Circuit (PNC). Wire up a switch to short out the input bias resistor like this.....

Closing the switch destroys any re-circulating pulses. Hold it long enough and all processes are destroyed. This is called the Null State, Off State. This is a Nv net at rest.

Two Process State. By holding the switch closed for approx 2 seconds you should be able to
achieve this....

If all values are even, and no glitches or noise is received from the motor, the processes should fall 180 degrees out of phase with each other. This is seen when they appear to be running side by side with each other. Two processes are like Parkinson's disease. The Nv's are trying to act against each other and if they fall into this mode, you have "lock up." This state can be useful in some cases but in the case of a simple walker it's not much use.

Single Process State. By Holding down the PNC switch for another 3 seconds or so you should get
this. This is the stable One Process State that is the basis of most of the Nv walkers.

Adding a Process Initialise Circuit (PIN). By wiring up another switch from an input to Vcc (+ve) you can introduce processes to the MicroCore. By using the PNC and PIN switches you should be able to cycle through all the MicroCore's usable states.

Now build the circuit and play with it. In this discussion we are going to concentrate on a two motor four leg walker which although it is not the most flexible design, it is the easiest to build and has proven its reliability and capability in 35 existing machines.

THE MOTORS
This is probably the biggest consideration in a MicroCore Walker. The level of success you have with your walker is directly related to the type of motor used. The MicroCore itself gets an implicit feedback from the motors, this is what gives it the adaptability. What to look for in a Motor.... EFFICIENCY: This is REALLY important both from a power consumption standpoint (more-efficient motors require a smaller battery or main-storage electrolytic). High efficiency motors give you a better chance of success. You should look for a motor with at least a 35% efficiency rating, good cassette motors and pager motors typically fall into this range, Mabuchi hobby motors are way off (typically10%). Much higher efficiencies are possible (up to 88%) but this is usually found in expensive medical grade motors like "Escap" and "MicroMo." Keep your eyes open when perusing the surplus catalogues, these sometimes go on sale for as little as $5. SIZE: For the most part, smaller is better but it's not as important as efficiency. As well, you may want to consider your own skill level. In the beginning, don't try to work with things that are really small. Make sure you have extra motors. They come in handy.

THE GEARS
You cant build a walker without them. A motor alone doesn't put out enough torque and usually runs too fast. What to look for in a gearbox... Efficiency/Size/Numbers: For all the same reasons as above. Compliance: This is really critical. You should be able to grasp the output shaft with a pair of pliers and turn it to have the gears spin the motor. If you can't make the motor spin, then you have a gear train that is too inefficient (most likely) or too high a ratio. Worm drives are also OUT, they only go one way (motor to gear and not gear to motor) and they tend to choke under high loads. Output RPM: The ideal is about 30 RPM @ 5V. Higher RPM means you probably won't have enough

torque (and if you do, the robot will jump around so fast it's hard to figure out what it's doing). A lower RPM means the machine may be moving too slow to be of use. A high ratio may mean the legs will bend under the torque.

INTERFACING MOTOR AND GEARS


I strongly suggest you find a factory motor/gearbox combination. If you have to build your own then bear a couple of things in mind...... Direct gear contact: belt drives, friction drives, flexible shafts etc all have big problems as far as efficiency and compliance are concerned. Keep everything clean: Glue, solder flux and metal fillings are deadly enemies to gearboxes.

MATERIALS
Solder is our friend, only use materials that can be easily soldered. This will make it easy to build a frame. Welding wire or filler rod is the best. Copper clad carbon steel rod 1/6" to 3/32"diameter is cheap and available at any welding supply place. Any nice shinny option is High Nickel rod used for TIG welding cast iron but it's MUCH more expensive. Brass tube and wire found at most hobby shops is good too. I suggest a solder with an organic/water soluble flux, "Hydro X" by Multicore is my favourite.

BASIC FRAME LAYOUT


The diagram below shows the basic layout. You need to keep the motors and output shafts lined up front to back and the front motor should be tilted at 30 degrees. This means the front motor will supply lift and push but we'll discuss that more later. You should mount the motors far enough apart to fit all your electronics including batteries (usually about 4").

More on . . How to make a Robot Walk


This information has been adapted from an excellent site by A Miller.

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. 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 doesnt 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:
We are going to make a minor detour here (you may have noticed we don't have the MicroCore connected to anything yet).

MicroCore/Leg Interfacing

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.

Rethinking the Nv net:


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 ALS245 Driver:


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.

Ganging up for Current


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...

The connection
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 Up
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.

Tuning for a walking Gate...


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 cant

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 well 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 doesnt, 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 isnt 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.

To search more than 40 BEAM sites, click BEAM ONLINE.

In this section we show how to connect a 4 Nv MicroCore circuit to two motors via a 74HC245 octal buffer chip. This is not a project with a kit. It is a Feature Article with references to sites on the web. You will need to go to hobby supply shops for the components - especially the hardware items and motors. Try the LINKS page of BEAM ONLINE for suppliers. The circuit has been taken from Chiu-Yuan Fang's excellent site. On it he has produced a BEAM Robot called "Walker" and has a number of photographs to show how it has been put together. The following are thumbnails of some of these shots:

Front view of Walker

Side view of Walker

The electronics, batteries and motors

The underside

View 2 more pages of the excellent pictures of Chiu-Yuan Fang's Walker Version 2: Page-1 photos and Page-2 photos The circuit diagram for the Walker is shown below. The diagram has been laid out to show how the signal progresses though the circuit. It circulates around the four Schmitt trigger gates, while at the same time driving two motors, in either forward or reverse direction. The circuit turns on with a long delay via the gate between pins 1&2. Two 1M trim-pots provide "straight-line" motion.

The 74HC245 octal buffer (driver) chip has a 50mA capability per output and two outputs are joined in parallel in the diagram above to get 100mA per line. If you require more current, the following transistor H-Bridge can be used:

The circuit above will provide up to about 500mA drive-current for each motor and this is needed when a motor has to be started under load. As soon as the motor "starts", the current will drop, but it's the ability of the circuit to provide a high starting-current that prevents a "stalled condition." The LEDs provide indicators to show the operation of the circuit.

You might also like