[ODE] gyroscopes

Martin C. Martin martin at metahuman.org
Thu Jun 12 13:41:02 2003


amundbørsand wrote:
> 
> "Martin C. Martin" <martin@metahuman.org> skreiv:
> 
> > ODE can have problems if the angle you turn through in a single timestep
> > (i.e. AngularVelocity * delta_t) goes beyond where sin(theta) ~= theta.
> 
> Hmm, that's an optimization, right? A simplification?

It's what makes the problem linear rather than non-linear.

> Would it be possible to choose
> whether or not to use this simplification?

Not really, it would mean rewriting the core of ODE.  And I've never heard
of anyone else doing it (although I'm not very well read on physics
engines), so I suspect the disadvantages outweigh the advantages.

> Or would it be so slow to use
> a real sin() that it won't be usable at all?

It's not so much a question of that.  If you know two numbers a & b, then
solving a = b*x is easy, but a = sin(b*x) is hard.  Also, once you
linearize everything, it's easier to express constraints such as joints. 
In the full case, it becomes much harder.  You're better off just using a
smaller timestep.

- Martin