[ODE] Kinematic objects

Michael Lacher michael.lacher at hlw.co.at
Fri Oct 28 10:30:14 MST 2005

Simply using a collider that is moved to reflect the kinematic objects 
position is not enough to correctly model the behavior of affected ODE 
bodies. ODE will need some notion of the kinematic objects velocity 
(linear and angular), mass and probably some other things to produce the 
correct forces if a contact occurs.

The problem with ODE bodies resting on top of a moving kinetic body was 
already mentioned. But consider also the case where an ODE body is hit 
by a moving kinetic body (for example a ODE controlled tennis ball, 
beeing hit by a tennis racket that is attached to an animated player 
model). A big force should be applied to the ball, proleling it away 
from the racket, but instead ODE will just compute a force to remobve 
the collision and have the ball stick to the racket. Not the result we 
wanted at all.

Conversely ODE should in the ideal case be able to provide some feedback 
to the kinematic body (accumulated incoming forces/torques) so that the 
simulation of the kinematic object can react to that if so desired.

What would be needed is for ODE to roughly the following:
1) create a temporary body for the simulation
2) Calculate the needed physical parameters (linear velocity, ...) from 
data given in the kinetic body (mass, ...) and from the velocity (delta 
of positions)
3) Perform a normal physics update
4) Optionally call callbacks on the kinematic body reporting the state 
of the force and torque accumulators
5) delete the temporary body

Of course all those steps could be done using what the ODE currently has 
to offer, but it might prove difficult for many of the users to actually 
calculate the numbers in step 2 by hand so it might be a good addition 
to have ODE do this internally.

Michael Lacher

Gryps Engine: http://engine.hlw.co.at
ODE commercial support: http://engine.hlw.co.at/odesupport.htm

More information about the ODE mailing list