[ODE] redundant constrain problems?

Graham Fyffe gfyffe at gmail.com
Tue May 3 20:35:50 MST 2005


Hi, Martin.  My problem actually arises with a kinematic loop of
joints in a suspension rig.  I've got this:

car chassis - ball joint (horizontal) - suspension arm - ball joint -
spindel - hinge joint (vertical) - strut bottom - slider joint - strut
top - hinge joint (horizontal) - car chassis

Now, a real car has a hinge joint instead of a ball joint for the
first joint, attaching the car chassis to the suspension arm. 
However, if I do put in the hinge joint, then the car does
physics-defying acrobatics on its own.  Without the hinge joint,
things work fine except for extreme conditions.

Is it possible that somehow these two hinge joints are in fact
conflicting constraints?  Is it possible that they are actually
redundant, but that floating point inaccuracies are making them ever
so slightly different, and therefore conflicting?

Thanks again.

- Graham

On 5/2/05, Martin C. Martin <martin at metahuman.org> wrote:
> Hey Graham,
> 
> I'm a little fuzzy about your problem, but if I understand it correctly,
> it's not a problem with ODE but a problem with the way you're setting up
> the problem.  It sounds like you have inconsistent constraints.
> 
> For example, if you connect two bodies using two sliders at exactly the
> same attachment points, and you set one slider to 5 cm and the other to
> 10, you'll get really high forces as they "fight" over the correct length.
> 
> Or is it more like setting them both to 5 cm and getting weird results?
> 
> On possibility is to make your joints a little "sloppy," i.e. tolerate a
> little error.  That might fix things up.
> 
> - Martin
> 
> Graham Fyffe wrote:
> > Hi gang.  I have noticed various problems arising from having
> > redundant constraints in my joint setups.  My limited understanding of
> > WorldStep tells me that this has to do with having the number of
> > unconstrained variables pretty much hard coded into the joint classes.
> >  This basically pushes the burden of figuring out how many
> > unconstrained variables are in the whole system onto the user, who has
> > to be very careful about making accidentally redundant constraints.
> >
> > The results that I'm seeing with redundant constraints on my car
> > suspension is that the car will lift into the air and the whole
> > chassis will begin to roll left-over-right, as if some large external
> > torque were being applied to it.  This problem goes away if I tweak my
> > joint configuration a little bit, but this is unstable at best when
> > the user has the freedom to make suspension adjustments :P
> >
> > Especially aggravating would be a joint system without redundant
> > constraints that is manipulated in such a way as to have redundant
> > constraints.  I'm not sure if this can ever really happen.
> >
> > So, what I'm getting at, is there any way to modify WorldStep so that
> > it doesn't rely on the info from the joints about how many
> > unconstrained variables there are, and instead directly calculate it
> > from the constraint matrix?  Or is this just way too expensive?
> >
> > Thanks everybody!
> >
> > - Graham
> >
> > _______________________________________________
> > ODE mailing list
> > ODE at q12.org
> > http://q12.org/mailman/listinfo/ode
>



More information about the ODE mailing list