-
Notifications
You must be signed in to change notification settings - Fork 38
Walk Engine
A dynamic walk engine is responsible for the locomotion of the robot. This walk engine utilizes a ZMP controller to maintain static stability throughout a step.
To gain a basic understanding of ZMP-based control, consider the ZMP (the zero-moment point) as a dynamic form of the center of mass. This point, the point on the ground at which all moments are zero with respect to the robot, must lie within the robot's support polygon during single-support phase to maintain stability. In other words, if the ZMP lies beneath the robot's foot as it steps forward, the robot will maintain stability and complete the step. An important part of our walk engine calculates the necessary torso adjustments for this criterion to be met at every single step.
For more information on ZMP control see these papers: Zero-Moment Point - Thirty Five Years of its Life and Zero-Moment Point - Proper Interpretation
The walk engine is omni-directional. ie. The robot can change direction "instantaneously" in order to react to ball movement. Using inputs from our vision and localization modules, the walk engine generates trajectories for the robot’s Center of Mass (COM). The robot uses the information about the ball’s location and its relative orientation to determine rotational and translational velocities. Inverse kinematics are then used to generate joint trajectories that satisfy the ZMP criterion. This process is repeated to generate alternate support and swing phases for the two legs.
Information from the Inertial Measurement Unit (IMU) and the foot sensors of the robot is used to modulate the commanded joint angles and phase of the gait cycles to correct against perturbations. Hence, minor disturbances caused by irregularities in the carpet and bumping into obstacles do not cause the robot to lose stability.
The walk engine has tunable parameters that allow adjustments to be made based on the nature of the playing surface. These include step-height, step-length, COM position during stance phase, etc. Newcomers to the team should familiarize themselves with these parameters. An intuition for the effect that each parameter has on the gait of the robot is crucial in being able to re-tune the walk on a different playing surface.