Wednesday, February 22, 2006

Optimizing control signals

After having had an initial look at fitness landscapes resulting from evolution of pulse control signals for single joint target movements, it is clear that certain optimal control criteria don't make much sense for this task. hence i'm thinking of a two-joint (elbow-shoulder) task that can be used to demonstrate the difference between muscle-models. ideally the task should involve an important dynamic aspect (no slow pointing e.g.) such as interjoint-coupling forces. underpowered weight-lifting could be an example. i'd then be looking for any signs of synergies and exploitation of muscle dynamics for solving the task...

Monday, January 09, 2006

Muscle model comparison again

Setup: muscles symmetric, linear muscle lengths, no (i.e. fixed) moment arms. no gravity, no additional damping.

1. only a*aF:
a pulse accelerates the limb until joint limit is reached. to stop at a given point another antagonistic pulse has to be timed and scaled precisely. an external perturbation does exactly the same, i.e. accelerating the limb in the direction of perturbation. no resistance at all, i.e. no stability. even with coactivation of both muscles no stiffness, i.e. stability, can be achieved.

2. a*aF*vF;
with zero coactivation, still a pulse accelerates the limb until joint limit is reached. however, with some coactivation some stability to external perturbation is achieved. also pulses will now accelerate the limb but the movement will be damped and stops at some point (proportional to length and strength of pulse i guess, analyze...).

3. a*aF*vF + pF;
without activation the system behaves like an underdamped spring. a step activation is necessary to shift the setpoint of the spring, i.e. the equilibrium point of the limb. the higher the activations the more damped the oscillations around the EP. a pulse activation only, as an external perturbation, will after a short displacement be resisted by the "spring".

How to combine 2. and 3. ?
2. allows for triphasic pulse patterns and efficient movements. in 3. muscles have to work against each others passive resistance to stretch. control easier, as shift of equilibrium point or tri-phasic pulse-step pattern. but, oscillation around EP undesired. tuning could make the system critically damped maybe, but how realistic is that and is the property of 2. lost then? which is best for robot control, or more easily evolved?

An interesting study would evolve controllers for each setup and compare them in terms of control complexity, evolvability etc...

Friday, January 06, 2006

muscle functions

no comparative study yet, but some observations that might be obvious but good to get down as i keep coming back to this wondering regularly:
in Inbar & Karniels work I sometimes saw pulse and other times pulse-step activations for non-linear models. now, pulse works as long as there are no passive restoring forces in the muscle (which exist in a Hill-type model but somehow are not modelled in their work). in this case however i find smooth movement both with hill-type viscosity and without. maybe it makes a difference only for VERY fast movements? with an added passive force-length relationship that resisd stretch there exists a natural equilibrium point. therefore one needs pulse step activations to move to a point different from this resting position. however, with this element added and reasonable maximum forces, the system acts like a pretty compliant spring. as a result, the sytem overshoots and oscillates around the equilibrium point specified by the step function. hmm... what is the passive damping good for then? In theory: 1) resisting external perturbation 2) keeping the muscle away from the extremes (for protection and because muscle can't efficiently produce force there); ...
question now, how to model the passive muscles? what's it supposed to be like without reflex signals and activation? like a loose spring, a stiff spring (as Inbar and Karniel seem to suggest) or not springy over most of workspace but only at extremes (shifting passive relationship)?

Wednesday, January 04, 2006

...meanwhile: muscle model revised

while evolving the VITE CTRNN, i cleaned up my muscle model code and decided to do some comparative study (something i would need to do for the thesis anyway). the point of this exercise is to show the effect of the model's non-linearities. i will use three different simple input patterns (pulse, pulse-step and ramp) and compare the output of models of different complexity. this will involve reducing each of the elements of the hill-type model to linear relationships or scalar values and omitting the moment arms. i will also include a non-linear "PD muscle".

Sunday, January 01, 2006

Evolution of VITE...

... is impossible because of the neuron's linearity. for most of the parameter space the model just explodes to infinity. now, as with FLETE, i'm trying to evolve the core of the model as a ctrnn. without much success yet.

Tuesday, October 18, 2005

Vite and muscles

one issue i haven't addressed yet is the relation between the control network's output and how it's scaled and damped to produce appropriate torques. scaling determines how fast the arm can implement the desired trajectory while damping influences oscillations and overshoot. these parameters can be tuned like a PD to produce nice, roughly critically damped, movement. the question is how much of this tuning should actually be done by the controller and not the plant? specifically how much of the damping is due to viscosity of the muscle and surrounding tissue and how much is due to reflexes?
at the moment i'm tuning the arm to produce nicely damped behavior with VITE in open-loop mode (i.e. no spindle feedback whatsoever). this makes it easier to study effects of changes in the network, because i know the behavior of the plant is simple.

Wednesday, September 28, 2005

VITE math vs. ctrnn

for the purpose of debugging the VITE-CTRNN i plotted neural activations and kinematic variables for a simple unobstructed point-to-point movement. the following pictures compares these with the original model:



seems i'm in the right ball-park. now i have to adjust the parameters in the ctrnn (mostly default to weights of 1.0, biases of 0.0 etc.) to fit the model. might use evolution here.