They are two main approachs for humanoid robot walking. Practically it depends on the physical capabilities of your robot and what you want to achieve.
If your robot is able to sustain strong impact and you aim at cyclic walking on uneven terrain I would recommend to try the Hybrid Zero Dynamics approach. The current best example is the Cassie or the Digit robot from Agility Robotics see [1] for a recent example.
For a more fragile robot, the usual step to make a humanoid walking on flat ground without obstacle is to:
- Plan foot steps.
- Generate a ZMP trajectory from the foot steps, and the foot trajectories (usually polynomials with zero speed, zero acceleration at the beginning/end and an intermediate vertical point).
- Generate the CoM trajectory from the ZMP trajectory.
- Use your IK solver to follow the CoM trajectory and the foot trajectories. An inverse dynamic solver would be better, but it is more difficult to achieve.
Once you have a first version of this working in simulation you can try to develop a stabilizer. It assumes usually an estimator of your robot's root attitude (often the waist), and a feedback on the Divergent Component of Motion of your robot. For a good overview on this topic I would recommend the following paper [2].
From this, they are then various approachs depending on what you want to do: multiple contacts, uneven terrain, manipulation, co-working with a human.
[1] Inverse Dynamics Control of Compliant Hybrid Zero Dynamic Walking, Jenna Reher and Aaron D. Ames, ICRA 2021, https://arxiv.org/pdf/2010.09047.pdf
[2] Stair Climbing Stabilization of the HRP-4 Humanoid Robot using Whole-body Admittance Control, Caron et al, ICRA 2018, https://arxiv.org/abs/1809.07073