[ODE] Still Spheres Vs Trimesh at Triangle Edges

Geoff Carlton gcarlton at iinet.net.au
Fri Mar 31 18:14:11 MST 2006


Hi,
I was going to reply with a note about this problem in regard to 1.0, so 
I'm glad the issue came up.  I found this is a terrible problem with ODE 
and trimeshes, and in fact been a little puzzled why nobody else has 
ever seemed to complain about it.  I haven't had time to make up a 
simple test showing the problem, but I'm sure a flat trimesh and rolling 
sphere would clearly show what the poster was talking about.  I've found 
the contact normals vary from the correct 90 degrees to clearly wrong 
glancing angles that are almost horizontal.

In my case, I changed the trimesh collisions to always return the 
triangle normal, rather than the "near to edge" direction.  In the cases 
where the object should be pushed "out" at a non-normal direction, there 
is a triangle neighbour which will do exactly that.  I didn't try 
commenting out the edge collisions as suggested below, but that seems an 
even better way to do it. 

Ideally it needs a post-process of merging contacts, which I found 
helped correctness and stability (there is nothing like conflicting 
contacts to spin an object to infinity).  In my case it was done after 
all object-object collision routines, to deal with the case of merging 
contacts from different objects, such as from two trimeshes sitting next 
to each other.  The merging in my case was to take all contacts at the 
same position and lerp the normals.  As such, a sphere that hits a 
trimesh with a box-edge feature would resolve from two contacts at 90 
degrees into one contact at 45 degrees.

Geoff


kurimail wrote:
> Thanks for your answer!.
>
> The problem is that spheres rolling over a trimesh jumps on every triangle
> edge. I have a 4-hinged spheres car, and when a sphere rolls over every
> triangle edge, a little jump occurs.
>
> As i sad, decreasing cfm solved a little the problem, but not all.
>
>
>   
>> If you really think your problem would be solved if there were no
>> sphere-edge collisions (I doubt it because then your spheres should sink
>> on
>> trimesh convex edges), you can eighter implement the preprocessed mesh for
>> sphere collisions and submit it to svn (the more difficult way ;) or take
>> much easier and faster way: have a look on GetContactData in
>> collision_trimesh_sphere.cpp and comment out all edge collisions (all
>> branches except region 0 - interior).
>>
>> Anyway, as I say I doubt this would be a good solution. What exactly is
>> the
>> problem you are experiencing?
>>
>>
>>     
>>> -----Original Message-----
>>> From: ode-bounces at q12.org [mailto:ode-bounces at q12.org]On Behalf
>>> Of kurimail
>>> Sent: Friday, March 31, 2006 4:01 PM
>>> To: ode at q12.org
>>> Subject: [ODE] Still Spheres Vs Trimesh at Triangle Edges
>>>
>>>
>>> Hi again. I am still having troubles with spheres colliding at triangle
>>> edges. I don't know if the problem is the edge or the change from one
>>> triangle to another.
>>>
>>> I looked at the preproccesing trimesh, but it is only for ccylinders.
>>>
>>> I tried changing erp and cfm values. This helped, but not too much.
>>>
>>> I tried different scales, sizes, masses, mass shapes, etc... and nothing
>>> helped too much.
>>>
>>> I can accept any trick to avoid such jumps at triangle edge.
>>>
>>> Any help, please?
>>>
>>> Thanks in advance!
>>> _______________________________________________
>>> ODE mailing list
>>> ODE at q12.org
>>> http://q12.org/mailman/listinfo/ode
>>>       
>>     
>
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
>
>
>   


More information about the ODE mailing list