Footstep planning is a fundamental component of locomotion for legged robots, allowing them to move efficiently and adaptively in complex environments. Whether it’s a biped navigating a cluttered household or a quadruped traversing uneven terrain, this process involves generating precise foot trajectories while considering the robot's dynamics and stability constraints.
Typically, the planning process consists of two stages:
- Global Path Planning: This module computes a high-level path for the robot to follow, usually avoiding obstacles and determining a viable route.
- Footstep Planning: Based on the global path, this step computes the exact placement of each foot to ensure the robot follows the intended trajectory.
Bipeds
Footstep planning for bipeds typically involves generating foot placements in both 2D and 3D spaces. In addition to foot placements, the trajectories of the robot’s Center of Mass (CoM) and the Zero Moment Point (ZMP) play a vital role in maintaining balance. The CoM trajectory ensures the robot's weight remains balanced, while the ZMP trajectory prevents tipping by maintaining stability during walking.
Note: All these reference trajectories (footsteps, CoM) will be then followed by a high-level tracking controller. However, the design and implementation of such a controller is beyond the scope of this article.
1) Global Trajectory
![Global Trajectory](/_next/image?url=%2Fimages%2Ffootsteps-planning%2Fglobal_traj.png&w=1920&q=75)
The global trajectory represents the motion of a robot from a starting location to a goal location, typically computed by a high-level planner. This planner generates an obstacle-free sequence of positions for the robot to follow.
However, in this example, we generate a simplified trajectory using just two primary inputs:
- Linear velocity: The forward speed of the robot.
- Angular velocity: The rate of rotation of the robot around its vertical axis.
Given these inputs, the robot’s trajectory can be computed over a time interval using small time steps of duration . At each step, the position () and orientation are updated iteratively based on the following equations of motion:
This method provides a simple way to simulate a global trajectory for navigation tasks.
2) 2D Footsteps Planning
![2D Footsteps Planning](/_next/image?url=%2Fimages%2Ffootsteps-planning%2F2D_footsteps.png&w=1920&q=75)
2D Footstep Planning involves generating precise foot placements around the global trajectory, alternating between the left and right foot. Key parameters include:
- Step Length L: The forward distance between consecutive foot placements.
- Step Width W: The lateral distance between the left and right feet.
Steps of the Algorithm:
- Tangent and Normal Calculation: At each point along the trajectory, a tangent vector is computed to determine the robot’s direction of motion. The normal vector is derived from the tangent to define lateral offsets for foot placement:
- Foot Placement: A new foot placement is added whenever the robot travels a distance equal to the step length . The position of the foot is calculated as:
The orientation of the foot is set to align with the tangent:
- Alternating Steps: The algorithm alternates between placing left and right foot positions, ensuring symmetric gait patterns.
By following this approach, the robot can accurately generate a sequence of 2D foot placements that follow the global trajectory while adhering to step length and width constraints.
3) 3D Foot Trajectory Planning
3D Foot Trajectory Planning extends the 2D footstep positions into a fully defined 3D trajectory, including height variations for each step.
Each step's trajectory is defined as a sequence of homogeneous transformations in 3D space, generated from the following elements:
- 2D footsteps: The 2D feet positions generated from the previous step.
- Step Height: The vertical lift of the foot, ensuring clearance over obstacles.
- Step Time: The duration of each step.
Algorithm Steps:
- Time Normalization: Each single step trajectory is generated over a normalized time interval , split into discrete steps:
- Interpolation for x, y Trajectory: The positions in the plane are interpolated between the start and end positions of the step using cubic splines:
- Parabolic z Trajectory: To ensure smooth lifting and landing, the -trajectory follows a parabolic profile:
- Homogeneous Transformation Matrices: At each time step, the 3D foot position is represented as a homogeneous transformation matrix:
where:
- is the rotation matrix for the foot orientation around -axis:
- is the foot orientation.
- is the 3D position of the foot.
This process generates a sequence of 3D foot placements that follow the global trajectory, by computing poth 3D positions and 3D orientations for each foot.
4) ZMP Trajectory Generation
![ZMP Trajectory Generation](/_next/image?url=%2Fimages%2Ffootsteps-planning%2Fzmp.png&w=1920&q=75)
The Zero Moment Point (ZMP) is a critical concept in legged locomotion, serving as a stability indicator for robots. It represents the point on the ground where the resultant moment of forces, generated by gravity and inertia, equals zero. In simpler terms, the ZMP helps determine if the robot’s motion is dynamically stable. If the ZMP lies within the support polygon, the robot is stable and unlikely to tip over.
What is the Support Polygon?
The Support Polygon is the area enclosed by the contact points of the robot's feet with the ground. For example:
- For a biped robot in a single support phase, the support polygon is the area under the single foot in contact.
- For a biped in a double support phase, the support polygon is the area formed between both feet.
The ZMP must remain inside the support polygon to maintain stability. If it moves outside, the robot becomes unstable and risks falling.
ZMP Trajectory Generation
To generate a smooth and stable ZMP trajectory, the planned 2D footstep positions serve as the foundation. Using cubic spline interpolation, a continuous and smooth path is calculated between consecutive footstep positions. This interpolation method guarantees that the ZMP trajectory transitions naturally between steps without abrupt changes, maintaining stability. The resulting trajectory consists of a series of smooth points that lie within the support polygon, ensuring dynamic balance throughout the robot’s motion.
5) CoM Pelvis Trajectory Generation
The Center of Mass (CoM) trajectory plays a critical role in ensuring the robot remains dynamically stable during motion. We can procede in couple of ways to compute this reference.
5.1) Dynamics Relations with ZMP
![Global Trajectory](/_next/image?url=%2Fimages%2Ffootsteps-planning%2Fcom_dyn.png&w=1920&q=75)
The CoM and the ZMP relationship can be expressed through the Linear Inverted Pendulum (LIP) model, which is a simplified dynamic representation of a robot's motion.
Linear Inverted Pendulum (LIP) Model
![Linear Inverted Pendulum Model](/_next/image?url=%2Fimages%2Ffootsteps-planning%2Flip.jpg&w=1920&q=75)
The LIP model assumes the following:
- The robot's mass is concentrated at its CoM.
- The CoM moves at a constant height above the ground.
- The contact forces act at the ZMP, which lies within the support polygon.
![Global Trajectory](/_next/image?url=%2Fimages%2Ffootsteps-planning%2Flip2.png&w=1920&q=75)
Using these assumptions, the horizontal CoM accelerations are directly related to the ZMP position. Indeed, recalling the ZMP definition (it represents the point on the ground where the resultant moment of forces equals zero), the following dynamic equations hold:
Rearranging the equations, we obtain:
where:
- is the acceleration of the CoM in the -direction.
- is the acceleration of the CoM in the -direction.
- and are the ZMP coordinates in the - and -directions.
- is the gravitational constant.
- is the constant height of the CoM above the ground.
Computation of CoM Trajectory
The CoM trajectory can be calculated iteratively using the ZMP trajectory as input. At each time step, the following steps are performed:
- Compute the CoM acceleration:
- Integrate the acceleration to update the CoM velocity (keep in mind it is an intertial acceleration):
- Integrate the velocity to update the CoM position:
The resulting trajectory provides a smooth and stable path for the robot's Center of Mass, ensuring dynamic balance throughout the motion.
5.2) Open-Loop Sine Wave
![Open-Loop Sine Wave](/_next/image?url=%2Fimages%2Ffootsteps-planning%2Fcom_sine.png&w=1920&q=75)
Another alternative to generate the CoM trajectory consists in introducing a sinusoidal perturbation around the global trajectory. This perturbation, added along the normal direction at each point, mimics the lateral oscillations observed in biological locomotion. While this approach doesn't derive directly from dynamic equations, it is inspired by the natural, rhythmic oscillations seen in biological systems.
Sinusoidal Perturbation Model
The sinusoidal perturbation is defined as:
where:
- : Amplitude of the sine wave, controlling the lateral deviation of the CoM.
- : Wavelength of the sine wave, determining the frequency of oscillation.
- : The arc length along the robot's trajectory.
Generating the Perturbed CoM Trajectory
- Compute Arc Length: The arc length is computed incrementally along the trajectory as:
- Tangent and Normal Vectors: At each point, the tangent vector is calculated as:
The normal vector is derived by rotating the tangent vector 90°:
- Apply Perturbation: The sine wave perturbation is applied along the normal vector:
This simpler approach generates an open-loop CoM trajectory, simulating oscillating gait patterns often observed in biological locomotion.
Quadrupeds
Quadrupeds, with their four-legged structure, offer inherent stability but require precise coordination between legs for smooth and efficient movement. Locomotion in quadrupeds is characterized by various gait patterns, each suited for specific speeds or terrains. Effective footstep planning for quadrupeds involves managing the "phase" of each leg’s movement, which refers to whether a leg is in the stance phase (in contact with the ground) or the swing phase (moving forward through the air).
Common Gait Patterns:
- Walk: A slow, stable gait where legs move one at a time, ensuring at least three points of contact with the ground at all times.
- Trot: A faster gait where diagonally opposite legs move together in pairs, offering a balance of speed and stability.
- Gallop: A dynamic gait used for higher speeds, featuring a suspended phase where all legs are momentarily off the ground.
3D Foot Trajectory for Quadrupeds
![3D Foot Trajectory for Quadrupeds](/_next/image?url=%2Fimages%2Ffootsteps-planning%2Fanimation.gif&w=1920&q=75)
The 3D foot trajectory describes the path of each foot in three-dimensional space (x, y, z) throughout the gait cycle. For quadrupeds, we use an elliptical trajectory to represent the foot motion in the xz-plane:
Where:
- is the amplitude of the foot movement in the forward (x) direction.
- is the amplitude of the vertical (z) direction.
While is the phase at time , and is defined as:
Where:
- is the initial phase of the leg.
- is the frequency of the gait.
- is the time at which the foot trajectory is computed.
In our example, we choose to perform a Trot Gait. Thus, the legs move in a diagonal gait pattern, where the front left leg and the rear right leg move together, and the front right leg and rear left leg move together in the opposite phase. The phase shifts between these legs are defined as:
- Front Left Leg:
- Rear Right Leg:
- Front Right Leg: (opposite phase to FL and RR)
- Rear Left Leg: (opposite phase to FL and RR)
This approach allows for precise control over the motion of each foot, enabling smooth and stable locomotion.
Key Works and Citations
- Clement Gaspard: FootstepNet: an Efficient Actor-Critic Method for Fast On-line Bipedal Footstep Planning
- Shuuji Kajita: The 3D Linear Inverted Pendulum Mode: a simple modeling for a biped walking pattern generation
- Shuuji Kajita: Biped Walking Pattern Generation by using Zero-Moment Point
- Maurice Rahme: Spot Mini Mini Open Source