[ODE] Constraints: position-, velocity-, or acceleration-based?

Russ Smith russ at q12.org
Sun Nov 18 12:50:02 MST 2001


> 1. Does ODE use velocity-based constraints (where I understand
>    "velocity-based" to mean "expressed in terms of the first
>    derivative of the state vector")?

yes.

>    Does ODE use a time-stepping method?

yes - by which we mean that the integrator is not expressed as an
abstract module that can integrate any defferential equation, it
is very much tied in to the system being integrated.

> 2. Baraff appears to use acceleration-based constraints. Why does ODE
>    use velocity-based constraints?

1. the constraints are simpler to derive. taking the second derivative
   of a constraint equation is messy, either by hand or by mathematica.
2. when combined with the time stepping scheme, the resulting system
   is more stable. for example, we don't need to use baumgarte style
   joint stabilization, we can express the joint error reduction
   terms as part of the constraint itself.

>  Is it because of friction problems with multiple/no solutions?

no. those friction problems appear in the LCP solver, not the
constraint formulation. vel based constraints help get a solvable
LCP matrix, but more is needed to ensure a solution.

>  Do these problems (at least, the "no-solution" but not necessarily
>  the "multiple solutions" problem) disappear with a velocity-based
>  time-stepping formulation?

the no-solution problem will go away with a velocity based constraint
system, a good time stepping scheme, and a good LCP solver (lemke).
which is not to say that there aren't plenty of problems left over.

> 3. Some other systems appear to use position-based constraints (I
>    think Bart Barenburg's Dynamo library does this).

i'm not quite sure what a "position-based" constraint is. do you mean
where the constraint positions are enforced with an iterative
position projection process every time step?

> What advantages or disadvantages would this have?

i've never looked at it, but i think that vel based constraints would
be better for larger articulated systems ... more realistic physical
behavior, and probably faster if reasonable constraint accuracy is
desired. i think the "position-based" methods are better for deformable
particle-type systems where full constraint satisfaction is not a 
requirement. i think this is basically havok's "deformable body"
approach (not sure).

> Basically the general question is why one would prefer one constraint
> representation over another.

depends on the application. for high accuracy systems you might prefer
acceleration constraints, as then you can easily separate the 
integrator from the system being integrated. this allows you to plug in
higher order integrators more easily.

> In one paper Baraff briefly mentions that position- and velocity-
> based constraints can also be expressed as acceleration-based
> constraints, but doesn't indicate how 

i don't know what paper you're referring to, but he may just mean that
you can get the 1st, 2nd derivatives of a position invariant.

russ.

--
Russell Smith
http://www.q12.org



More information about the ODE mailing list