# [ODE] Newbie help.

Jon Watte (ODE) hplus-ode at mindcontrol.org
Mon Dec 18 21:48:36 MST 2006

```Those are called "kinematic objects."

There are two ways:

1) Create Geoms, but not bodys, for your kinematic objects. Move the
geoms to where the kinematics are. Everything else will move out of the
way because of collision resolution -- but they move with significant
force! You might want to set the ERP fairly low, and the max escape
velocity fairly low, for contact joints with your kinematics.

2) Create a body and a geom for each kinematic. Make it pretty heavy
(say, 100 kg, when your typical thing is 1 kg). Each step, apply a force
that will make the in-simulation body match the position that your
kinematic body will have NEXT frame (forward extrapolated from
position/velocity the current frame). I e, calculate ((K-body +
K-velocity * Timestep) - (ODE-body + ODE-velocity * Timestep)), multiply
by mass, divide by time step, apply as a force. Do the same thing with
orientation/torque.
What this will do is make the heavy, kinematic object follow the real
object as much as it can, but if the kinematic object does something
"impossible" (like run through a wall), the physics simulation will not
explode trying to resolve that. On the other hand, the simulation will
diverge when such an event happens.

Cheers,

/ h+

Terry Farnham wrote:
>
> I am very new to using ODE so please bear my ignorance.
>
> I have a system where some objects are controlled by ode and some are
> not.  However, I want to have the objects that are not controlled by
> ode collide and influence the objects that are controlled by ode.
> These objects need to be always seen as being active as they are being
> moved by another system.  I'm sure there is a mechanism in ode for
> doing this, but have not stumbled across it.  Could someone clarify
> how I might do this?
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
>
```