Message thread on Webots General

Running multiple tests in parallelby Omar Samir (4) 2015-04-28 14:47:54
I'm trying to evaluate different robotics simulators to decide which to use in my team's next experiment.
My environment is: Ubuntu 14.04 64-bits, Trial licence (PRO), Version 8.0.5.

I use genetic algorithms in order to build a controller. My question is: is it possible to run multiple tests in parallel, from one instance of Webots?


Re: Running multiple tests in parallelby Olivier Michel (Webots PRO - 861) 2015-04-28 14:57:59

It is indeed possible to run multiple tests in parallel from one instance of Webots by simply creating multiple floors in the same simulation world on which you can set a robot running a different controller. Each floor being mechanically independent from each other, Webots will be able to run this simulation on multiple threads, thus providing a good performance on a multi-core CPU. A supervisor process can be used to send new parameters to test to each robot to perform a genetic evolution step. It can also evaluate the resulting behaviors of the robot to assign the fitness value and compute the next generation of robot controller parameters.

However, most of the users of Webots performing genetic evolution prefer to launch several instances of Webots in parallel. This is often more convenient to setup. In order to be able to do this, you will have to download the license on your local computer (from the Tools menu, License manager).

Please let me know if I can further help you.

Best regards,

Re: Running multiple tests in parallelby Omar Samir (4) 2015-04-28 15:48:34
Thank you very much Olivier for your detailed reply and help. Much appreciated.
Re: Running multiple tests in parallelby hotgarlic wang (2) 2017-03-14 00:36:15
So, that is to say I should buy the license for PRO version. Only the version support the supervisor program. Am I get the key point?
I have found an independent package of python which is superior to GA such as the inner moduel of matlab. The package is Neat python. I want to know whether the free webots can support this application.
Re: Running multiple tests in parallelby Fabien Rohrer (Webots PRO - 1173) 2017-03-14 09:24:13

Some facts:

- 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.

Fabien Rohrer
You need to log in to be able to reply, subscribe or unsubscribe to this thread