[From Bill Powers (970223.1535 MST)]
Bruce Abbott (970223.1545 EST) --
(Replying to Rick Marken)
Bruce Gregory (970223) -- as an aid in studying the model.
It is a hierarchically-organized feedback control system making no use of
inverse kinematics. It's been a while since I studied the code (over a
year now), ...
Your memory is pretty good, but as is to be expected some of the details
tend to drop out. Allow me to fill some of them in. This is LM version 2 I
am talking about.
1. The eyes individually track the target, which maintains the image
disparity of the two target images at zero. The head moves 1/3 as much as
the eyes, not under control (but it could be). The image disparity for the
two images of the fingertip thus is a nonlinear measure of the radial
distance difference between fingertip and target. Actually, it's not
necessary to converge the eyes on the target; it's the _difference_ in image
disparities that is used to generate the visual depth signal. The reference
disparity-difference is zero, but can be set to any value. The x and y
position signals are measured relative to the center of the right retina.
The visual system controls the _difference_ in x, y, and z positions of the
finger and target, so there is no need to perceive positions in laboratory
space.
An internal signal-generator can be turned on which varies the x and y
target-to-finger distance reference signals in a sine and a cosine wave. The
result is that the finger traces a circle around the target, whether the
target is stationary or moving.
2. The outputs of the visual system in x, y, and depth set the reference
signals for a set of three second-level kinesthetic control systems that
also perceive fingertip position in x, y, and depth, as derived from
kinesthetic joint angle perceptions by simple means. The kinesthetic frame
of reference is centered on the shoulder joint. The depth signal is the
vertical shoulder angle minus half the elbow angle; it is nonlinear relative
to true physical distance. The x and y signals are simply the joint angles
corresponding to those directions. In the basic model there is no attempt to
make the kinesthetic coordinate system exactly match the visual one, or to
make it linear in objective space. This approach was taken to illustrate how
crude the control systems can be while still producing quite good control.
3. The second-level kinesthetic control system outputs set the reference
signals for the three first-level systems, which consist of models of the
stretch and tendon reflexes. The second-level depth or reach control system
actually contributes to the reference signals for both the shoulder vertical
angle and elbow angle systems at the first level, as well as perceiving a
variable made up of both related first-level perceptions. This illustrates
how one level of control can "coordinate" more than one lower-level control
system, in this case to produce approximately straight-line reaching
movements under control of a single reference signal.
4. Each first-level control system actually represents a pair of systems
operating in push-pull, with the calculations simplified to combine the
opposing effects. The muscle is modeled as a contractile element in series
with a spring element. The degree of contraction is proportional to the
error signal in each system; given a constant input signal, the muscle
produces a force that is proportional to the deviation of the joint angle
from a resting point set by the input signal. The muscle contraction is
modeled as a leaky integrator to reproduce, roughly, the 50-millisecond time
constant of contraction (the time-constant of relaxation is assumed to be
the same, contrary to fact). If the joint is clamped in a fixed position,
varying the driving signal will produce a torque at the joint as the series
spring element is stretched. If the joint is free to move, the joint angle
will accelerate toward the current resting position set by the driving signal.
5. The joint angles are directly linked to muscle length. Muscle length is
sensed by models of the spindle cells in that there is a tonic and a phasic
component of the signal, and a gamma-efferent signal sets the length
reference level directly in the muscle spindle (a mechanical comparator).
The stretch signal is thus actually an error signal, carrying rate plus
proportional error information to the spinal motor neuron, which is the
comparator for the tendon reflex control system. It is assumed that the
alpha and gamma efferent signals are co-activated.
6. The tendon signal is affected by the force generated in the muscle, and
is proportional to the stretch in the series spring component. It feeds back
(negatively) directly to the spinal motor neuron. It is a direct measure of
the torque applied at the joint.
7. The three torques which are the outputs of the combined stretch and
tendon control systems cause angular accelerations around the three joints.
These torques are the inputs to a (forward) physical model of the
three-degree-of-freedom arm. The physical model of the arm converts these
torques into angular accelerations, including all interactions among the arm
segments such as Coriolis forces. The angular accelerations, integrated
twice, return values of the three joint angles updated once per iteration.
The joint angles are simply limited at the physiological limits, as measured
with my own arm. These joint angles determine the lengths of the muscles and
thus affect the spinal reflex systems, and so on back up through the stack
of control systems. From the joint angles and the dimensions of the arm
segment, we also calculate the position of the fingertip in space (really,
the end of the second arm segment). From that position and the look-angle of
the eyes, the position of the image of the fingertip on each retina is
calculated.
Paragraph 7 is thus a description of the environment of the control systems
with respect to the mechanical and visual variables of importance. The
effect of gravity is also included, and gravity can be switched on and off
while the model runs.
The environmental model, which includes arm dynamics, and the model of the
reflexes, run four iterations for each iteration of the higher levels of
control. If the time per iteration at the higher levels is taken to be 30
per second, then the time per iteration at the lowest level is 120 per
second, or about 8 milliseconds each. This is as close as the model comes to
dealing with time-delays at the different levels.
There are test modes for the first and second kinesthetic levels, in which
square-wave reference signals are used to exercise each degree of freedom
while the user adjusts the parameters of the control systems. The entire
system can be tested by moving the target around, either manually, back and
forth between fixed end-points, or in random jumps.
A "mapping" mode exists in which the relation between the visual and
kinthetic systems (which have different origins) is gradually adjusted. It
works very poorly and I don't recommend using it. That's just where I was
when I ran out of energy in developing this model, and it's probably not a
good idea.
The visual level of control works reasonably well, but needs a lot of work
to optimize it. In fact the whole model could use a lot of work, introducing
better muscle models and representing the opposing muscle systems
explicitly. There is lots of information available in the literature of
physiology, and I had hoped to built a Little Man Version 3 that would bring
it into the model. However, even as it stands, the model is a clear
demonstration of the simplicity of a feedback hierarchy as an explanation of
pointing behavior, and as a direct demonstration that feedback is NOT too
slow. I have tried to get people like Bizzi and Gomi to look at it, but in vain.
Best,
Bill P.