How do I evolve limb motions for a physically simulated walking creature? How does the "Walker's" leg algorithm work?
There are many ways to evolve motions for a simulated robot's limbs. A realistic algorithm might take into account numerous sensor inputs, such as joint angle, limb contact and internal state to generate joint motions. These types of controllers are especially useful when an agent is expected to interact with its environment in more complex ways than simply walking.
Such advanced algorithms are typically not required for simple walking agents however. The technique used in most of the demo breve simulations is to assume that each joint has a sine wave motion as a function of time, as shown in this equation
time = ( controller get-time ).
torque = W * sin( X * ( time + Y ) - Z.
The Walker demo evolves explicit values for W, X, Y and Z. In order to adapt this algorithm for a more advanced simulation, W, X, Y and Z could be computed at runtime using a rule-based system, neural network or other type of custom controller.
