Walking Robots Part Two

In my previous blog on walking robots I touched on the current open source walking robot progress.

Since that time there has been some progress, with some success. 
Gael Langevin has released a video of his robot knee in operation,https://www.youtube.com/watch?v=9FG0sEBupAQ

Harland has also shown his robot taking its first steps https://www.youtube.com/watch?v=G4LspxN14tw



Bartosz Scencelek has also had some success with a successful testing of his knee some time back https://www.youtube.com/watch?v=pke8B5g5ZOw  and testing of his hip https://www.youtube.com/watch?v=Qwh4WybKelA.

More recently, Bartosz has also added video of the testing of his robot (Damian) while suspended
and there is also the movement of Damien’s stomach

Recently, the Bartosz hip mechanism suffered a mechanical failure where the leg rotator which is supported by a bolt failed with the PLA plastic breaking, letting the bolt go, this results in the leg falling off.  Bartosz feels the problem was caused by the weight of the leg when it is lifted off the ground.   Up to that point all of the design was focused on supporting the weight of the robot from above, and not for the lifting of the weight of the legs.  We learn from our mistakes and make improvements as a result.  I would like to point out at this point, that Bartosz has not yet failed; you only fail when you stop trying.  Bartosz has not yet stopped trying and is currently working through design improvements to solve the problem.

From this set back we should look at what forces will be acting on our robots as they start to take their first steps into a new world, but before we can do that, we need to understand how the robot will move its legs in order to walk and maintain its balance.

Probably the most understood part of this is just standing. Using only a few of the servos we can maintain the balance after minor deflections caused by vibration and air currents.

The process of walking is a little more difficult.

In early models of walking systems, maintaining the balance was thought to be critical; we have now learned that recovering the balance to be more important. The act of walking is after all an exercise in controlled falling.

The current plan with the Bartosz legs is the have the X-axis auto position to maintain level contact with the ground and the Y-axis to be used with a larger motor to help with the forward/backwards balance while stationary.
For this the X-axis servo does not need to be very powerful, but the y-axis will need enough power to lift the weight of the robot onto its toes. (This is more relevant to walking than standing)
For the X-Axis, Bartosz’s idea is to use a standard servo; this servo is small enough to fit inside the foot below the ankle.

Stationary balance will be achieved using two methods:

  • For small errors in Y-balance (back-forward) the tilt of the foot will be used.
    Small errors are where the Centre of Gravity (CG) falls within the area covered by the feet.
  • For large errors in Y-balance and all errors in X-balance, adjustment using a combination of the waist (lower stomach) and hips will be used.
    Moving mass in the opposite direction of the GC relative to the feet.

Things become interesting when we want to walk.
In this example we will start by moving the right foot.
To take a step, we first must lift a foot, the means the CG must be moved to a point over the opposite foot, care must be taken not to move the CG to far or we will lose balance, the GC should be on the right side of the centre point of the left foot.
If a forward step is to be taken then the CG must be moved forward of the foot. This action will cause the robot to start falling forward with little weight on the right foot; we can tilt the waist to the right while at the same time swing the left hip to the left and the right hip slightly (50% of the left movement) also to the left.
This will lift the right foot off the ground and allow the leg to be swung forward from the hip to a point 75% further forward of the distance the CG is in front of the mid-point of the left foot.  At the same time, the left leg should be swung back by around the same amount.
Towards the end of this movement, the Inertial Measurement Unit (IMU) should start to indicate the ass of the body starting to move towards the right.  At this point we need to reverse the action we had taken with the waist and the hip resulting in the right foot landing on the ground.

Momentum of the body mass will continue to move the mass forward and to the right with some assistance from the hips and waist we can now lift the left foot.  Note, the body mass will be slightly lower to the ground as a result of the arc between the left and right legs, so to gain extra height with the left foot, we will need to bend the left knee as we bring the left leg forward and the right leg back.
As the right foot lands on the ground, we need to adjust the angle of the foot to best match the level of the ground. For the X-axis, this can be done reflexively using the load cells in the foot to provide the positioning. The Y-Axis will need to be driven by the main controller to a point where the front of the foot is almost as low as it will go and then roll up under motor control as the CG of the body moves over the foot.
The process repeats for each left right step while we continue to walk forward.

For additional stride length, the rotation of the waist and hips can be added to the movement, adding an addition 200mm to the length of the stride.  A longer stride allows for faster and more fluid movements.

The problem becomes more difficult when we want to stop as we need to arrest the forward momentum of the body mass.

For that, we need to tilt the body mass backwards and start to reduce our stride length until forward movement has been arrested.  This will be a balancing act as too much tilt back will result in loss of balance.

Once we have achieved the above we will need to evaluate the results and any unforeseen reactions from the robot before we look into the process of turning.

This project is a work in progress and any input into the process of walking will be greatly appreciated.

For those working other walking robot projects, keep at it and let us all know how you are progressing. We all like to see progress and will help if you need it.


Comment viewing options

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


the legs i am working on fell over yesterday while trying to walk. broke both knees and the battery holders that held the battery tubes in place.  Big crash!  The battery tubes are a little heavy. So now reprinting parts. Thicker battery tube holders and new knees. 

Even though I have encoders on the motors, steps do not always come out the same.  Sometimes the legs move a head more/less or even turn one way or another depending on traction.  The motors on the hips are under a lot of force due to the long legs (lever arm).  Getting these legs to do what I want is causing me to loose a lof of sleep. I didn't realize it would be this hard.

Ray.Edgley's picture

It's all about the mass

Hello Harland, 

The further up the bulk of your mass is the better it is.
We used the mass up high as a counter point when moving the lighter legs.
The other thing must try to avoid is stopping the mass from moving in the direction we want, forward.

We will get a small amount of wobble on the mass from side to side, but we manage that by using the effect to our advantage, while the mass is to the left, we lift the right leg and move it forward, the process of doing this will cause the mass to move to the right allowing us to repeat it with the left foot.

we will get some wobble in the legs, but we try to average out the errors to keep moving in a smooth motion.

Each time we stop the motion, we will get a large amount of wobble and larger errors in positioning resulting in falling over.

Bart has a great setup where he uses supports from above, while we will use such supports in a more slack position, the idea is the catch the robot before it hit the ground.

You may note Boston dynamics also use the same technique to help their robots to learn to walk.


harland's picture

appreciate the help

The legs have been standing on there own for more than a week. Tricked me into believing that they were stable. I will use a support system for future testing. Thanks for the advise.

AndreasTr's picture

Crosslink to Robot X

Hi Ray, 

thanks for sharing your thoughts about a walking InMoov robot. I am not so far done with printing yet, but progress is good. Right now I'm working on the stomach, so the legs are not too far away.

As I read your post (and the previous one) a lot of your ideas reminded me of what I saw last year on James Brutons youtube channel. Probably you already know it!? Just to make sure, you don't invent anything twice, checkout the playlist of "Robot X": https://www.youtube.com/playlist?list=PLpwJoq86vov-C5SldDA-AhxesVHPRk74x

The design is completly different, but videos #4 "Electronics, First Test", #5 & #6 "Dynamic Stability" and especially #8 "New Motors" are very interesting. James changed his design from drill motors to linear actuators to reduce whobbling in the legs.

Hopefully, you can make something out of it. If all this is already known by you, please igore my comment.

Best Regards,