[ODE] 3 axes ragdoll joint problem

Konstantin Voloshin volk-ode at yandex.ru
Thu Dec 23 18:48:26 MST 2004


Hello

I've recently tried to use ball+aMotor to simulate 3-axis joints with angular limits for ragdoll.
With no success, though :( So I also have a related question to the community :)

Here goes the problem I couldn't overcome in minimized version.

Suppose we have created a body with identity rotation matrix and we want it's Z axis always
be codirectional with world's Z.

It can be accomplished by attaching the body to the world with aMotor-joint in user-mode
with 2 axes. Those axes would be relative to the world and let them be X and Y.

Before each world-step dSetAMotorAngle is supplied with bend-angles of body's Z axis
around world's X and Y axis.

Now for the angular limits. If they all are zero, body's Z axis do keep being codirectional
with world's Z.

I expected that if I change limit values, I will get a body's Z axis restricted to a pyramid
relative to world's Z axis. It is really so if lo/hi for both axes (world's X and Y) are set
to +-.2 (in radians).

But (here comes the interesting part) if limits are set to +-1 (which is less than PI/3),
body's Z axis starts to jump from one side of the pyramid to another, and even outside
the pyramid.

I think that jumping is caused by contradictory rotations along 2 axes, but don't
understand enough how rotational limits work. Do we have a rotational-joint
specialist here? :)

Konstantin


----- Original Message ----- 
From: "Rafael Horbach" <rafael at southlogic.com>
To: <ODE at q12.org>
Sent: Thursday, December 23, 2004 5:16 PM
Subject: [ODE] Human ragdoll "twist" problem


I'm having some problems with human ragdoll simulation. We used Tokamak 
in the past, but now I'm integrating ODE with our engine. On the past, 
we've used ball joints for the shoulder, but in ODE the ball have no 
constraints (or I'm missing some important here), so I've used universal 
joints for that. It works nicely for some situations, but the missing 
"twist"on the upper arm geometry makes the simulation very unnatural. 
The same problem on the legs. So  I was wondering, how have you guys 
made the setup of the human joints?

I'll now try some different joint settings, maybe with angular motors, 
but advise could help :-)
Thanks


More information about the ODE mailing list