TWiki > RisePrivate Web>StickyBotForceController? >CentralPatternGenerator (21 Apr 2007, MarkCutkosky)

Central Pattern Generator

ALERT! This page is a working page and thus the details will frequently change

The central pattern generator provides two purposes: determining the velocity of feet in flight and generating attachment and detachment events.

LegPhase.JPG:
LegPhase.JPG

There are two methods for phase adjustment: velocity during flight and attach/detach timing. The former is synonymous with stride frequency and the latter with stride length.

During flight, a single leg can compare the relative phasing between itself and the other legs. If it determines that it is out of phase, it will increase or decrease its velocity, within limits, effectively modify the stride frequency.

Toward the end of stance and flight, the leg can determine if it is out of phase. If the leg is leading, the foot will delay transition into the next state, effectively increasing its stride length. If lagging, the foot can advance the transition, producing the opposite effect.

Then, desired phase differences can be introduced between the feet. For a "walk" (one foot in flight), you get the following matrix:

  LF LB RF RB
LF -- -90° -- +90°
LB +90° -- -90° --
RF -- +90° -- -90°
RB -90° -- +90° --

For a "trot" (two feet in flight), you get this matrix:

  LF LB RF RB
LF -- +180° -180°
LB -180° -- +180°
RF +180° -- -180°
RB -180° +180° --

The phase function is dependent on state and position of the foot. Given the condition that the feet travel on the nominal trajectory, the function is expected to increasing at a constant rate (within the modulus of the full phase). Thus, if where is the phase function, then , therefore, the change in phase based on position is inversely proportional to the nominal velocity of the trajectory.

Assuming that all four states traverse the same distance, a trajectory of constant velocity and equal phasing would place a single foot in each state at all times. This is undesirable considering that only one foot is on the wall while three are in the air. In order to achieve a stance of three feet, a single foot must traverse attachment, flight and detachment for one quarter of the cycle and stance for three quarters of the cycle. To traverse three times the distance in a third of a time means the velocity in air is nine times faster than in stance. According to the rule above, during stance, phase will increase at nine times the rate per linear distance than in air.

Last, the issue of wrap-around must be deal with. The phase is a cyclic function and thus care is taken when calculating difference in phase. Assuming all four feet are in phase, a calculation of the difference between adjacent feet will produce three positive and one negative results. We desire that the all four results are identical. In order to acheive this result, we assert that the sum of all four differences should equal a full revolution of the trajectory. Therefore, if the sum is less than such, find the smallest difference and increment it by one full revolution to produce a congruent difference. (i.e. -30° is congruent to 330°)

-- SalomonTrujillo - 15 Aug 2006

 
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback