[ODE] robotic simulation

Nate W coding at natew.com
Fri Oct 11 13:21:02 2002


On Sat, 12 Oct 2002, Max Lungarella wrote:

> "dynamechs" is a dynamics engine, mainly intended for robotics
> simulation (http://dynamechs.sourceforge.net/). recently i've given it
> a try, and although i appreciate very much it's speed, i have the
> impression, that it's rather hard to construct complex structures -
> like robots.

When I set out to write a robot simulator (see
http://www.natew.com/juice), I looked at both Dynamechs and ODE, and chose
ODE for the reason you describe above.  In retrospect, I think that
Dynamechs would probably only be slightly more difficult to work with.

Using ODE, you can created bodies and joints and connect them arbitrarily
and everything just works.  With Dynamechs, my understanding is that any
closed loops need to be handled as special cases.  In retrospect, I think
that would probably be almost trivial to deal with.  If you think of the
structure as a graph, where bodies are nodes and joints are edges, you
would just create the Dynamechs objects by traversing the graph, and when
you find a cycle in the graph (easily detectable), you create one of
Dynamechs' "secondary" joints.  

From an application-development point of view, ODE allows you to create
ODE's joints objects without worrying about closed loops; Dynamechs would
require you to examine the topology of the structure you're creating
before you create the joints objects.  

> is there anything that would prevent the use of ODE for the same
> purpose? i.e., robotic simulation?

How detailed do you want the simulation to be?  I was looking for a
high-level sort of simulation, treating motors and drivetrains as black
boxes and just looking at the overall structure of the robot and its
control system, and I'm very happy with ODE's performance in this case.

-- 

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