[ODE] Possible solution to unstable rotating bodies problem

Tyler Streeter tylerstreeter at gmail.com
Thu Apr 21 16:57:13 MST 2005


On 4/21/05, Gary R. Van Sickle <g.r.vansickle at worldnet.att.net> wrote:
> > 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

I will run some tests and report back within the next few days.

Tyler



More information about the ODE mailing list