FIGURE 1. Load cell.
most difficult part is how to calculate the
CG of the weight on each foot.
If I can do it, so can you.
1. Big flat square feet.
2. Heavy servos for foot and ankle movements.
3. One MCU controlling the whole robot.
1. Human foot style with three points of contact.
2. Linkage from the upper leg to control foot
3. One controller for each limb; Limb Processing
Theory of Operation
There are many different theories and models used to
control bipeds. Some are extremely sophisticated and
require some very complex mathematics to control the
dynamic forces we take for granted when we walk. This
article in NOT about that. There will be some control theory
presented, but I will try to keep it to a minimum. The gist
of the theory is that with good enough sensors, we can
build a large walking robot based on the principle of "center
of gravity." Even though I knew the first prototype would
never be able to run, I wanted to create a design that could
evolve into a running biped. To achieve this, some of the
standard "cheats" commonly seen in smaller bipeds have
been designed out.
It's hard to fall over if you’re wearing cement
overshoes. A lower center of gravity (CG) will give higher
stability. However, humans have a high center of mass.
When we walk, we throw our weight outside our CG and
catch ourselves with the other foot. Then we bound out
again on the next step. For these fast movements, an
inverted pendulum where the mass is above the pivot point
This is probably the best way to build a fast moving
biped, but it does take some "rocket science.”
What I am proposing here is a simple way to build a
large walking biped without the heavy mathematics. The
48 SERVO 02.2011
Every biped robot needs some sense
of balance. When I started working on this
bot, my day job was writing firmware for
highly accurate load cells. I am a firmware
consultant by trade and I was fortunate to
find a client that created the exact sensor I
needed for my biped.
Load cells are the devices used in
scales to determine weight. To be useful in
this project, I need accuracy and fast
feedback. The load cells I used are about
The human foot has 11 points that distribute the
weight. Three are extremely critical. The heel, the ball of
the first metatarsal at the big toe, and the fifth metatarsal
at the pinkie toe form a tripod. There may be better
designs for robotic walking but with this one, I can relate to
the forces and feedback the robot will experience.
The first prototype was a one leg, one foot design with
three load cell sensors and three servos. Two servos
controlled the two axis of the heel and one for the knee.
The controller and battery pack were mounted atop the
The goal is to have the foot always support the load
within the CG. The CG is the average location of the weight
of the object. When the bot is not moving and the CG is
inside the triangle of the three sensors, it is stable and
resists the temptation to fall over and destroy many hours
of work. The LPB reads the weight of each sensor every
millisecond and creates a running average for each point.
Once every five milliseconds, it calculates the most stable
point within the triangle as the target CG. The error
between the current CG and the target CG is fed to a PI
(Proportional Integral) loop. The PI loop self-adjusts the
servos and the CG is maintained within the triangle.
This inverted pendulum technique worked well for very
slow movements. I could move the base of the foot and the
servos would keep the weight within the triangle.
I could have built the complete biped from the
prototype design. In retrospect, I would have achieved a
slow shuffling biped sooner had I done so. The problem is
in the slop and play of each joint and the flexing of the
connecting linkage. Unlike biological muscles, servos have
gears and bearings. Each one has a little play. The longer
the limb, the more that play translates to big movements at