[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