[ODE] Falling Through the ground (that old problem again)
Wesley Smith
wesley.hoke at gmail.com
Tue Sep 19 11:46:37 MST 2006
I have a very simple test case of dropping a sphere on a plane just to
make sure the environment is setup. When I drop the sphere, it
bounces appropriately and eventually comes to a near standstill.
However, it never gets completely still and eventually falls through
the plane. This is what my contact joint params look like:
for (i=0; i < MAX_CONTACTS; i++) {
contact[i].surface.mode = dContactBounce | dContactSoftCFM;
contact[i].surface.mu = dInfinity;
contact[i].surface.bounce = 0.8;
contact[i].surface.bounce_vel = 0.5;
contact[i].surface.soft_cfm = 0.01;
}
This happens with both normal time stepping and quick stepping. I've
also intentially set bounce_vel quite high to test if it's working.
It seems that this is where my simulation is failing. When I look at
the velocity of the ball at each timestep, the value converges to (0,
0, -0.08) which is way below the threshold. The threshold should take
effect since I've enabled the dContactBounce flag.
Now, I believe that ODE should set surface.bounce to be 0 when the
velocity of the sphere has a linear_vel magnitude below 0.5 with the
way I have things setup. Does ODE not then set the linear_vel to be
(0, 0, 0) on the next time step since there was no bounce? Do I have
to take car of this myself? I think this is my problem, but I'm not
sure if it's my responsiblity or ODE's to take care of this. What I'm
seeing is a contant (0, 0, -0.08) such that the object eventually
falls through the plane and off the screen.
Any insights are appreciated.
thanks,
wes
More information about the ODE
mailing list