Robinson's Robots

HeadWalker


[Home] [Machines]       [Headwalker] [C/M Model 4]

HeadWalker is conceptually based on Justin Johnson's "PhotoWalker", but except for the head, the circuits are quite different. The name is generic, describing a class of robots. It refers to a modular type of walker that responds to signal from both a head and other types of sensors. The main modules are:

  1. A reversing master bicore - slave monocore to control the walking motors.
  2. A Power Smart Head 1 comlete with integraters to seek (or avoid) light.
  3. A selection of higher level control circuits which include touch sensors and regulate the walker's response to light.
The head and walker control circuits are based on 74HC240 integrated circuits, as shown in the following diagram.

Head and Walker circuit diagrams.

The head circuit is shown in the top half of the diagram and the walker circuit in the bottom half. Although they are shown on one diagram, they are comletely independent of each other. It's important with both these circuits to use the correct inverters. This is because parts of both circuits can be disabled by the control module. If you're not exactly sure how the 74HC240 chip works, it's best to follow the pin numbers shown on the diagram. Chip numbers, pin numbers, and a few component identifiers are shown in red.

The diagram shows motors connected directly to the inverters. In practice, the inverters are probably inadequate to drive the motors directly, and in any case motor noise is likely to disrupt the circuits. The motor symbols therefore represent motors and their drivers, complete with noise filtering.

A pair of optional diodes is shown on the left connecting the two circuits. With these diodes in place, the walker will turn in response to movement of the head. No additonal circuitry is needed. While you can wire the two circuits directly together using the diodes, I suggest instead that you bring the lines shown on the left out to a six pin connector. A simple plug with the two diodes attached can be plugged in to connect the circuits. Later the diodes can be removed and one of the several control circuits can be plugged in instead.

The head and walker circuits have both been tested independently by others with actual hardware and appear to function well. To my knowledge the two have never been connected together although the connection has been simulated. Resistor values in both circuits must be adjusted to suit the motors they are to control.

Power Smart Head Module

The head circuit in the top half of the diagram consists of the actual Power Smart Head (top row of 4 inverters) and a pair of integrators (second row of 4 inverters). The PSH circuit produces one high and one low output when it is tracking a light source. When it is locked on to the light source, the two outputs pulse slowly, both on and both off at the same time. The integrators smooth the pulsing outputs when the head locks on, pulling both outputs low.

The head motor is driven by the PSH circuit directly. The integrated outputs are secondary and send control signals to the rest of the robot's circuitry. If a high (+) signal is sent to the Head Disable pin, the integrated outputs are turned off completely. This allows the head to continue tracking light, but prevents it from influencing any other circuits.

If the head responds incorrectly to light (i.e., turns the wrong way), swap the lines at "Y".

Walker Module

The walker circuit in the bottom half of the diagram is a simple grounded bicore master driving a monocore slave. The master bicore is built around the rightmost pair of inverters and the slave monocore is built around the leftmost pair of inverters. Between these two circuit elements is an inverter in parallel with a resistor (R2) which links the two halves of the walker circuit.

This fifth inverter is used to reverse the walking direction. Normally the inverter is disabled and the signal from master to slave passes through R2 and then through R1. If a low (-) signal is sent to the "Reverse" pin, the reversing inverter is enabled. This will bypass R2 and invert the signal from master to slave, thus reversing the walking action.

Connecting either of the "Turn" pins to ground will alter the delay of one or the other of the master bicore neurons. This will cause the walker's legs to start to turn off center and the walker will move in an arc. If the walker turns the wrong way when responding to the head or a "brain" circuit, swap the lines at "X".

Control Modules

The control modules monitor the output from the head circuit and control the connection between the head and the walker. They can also send signals of their own directly to the walker, based on other sensory input (e.g., tactile sensors). A few examples are provided here to illustrate how various types of control can be achieved. The modular design allows a great many alternatives to be created and tested all on the same basic platform.

Control module test circuit. While not essential, a circuit to test a new control module is useful. In the simple example at the left, a pair of pushbuttons simulate the outputs from the PSH circuit. Four LEDs respond to signals from the control unit being tested. This circuit can be built on a proto-typing perfboard, on one end of a breadboard, or on its own separate breadboard. The 1.0 k resistors (labelled RL) are current limiting resistors and should be adjusted to suit the test LEDs you are using.

The advantage of this circuit is that you can quickly test the various combinations of sensory inputs without having to wait for the robot to move around. To test the control circuit's response to the PSH turn signals, simply press one or the other of the pushbuttons. To observe the effect of the control logic press one of the buttons, or trip a tactile sensor in the contorl module, and observe the effect on the LEDs.

None of the control modules have been tested, either on a breadboard or on an actual robot. Before using these circuits, test them. If you encounter problems, I'll be happy to have a look and offer suggestions. I'll revise the posted circuits as necessary (or pull them off the page if they simply don't work). You may need to change the delay of the two sensory neurons to suit your particular robot.

Control Module - Model 1

This control module was originally designed to give the robot a useful way of dealing with obstacles as it attempted to seek out bright light. The general principle is this:
  • The PSH is always attempting to "look at" the brightest source of light.
  • Normally the robot responds to the head by turning in the direction the head is facing.
  • If one of the tactile sensors touches an object, the output from the PSH is turned off and the robot turns away from the obstruction and continues to turn for a while, even if the sensor is no longer touching the object.
  • If both tactile sensors touch an object, the robot backs away from the obstruction for awhile, turning at the same time. This makes it less likely that the robot will attempt to retrace its steps when the reversing phase is done.

Headwalker control circuit - Model 1.

The circuit is divided into sections which are described across the top of the diagram.

Contact Delay
A pair of tactile switches, each combined with part of an Nu neuron. The neuron introduces a slight delay to avoid false signals that can occur if the switch closes for just an instant.
Response Delay
The remainder of each Nu neurons resets the neurons after a long delay. This allows the robot to continue responding to a contact, even after it has moved and the tactile sensor is no longer touching anything. The neuron output is normally low.
Head Signal Disable
A pair of diodes from the Response Delay neurons act as a logical "OR" gate. If either tactile switch is touched, the corresponding neuron output goes high and the high signal is sent to the Head Disable output.
2-Contact Decoder
This determines what happens when both tactile sensors make contact simultaneously. In this case a logical "AND" gate produces a low output signal when both sensors are activated.
2-Contact Response
This determines what action to take when both tactile sensors are tripped. In this case two things happen: a low output signal is sent to the Reverse output; and one turn inverter input is pulled low. This over-rides the normal turn response when a sensor is activated.
Turn Signal Inverters
These are simple inverters that turn the sensor neuron outputs into "normally high" Turn outputs. This prevents them from interfering with the Head Turn inputs when the the PSH is controlling the walker circuit.
To make one point clear, notice that the output from each sensory neuron goes directly to an inverter, and then to the Turn output. This means that if either sensor makes contact, one of the Turn outputs is activated. Normally if both sensors make contact both Turn outputs would be activated. This would change the length of the walker steps in both strides and would prevent turning. This isn't desirable in this design, so the over-ride from the 2-Contact Response circuit was added. It prevents one Turn Signal Inverter from being activated if both sensors are tripped. The combined effect when both sensors make contact is to back up while turning in one direction.

Notice also that the Head Turn inputs from the PSH are sent back directly to the Turn outputs. With no recent sensor contacts, the entire control circuit is inactive and the PSH signals are passed back to the walker circuit.

Control Module - Model 2

Model 2 doesn't exist at the moment. The original had a serious logic flaw and never got beyond the drawing board. Watch for a new model 2 sometime in the future.

Control Module - Model 3

This control module was designed to give the robot a different, but equally useful way of dealing with obstacles as it attempted to seek out bright light. The general principle is this:
  • The PSH is always attempting to "look at" the brightest source of light.
  • Normally the robot responds to the head by turning in the direction the head is facing.
  • If one of the tactile sensors touches an object, the output from the PSH is turned off and the robot turns away from the obstruction and continues to turn for a while, even if the sensor is no longer touching the object.
  • If both tactile sensors touch an object, the robot backs directly away from the obstruction. Then it moves forward, but turns at the same time. This makes it very unlikely that the robot will attempt to retrace its steps when the reversing phase is done.

Headwalker control circuit - Model 3.

The circuit is divided into the same sections as in the previous circuit. All the sections except for the 2-Contact Response section behave the same as in the Model 1 circuit. Only the difference in response is discussed here:

2-Contact Response
This section consists primarily of a grounded Nv neuron. Normally it has a high output and is ignored by the rest of the circuit. When both sensors are activated, The 2-Contact Detector output switches from high to low, activating the Reverse output. This transition has no effect on the Nv neuron so the robot simply backs up. However, when the sensory neurons deactivate and the 2-Contact Detecter switches back from low to high, the rising signal triggers the Nv neuron which produces a brief low pulse. This pulse feeds back through a diode and a small protection resistor (R10) and triggers a false input signal at one of the sensory neurons.
The secret to the functioning of this circuit is the brief pulse to a sensory neuron after the robot has backed up. This "fools" the robot into thinking it bumped into something so it will turn away from the imagined obstacle.

Control Module - Model 4

This is by far the most complex and -- if it works -- sophisticated control module I've designed for HeadWalker. The Model 4 control module is sufficiently complicated that it has it's own web page.

Final Thoughts

One characteristic of the PSH circuit is that it only sends output signals when the head is turning. This creates the situation where the head turns to face the brightest (or darkest) point, and then locks on to the source. Meanwhile, the walker may not have turned far enough to line up with the head, so it walks past the source rather than toward it. Of course this moves the head past the light source and eventually it will start to turn again and send turn signals to the walker. The overall effect, then is for the walker to wander in circles around a light source, rather than toward it.

If you would prefer different behaviour, and if your head motor is not too powerful, you can add a centering spring to the robot's head. This means that if the head locks on to the light source but the walker is pointing somewhere else, the head will keep getting pulled back in line with the body. This will keep activating the PSH circuit causing it to continuously send out "turn" signals.

The basic platform -- PSH plus integrators plus reversing walker is to me a very exciting starting point for robots with complex behaviours. The design takes the most important control inputs and outputs to a connector, which allows the builder to experiment with any number of control units. If I were to improve on the basic design at all, it would be to add 100k pulldown resistors to the "A" enables on both chips and take the enables out to the connector. This would allow a control unit to shut down the PSH or the walker circuit completely. It is also worth considering adding (+) and (-) pins to the connector. This would allow a complete, free-standing control unit to be added simply by plugging it in. "Plug and go" as it were.

Notes

  1. The PowerSmart Head (PSH) was designed by Wilf Rigter.

HeadWalker History

HeadWalker began by accident. Sparky Garvin asked me a couple of questions about Justin Johnson's "PhotoWalker" which combined Wilf Rigter's PowerSmart Head and Justin's own Hemicore walker circuit. It seemed to me that something was missing: if the two circuits were simply connected, there was the potential for a short circuit. Sparky set out to ask Justin for more information while I played around with the circuit diagram.

Sparky eventually learned that there was indeed another circuit involved. By that time I had completely re-worked the walker circuit so that it bore no resemblance to the Hemicore. Instead, it had evolved into a master-slave grounded bicore / monocore, complete with reversing and turning capability.

Justin's connecting circuit incorporated touch sensors as well as the link between the head and the walker. I decided to rework this circuit as well and it was while I was doing this that I realized the original concept was perfect for modular construction.


[Home] [Machines]       [HeadWalker] [C/M Model 4]

Copyright © 2001 Bruce N. Robinson. Last updated 2001-07-06.