[From Bill Powers (2003.12.07.1847 MST)]
Bruce Gregory @003.12.07.1818)–
O.K. Then how does my traffic
example work if one control system does
not overwhelm the other?
I can tell you how the control systems interact in the Crowd demo, though
I don’t know what you mean by “overwhelm.” Perhaps you can tell
me if the following involves one system doing something called
“overwhelming” to another, and if the Crowd setup would seem
appropriate for application to the driving problem, given suitable
changes in parameters.
In the crowd program, the destination-seeking system computes proximity
to the destination according to an inverse-square-of-distance curve. As a
result, perceived proximity is nearly zero when the agent is far from the
destination, and the proximity error is close to 255 (since the reference
signal is set to that number, the maximum possible). Most of the way to
the destination, the error remains close to the maximum value, and the
speed, which is proportional to the error, is roughly constant. Only when
the destination-seeking agent is within perhaps 50 to 100 pixels of the
destination circle does the proximity error, and therefore the
speed, begin to decrease significantly. The gain of this control system,
which sets the ratio of speed to error. is low enough so that with
maximum error, progress toward the goal is at a moderate speed. I don’t
know how realistically you would say that this represents the way you
drive to a distant destination, but it does account for the limits on
speed when the error is very large, and the final decrease in speed when
the goal position looms close ahead. The proximity perception, by the
way, was based on the apparent visual area of objects as one approaches
them, which follows an inverse-square-of-distance law.
This agent also avoids collisions with other objects. The proximity curve
used for collision avoidance is steeper, so the perception of proximity
to an obstacle stays low until the obstacle is near, and then rises
sharply. There is a reference level for maximum permissible proximity to
an obstacle, set to something like 80 to 100 (with maximum proximity
again being 255 when at the point of collision). The collision avoidance
control system uses one-way control; that is, only proximities greater
than the reference level lead to avoidance actions. If the reference
level is set low, avoidance begins while the agent still far from the
obstable. A high setting of the reference signal would delay avoidance
until the object was close ahead. Avoidance consists of turning left or
right, the angular speed of the turn being proportional to the
error and the sign of turning being set by whether total left proximity
(from all objects) is less than or greater than total right proximity.
Also, the proximity error reduces the speed by an amount proportional to
error. That’s why the agent slows down when squeezing between two
obstacles. If the gain of that part of the loop is set too high, the
agent will stop instead of going between two obstables close
together.
When a collision becomes imminent, the destination-seeking system does
not change its output signals at all. The speed signal stays the same and
the directional signal remains proportional to the angle between the
direction of travel and the direction to the destination (well, not quite
proportional – there’s cardiod pattern that reduces sensitivity to
proximities to the rear of the agent).
The speed signals from the collision-avoidance and destination-seeking
signals add, so the total speed is proportional to their sum. The
direction signal is the integral of the summed outputs of the two control
systems, so while the direction to the destination remains about the
same, the direction error changes by a large amount as the agent turns to
avoid the collision. However, the contribution to the total direction
error signal from the collision avoidance system is somewhat larger, and
while collisions are near, is the winning contribution to the total
direction error signal and determines how fast the agent will turn. After
the collision has been avoided, the collision proximity error drops below
the reference signal and the destination seeking system becomes the only
determinant of the direction error, which is then corrected. The course
toward the destination continues. You could say that the output of the
collision-avoidance system overwhelms, or overcomes, the output of the
destination-seeking system when the two are not aligned.
Note that there is no direct action by the collision-avoidance system on
the destination seeking system. These are two independent higher-order
systems acting through a common set of lower-order systems. The
destination seeking system continues to operate normally, trying to
produce changes in the outputs that will correct its own errors. The
collision-avoidance system does not make the destination-seeking system
stop working; it simply produces somewhat more output than the
destination-seeking system can produce. This is largely a matter of how
the relative loop gains are adjusted, and where the reference signals are
set.
I think a hierarchical control system similar to this could be applied to
the braking example, although the details of the actuators would change.
We could combine the braking system with the accelerator system, so that
for small proximity errors in the collision-avoidance system the
accelerator pressure would be reduced, and for larger errors the foot
would transfer to the brake and a braking force proportional to the error
would be produced. It would probably be necessary to include rate of
change of error, so that sudden changes in error would produce more
braking than gradual ones, for the same amount of error. The destination
seeking system would operate by applying positive foot pressure to the
accelerator when the foot was available, with perhaps still another
system that limits speed contributing to the same speed reference signal.
It would go on trying to apply foot pressure to the accelerator even when
the braking system was acting – without effect.
Once the principles of hierarchical control are understood, the design
possibilities are endless. You can see that a large amount of detailed
design went into the Crowd program. There is no single design, of course,
that would apply to every possible controlled variable or every
environmental situation. The design details have to be worked out from
observing (or imagining) real behavior in real environments. The main
insight that made the Crowd program feasible was the realization that one
controlled variable in such situations probably has to do with perceived
proximity rather than linear distances. A natural measure of proximity
would be visual area, or brightness, both of which are inversely
proportional to the square of the distance to an object (sound intensity,
too, and odor concentrations). This took care of a number of problems,
such as the question of why speed remains constant until the destination
is nearby. If distance were being controlled, the position error would
simply increase linearly with distance and we would find the approach
being fastest for the largest distances, half as fast for half the
distance, and so on – which doesn’t happen. Of course one can postulate
nonlinear perceptual or output functions, but it’s much nicer to find a
natural explanation for the nonlinearity. The Crowd program you are
familiar with was about revision 10 from the first one, by the way. The
first one tried to use control of distance, and was a flop. Another
version actually generated a map of the obstacles in a 360-degree circle,
as seen by the agent.
As you can appreciate, the general hierarchical control model only
establishes the principles of hierarchical control. The details for any
specific behavior have to be filled in from knowledge of the physical
situation and estimates of what variables are likely to be controlled.
One must always be looking for physical principles that can be used to
keep the model from being just a collection of arbitrary formulas, and
one must stick to the basic concepts of hierarchical control (not too
slavishly, of course).
Some people, I know, are confused when they describe some situation and I
say, “I don’t know – I haven’t modeled that one.” But, they
say, doesn’t your model apply to all behavior? Yes, of course, but to
actually produce a working model takes more than a diagram on the back of
an envelope. You have to decide on what perceptions are involved, what
physical laws, what means of acting, and so on, and these are different
for every new kind of case. This doesn’t mean that the model doesn’t
apply – but it doesn’t apply itself. Someone has to do the work
of applying it.
Best,
Bill P.