The BEAM Bestiary is a BEAM Reference Library site.
Control of 2 motor walkers
Motor timing (i.e., when each motor drives, for how long, in what direction, and phasing between motors) is largely a function of the electronics driving the motors. I'm aware of three main ways to drive 2 motors in a walker -- two Nv-net-based methods (quadcore & master / slave bicore pair), and one non-Nv-net method (the "not-so-dummy" walker). What follows is my attempt to put these three approaches in context (and a big tip of the hat to Bruce Robinson for much of this explanation!).
This allows for a sort of "cautious" stepping gate, but also means that there's quite a potential for leg-dragging, unless you get the balance just right. For a fairly complex two motor walker that is intended to carefully explore its environment, the quadcore is a good choice. You can make it turn and back up, and you can change the timing of either motor without directly affecting the other motor. This gives you a little more flexibility for responding to multiple sensors, 'though it also makes for a more complex robot.
Here's an animation showing a quadcore at work driving a 2 motors -- the active neuron has its inverter highlighted (here, quadcore initialization circuitry is implied but not shown):
If you want to go deeper with this, I have a number of quadcore walker circuits described on and linked to from my 2-motor / 4-leg walker circuits page.
Master / slave bicore
For a simple, well designed 2 motors that is intended to charge ahead over all obstacles, a bicore pair is probably the best choice. You can make them turn, you can make them back up, but whatever you do to modify their timing sequence will affect both motors.
The "Not-So-Dummy" walker