[ODE] Possible solution to unstable rotating bodies problem
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.
More information about the ODE