[ODE] exploding spinning objects

Nagymathe Denes denes at invictus.hu
Wed Feb 15 01:37:31 MST 2006


You can reproduce it quite simply in the text_boxstack (or whichever) 
sample: just create a body somewhere in the air with arbitrary orientation, 
disable gravity for it (dBodySetGravityMode(0)), and give it some non-zero 
angular velocity. It's ang.vel. will continuously increase. It's not 
numerical instability. This 'term' adds angular velocity to any body created 
by crossproducting its own ang.vel with itself, so it cearly adds energy to 
the system. Not a surprise it makes them unstable.

comment: we've used ODE 0.5, not the latest unstable. But as i've seen, the 
only difference in this area is that the unstable uses a local I matrix 
within the mentioned loop instead of the large common I allocated before it 
in 0.5.

Btw, we've done some tests to see the what gyroscopic effects we lose 
without the 'rotational force'. None. :o) We have tried sg. like spinning 
tops, and they work perfectly without it, and even a horizontal capsule 
spinning on its axis and hanging on a ball join on one of its ends works 
just like a real one should (keeps its axis nearly horizontal, and starts 
slowly spinning around). For me it seems the system has its own gyroscopic 
effects 'by accident', and adding one more just makes things worse.

Denes


----- Original Message ----- 
From: "J. Perkins" <starkos at gmail.com>
To: "Nagymathe Denes" <denes at invictus.hu>
Cc: "Graham Fyffe" <gfyffe at gmail.com>; "Erin Catto" 
<erincatto at sbcglobal.net>; <ode at q12.org>
Sent: Tuesday, February 14, 2006 1:54 PM
Subject: Re: [ODE] exploding spinning objects


On 2/14/06, Nagymathe Denes <denes at invictus.hu> wrote:
> Thanks for the info. But if this term would work correctly even for 
> spheres,
> the well-known problem of 'wheels losing alignment' wouldn't exist.

Do we know what is causing this term to make the simulation unstable?
Is it numerical instabilities? I spent a few minutes with the latest
unstable source code trying to reproduce the problem with no success.
If someone would be so kind as to send me a source code sample that
blows up, I'll wrap it up as a unit test so we can start
investigating.

Thanks!

Jason 




More information about the ODE mailing list