[ODE] Possible solution to unstable rotating bodies problem

gl gl at ntlworld.com
Thu Apr 7 10:53:12 MST 2005

> This is even simpler than it looks at first. When giving the contact to 
> the
> solver, you need to clamp the correctional velocity caused by penetration.
> In most joints, you'd want to just take the error, multiply it with ERP 
> and
> put in the right hand side. With contact, you would want to clamp the 
> result
> of that multiplication. The number that you use for clamping here is the
> maximum separation velocity introduced by the contact. 1 m/s works good
> usually.

If I understand you correctly, that mitigates the problem, but it's not 
quite the same - you will still have up to 1/ms included in your object's 
velocity, and that never dissipates (except due to other interactions or 
manual damping).

Ideally you'd have both - the clamping avoids large correctional velocities, 
which would stay in effect even after the contact has expired when other 
penetrations still need to be resolved (and only storing a single 
correctional velocity per body) - but it still seems good to have the 
correctional velocity vanish completely when no longer needed.  This would 
also provide more accurate feedback to those that need it.

And as someone mentioned excessive angular velocity, isn't this also 
increased unnecessarily by error correction?

More information about the ODE mailing list