[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