Let's Make Robots!

Robots With Legs; How to Walk or Run

Does your robot walk like this? http://www.youtube.com/watch?v=WTHI8o5ZOFk&feature=related Notice the heavy jarring to the machine and to the inhabitants inside. This jarring is not good for the machine, especially at the joints and may eventually break  something.

While this is about robots, I want to ask you, "How do YOU run?" Do you come down on the ball of your foot, or on your heel? Professional runners, whether sprinters or distance runners tend to run on the balls of their feet. The sprinter gets better speed and the distance runner gets less tired in a long run. If you come down on your heel, your foot takes a load from one and a half to three times your body weight. This is like having someone smacking each heel bone with a mallet about a thousand times per mile with a force equal to one and a half to three times your weight.  Special running shoes can take up some of this jarring, but only about 10% of it. With this extra compression to your ankle, knee and hip cartilage, you are much more likely to need surgery on those joints eventually. If you come down on the balls of your feet, there is essentially NO extra force than your own body weight.

Back to robots. Robots are the same in this respect.  When you move your robot at full speed (a.k.a.running) whether your robot has ankle joints or not (and I know that most do not) before setting the leg down, extend the joints (ankle, knee and hip) to nearly full extention as the leg moves forward. As the leg comes down and takes on the weight of the body, allow the joints to contract* slightly. Besides removing the jarring effect and saving your servos from early death, there is a bonus. The body of the robot will tend to stay more even and level as it moves forward.

*[ A little side note on how you might easily make shock-absorbing feet: You do not really have to use servos to do this; you can use a rubber band or a spring. Think of the bone structure of a leg and foot made like a human's. There is a heel bone sticking out the back while the main part of the foot sticks forward. Now on your robot's foot bone structure, hook a rubber band from the back of the leg down to the heel bone. When the leg is lifted, the toes naturally extend and then when the foot is set back down, as it comes down the toes/ball-of-the-foot take up the weight of the robot as the rubber band stretches. You could play with different rubber bands to get the right tension for the weight of your own robot. This could also be done with actual springs which come in a multitude of weights and sizes. ]

In walking movement notice this quadruped (4 legs) and how much more fluid its movements look. http://www.youtube.com/watch?v=nUQsRPJ1dYw  Note the flexing and fluid springiness the programmer has built into this robot's movements. And yes, proper walking versus poor jerky movement in a robot as we build them is mostly programming. Some of it can relate to using servos that are too small or driving them with too low of battery voltage (making them slip and chatter), but programming is the main thing. Keeping the body level while moving gives it a more animal-like appearance. Another key aspect is balance. You will need servos that allow the leg to move to left and right as well as the normal ones which give you front and back movement. As your robot moves forward and puts more weight onto a leg, the right/left servo should pull in towards the center of gravity so the weight of the robot moves over that foot. If this is done right, the robot could balance on that single foot. Everyone has probably noticed how a persons hips sway back and forth as they walk. This is the result of the person shifting his or her body weight to the left or right with each step.

As to learning more about how animals move here is a link that shows 2-legged, 4-legged and even 6-legged creatures movements. When you start programming your walking robot's movement, I think you may find this quite useful.  http://www.3dcognition.com/theoryBiomech.php


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

i think initially one would have to make a test bot that only walks
and records or transmits output from the piezo's.

alternatively: are you familiar with BEAM bots?
they are basically self calibrating walkers that stabilize
themselves based on feedback from the servo's.
so i was wondering what would happen if this BEAM concept
incorporated the feedback from piezo feet...
(im a noob though, so i'm just guessing)

i got the idea of using piezos after seeing a guy on youtube use them
to make a crude electronic drum set.
tapping them with his fingers softer or harder would produce proportionately
different sounds.


In the case of animals the sensory feedback comes more in the form of rough joint position and more importantly torque/force Animals don't stomp like those robots because stomping hurts. When animals walk they optimize for minimum "jarring" and maximum efficiency. When they sprint they maximize speed and they care less about the smoothness of their motions or their efficiency. You can see this by studying how cats move under the influence of a laser pointer or in the absence of a laser pointer. Trust me, I had 4 cats. ( One of them just died yesterday ... makes me really sad actually )
I agree that how you program the leg movements has a big effect on the life of your servos. When I first programmed the gait for Chopsticks I made it as fast as I could with no allowance for servo life. Since the videos on YouTube I have changed the gait so that the servo decelerates the leg prior to placing it on the ground. This has reduced the robots stomping noise a great deal. As for springs: when I raced off road RC cars we had a "Servo Saver" on the steering servo to protect the geartrain from damage. This is a spring system and can be bought at hobby shops. I am now developing a Spider robot kit based on chopsticks. I have incorporated servo savers into the design of the leg pieces. This should not only protect the servo geartrain but also make the robot quieter as it walks.

I'm surprised by the lack of use of these amazing mechanical devices.  Many insects have an excellent suspension system where their weight is balanced by elastic tissue.  When you see a dead bugs legs curl when its upside down, it is because of the these elastic springs and current lack of power :P

If springs are incorporated into a chassis where the servo does not have to be "on" all the time, this would represent considerable power savings !

Bring back the SPRING !

mmm, i was thinking about this a while back and it ocurred to me that animals
have the advantage of a balance organ and sensory feedback from the feet.

so i was wondering about using piezo elements on the feet to serve that purpose.
one could have the ankle joint react to the piezo individually, and use the combined info
from all to make it level out.

what do you think?