Quadruped robot- "dog"

Hello everyone,
last two months I am making one robot with four legs. And until now I can sit, stand up etc, everything with all four legs on the ground- it is normal, but when it walks it is very unstable. I thinking about how to make the walking algorithm and stability control, but have no idea how. I would be very happy to hear something useful from you.

My project is with Arduino Mega, PCA9685, 12- MG995R and MPU6050.
I can read the date from gyro but cant find a way to use it.( only when it on four legs and the ground change angle )
I have very basic inverse kinematics algorithm to calculate the legs separatly, so I give (x,y,z) to the legs, but not all together and with the torso.
I have no simulation program and I dont know how to use some from the popular.
I am new in the robotics as all and it is my first project, it is difficult, I know, but would try.

Thank you very much!

You are trying to go from simple movements with multiple feet on the ground, to balancing on 2 legs?
I am pretty sure that is a monstrously huge leap in complexity.
And this is part of the reason I played with hexapods. It was easy to make a walking gait that always had 3 feet on the ground.

Hello, thank you that you asking!
I tried "2 steps walking"( where it had to balance on 2 legs, but it so, as you said), also "4 steps walking" but it is very slowly and isnt so stable too) Imagine that I put camera on top, it wont be nice video.
And yes, I make simple movements- Leg 1=>position 1, torso=> position 2( I made one new update to my code and now I can move the torso in different directions with all legs together) , Leg 2=> position 3 etc..

If you use your favorite search engine together with the phrase "walking algorithms", many interesting discussions will turn up! Walking is very complex behavior.

Thank you! I searched , but didnt find enough info for me to start updates.

More specifically, “quadruped walking gait” (a search suggestion that comes up when you enter “walking algorithms”) turns up 336,000 hits.

Here is the first page of the result for images. It is a heavily studied and extremely well documented topic.

Thank you very much! I will see.

Thank you again! I found a bit more information after your advice, but still lots to discover.

First of all, every object has a center of mass. It also has a support area. The support area is a polygon formed by the contact points with the ground.

The robot will not fall over as long as its center of mass is above that area of support. As soon as the center of mass passes off of the area of support, the robot will fall over.

With all four feet on the ground, the area of support is large, making it easy to balance.

With only two feet on the ground, however, that area of support theoretically gets reduced to a line. Of course, the feet have more than a single point of contact, so it would be a rather thick line, but for ease of explanation, we’ll just go with the theory.

Balancing over that single line will be nearly impossible, without an active feedback loop. You could try to translate all of the legs in the direction the robot is tipping to shift the center of mass, but this is inefficient unless you have really good hardware. (Servos are simply too jittery for this, which is why most dogs like MIT mini cheetah and Boston Dynamics Spot use brushless motors.)

Stepper motors are just too expensive, are heavy, and use way more power.

What I would do in this situation is to modify your walking gait so that the robot keeps 3 feet on the ground at a time. This makes the area of support a triangle, which is much easier to balance on than a line.

Just have the robot shift its center of mass as it walks so that it never leaves that triangle.

As someone who has built a robot dog (Or am building, actually), I know that it can be unstable when walking. This is why in my experience, there are three things you can do.

The first thing is to filter the servo motions so they aren’t so sudden. Make it smoother.
The second thing is to lower the center of mass, so that the robot isn’t as top heavy.
And finally, wait to walk on only two legs until later.

Good luck on your robot!


I would hope you have looked at this YouTube site about robotics and different drive and code system, even for dogs.

Tom… :grinning: :+1: :coffee: :australia:

Hey, Thank you very very much for your great answer! Everything, what you said, I saw already in my experience with lots tries, and finally I can walk and turn, sit, stand, but it isnt fast, speed about 16sec=1m- 3 point walking ( where I can balance a bit better, above it cant)
Now I working on PID controller, I want to keep my position always horizontal, on different ground angles, but cant find good way for that, always" jumping" around .
Do you know more about it?
I wish you too: Good luck with your robot! :slight_smile:

Hey, I didnt. I will see. Thank you very much, Tom! :slight_smile: