[ODE] Possible solution to unstable rotating bodies problem
Gary R. Van Sickle
g.r.vansickle at worldnet.att.net
Thu Apr 21 16:10:15 MST 2005
> I implemented my original idea to keep objects from gaining
> angular velocity when freely-spinning. Here again was my idea:
>
> 1. Store each body's previous angular velocity (just the
> magnitude should be enough).
> 2. Every time step, check the bodies to see if they are
> "freely spinning," which is true if no contacts have been
> made with the body and no user forces have been added in the
> last time step.
> 3. If a body is freely spinning and its current angular
> velocity is greater than the previous angular velocity (i.e.
> by comparing magnitudes), then make the current angular
> velocity magnitude equal to that of the previous step
> (normalize the current angular velocity and scale it by the
> previous magnitude).
>
> I implemented this algorithm in a separate library (i.e. in
> OPAL; see post "Open Physics Abstraction Layer version
> 0.3.0"), not directly in ODE. The algorithm appears to work
> fine. Long, thin objects spinning in midair don't spin out
> of control anymore.
>
> Tyler
Excellent Tyler. As you know, concern has been expressed on this list as to
what performance penalty, if any, just such a scheme may exact. Are you set
up to do some performance comparisons with/without this mechanism?
--
Gary R. Van Sickle
More information about the ODE
mailing list