[ODE] Possible solution to unstable rotating bodies problem

Tyler Streeter tylerstreeter at gmail.com
Thu Apr 21 13:18:51 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

On 4/6/05, Tyler Streeter <tylerstreeter at gmail.com> wrote:
> On Apr 6, 2005 5:59 PM, Gary R. Van Sickle
> <g.r.vansickle at worldnet.att.net> wrote:
> > But again,
> > without some code this is all fairly pointless discussion regardless.
> 
> You're right.  I'm pretty busy with school for a few weeks, but I'll
> try to implement and test something soon.
> 
> Tyler
>



More information about the ODE mailing list