[ODE] Collision problem between a Capsule and a box

Remi Ricard remi.ricard at simlog.com
Sun Jul 22 18:06:23 MST 2007


N.B. Sorry if this had gone through once before.

The problem of a capsule passing through a box was
already mentionned in:

I'm getting a really similar problem and I was able to create a test 
case of the problem. (See file inb Bug #1757060 
Compile test_CapBoxCollision.cpp and test it.

You can also test the problem with a cylinder (There is no problem in 
that case) with:
test_CapBoxCollision --cylinder

I'm having the problem when I use OPCODE and dDOUBLE with the source 
code of revision trunk-1998

The problem seem to be coming from the function dClosestLineBoxPoints.

The 2 points lret (Collision point on the line in World frame) and bret 
(Collision point of the box in the World frame can have a really small 

For example, I'm getting
lret = (0, 0, -1e-16)
bret = (0,0,0)

Since the normal returned for the contact is:
c->normal[2] = lret[2] - bret[2];
c->normal is normalized to be (0,0,-1)

The real answer should be c->normal = (0,0,1)
or to take the default value of (1,0,0)

So if you have any clue on how to solve this. I will appreciate any news 
from you.


More information about the ODE mailing list