[ODE] Still Spheres Vs Trimesh at Triangle Edges

kurimail kurimail at arrakis.es
Sat Apr 1 03:09:23 MST 2006


Mmm, the problem i am having is not about the normals, it looks like a
problem with depth. Although the normal is always (almost) vertical for
the wheels, the depth is higher on the triangle edges, so the wheel jumps.

I am going to try to comment the edge detection as suggested...


> 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