[ODE] Collision Detection

Nate W coding at natew.com
Thu Feb 21 19:15:02 2002


> > 1. I want to use a free dynamics engine for simulating a biped humanoid
> > robot in a real environment such as an office or a room, for
> > robotics motion planning purposes. Which engine do you recommend? I have 3
> > choices in mind: ODE, DynaMechs, and Brian Mirtich's.

I prefer ODE because it doesn't require a hierarchical structure.  DM has
support for closed chains, but far as I can tell you have to build a
hierarchy and then add special joint classes where the loops close.  I'm
sure it works fine, but I like the simplicity of ODE's API.  I think
Mirtich's library requires strictly hierarchical systems, but I could be
wrong about that.

> I think ODE will work fine for you, as long as you keep the stepsize fairly
> low (0.01 or less), otherwise you may have some stability problems.

I'm able to run humanoid-complexity critters in realtime, or close to it,
on my 1.4ghz Athlon w/ GeForce3.

> The biggest problem you will have, I suspect, is getting the humanoid to
> respond the way you want (ie setting the motors properly in all the joints).

Amen.  Designing structures is easy, but getting them to walk around is
much more, uh, "interesting" than I had anticipated.  There's lots of
interesting approaches to that control system problem though, so it's
fun stuff.

> > 2. I noticed in the ODE examples, specially in the boxes chain, that the
> > boxes collide into eachother without being detected. This is really a
> > drawback for ODE. I wanted to know whether this is a grave problem or not,
> > and also whether you are going to fix it in a near future or not.

I haven't had any trouble with undetected collisions or penetrations.  I
haven't looked at the sample apps in a while, but I suspect that what
you're seeing is a result of too large a step size, or possibly a
deliberate choice.  In my application, I ignore collisions between bodies
that share a common joint.  The alternative is to have bodies that sort of
float around each other, which looks a little weird IMO.  So I let 
shin-thigh collisions go undetected, for example.

-- 

Nate Waddoups
Redmond WA USA
http://www.natew.com