Next section - Previous section - Beginning of article - Back to Johuco

3. The Robot

Let us now design a creature which combines the insights gained in behavior-based control and neural modelling. The robot presented here is called "Muramator", or "wall lover" in Latin. As its name suggests, this robot follows along the edges of objects. Like the snail, it does this by breaking the task down into separate parts. The most primitive of these is the EXPLORE module which constantly urges the robot to go forward. This causes the robot to move around its environment; unfortunately, it also causes the robot to get stuck easily. To prevent this, we add another behavior, AVOID, which overrides the output of EXPLORE. AVOID steers the robot away from any perceived obstacles that might be encountered.

behaviors With just these two behaviors the robot is capable of wandering around its environment for long periods of time. However, it tends to bounce around like a drunken pool ball. To make the robot more responsive to its world we add a third behavior, SEEK. This module searches for objects and guides the robot toward them. Like an ancient mariner, it attempts to keep the shoreline of its world in sight at all times. A dynamic balance exists between SEEK and AVOID. Together, they keep the robot running roughly parallel to the edges of objects.

These abstract specifications now need to be translated into real rules. To do this we need to know the actual perceptual and motion capabilities of the robot. For the body of our robot, we have chosen a vehicle which is able to stop, to go forward, or to turn in place toward the left. No other actions are possible. For sensing, we use a single infrared proximity detector. This device works by emitting a beam of light then looking for a bright reflection. The sensor is able to see objects in a almond-shaped region about 3" wide by 12" long.

typical path

The implementation of the first behavior, EXPLORE, is trivial: we just run the robot's motor forward all the time. The next behavior, AVOID, is also fairly simple. If the obstacle detector senses anything, we run the robot's motor in reverse thereby causing the creature to turn away from the stimulus. However, the orientation of the sensor is important in this case. It is important for the robot to have some forward vision to avoid ramming into objects directly in its path. However, if the sensor points straight forward, the robot is likely to side-swipe them. Therefore, we compromise and aim the sensor about 30 degrees to the right of the robot's midline. This naturally makes the robot more sensitive to obstacles on the right; a sensible choice since the robot avoids things by turning left.

The last behavior, SEEK, is more difficult to instill in the robot. The robot can only look in one direction, and anytime it sees something it is programmed to turn until this sensor reading disappears. Thus, we can't directly determine where the wall is and how to steer the robot toward it. However, if the proximity sensor is active a large percentage of the time we can assume that the robot is still near obstacles. Open spaces, on the other hand, are characterized by the absence of any sensor readings. This forms the basis for our seeking strategy. When the robot has not seen anything for a while, it spins around in an attempt to locate the edge of the world again. Because it avoids things by turning left, the creature has a good chance of finding things if it turns right instead. Yet, our robot can only turn to the left; to turn right we must go the long way. We do this by timing the movement to yield a 270 degree rotation. Notice that if the new SEEK behavior is omitted, the robot will not turn back toward the wall as indicated, but instead zoom off into space.

The total collection of behaviors can be embedded in a network of 11 simulated neurons as shown below. For motor control the robot's brain has one neuron which drives the robot forward and another which causes it to turn. This makes the primitive behavior EXPLORE easy to implement: a continuously active neuron drives the "forward". The innards of AVOID are also simple: it just activates the "turn" neuron when the robot sees something. This is particularly easy since the appropriate obstacle detection signal is directly available at the output of the neuron marked "15ms" (to be described later).

Notice that neither EXPLORE nor AVOID is directly connected to the motor neurons. Instead, each sends its command via a single intermediate neuron. When designing large networks it is good practice to insert an "interneuron", such as this, to serve as an interface point where higher level signals can be injected. In this case, AVOID suppresses the default forward command by inhibiting the interneuron involved in the EXPLORE behavior. This blocks the original motion directive and allows the more important AVOID module to substitute its own instructions. Technically, AVOID should really have two interneurons: one to generate the new command and one to suppress the old command. This arrangement would let us cascade suppressor nodes so that the most important behavior could suppress all the others with a single connection.

full network

The third behavior, SEEK, is composed of two additional neurons. Neglecting the weight 100 input, we can see that the remaining structure is identical to the basic oscillator presented earlier. The output of this unit feeds directly into AVOID's interneuron and thus causes the robot to turn. There is no new interneuron involved in this pathway because there are no higher level behaviors which might need to suppress SEEK. An important feature of this module is that the strengths of both the excitatory and inhibitory connections (kf and kt) of the underlying oscillator can be varied. Adjusting the kt weight makes the output of the oscillator remain high longer and thus causes the robot to turn through a greater angle. Adjusting kf controls the interval between turns and thus determines the distance that the robot travels before spinning around to look for the wall again. However, the creature is basically blind during one of these programmed turns, and may rotate all the way past the wall when seeking it! This is the reason for the inhibitory connection with a weight of 100. As soon as the robot senses an object nearby, the oscillator is reset to the off state. This not only causes the robot to stop turning, it also synchronizes the unit so that it correctly measures the time since the last obstacle sighting.

detector waveforms

The remaining four neurons form the proximity detection subsystem. The neuron in the lower left corner of the diagram is directly connected to the infrared emitter and generates the outgoing signal. This neuron functions as a simple oscillator and produces a symmetric square wave. It is necessary to modulate the infrared beam to differentiate it from ambient infrared sources such as sunlight. Once the beam bounces off some target, the two neurons in the upper left corner of the diagram are responsible for processing the returned signal. The first neuron in the chain represents the detector. It is "on" when incoming infrared radiation is detected. Since we emit a series of pulses, the output of this first neuron resembles the top plot shown in the next figure. The next neuron smooths out this waveform to yield a simple binary output as shown in the bottom plot. It does this by using the integrating properties of our neural model. When the detector neuron is on, the input to the second neuron is 1*8 - 1 = +7 so the internal potential of this neuron increases. Between pulses the input sum is simply -1 and thus the potential slowly decays. This sequence of events is shown in the middle plot. For ease of plotting, we have changed the weight of the input from 8 to 3. However, this does not change the qualitative results. As can be seen, it takes several pulses to charge the neuron up to a high enough level to generate an output. This is useful for rejecting noise pulses. Similarly, the slow decay constant allows the system to "fly-wheel" through signal dropouts: the output of the neuron will remain on for several cycles after the stimulus vanishes. This same phenomenon can also be used to artificially increase the size of the avoidance turns the creature makes.


Next section - Previous section - Beginning of article - Back to Johuco

Copyright © 1990, Johuco Ltd., All Rights Reserved