Quadruped Robot Gait Study

Robot Gait Intro

There are two main quadruped robot gaits: Creep Gait and Trot Gait. In this article, I will talk about

  • what they are
  • how they look like
  • how they work
  • and how to implement

Creep Gait

The basic alternating diagonal walk, called the Creep – sometimes known as the Crawl. It’s also sometimes called the Static Stable Gait.
Apart from cat, we have also observed deer using this gait, when walking over broken ground. Compared to the cat, however, they keep their bodies fully erect, and lift each leg high during steps – to clear obstacles.

cat creep gait robot

Tripod Stability

Whereas the alternating diagonal walk has dynamic stability (Trot Gait), the creep has “static” stability. Only one leg is ever lifted from the ground at a time, while the other 3 maintain a stable tripod stance. The grounded legs are maintained in a geometry that keeps the center-of-mass of the body inside the triangle formed by the 3 points of the tripod at all times. As the suspended leg moves forward, the tripod legs shift the body forwards in synchrony, so that a new stable tripod can be formed when the suspended leg comes down. Note how the cat’s RF leg forms a tripod with LF+LR, and how the RR leg will shortly replace RF in the tripod. When deer do this, the rear leg touches down slightly before the [same-side] front leg lifts. Slow and steady maintains static stability at all times.

There are at least 2 variations of the creep:

The tripod can shift the body forward simultaneously with the suspended leg, giving a nice smooth forward movement. This method should provide good speed on level ground.
The tripod can shift the body forward after the suspended leg has touched down, giving a more tentative and secure forward movement. This method should be useful when engaging obstacles or moving over broken ground.
It should be noted that rock climbers use what amounts to a creep gait – albeit, they are climbing vertically. The idea is that, for maximum safety, one should maintain “3-point contact” on the rock at all times, and be certain a just-moved limb has a secure position before lifting any of the other three. Slow and careful beats death by gravity.

Just a conjecture ==> it seems there is little reason why a quadruped cannot be almost as stable as a hexapod, considering that a quad has 4 legs and it only takes 3 to build a stable tripod. Lift 1 leg for probing and stepping forward, and always keep 3 on the ground for stability. Just watch a clever cat negotiate the top of a fence.

Timing Diagrams

The diagram below shows the basic timing for the leg positions when doing a Creep gait. In this case.

Robot Gait Leg Cycle for Quadruped robot

The creep gait works with 4-beat timing. One leg at a time, starting with the right-rear, picks up and moves forward and down during one beat, and then slowly moves backwards during the next 3 beats. During the 2nd beat, the front leg on the same side goes through the same motion. During the 3rd beat, the rear leg on the opposite side does the same. Finally, the front leg on the opposite side does similar, during the 4th time beat. The cycle repeats, and forward motion continues.

In summary, each leg picks up and moves forward during its own quarter-phase, and then moves backwards during the other 3 quarter-phases. The overall action results in very smooth and even forward movement, since all legs are in constant motion here. The body remains nice and level.

Creep stability

The creep gait is “potentially” very stable, since 3 legs form a stable support tripod whenever any one leg is suspended. Notice the relative positions of the 3 down legs at time t1, when the up leg [right-rear] is in its suspension phase.

Note especially that, when the right-rear leg is in suspension, the left-rear leg is half-way through its range of travel and is positioned directly under the robot’s “hip” joint, thus providing maximal support. In contrast, the front legs are near opposite ends of their travel at the same point in time – left-front is forward and right-front is back, near where the right-rear will touch down. The right-rear touching down at that [same] point allows the right-front to go airborne in the next quarter-phase, while stability is maintained. This is the way to build a stable tripod when creeping.

There is a kicker, however. Lifting only 1 leg at a time sounds nice, but in the real world, this doesn’t always work as predicted – for a quadruped, at least. It turns out, if the quad’s legs are too short with respect to its body length, or they don’t travel far enough (front-to-back) towards the mid-line of the body, or they are not coordinated well, then the 3 down legs may not form a stable tripod when the fourth is in the air. The down leg on the same side as the lifted leg, especially, must have its foot positioned far enough back, else the COG may not be contained within the stability triangle formed by the 3 down legs. Overall, creep stability relates to: body length, body width, leg length, leg angles, foot positions, and general distribution of weight on the body.

COG of quadruped robot gait

We have observed that deer do not have much problem with creep stability. Their legs are “very” long with respect to their body lengths, so keeping the COG within the stability tripod is easy.

The diagram above illustrates this. Given the position of the right front leg relative to the left rear, the associated edge of the stability triangle falls very close to the COG at this point. If those 2 legs are not coordinated correctly, a point of instability may occur nearby in the stride. To improve stability here, the right front foot would have to touch down further back.

Note that this situation is similar to that of one of the tripods in a hexapod robot gait, but in the hexapod robot case, the middle legs are attached near the position of the COG, right where they will do the most good regards stability. In the case of quadrupeds, many animals use movements of the head and tail to move the COG back and forth to keep it within the stability triangle. Note how the “clever” cat above is extending its tail outwards to help balance on the narrow beam. This moves its COG rearwards over the 3-legged tripod at its rear end.

Trot Gait

The alternating diagonal walk has dynamic stability (Trot Gait), it’s sometimes called amble gait. Two diagonal legs swings forward while the other two support the body and move backward (as if the body is moving foward).

It’s one of the quickest gait because two of its legs are lifted at one time, although it’s not very energy efficient.

The stability of the body is related to the frequency of the legs being lifted and placed, the quicker, the less shaky you will find it is. Of course it’s has something to do with the design of the feet as well, if the feet has a large contact are with the ground you will find it stay better while the other two legs are lifted.

There isn’t much I can say about this gait because it’s just that simple.

Crawl Gait

I really don’t know what these gait names are about, maybe I am just making it up. This is somehow very similar to the first gait (creep gait), but in this one the body (COG – center of gravity) shifts while walking to maintain better stability.

To do that we need to know which leg is going to be lifted and placed foward, and the other three legs will form a supporting tripod. To stay stable, the COG of the robot has to be inside the triangle. We have seen that in the creep gait, we can do exactly that without shifting the body side way, but that’s given we are walking on a even terrain, and long enough distance at each step.

[More to come soon]

12 thoughts on “Quadruped Robot Gait Study

  1. Daniel Kim

    Hi Oscar,

    Thank you for posting this useful info, I was implementing gait for my quad and this saved me so much time! Got creep gait to work beautifully on a simulator (V-REP). I will definitely try trot later after getting creep to work on a real robot first.


  2. Durham

    Hi, have you perhaps added the sections of the trot gait and how to implement gaits somewhere yet?
    I cant seem to find them

    1. Oscar

      I did! But a couple of months ago, my previous web host delected all my data and I lost the update of the post (the trot gait part that i spent an hour writing!).
      I will try to find the time to write something. But trot gait is incredibly easy comparing to Creep gait.

  3. rahim

    my robot need to be a fully function quadruped ( walking, climbing , avoiding and etc.).

    nop, I must use NI single board RIO with FPGA :(

    I already read all of your post IK and hexapod and quadruped :D. But I don’t really get it what should I do.

    so every time the robot walking a set of repeating sequence set of angles.

    therefore, I need to calculate them base on the IK. But what I don’t understand is the positions of tip of the legs.

    How to choose them and how do I know witch point is the best point to reach. do I need to map all the point that robot pass through? because when I use point base on (x1,z1) next point should add dX and Dz to last point

    and so on?

    sorry for the long comment :)


    1. Oscar

      When I see your question, I actually needed to go and read my own post! It has been so long since I have not played with the Hexapod Robot. :-)

      So it’s good that you read and understand IK already.
      Next, I suggest try and make a hexapod that can do basic movements like, Roll, Pitch, Yaw and body translate. Just forget about Walking and gait sequence for now.

      To tackle these basic movements, just bear in mind that you are only controlling the center position of the Hexapod robot body, but not the legs. The relative positions of the leg to the center position of the body changes when you make a move, so the angle of the servo changes.

      I had 2 IK systems to do this, one is Body IK, the other is Leg IK. When you are controlling the robot, you change the center position of the body. So the Body IK calculates the change of coordinates for the legs. and the Leg IK calculates servo angles based on the tips of the leg positions.

      Walking is similar, you control the position of the center of the body to walk. But you need to pre-define the leg movement sequence – how the leg moves when the robot is walking, I called that GaitSequence in the hexapod code.

      Actually, I migrated most of my code from the Hexapod robot, the only main difference is the number of legs. I suggest you to take a look at the code from that robot first to get a feeling how it works.

  4. rahim

    Dear Oscar
    Thanks for your good blog.
    are you planning to generate all the necessary angles by the equations and give them to your robot as a lookup table?

    1. Oscar

      All angles are generated by their new foot coordinates.
      look up table would also work, but it’s very limited if you want to do more complex stuff, for example, terrain adaption.

      1. rahim

        exactly. right now I’m using look up table and it’s really slow and not very smooth. and because I’m using a FPGA board it takes half and hour to burn the code inside. it’s a real pain in the ***
        so basically what you mean is just put the into the controller and give the instruction of walking or climbing, etc.
        what about terrain adoption?
        I want to implement it to my quadruped :D

        BTW for walking gates, if just the COG of the robot be inside the triangle is enough Or COG of robot and COG of triangle should be near each other?

Leave a Reply

Your email address will not be published. Required fields are marked *

Are you Robot? *

I don't look at blog comments very often (maybe once or twice a week), so if you have any questions related to multirotor please post it on this forum IntoFPV.com... You're likely to get a response from me faster on there.