[ODE] Featherstone vs ODE for large-scale ALife project

drvdo@free.fr drvdo at free.fr
Thu Sep 4 03:53:01 2003


Hello,   
   
I am currently involved in a large project that involves a long-time   
simulation of a large number of articulated animats, living together and   
interacting in an open space.   
   
Obviously the most important aspect is stability. Second comes speed. Accuracy   
is quite a distant third.   
  
Since all animats are essentially tree-like articulated bodies, Featherstone   
methods seem highly attractive, but having already used ODE I am unsure   
whether the touted advantages of the Featherstone methods are really worth the   
effort.   
   
My options are the following:   
   
- Rewriting a physics simulator using the Featherstone algorithm (sounds a bit   
frightening)   
 
- Using ODE "as is" (I have been using it for smaller projects and it seems   
OK, but I have concerns about stability and speed with more animats involved)   
 
- Using another physics SDK (Darwin2K, maybe Dynamechs but I would have to add   
a lot of things)   
   
Note: In order to simplify things, we can go as far as allowing animats to be   
self-penetrating (two limbs belonging to the same animat can penetrate and "go   
through" each other, but two different animats cannot). This seems to make   
things much easier (and more stable) in ODE, most probably because it   
eliminates a lot of redundant constraints.   
   
My most important question is: Are Featherstone-based method adapted for this   
task ? Are they really more stable or faster, and is it worth the effort ? In   
particular, does the need to implement contacts (between animats, or between   
animats and the ground) imply "tricks and hacks" that reduce the   
attractiveness of Featherstone's algorithm ? (From what I understood, FSTN is   
essentially about articulated bodies only, and might not natively allow for   
inter-part contact or resting contact on the ground or on each other)   
   
*Any* comments greatly appreciated.   
   
Amicalement,   
Thomas Miconi   
=============