[ODE] Cylinder colisions

Russ Smith russ at q12.org
Thu Oct 10 22:39:01 2002


This is a multi-part message in MIME format.

--Multipart_Thu__10_Oct_2002_22:43:29_-0400_0839c960
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit


> Why don't we add the "real" cylinder class directly into ode?

the non-capped cylinder code is a good chunk of work, but i think it's
work-in-progress. there are a few current problems, especially with
cylinder-cylinder contact. the attached image illustrates the problem -
it is possible (in fact rather easy) to put two cylinders into a
configuration where the contact point (the blue box) does not even
intersect one of the cylinders. this is IMO a big error.

having said that, this cylinder work is a great step in the right
direction. even with the errors it can be useful for many people. i'll
add it to the contrib directory for now. thanks konstantin!

to explain why i think this error is a problem:

the ODE scheme of contact points/normals/depths is of course just
an approximate way of representing contact between two objects. to
reduce the approximation error, all the current contact code tries to
put the contacts somewhere inside the intersection volume, in positions
that will (a) preserve non-penetration and (b) not generate unnecessary
body motion (no extra energy allowed!). the cyl-cyl contacts often do
not meet these conditions. if you integrate cylinders into the box
stacking demo and stack them up you'll see that this error causes them
to jitter and pop way more than even the stacked boxes (which themselves
jitter because of another well understood reason). i spent a lot of time
on the current primitive-primitive collision code to prevent exactly
this sort of thing. in some cases, like the capped-cyl-to-box code,
i had to go through quite a few different schemes before i got it
(hopefully) right.

russ.

-- 
Russell Smith
http://www.q12.org

--Multipart_Thu__10_Oct_2002_22:43:29_-0400_0839c960
Content-Type: application/octet-stream;
 name="foo4.jpg"
Content-Disposition: attachment;
 filename="foo4.jpg"
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQAAAQABAAD//gDtQ1JFQVRPUjogWFYgVmVyc2lvbiAzLjEwYSAgUmV2OiAx
Mi8yOS85NApDUkVBVE9SOiBYViBWZXJzaW9uIDMuMTBhICBSZXY6IDEyLzI5Lzk0CkNSRUFUT1I6
IFhWIFZlcnNpb24gMy4xMGEgIFJldjogMTIvMjkvOTQKQ1JFQVRPUjogWFYgVmVyc2lvbiAzLjEw
YSAgUmV2OiAxMi8yOS85NAoKQ1JFQVRPUjogWFYgVmVyc2lvbiAzLjEwYSAgUmV2OiAxMi8yOS85
NCAgUXVhbGl0eSA9IDc1LCBTbW9vdGhpbmcgPSAwCv/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsM
GRITDxQdGh8eHRocHCAkLicgIiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0N
GDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/A
ABEIAIEBNgMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAAC
AQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZ
GiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOU
lZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T1
9vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAAB
AncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Sl
pqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEA
AhEDEQA/APZr+51GO8dbc4jGMcD0FV1vNUzh2ZffYpH8qNT1RrXUZY/4RjHPsKptrQYcrkezYr0I
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

--Multipart_Thu__10_Oct_2002_22:43:29_-0400_0839c960--