Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I am also using an evolution of robots in Gazebo, There are some points that you have to take into account:

  1. you can run gazebo in headless mode, meaning without visualization, this will reduce computing time.
  2. For the simulation of robots (to evaluate them) you can:

    2.1. for each generation run on simulation (one world) that will contain the population, each robot in a unique position

    2.2. evaluate each robot independently in parallel, for example if you have an 8 core cpu you can run 8 at once. (not sure but this will probably reduce computing time and this depending on complexity of morphology)

  3. Reset the simulation do not work, I mean that if we restart the initial conditions and position of robot it will not give the same behavior (robot with the same ANN), so this will not help for optimization. So I suggest to quit and restart the simulation at each generation

  4. Communication between plugins is with publishers and subscribers. But there is some problem here that will affect evolution. When you publish something in time x, the listener will not receive the message instantly. it will receive it in time x or x+1 or x+2 or ... So, sometimes, when you want to use the message sent, and at this time the message is not arrived yet you will read the previous message.

I hope that you get what I mean, and if you have any other question do not hesitate

ps:I encountered those issues in Gazebo version 4.