Prior to building the robot, I'm developing the controls on a reduced-order SLIP model. The robot's legs are modeled as massless, springy linear actuators on revolute joints. All the mass is located at the hip.
The controller here was inspired by this paper.
This controller has two basic parts:
State-based control: Switches each leg between the stance and swing controllers according to whether the foot is in contact with the ground.
Time-based control: Lifts the legs and performs energy injection according to a repeating timer. The timers for the two legs are 180 degrees out of phase with one another.
The stance controller holds the leg at a constant length while allowing it to swing freely, while the swing controller rotates the leg to match the desired touchdown angle. The touchdown angle is proportional to the difference between the desired and current velocity.
Energy injection is accomplished by temporarily increasing the leg spring constant during the second half of the stance phase, thereby producing extra force in the direction of motion.
Next I'll extend the controller to work in 3D (as it's currently confined to the sagittal plane) and add balance control for the torso.