• EUR€
  • £GBP
  • $USD

How to Make A Four-footed Bionic Walkingbot

DFRobot Jan 19 2016 427
Recently I'm working on a four-footed bionic walking robot project, and it looks like this:

This tutorial introduces the making of this robot and the ways to control it. The gait analysis is optimized through analysis on kinematics, dynamics, gait and stability. In terms of the structure, the legs of this robot are printed with 3D and the drive is controlled by steering gear.

Gait Analysis
The core of movement for animals with foot is moving center of gravity. Most quadrupeds follow this rule. Take horse as an example. If it starts from right front leg, the diagonal left leg will follow, and then left front leg, followed by right hind leg. This is a cycle.
Then there comes another cycle. Right front leg, left hind leg, left front leg, right hind leg. While drawing the picture of their walk, I keep in mind that the center of gravity is on the triangle formed by 3 legs that standing firmly on the ground.

Animals with Hoof

They need three legs to support so they need triangle to keep balance. Right hind leg→right front leg→left hind leg→left front leg→right hind leg.

The Moving Triangle

 Here comes the moving triangle. The three angles represent 3 legs and the circle represents the leg that lifts. The center of gravity moves forward while the horse moves.

The Joints Movement

 When the leg lifts, the joint of thigh lifts first and then the joint of calf bends for lifting the leg better. Then the horse marches forward.

The Waist Movement

 Due to the bend and stretch of leg joints, the body also moves up and down. If we look down, the shoulder line and bottom line take turns to move forward and the body swing accordingly.

The Head Movement

 The head moves up and down a little bit.
Usually it moves down when the front leg is about to land on ground. When the front leg is straight, the head moves upwards.
Animals with Palm

 Animals with palms have the palm to keep balance so they can take turns to move two legs together.
The endpoints of four lines signify four limbs. The solid line means the legs that land on ground and the dotted line means the legs that lift up.


 The steering engine orientation of this four-footed dog-analysis of angle on advancing gait program.
It moves following 1→2→3→4→1. Then in each gait, it also follows with small cycle?1?→?2?→?3?. Other legs also move when it moves forward to shift the center of gravity forward.
Here comes the angle value of drive for each gait.

Download  here

1.      #include
2.      #include
3.      #include
4.      #include
5.      DOGrobot DOGrobot;
6.      unsigned long mp3time = 0;
7.      unsigned long stoptime = 0;
8.      #define mp3delay 3000
9.      unsigned long Barkingtime = 0;
10.   unsigned long Barkingdelay = 2000;
11.   unsigned long Ultrasonictime = 0;
12.   unsigned long Ultrasonicdelay = 1000;
13.   unsigned long directiontime = 0;
14.   unsigned long directiondelay = 3000;
15.   int distance = 0;
16.   int AngHand = 90;
17.   int left = 0;
18.   int middle = 0;
19.   int right = 0;
20.   void setup() {
21.   Serial.begin(9600);
22.   DOGrobot.DOGsetup();
23.   delay(1000);
24.   //DOGrobot.Init();
25.   //delay(1000);
26.   DOGrobot.UltrasonicInit();
27.   mp3_set_serial (Serial); //set Serial for DFPlayer-mini
28.   mp3 module mp3_set_volume (20);
29.   }
30.   void loop() {
31.   if (left == 0 && middle == 0 && right == 0)
32.   {
33.   DOGrobot.Forward();
34.   AngHand = DOGrobot.Hand();
35.   }
36.   else if (left == 0)
37.   {
38.   DOGrobot.Turnleft();
39.   AngHand = DOGrobot.Hand();
40.   }
41.   else if (right == 0)
42.   {
43.   DOGrobot.Turnright();
44.   AngHand = DOGrobot.Hand();
45.   }
46.   else DOGrobot.Barking();
47.   if (millis() - directiontime > directiondelay)
48.   {
49.   directiontime = millis();
50.   left = 0;
51.   middle = 0;
52.   right = 0;
53.   }
54.   distance = analogRead(5);
55.   Serial.println(distance);
56.   if (distance > 250)
57.   {
58.   if (millis() - mp3time > mp3delay)
59.   {
60.   mp3time = millis();
61.   mp3_play (1);
62.   }
63.   if (AngHand < 70) left = 1;
64.   else if (AngHand > 110) right = 1;
65.   else middle = 1;
66.   }
67.   }

3D Model

Download here

Mechanical Structure Analysis

This quadruped robot has altogether 10 DOF, one for head, one for waist and the rest eight for legs. Every leg has two DOF so that it can lift up and put down easily. The movement of this robot is realized by static friction instead of kinetic friction so that it can better simulate the movement of animals. While walking, the robot moves its center of gravity through its body’s balance so that lower part should be the body’s 3D printed piece. Please be noted that there is a joint on the waist and it is critical. The fastness of the waist structure needs some attention because it bears heavy weight.

1. Body


The thighs of quadruped robot are quite important because they need to bear heavy weight so that attention needs to be paid to its fastness in design. The hollow part is for steering engine and other pinholes are for set screws.

3.Calf——the sole needs to be designed tobe large to enable better stability. Mirror image should be paid attention to in 3D printing.

4.Assembling ——assemble the thigh withcalf first then install the combination onto the body.