[ODE] Collision problem between Capsule and Box

Remi Ricard remi.ricard at simlog.com
Sun Jul 22 18:11:13 MST 2007


Hi,

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

The problem of a capsule passing through a box was
already mentionned in:
http://ode.org/pipermail/ode/2007-January/021254.html

I'm getting a really similar problem and I was able to create a test 
case of the problem. (See file inb Bug #1757060 
http://sourceforge.net/tracker/index.php?func=detail&aid=1757060&group_id=24884&atid=382799)
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 
difference.

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.


Remi




More information about the ODE mailing list