Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

Foothold Planning

  • Also called: footstep planning, foothold selection
  • Category: Control › Locomotion control
  • Tags: legged-locomotion, motion-planning, terrain, contact-planning, quadrupeds

Choosing where each foot of a legged robot will land, using terrain data and the robot's dynamics, so that every step is stable, reachable and safe.

Definition

Foothold planning is the problem of selecting contact locations for a legged robot's feet. A good foothold is on firm, reasonably flat ground with enough friction, away from edges and holes, reachable by the leg from the body's planned position, and compatible with keeping the robot balanced through the step. For bipeds the problem is often called footstep planning and includes the orientation of each foot; for quadrupeds it is usually about the position of each foot within a gait sequence.

Classical systems split locomotion into layers. Perception builds an elevation map, terrain analysis scores each cell by slope, roughness and distance to edges, the foothold planner picks cells, and a lower-level controller plans body motion and swing trajectories that reach them. Common planning methods include adjusting a nominal foothold, given by a heuristic such as the Raibert rule, to the best-scored cell nearby; graph search over sequences of discrete footsteps; and optimization, such as mixed-integer programs that assign each footstep to one of several convex safe regions. Some planners optimize footholds and body motion together so that reachability and dynamic balance are handled jointly.

Learning has changed the picture. Policies trained in simulation can take height samples or raw depth images and output joint commands directly, choosing footholds implicitly, which avoids errors that build up across separate mapping, planning and control modules. Explicit foothold planning remains useful where guarantees, interpretability or precise placement matter, such as on stepping stones, and hybrid systems use learned models to score or propose footholds for a model-based controller.

Why it matters

On rough terrain, where a foot lands decides whether the robot keeps its balance. Foothold planning turns terrain perception into concrete contact decisions, and whether it is done explicitly or inside a learned policy shapes how reliably a legged robot handles stairs, rubble and gaps.

Key applications

  • Stair climbing and rough-terrain locomotion for quadrupeds
  • Humanoid footstep planning through cluttered spaces
  • Crossing gaps and stepping stones
  • Planetary and inspection robots on unstructured ground
  • Model-based baselines for comparing learned locomotion policies

In practice

A quadruped crossing a field of stepping stones uses an elevation map built from its depth cameras. A terrain filter marks cells with steep slope, high roughness or nearby edges as invalid. For each upcoming step, the planner starts from the nominal foothold given by the gait and desired velocity, searches a small neighborhood for the valid cell with the lowest cost, and checks that the leg can reach it from the planned body pose. The chosen footholds are passed to a model predictive controller that plans body motion and contact forces, while the swing controller lifts each foot high enough to clear the stone edges. Where the map is uncertain, the cost function favors footholds nearer the center of each stone.

Common misconceptions

  • Foothold planning is only for slow, statically stable walking — modern planners handle dynamic gaits by planning footholds and body motion together over a short horizon
  • Learned locomotion policies do not choose footholds — they still decide where the feet land, but implicitly from perception rather than through a separate planner
  • The flattest cell is always the best foothold — reachability, distance from edges, the following steps and the body's momentum all affect whether a foothold is good

Who should know this

  • Legged locomotion engineers
  • Perception engineers building terrain maps for legged robots
  • Motion planning researchers
  • Humanoid robotics developers

Related technologies

  • Elevation Mapping
  • Raibert Heuristic
  • Mixed-Integer Convex Optimization
  • A* Search
  • Model Predictive Control

Related terms

  • Elevation Map
  • Terrain Traversability
  • Mixed-Integer Programming
  • Quadruped
  • Gait
  • Model Predictive Control

Related projects

  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
  • Ruckig: Real-time jerk-constrained time-optimal trajectory generation for robots and machines

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.