[ODE] box-box collisions

Marta Pla i Castells Marta.Pla at uv.es
Fri Oct 25 02:02:01 2002


--=-sbJWy6VppIJdrQ4ob90f
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

El vie, 25-10-2002 a las 10:33, Peter Amstutz escribi=F3:

First of all, hello to everyone, this is my first message to the list

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>=20
> Okay, so I've spent a little time looking at the box-box collision code.
> Detecting face-face contacts seems fairly easy; we just need to compare
> the normal vector between the boxes centers in the collision with the
> normal vector of the normal vectors of the sides of the penatrating box.
> In other words, determine if they share a coplanar face.  Then we need to
> generate contact points (I haven't quite figured this part out yet).
>=20
> I have a few questions.  The first is that in doing this comparison, ther=
e
> is enough error floating around that it is very unlikely that the normals
> of box faces that should be treated as coplanar will be *exactly* the
> same.  In general, what is the policy in ODE for handling these sorts of
> slightly inexact comparisons?
>=20

The fact is that I don't know really how it does, but I have the same
problem in my application. I resolve the face-face collision by
examining the relative rotation matrix between the two boxes. If the
angles of this matrix are "little" enough I consider the boxes are
parallel and solve the problem adding two more contact points in the
colliding face with the same problem.


> The second question is face-edge collisions.  What's a good way of
> determining if a line (the edge) lies in the plane of the face?  Again,
> this has to be a slightly inexact comparison rather than an exact
> calculation because of error.  I've determined that face-edge collisions
> are absolutely crucial for good box stacking, since otherwise it becomes
> almost impossible for one box to come to rest upon another if the first
> one hits the supporting box at an angle.  Face-edge contacts need two
> contact joints, otherwise boxes will just tumble uncontrolably.
>=20

Totaly certain. But this is more difficult. Before beginning working
with ODE I was using another collision detection library based also in
OBBTrees but I was not able to determine well enough the face-edge
collision. If anyone has an idea, it will be great.


I wish you understand why a spanish write so bad english :)

--=20
****************************************

gpg pub  1024D/A2D21610 Marta Pla i Castells <Marta.Pla@uv.es>
Key fingerprint =3D 9578 8116 FC87 C4D2 1A5C  993F 86B4 52D2 A2D2 1610

***********************************

Marta Pla i Castells (Marta.Pla@uv.es)
http://www.uv.es/~mplac


****************************************

Mathematicians are like Frenchmen:
Whenever you say something to them, they translate it into
their own language, and at once it is something entirely different

						Goethe.

--=-sbJWy6VppIJdrQ4ob90f
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Esta parte del mensaje esta firmada digitalmente

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)

iD8DBQA9uQkUhrRS0qLSFhARAgeVAJ9JMW9rDWGEk7MPvVIrvGal6LhltgCcCcwG
wFgN4YUqdAzcZJLxbevHwCo=
=PF9Y
-----END PGP SIGNATURE-----

--=-sbJWy6VppIJdrQ4ob90f--