Tad McGeer [1] showed that a simple planar mechanism with two legs could be made to walk stably down a slight slope with no other energy input or control. This system acts like two coupled pendula. The stance leg acts like an inverted pendulum, and the swing leg acts like a free pendulum attached to the stance leg at the hip. Given sufficient mass at the hip, the system will have a stable limit cycle, that is, a nominal trajectory that repeats itself and will return to this trajectory even if perturbed slightly. McGeer constructed a physical example of this walker, using a special mechanism to fold the swing feet up so that the swing leg would clear the ground at mid-stride.
An extension of the two-segment passive walker is to include knees, which provide natural ground clearance without need for any additional mechanisms. McGeer showed that even with knees, the system has a stable limit cycle [2]. A subsequent physical model demonstrated this quite convincingly.
Andy Ruina and his students at Cornell has conducted a number of analyses of the passive walker. These include extensive parameter studies of the passive walker with knees, the rimless wheel (a precursor to the original passive walker) in 2-D and 3-D, and walkers with point feet rather than curved feet in 2-D and 3-D. Go to Andy Ruina's Web Page for more information.
At the University of Michigan,
Art Kuo has begun
analyzing a two-legged
passive walker in 3-D. This system is similar to McGeer's original
walker, except that it has an extra degree-of-freedom allowing
for side-to-side rocking. There is no stable limit cycle, although
the stability of its planar motion is preserved. The instability
is in a single mode, similar to an inverted pendulum's unstable
mode, with an eigenvalue of about -30 (the negative sign is due
to a convention of switching the stance and swing legs at the
end of a step). The size of the eigenvalue indicates that a small
error in the side-to-side motion will be amplified by about 30
times from one step to another. Fortunately, this mode can be
stabilized by correcting these errors. Two possible ways to do
this are to make small lateral placements of the foot and to push
off against the torso, using it as a momentum wheel. Either of
these methods has practically no effect on the forward progression,
making it unlikely that they will upset the original planar motion.
A simple state feedback control algorithm is sufficient to stabilize
the system. Current work is concerned with characterizing the
nonlinearities of the two-legged, 3-D walker.
Click on the image to the right to see a Quicktime movie of the two-legged 3-D walker, stabilized using a simple once-per-step feedback algorithm, produced by Art Kuo. |
Standard methods of nonlinear dynamics are used to perform the analysis. In fact, the entire analysis is accessible to most first-year graduate students in engineering or physics, and with some coaching, to well-prepared undergraduates. The motion of the system during a step is governed by classical multi-body dynamics. The equations of motion may be found in various ways, including Newton-Euler integration, Lagrangian methods, Hamiltonian methods, etc. The equations used here were derived using Kane's method.
At the end of each step, there is an impact between the foot and the ground. This impact may be modeled as perfectly inelastic, meaning there is no rebound in the foot. At the point of impact, nothing happens to the configuration of the system--the positions of the legs remain unchanged. However, the velocities do change, in a discontinuous manner. Angular momentum about the point of impact is conserved for the entire system, from the moment just before impact to the moment just after. Angular momentum is also conserved for the trailing leg, about the hip. Since there are three degrees of freedom, three angular momentum equations are needed to relate the velocities before impact to those after impact.
Once the velocities after foot impact are known, there is one final matter of bookkeeping. The old stance leg becomes the new swing leg, and vice versa. Once this bookkeeping is completed, the system is ready to take another step. The process of solving the nonlinear differential equations of motion for one step, computing the jump in velocities at impact, and switching legs, may be thought of as a function of a set of initial conditions. This function returns the new set of conditions for the beginning of the next step, also known as a return map.
The equations of motion for the 3-D passive walker were generated
using the Dynamics Workbench, in Mathematica. These equations
were exported as C code and compiled into a Matlab mex-file which
computes the state derivative. Mex-files are C programs which
can be called from Matlab, combining the ease of use and friendly
interface of Matlab with the speed of compiled C. A Matlab m-file
then integrates the state derivative using a modified version
of a Runge-Kutta 4/5 code from Matlab's ODE Suite. The modification
includes detection of collision between the foot and the ground.
The Matlab file also computes the jump condition and subsequently
returns the initial conditions for the following step. Other Matlab
files perform a gradient search to find the fixed point, and compute
the Jacobian of the step-to-step function, from which eigenvalues
(Floquet multipliers) may be found.
[1] | McGeer, T. (1990) Passive dynamic walking, International Journal of Robotics Research, Vol. 9, No., 2, pp. 62-82. |
[2] | McGeer, T. (1990) Passive walking with knees, In: Proc. 1990 IEEE Robotics & Automation Conference, Cincinnati, OH, pp. 1640-1645. |
[3] | Kuo, A. D. (1999) Stabilization of lateral motion in passive dynamic walking, International Journal of Robotics Research, Vol. 18, No. 9, pp. 917-930. |
WM passive walker | Working Model file for Andy Ruina's 2-D passive walker w/ knees, with knee modifications by Art Kuo |
3D Passive Walker.ma | Mathematica file for generating equations of motion using the Dynamics Workbench |
demo3D.m | Matlab m-file demonstrating use of following files to perform 3-D simulation and stability analysis |
fwalk3.c | Matlab mex-file (C code) for computing the state derivative, using the equations of motion |
fmom3.c | Matlab mex-file (C code) for computing the jump condition at impact |
ode45i.m | Matlab m-file for integrating nonlinear differential equations, with detection of a collision condition |
foot3.m | Matlab m-file which computes height of foot above ground, to be used as collision condition |
shoot3.m | Matlab m-file for calculating return map |
fixedpt3.m | Matlab m-file for finding fixed point |
gradient3.m | Matlab m-file for computing gradient (Jacobian) of step-to-step function (Poincare map) |