# Passive Walking

Tad McGeer  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 . A subsequent physical model demonstrated this quite convincingly.

Click on the image below to see a Quicktime movie of the passive walker with knees, adapted from the simulation produced by Jung, Gomez & Ruina using Working Model software (430kB)

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. ### How the analysis is conducted

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.

### How the simulations and animations are performed

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.

### References

  McGeer, T. (1990) Passive dynamic walking, International Journal of Robotics Research, Vol. 9, No., 2, pp. 62-82.  McGeer, T. (1990) Passive walking with knees, In: Proc. 1990 IEEE Robotics & Automation Conference, Cincinnati, OH, pp. 1640-1645.  Kuo, A. D. (1999) Stabilization of lateral motion in passive dynamic walking, International Journal of Robotics Research, Vol. 18, No. 9, pp. 917-930.

### Interesting files (under construction)

 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)