[ODE] Re: What can make a U-Joint "stiff" vs "loose"?

Megan Fox shalinor at gmail.com
Mon Dec 20 18:23:07 MST 2004


I've sort of answered my own question here, but I'm not sure if my
solution is expected, or even correct:


If I re-arrange my phys initialization code for objects to create all
of the phys bodies first, then assign their geoms, THEN attach
everything with joints - I get identical behavior whether I attach
limbs during creation or later on.

That said, the behavior I get is of "stiff" u-joints, and two attached
bodies end up not colliding with eachother (which is fine, that's how
I want it to work, but I'm unclear why it changes depending on which
order I create things in).


Is this the "correct" order to create things in, and is this the
expected behavior?  Is there an ODE reason for the difference in
results, or am I just seeing the results of some deeply imbedded bug
in my own code ?

Thanks,
-Megan Fox

On Mon, 20 Dec 2004 14:29:02 -0700, Megan Fox <shalinor at gmail.com> wrote:
> By stiff or loose, I mean willingness to rotate in a full 360 arc when
> bent in half.  That is - take a ujoint with poles attached to either
> side, grab one and point it straight up, then grab the other and take
> it in a full 360 degree arc without turning the first pole at all.
> The looser the joint, the easier this operation is.  (assume the stops
> are set to +/- pi/2)
> 
> The reason I ask is because I've got a case in my code where, if I
> create my joint on "startup" (that is, when the phys representation of
> the entity is being created the first time), the joint I end up with
> is loose, but joints created "runtime" end up extremely stiff.
> 
> I'm setting CFM, StopCFM/StopERP, and joint bounciess to specific
> (what should be the defaults - assuming joint values for these match
> what the desired world defaults are?) values in each case, and am
> generally at a loss for what else could be different between case A
> and B.
> 
> Note that there is no simulation step actually happening between
> startup and when the joint created - the only difference is:
> 
> - in "startup creation", I create the primary phys body, create the
> joint attached to the body, then create the geoms for both bodies
> 
> - in "runtime creation", I create the primary phys body, attach geoms
> to the primary phys body, finalize everything else as far as the
> primary phys body is concerned (mass, etc), and THEN I create the
> second jointed body and THEN attach a geom.
> 
> In my case, I get a "loose" joint in startup creation, and a "stiff"
> joint in runtime creation.
> 
> Thanks,
> -Megan Fox
>


More information about the ODE mailing list