- A Supervisor
(PRO version only) allows you to query and modify programmatically the Webots scene tree and can start convenient tools (simulation reset, create a movie / animation, take a screenshot, etc.).
- N licenses are required to run N Webots instances at the same time.
- A GA can be applied at several levels depending on what you would like to solve.
Depending on you requirements, an EDU version may be sufficient.
For example, if the GA fitness function is responsible in creating a .wbt file (using a template?), running Webots on this file, and killing Webots when results are returned from a controller.
A PRO version may help a lot. Indeed, the GA could be implemented at the Supervisor
level, allowing to not restart Webots at each fitness function evaluation. Indeed, the offset time to restart Webots (few seconds) is often significative in comparison to the time to measure the fitness function. Moreover, in the PRO version, the FAST mode allows to run the simulation as quickly as possible (without renderings).
Several Webots licenses may also help, to be able to run several Webots instances. But an alternative is to run several fitness functions tests into a single Webots instance (at different locations), and to enable the Webots threads computing. I don't like very much this alternative, because it's much more difficult to setup.
Personally, I think the best solution is to have a single PRO version, and to implement the GA at the Supervisor
level (easy to setup, and very efficient).
Personally again, I find that Python deap is a very good GA package to do this, and it should be easy to include it into a Webots Python Supervisor
. There exits a huge number of GA libraries, and most of them can be interfaced easily with Webots.