motor primitives in simple biophysical agents

I am attempting to disseminate the emergence of motor primitives in a bio-physical swimming agent. My aim is to find out the simplest circuits that can produce simple behaviours such as swimming forwards, turning, and alteration of swimming speed etc.

In the first stage, a very simple CPG network composed of analogue leaky integrator units and of the following connectivity was established to be optimal:

snakeArch

The top two neurons form the central pattern generator. The signal then propagates down the length of the agent and a wave of excitation is formed. The outer lateral neurons are motors which drive the agent. The signs represent whether a connection is excitatory or inhibitory.

In an evolutionary experiment, the weights and inhibitory informations and time constant values of the above network were evolved. The weights were derived according to neuronal Euclidean distance information. This was so neural properties could be partly governed by spatial architecture (and then one could investigate the coupling between neural architecture and body plan morphology).

Having achieved some very nice swimming behaviour, a couple of perceptrons were then added as turning mechanisms (entirely decoupled from the above CPG network). The outputs of a perceptron add a small amount of force to a given motor to achieve turning. Essentially, a Braitenberg vehicle was developed. The perceptron weight values were all fixed to 1.The overall neural topology then looks like this:

snakeArchB

The resulting neural dynamics allows for the agent to follow a target moving through the environment, as shown by the below video:



The next step will attempt to add the turning mechanism directly to the CPG pathway.