[ODE] Russ: [..]making the iterative solver fully stable[...]
Geoff Carlton
gcarlton at iinet.net.au
Mon Jul 4 10:14:49 MST 2005
That is a very impressive paper. I wonder how easy it would be to put
this into ODE. Thinking about it now, it actually seems fairly doable
without any major overhaul needed.
It would be especially easy if the caching used local positions rather
than edge/polys. Although the paper does highlight the possible problem
of aliasing, I believe that robust contact generation should never
create duplicate contacts at a single position - I have found that
merging close contacts is very beneficial for stability anyway. If
cached contact holds sufficient information, such as normal, and local
orientation on both bodies, then aliasing would seem to be less of a
problem.
OTOH, more contact information (such as poly number, edge number) has
been proposed before, so if it were implemented it would be beneficial
for the app as well. For instance, on my local build each contact has
two ints representing this information, which comes in handy for hooking
up sound/particle cues based on trimesh polygon number. I haven't done
this for box-box, but such a feature would be useful there as well -
imagine a box with metal one side and wood the other.
In terms of the actual solver, I don't fully grasp how big a change it
would be there. As far as I can tell it, once the cached value is
found, it seems trivial to poke that value into the appropriate place in
the solver (or perhaps, a pointer so that it is automatically updated).
Is this correct?
Geoff
Erin Catto wrote:
>Contact caching is used to provide the Projected Successive Over Relaxation
>(PSOR) constraint solver (aka QuickStep) with a better initial guess. As it
>stands now, ODE guesses that all contact forces are zero each step. This is
>a poor guess.
>
>PSOR has great performance, but poor convergence. To get a good estimate of
>the exact contact forces, it is necessary to amortize the computation over
>several steps. This is precisely what is called for in dynamic simulation
>for games:
>
>- Slow moving bodies benefit from caching because they need accurate forces
>to stack in a stable manner (less jitter).
>- Fast moving bodies don't benefit from caching, but everything is moving so
>fast that accurate forces are not needed.
>
>I have written a paper on the matter:
>
>http://www.gphysics.com/files/IterativeDynamics.pdf
>
>Erin
>
>-----Original Message-----
>From: ode-bounces at q12.org [mailto:ode-bounces at q12.org] On Behalf Of
>jnilson_99 at yahoo.com
>Sent: Sunday, July 03, 2005 1:36 AM
>To: Aras Pranckevicius; ode at q12.org
>Subject: Re: [ODE] Russ: [..]making the iterative solver fully stable[...]
>
>"How is warm starting (e.g. using part of previous
>solution as an initial guess for the iterative solver)
>relate to some "solver error and crashing"?"
>
>because if you have to "warm start" you have
>encountered an error somewhere, thus the data you are
>working with are no longer valid.
>
>if that's the case then ask the question: "how did i
>get here?".....
>
>if the answer is because of some sort of failure, then
>ask "what caused the failure?"
>
>otherwise how would you ever get into the position of
>re-starting the solver?
>
>john
>
>--- Aras Pranckevicius <nearaz at gmail.com> wrote:
>
>
>
>>>"so that the solver can be warm started."
>>>
>>>doesn't that imply recovering from some sort of
>>>
>>>
>>error
>>
>>
>>>at run time? why not just find the error, fix it,
>>>check in the source code and thus prevent the
>>>
>>>
>>solver
>>
>>
>>>from crashing?
>>>
>>>
>>How is warm starting (e.g. using part of previous
>>solution as an
>>initial guess for the iterative solver) relate to
>>some "solver error
>>and crashing"?
>>
>>--
>>Aras 'NeARAZ' Pranckevicius
>>http://nesnausk.org/nearaz |
>>http://nearaz.blogspot.com
>>
>>_______________________________________________
>>ODE mailing list
>>ODE at q12.org
>>http://q12.org/mailman/listinfo/ode
>>
>>
>>
>
>_______________________________________________
>ODE mailing list
>ODE at q12.org
>http://q12.org/mailman/listinfo/ode
>
>
>_______________________________________________
>ODE mailing list
>ODE at q12.org
>http://q12.org/mailman/listinfo/ode
>
>
>
>
More information about the ODE
mailing list