JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Falling Forward on Purpose: ZMP, the Pendulum Model, and Robots That Fly or Dive

The balance math behind walking humanoids — the zero-moment point and the inverted-pendulum trick — plus a tour of robots that leave the ground entirely.

Walking Is a Fall You Keep Catching

Watch your own next step in slow motion. You lift one foot, your body tips forward, and for a moment you are genuinely falling — until the swinging foot lands and catches you. Then you do it again. This is the secret hiding inside bipedal walking: it is not a sequence of stable poses but a controlled fall, repeated, with the ground caught just in time. A robot that wanted to be safe at every instant would creep along keeping its center of mass over its feet, the way a toddler clutches furniture. That is static stability. Fluid, human-paced walking instead relies on dynamic stability, where the robot is momentarily off-balance on purpose and recovers through motion.

If a robot is constantly half-falling, how does its controller know whether the next step will save it or send it crashing? It needs a single, measurable number that says "you are still inside the safe envelope." That number lives on the ground, under the foot, and it is the heart of this guide.

The Zero-Moment Point: One Spot on the Floor

Picture all the forces pressing on the robot's foot — its weight, the push and pull of its swinging limbs, the momentum of its body — and ask: is there one point on the ground where all the tipping moments, the twisting forces that would rotate the foot, perfectly cancel out? There is, and it is called the zero-moment point (ZMP). It is the spot where the ground only needs to push straight up, with no leftover torque trying to roll the foot onto its edge.

Here is the whole criterion in one sentence: as long as the ZMP stays inside the support polygon — the patch of ground under the foot, or under both feet — the foot stays flat and the robot will not topple. The instant the ZMP wanders to the edge of the foot, the foot starts to roll, and a fall begins. So a walking controller's job becomes almost cartoonishly clear: move the legs and torso so that, at every moment, the ZMP stays comfortably inside the footprint.

In practice the robot does not have to guess where the ZMP is. Pressure sensors in the soles, or a force/torque sensor at the ankle, measure the ground reaction directly, and an IMU in the torso reports how the body is tilting and accelerating. From those readings the controller computes the live ZMP many times a second and nudges the motion to keep it centered.

The Inverted Pendulum: Throwing Away the Hard Parts

Knowing the ZMP rule is one thing; planning a whole walk that obeys it is another. A humanoid has dozens of joints, each with its own mass and motion — solving the full dynamics in real time is brutal. So engineers cheat with a beautiful simplification: pretend the entire robot is a single weight balanced on top of a weightless stick, with the bottom of the stick pinned to the ground. That is the inverted-pendulum model. Think of balancing a broom on your palm: the broom is the robot's whole body, your palm is its foot.

Why is this a good trade? Because the pendulum captures the one thing that matters for balance — how the center of mass swings over the foot — while discarding the messy details of every limb. A common version keeps the mass at a constant height, which makes the equations linear and fast enough to solve while the robot is mid-stride. The controller plans where each footstep lands and how the body should swing between steps so that the ZMP traces a safe path through the footprints.

stance foot pinned to ground
         o   <- center of mass (one lumped weight)
        /
       /     tip angle theta
      /
   __/__   <- foot; ZMP must stay within this patch

rule of thumb (linear inverted pendulum):
  accel_of_CoM  ~  (g / height) * horizontal_offset_of_CoM
  -> lean a little forward  -> you start to fall forward
  -> plant the next foot ahead -> you catch the fall
The body reduced to one weight on a stick over the foot: lean forward to fall, step ahead to catch.

Leaving the Ground: Robots That Fly and Dive

Not every robot fights gravity by standing on it. An unmanned aerial vehicle holds itself up by pushing air down. The most familiar design is the quadrotor: four fixed propellers, no tilting blades, no rudders. It steers entirely by varying how fast each rotor spins. Spin all four a touch faster and it climbs; slow the two on one side and it rolls toward that side. Yaw is the clever part: adjacent rotors spin in opposite directions so their twisting reactions normally cancel, so speeding up the pair that turn one way and slowing the other leaves a net twist that turns the whole craft. Like the walking humanoid, a quadrotor is inherently unstable — left alone it would tumble — so an IMU and fast feedback control correct its attitude hundreds of times a second.

Now go the other way — downward, into water. An autonomous underwater vehicle (AUV) faces an upside-down version of the same problem. Water pushes back with buoyancy, so an AUV can trim itself to hover almost weightlessly, then glide forward with a propeller or steer with small thrusters. Some gliders barely use motors at all: they change their buoyancy slightly to sink and rise, and wings convert that vertical motion into forward travel, letting them roam the ocean for months. The ground-bound rules of feet and support polygons simply do not apply here.

One Question Under Every Mode

Step back and the whole zoo of locomotion collapses into a single question: how do I push against the world to go where I want? A wheel pushes against the road through friction. A leg in legged locomotion pushes against the ground in discrete shoves, and the ZMP tells it whether each shove keeps it upright. A rotor pushes against the air. A thruster pushes against the water. The medium changes, the safe-stability criterion changes — support polygon here, attitude control there, buoyancy trim below — but the underlying bargain is always the same exchange of force for motion.

That is also why the same toolbox keeps reappearing across this track. Estimate your state, decide where the supporting forces should act, then command actuators to make it so — whether "so" means keeping the ZMP under a humanoid's foot, or holding a quadrotor level in a gust. Master that loop and you can read any robot, walking or flying or diving, as a variation on one elegant idea.