Examples of evolved biped controllers using adaptive center-crossing continuous time recurrent neural networks

The biped is controlled by a CTRNN. The bias of each node is adjusted, in each iteration of the recurrent network, to the value that defines the center-crossing condition [1][2], as it is changed towards the negative value of the incoming activation at time t. Thereby, all the nodes will be near the maximum sensitivity regions to induce activation changes.

We have used the evolutionary robotics methodology [3][4] to obtain the neural controllers. We used a standard genetic algorithm, using a mutation operator and a rank-based method as selection operator. Each CTRNN is codified by a vector that includes the connection weights and the bias and time constants associated to each neuron. With the use of the run-time adaptive biases all the individuals of the genetic population present a rhythmic behavior, so the genetic algorithm has more NNs to fine-tune, obtaining higher fitness controllers in fewer generations.

Example of a locomotion behavior obtained by means of the GA (displayed with two different speeds):

fast motion

slow motion

Example of a locomotion behavior obtained with the robot on a slope:


In addition, the coefficient for bias adaptation determines how fast each node is adjusted to the center-crossing condition. Thus, higher values in the coefficient can force cyclic behaviors with shorter periods, and vice versa. Hence, the rhythmic of the locomotion behavior can be adjusted dynamically, providing a form of external control. The next videos correspond to different biped behaviors with such control of the coefficient.

The next videos show several walking behaviours obtained by training the CTRNNs with different adaptation coefficients. It can be observed the differences of the gaits among them: with a lower coefficient it is appreciated a longest step, whereas, as the coefficient is increased, the period of the rhythmic behaviour decreases showing a more human walking behaviour.

coef = 0.1

coef = 0.01

coef = 0.005