Now that I have a full rate inverse kinematics and dynamics solution, I can begin to do more interesting things. A while ago I did the first jump on the quad A0 — in that video I used a limited technique just to verify that the platform was indeed capable of jumping. The joints were commanded in an open loop fashion, and really only at the transition points of the jump sequence, relying on the control loops in the servo to actually achieve each stage of the jump cycle. That resulted in the jump only being minimally controlled… tracking errors would result in the robot taking off from a not-level position and the timing was not super reliable to boot.
Now I’ve taken that demonstration to the next level by controlling the full position, velocity, and force profile of each of the 4 legs at 150Hz during the jump maneuver. In the launch phase, all four legs follow a constant acceleration trajectory while maintaining a level body. During the flight phase, the force is cut to the legs and the velocity of each leg is monitored. A few milliseconds after the legs have been detected as moving, the velocity is sampled and a controlled constant acceleration profile is selected which results in zero velocity when the robot reaches its initial takeoff point. After that, it just moves at a constant velocity back to the starting height.
Next up is chaining these together into a pronking gait.