Humans make ground contact on the balls of their feet. They belong to the plantigrads:
https://en.wikipedia.org/wiki/PlantigradeYou happen to have a working model that you can take for a test drive whenever you wish.
Walking is not stable it requires momentum and dynamic balance. Balance can be done shifting arms, hips, torso or applying forces on the foot in the proper direction. The corrections are minute but necessary.
Humans are capable of an enormous number of gaits, all requiring micro corrections.
I've been working on a 4 legged digitigrade. I'm just in software at the moment waiting for more servos. 4 legs is easier than two as the corrections can be done by one of the feet, but it is still involved.
I'm curious as to how you program the gaits, how do you do that?
I've broken this into limbs, and the limbs are broken into the significant joints with the rear being different than the front. Unlike the way animals process their muscles my robot must work on the servos setting angles rather than forces. There will be a feedback process from an accelerometer/ compass and pressure sensors on the feet which I will write later. The gait is broken into forward and back strokes with a cubic bezier describing the motion of the servos for each servo. A cubic bezier requires 4 points to be set, so, for one step, with each limb having 3 servos that is a total of 96 points for all 4 limbs. Fortunately this is relatively easy to get a starting configuration and the left mirrors the right with a time offset. How others do this, I have no clue.