<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html style="direction: ltr;">
<head>
</head>
<body style="direction: ltr;" bgcolor="#ffffff" text="#000000">
<p style="margin-bottom: 0cm; margin-top: 0pt;">Hi all,</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">I ported physicsserver
changes from simspark to soccer3d. Then, I noticed that some of my
robots don't move at all, while others move for some time and then
stop! Finally I found the problem: setAutoDisableFlag(true) in
spark.rb. Because of a bug in the implementation, it didn't work before
and the flag was always false. This bug was solved in simspark, and
because of the auto disable flag, ode disabled my robots when they
didn't move for some time. I turned the flag off for now.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">A disabled body will
improve performance. If a disabled body is connected to an enabled body
using joints, it'll be enabled too. So, I think when a part of the
robot body is disabled, it'll be enabled by other parts, but when all
of it's body parts are disabled, it'll be never enabled again (except
if something collides with it, which in turns creates contact joints
and so, I think, it'll enable the body).<br>
</p>
<br>
I don't know if it can help improving performance, but we may try
enabling the auto disable flag and configuring it with suitable
parameter for its thresholds (ODE manual, part 6.5). Then when the
agent sends new rotation speeds we should enable the bodies connected
to the joint. While the robots move a lot, it may improve performance
(?!). What do you think?<br>
<br>
Thanks,<br>
Hedayat<br>
<br>
</body>
</html>
|