Hi everyone,
We have been trying to evolve a NN based brain for a pioneer using
pyro with the techniques Doug describes for using PyroFromPython
(http://emergent.brynmawr.edu/emergent/PyroFromPython) and have run
into an interesting issue. In particular, we find that the results of
simulations run using the technique using engine.pleaseRun() (as at
the top of the PyroFromPython page) differ from those in which
simulator.step() is called explicitly (as in section 1.1 Running
Faster on the PyroFromPython page).
In particular, when directly calling simulator.step() it appears that
every time step is exactly 100 ms long, while when running under
control of the engine (or from the pyrobot gui) there is some non-
determinism in the length of the time step. This means that with
simulator.step() the brain can rely on precise timing between control
opportunities that don't exist in the other modes or on a real robot.
Thus, when evaluating fitness using simulations that run the faster
modes the evolving brains exploit the reliability of the fixed length
time steps and as a result perform very poorly when run in with the
pyrobot gui (or on a real robot).
Has anyone else encountered this issue? Has anyone found a work
around other than running the simulations at real-time speed using
the engine or pyrobot interface?
One possibility that I can think of would be to add noise to the
amount of translation or rotation that actually occurs during one
time step of the simulation. Has anyone had any experience with
doing that?
Thanks for any insights.
Grant
_______________________________________________
Pyro-users mailing list
Pyro-users@pyrorobotics.org
http://emergent.brynmawr.edu/mailman/listinfo/pyro-users