[ODE] Robot simulation with ODE

Pierre Terdiman p.terdiman at wanadoo.fr
Wed Feb 20 20:49:02 2002


Classic question actually. Short answer : there's no answer....

I've witnessed countless attempts to do that, none of them really
convincing. Most of them ugly hacks. Ugly *non working* hacks, I mean :) The
official "best" implementation for non-convex/non-convex rigid body
simulation is supposed to be found in Maya, but it's been implemented by
Baraff himself, they don't have realtime constraints, and if the simulation
fails (and sometimes it does) you can just tweak the parameters a bit and
restart it - which is quite dubious in a realtime app.

David Eberle (not David Eberly, beware) recently tried to compute the
penetration depth between two non-convex meshes, and described an
interesting method in his thesis. Not realtime, not always working. Produced
some cool anims anyway.

The next best thing to do is to decompose the non-convex meshes into a
hierarchy of convex ones, do standard BV-tree collision with BV = convex
hull, then use a convex method to derive the correct contact manifold /
penetration depth. That's what SWIFT++ does. Never used it, but it looks
very sexy.

Else you can build a tons of creative hacks doing more-or-less the job,
usually "less". I tried some of them in Opcode but nothing was really worth
releasing. BTW if you need some special stuff for interfacing it with ODE,
I'm on the list so feel free to yell. I still have to release Opcode 1.2 -
no time so far - with faster box-queries and some more BV queries (say LSS).

While I'm at it, I see the original n^2 pruning in ODE has been replaced
with a hash-based scheme, in a Mirtich-fashion. I've never tested it, I've
even never found the time to really play with ODE, but just in case you can
also try something like that : www.codercorner.com/BoxPruning.zip

Erwin, it also answers one of your oooold question about the old sweep&prune
in ZCollide. That's not the same code, but that's the same idea, maybe it
can help (?). Just in case, really :)

Cheers,

Pierre Terdiman      *   Home: p.terdiman@wanadoo.fr
Coder in the dark    *   Zappy's Lair:  www.codercorner.com


----- Original Message -----
From: Ken M <wgold@flyingplastic.com>
To: <ode@q12.org>
Sent: Wednesday, February 20, 2002 10:54 PM
Subject: Re: [ODE] Robot simulation with ODE


> I hadn't read the code yet, just noticed it's existence, so I didn't see
> that it only does poly/box... I can't imagine it would be terribly
> difficult, considering, to get ODE to pass-thru poly:poly calls to Opcode
> for realization... I'll bet computing the penetration depth is the sticky
> issue keeping full realization of the dream...
>
> Anyone else know how to compute the penetration depth of 2 complex
> polyhedra? All submissions are happily accepted! lol
>
>  :)
>
> Ken
>
> ----- Original Message -----
> From: "Daniel Duhprey" <duhprey@yahoo.com>
> To: <ode@q12.org>
> Sent: Wednesday, February 20, 2002 4:54 PM
> Subject: Re: [ODE] Robot simulation with ODE
>
>
> > On Wed, 20 Feb 2002, Ken M wrote:
> >
> > -->If you check out the ODE CVS tree, you'll find a nice integration
> between
> > -->ODE and Opcode 1.1 from Erwin Van Dries thus I would suggest using
> Opcode
> > -->1.1
> > -->
> > -->Viewing the polyhedra would be your only implementation need at that
> point.
> >
> > That version only contains Polyhedra against box and sphere collisions,
> > although I think there were plans for poly/poly collisions.  Is there
any
> > update on that?   (Not to say that poly/box and poly/sphere isn't a
really
> > nice thing to have already)
> >
> > Nathan.
> >
> > --
> > ------------
> > Dan D. of TOSOS & Nathan Fabian of the Hill People
> > email: duhprey@tosos.com www: http://paradox.tosos.com/~duhprey icq:
> 129354442
> > The European finds intercourse with Americans easy and agreeable.
> Einstein
> > Not a shred of evidence exists in favor of the idea that life is
serious.
> Gill
> >
> > _______________________________________________
> > ODE mailing list
> > ODE@q12.org
> > http://q12.org/mailman/listinfo/ode
>
> _______________________________________________
> ODE mailing list
> ODE@q12.org
> http://q12.org/mailman/listinfo/ode