[ODE] Universal Joint / Arm -> rotating about its own axis

David Nicolier dnicolier at gameloft.com
Thu Apr 3 07:26:01 2003


Ok I understand what's happening now. 
It's a misunderstanding about the way the Universal Axis1/2 work.
It would mean (I'm refering to the Documentation, chapter 7.3.4), that
the axis2 is not turning when there's a rotation on axis1, but instead
it is staying fixed ?  
(Then the drawing would be false, because it's impossible for the body2 
to turn on it's own axis if the axis2 is turning with the rotation of
axis1 like on the drawing 7.3.4)

Now that I see the way it really seem to work, I'm also surprised that
it happens in such a wide range aroung the perfect aligment (it seems
to happen from 70 degres on axis1).

Anyway, I'll have to find a way limit the rotations around both axis
to solve this... (angular motor I suppose ?)

Thanks a lot for the help Martin :)

David.

-----Message d'origine-----
De : Martin C. Martin [mailto:martin@metahuman.org]
Envoye : jeudi 3 avril 2003 15:57
A : David Nicolier; ode@q12.org
Objet : Re: [ODE] Universal Joint / Arm -> rotating about its own axis


> > What the universal joint will do is keep the vector, attached to the top
> > surface of the leg, that points from the back of the leg to the front,
> > perpendicular to the vector, attached to the bottom surface of the body,
> > that goes from the body's right to its left.  Is that what you observe?
>
> I observe this 90% of the time, but time to time, the leg rotates around
> its own axis

It's possible for the leg to rotate around its own axis while keeping
those two axes perpendicular.  That's why I asked the question.  If you
think about it, it can happen when the leg rotates 90 degrees so that its
own axis is along the universal axis attached to the body.  That's exactly
what happens in your video: when the leg is pointing out to the side of
the doll is when you get the motion.

On the other hand, I'm surprised it happens in such a wide range around
that perfect alignment.  Can you print out the angle between the two axes
to see how much its really being violated?

By the way, if you think about the problem for a second, you'll see that
it's kind of ill posed.  If, from the starting state, you rotate the leg
90 degrees to the side, it'll be horizontal with the toes pointing
forward.  If instead you rotate it forward, it'll be sticking out in front
of the doll with the toes pointing up.  If you then rotate it to the side,
it's main axis will be pointing out to the side as before, but now its
toes are pointing up.  Basically, you can't win.  When the long axis of
the leg is aligned along the joint axis attached to the body, the leg will
be able to rotate around its axis freely.  You'll need some other
mechanism to limit rotation in that case.

- Martin