I would like to calculate the load for every leg of my hexapod at any
given time.
So far, I have the center of gravity and the total weight of the robot

in a 2D ground plane. I also have a list of total points of contact in
the same plane.
How can I get from these values to calculating the weight distribution
on each of those contact points?

Er... That is a lot of math... The load depends on the length and angle of
the appendages. It is, after all, a lever function. So, you can google
lever math to find formulas. It would seem to me, with a normal gait in a
2D enviroment, the weight would be 1/3 the weight of the bot (for a hex) -
provided the center of gravity is actually in the center and the bot is
going in a straight line on a flat plane.
If the COG is not in the center, you can make a rough guess by figuring
percentages.
If you haven't already seen it, take a look at videos for Robopet. Seems to
have good visuals of some linkage for what appears to be reasonably simple
but functional legs on a quadruped.
In realtime, you can measure the stress on a motor by measuring the back EMF
through an ADC that is usually available on most microcontrollers.
Bart

As Mr Matthias said above the maths required to do that could get
tricky.
In order to avoid that i would suggest you keep the robot parallel to
the ground. That way, if i am not mistaken, all you will need to
calculate is the distance of the leg from the center of weight, times
the weight. Percentages will have to be taken in consideration since u
got six legs.
So if we where to say the robots stands in parallel to the ground
(center of the earth), it has the weight on each leg will be:
Weight on leg = Total weight * distance from COG / Amounts of legs (6
in our case)
Correct me if i am mistaken

Hi guys, thanks for the suggestions. I am not looking for the stres on
the motors, though. All I want to know is how is the weight ditributed
to the contact points(*).
Does anyone have an idea?
Lemme try some ACII graphics (seen from above):
o = center of gravity
x = contact point
x
o x
x
So the above drawing makes a pretty good triangle just above the center.
If the robot weight 1000g, then each leg needs to lift 333g, right?
Now if I have this:
x
o x
x
then the distance to the center is still pretty much the same, but I am
sure (intuitively), that the left two legs carry much less weight each
than the right one.
And as a lats example, these legs have IMHO the same load as the image
above, right?
x
o x
x
Oh, one more, because I think it is relevant. This robot would fall
over. The weight on the bottom leg would be negative. But how can I
calculate this????
o
x x
x
*: the stress per joint is a much more complicated matter, particularly
with bipeds that have twelve joints from one foot to the other. I'll get
to the problem later, much later. Then again, if I can compare my
calculated values to actual power consumption, I can find out if my
robot fell or hit a rock, etc.

If i am not mistaken, all u need to take in consideration in finding
how the weight is distributed is the distance of the each leg from the
COG. Now the location of the leg only matters when u want to see if the
robot will be stable, or it will crash to the ground..
So.. its simple math from now on..

Blind driving a robot is about as risky as it gets... Personally, I think
you are focusing in the wrong direction and possibly making it more
confusing than it needs to be.. A hexapod is quite stable for a walking
bot. If you have the money, perhaps you might consider experimenting with
small gyro stuff. That way your bot will do its own calcs. After all -
that's what robots are best at... Just suck the info out of the sensors,
stuff them into a software equation, and poof...
For a dumb robot, you can find out if it is having terrain problems with
much simpler methods - such as whiskers and other forms of micro switch
sensors.
Bart

Absolutely. So I would like to avoid just that.
All these calculations are done before the robot moves. They are to
veryfy that the robot won;t fall and that the motors won't overload.
Once it is moving, I verify my finding by measuring.
This is for legged robots in general, including a biped which has to be
very careful about balance and motor load. Navigation, including
whiskers and IR distance sensors, is a whole other story ;-)
Thanks,
Matt

If you only have three legs on the ground, just drop a perpendicular
from the CG to the floor, compute the distance from the intersection of
that perpendicular to the floor to each leg contact point, and use
those three numbers as relative weights. Ignore any legs not solidly
in contact with the ground. This is a good first
approximation, provided that the CG is inside the leg contact
triangle.
If you want a full-scale 3D dynamic simulation with accurate
force measurements, that's going to be a big job. There are some
rather expensive packages that can do it, including our old
Falling Bodies product.
If you're building a legged machine, go to the trouble to
get force information back from the motors. Otherwise you'll
never get anything better than wind-up toy motion.
John Nagle
Animats

Thanks.
ODE library is a pretty good start here, although I did get some funny
results. But that may be related to my libraries as well. I am sure that
you know much more about this than I do ;-)
http://www.ode.org /

True. I am actually using a live motion capture system on a human. I
need these calculations to transform the joint setup, physics and
dynamics from the human into robot world, so that the bot won't fall, no
matter what the human player does. I hope that this will get me far
beyond the wind-up toy.

Looks interesting - now if I could only figure out how to get started with
it... Some of the links don't work and the instructions are confusing.
By the way there is a program that seems like it might be something you
would be interested in:
http://ezphysics.org /
Bart

ODE is an impulse-constraint physics engine. It won't give you valid
force results for statically indeterminate problems. Whenever you have
more than three legs on the ground, and the system above the legs is
rigid, the system is "statically indeterminate" - there is no unique
rigid body solution.
What's actually going on is the mathematical equivalent of a table
with four legs on a hard surface. A slight difference in the leg
length will cause the table to wobble. The forces in the legs
change drastically with a tiny change in the leg length.
If you have a spring in the legs, so that there's some
compliance, now you can get meaningful force solutions.
I'm not sure how good ODE is at this, but at least it
can work in theory.
In the real world, surface contacts always have some compliance,
and we actually simulated that in Falling Bodies. That's
needed if you really care about foot/ground contact forces.
John Nagle
Animats

Hi John,
I am cracking this as we speak in my own reduced system. I had my
simulated robot sliding (and after a while jerking) all over the place.
The spring is a great idea, plus I am checking a lot more for reasonable
tolerances now.
Thanks for the help,
Matthias

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here.
All logos and trade names are the property of their respective owners.