[ODE] Cylinder class stable?
Olivier Michel
Olivier.Michel at cyberbotics.com
Thu Jun 26 05:10:01 2003
slipch wrote:
>Hello Olivier,
>
>Wednesday, June 25, 2003, 9:55:56 AM, you wrote:
>
>OM> I am also using Cylinders in my app and I noticed a couple of problems:
>
>OM> (1) No collision between Cylinders and Caped Cylinder (CCylinder)
>
>OM> (2) Some minor bugs: for example when two cylinders have parallel axis
>OM> the collision detection between these two cylinders is not correct (the
>OM> error is however small). It seems to me that the CCylinder had the same
>OM> problem which has been very recently fixed by Russ. Maybe we could take
>OM> inspiration from the new CCylinder collision code to fix the Cylinder code ?
>
>I do not use CCylinder
>So, I am not sure that I understand what bug do you mean.
>
Hi Konstantin,
I refer to the bug fixed by Russ on/ May 17 2003/ in collision_std.cpp
as mentioned in the cvs history of this file:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/opende/ode/ode/src/collision_std.cpp
Revision *1.7*
<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/opende/ode/ode/src/collision_std.cpp?rev=1.7>
/ *(view)*
<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/opende/ode/ode/src/collision_std.cpp?rev=1.7&content-type=text/vnd.viewcvs-markup>
- annotate
<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/opende/ode/ode/src/collision_std.cpp?annotate=1.7>
- [select for diffs]
<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/opende/ode/ode/src/collision_std.cpp?r1=1.7>
, /Sat May 17 23:58:32 2003 UTC/ (5 weeks, 4 days ago) by /russ_smith/
Branch: *MAIN*
<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/opende/ode/ode/src/collision_std.cpp?only_with_tag=MAIN>
CVS Tags: *HEAD*
<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/opende/ode/ode/src/collision_std.cpp?only_with_tag=HEAD>
Changes since *1.6: +75 -157 lines*
Diff to previous 1.6
<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/opende/ode/ode/src/collision_std.cpp.diff?r1=1.6&r2=1.7>
improved the capped cylinder to capped cylinder code - it is now shorter
and faster, and it does not have a bug that the old code had where
cap-to-cap contact points would not be detected if the cylinder axes
were parallel.
I am not sure however if this has any relationship with the Cylinder
Cylinder collision problems. I could observe it when both cylinders have
the same vertical axis. I can describe the problem as follow:
When two cylinders are set on a floor, lying on one of their flat end
like this (warning: ASCII art coming up):
__ _
| | | |
|1 | -> |2|
_____|__|____|_|____
If cylinder 1 moves towards cylinder 2, the collision is not detected
when it should. The two cylinders have to interpenetrate each other more
deeply than necessary before the collision is detected, like if the
radius of the cylinders were a bit too small when computing collision
detection...
Anyone else experienced a similar problem ?
-Olivier