[ODE] Re: ODE digest, Vol 1 #167 - 4 msgs
Nate W
coding at natew.com
Mon May 13 01:18:02 2002
On Sun, 12 May 2002, David Jung wrote:
> >Hi I am new to the mailing list.
> >I plan to do something similar to what Karl Simms did some years ago.
> >(check out: http://genarts.com/karl/evolved-virtual-creatures.html ).
> >I am thinking to make all joints 100% non self intersecting though.
>
> You might want to be careful. I am using ODE and think that is it
> great, however, if I understand
> Russ' goal with ODE correctly, it emphasizes speed over accuracy.
> Consequently, it breaks many laws of physics - such a conservation of
> energy. For example, a freely rotating body in space, without any
> damping (e.g. air resistance), will continuously gain angular
> momentum.
I've had a bit of trouble with this issue myself, even just designing
behaviors manually. However, I think you could get around it by 'killing
off' any behaviors that exploited this. Just remove them from the gene
pool before they get to 'reproduce.'
Then the question is how to detect it programmatically. If you're working
on walking creatures, you could watch for extended time periods (more than
a second?) during which the object doesn't touch the ground. From what
I've seen so far, such flying/spinning/cheating objects tend to touch down
pretty quickly, but when they touch down, spinning like crazy, they bounce
halfway into the stratosphere.
Another option would be to check the angular velocity of a rigid body in
the creature. When I've seen this sort of thing happen, it's accelerated
very quickly. If you kill off any creature that rotates faster than, say,
5 revolutions per second at any point during it's lifetime, you should be
able to keep that trait from becoming common.
Both of those have drawbacks, though. If you use the 'air time' detection
method, you'll unfairly penalize creatures that try to leap from place to
place. If you use the 'spin' detection method, you might unfairly
penalize creatures that try to roll from place to place. There's still a
of room for interesting behavior within those constraints though, so I
wouldn't lose too much sleep over it. If you find your creatures evolving
right up to those limits, then it might be time to adjust the limits, or
find different ways to guard against this 'cheat.' But, if you succeed in
creating creatures that actually do evolve up to those limits, you've
already had a huge success!
But anyhow, other than this I'd be surprised if you ran into trouble using
ODE's simulation to test your virtual creatures. Do keep us posted on
your progress, it sounds like cool stuff. :-)
--
Nate Waddoups
Redmond WA USA
http://www.natew.com