[ODE] LCP solver
SJS
ode at pulsecode.net
Fri Dec 5 19:33:35 MST 2003
Well, I haven't put together a separate test app, but I've run some tests
using ODE's test samples (test_boxstack, etc.). I'm not using the entire
ODE lib, so reproducing my "3 stacked spheres" case exactly will take me a
bit more time.
ODE's docs say the solver is most stable when objects masses & dimensions
are ~1. Using a modified 'test_boxstack' my "3 stacked spheres" case seems
stable using very small radii (0.01) but not larger (80.0, or even less).
Either way, if you get much more than a factor of 100 away from 1.0 things
start to go bad.
Does someone ( Russ?-- I think he's the last [and maybe only] one to touch
lcp.cpp! ) have any idea where the precision loss is coming in? I know that
I've strayed from the recommended ODE path, but sometimes it's not that easy
to rescale the entire world. :/
Maybe there's at least a way to shift the precision so it would prefer
larger or smaller worlds?
Anyway, any ideas or feedback from experience in this area would be
appreciated.
Steve Schlueter
-----Original Message-----
From: Martin C. Martin [mailto:martin at metahuman.org]
Sent: Thursday, December 04, 2003 6:12 AM
To: ode at pulsecode.net
Cc: ode at q12.org
Subject: Re: [ODE] LCP solver
Hey SJS,
Can you provide a really small program which reproduces this bug? From
your description, the program should be tiny, and that will help people
track down what's really going on.
Cheers,
Martin
SJS wrote:
> I've been trying to use ODE's LCP solver. I've had quite a lot of success
> producing articulated objects, etc., but I've been having a bit of trouble
> in some specific cases. Problems seem to arise in some "perfect" or
trivial
> cases:
>
> My most reproducible test case starts with 3 stacked frictionless spheres
of
> equal mass and radius at rest on an infinite-mass plane. Spheres are
spaced
> so they touch exactly (contact points are generated at y=0, y=2*r, y=4*r,
> where y is the vertical axis and r is the radius of all 3 spheres).
>
> I'm using the regular 'dStepWorld' function (not StepFast) and I've fixed
> the time step to 60fps. Every time step yields 0 force on all three
spheres
> (not just in y, but x and z as well), so they just drop straight down
> through the plane. Is this a behavior that other people have observed?
>
> While this case may seem unlikely, I believe the same failure is causing
> jittering in my simulation during situations that are much more
complicated
> to describe here (at least in 1 email).
>
> I should note that the LCP solver does NOT hit the "s<=0" internal error--
> it simply produces inadequate (0) force on the spheres to hold them above
> the plane. I can provide a more details to anyone that is interested. I
> HAVE managed to find some "tweaks" to the LCP solver that solve (or at
least
> mask) the perfect 3-sphere problem, but I'd be very interested in a more
> rigorous solution if anybody has any ideas.
>
> Steve
>
>
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
More information about the ODE
mailing list