Difference between kinematic and static entities RRS feed

  • Question

  • Hi everybody,

    in the book "Professional Microsoft Robotics Developer Studio" the authors explain the differences between dynamic, kinematic and static entities. Dynamic's clear so far, but I don't get the difference between kinematic and static. I know that for kinematic the entity must have a mass and its flag has to be set to kinematic. And in the case of static the flag doesn't matter because the mass has to be zero. But I don't understand the difference in their behavior. When I set up a service on my own with static entities added programmatically they behave just like the kinematic written in the book. This means that a dynamic entity falls to the ground due to gravity when I delete a static entity it was standing on (and not due to another force). But in the book they say that dynamic entities would hover in such a case til there's some force that affects them. When I use the marbles example, change the kinematic ramp to a static one and return to the run mode its behavior is the same. But when I delete it then the simulator crashes.

    So is there really a difference between static and kinematic? Or does the behavior depend on adding a static entity programmatically or changing kinematic to static during runtime?

    Maybe I understood something wrong, so please help me.

    Thanks Cynthia

    Wednesday, August 8, 2012 10:34 AM


  • Hi Cynthia,

    Your understanding seems to be correct. One thing I'd point out is that documentation explicitly mentions that the physics engine makes certain assumptions based on the type of the entity. Since static entities are intended to remain fixed throughout the lifetime of the scene, the behaviour is strictly speaking undefined when you remove them at runtime.

    As a general note, I would not mess with entity types at runtime.

    Saturday, August 11, 2012 12:18 AM