Resetting SITL for evolutionary algorithms

Hello guys!
I am doing an academic project where I will create a simple controller for 2 drones and evolve it using evolutionary algorithms (I will probably train a simple decision tree). To be more precise, the controllers objective should be the search and rescue (landing close) of a person.

To do this, I am using gazebo, ROS (with a catkin_ws) and SITL. In order train the controller I will need to run several generations, and obviously, that should be an automatic process. I have already managed to reset gazebo world and simulation using:
ros::service::call("/gazebo/reset_world", …);
ros::service::call("/gazebo/reset_simulation", …);

However, after resetting the world and simulation, I will also need to reset SITL and I haven’t figured it out yet.

Do you guys have any suggestion on how to do this in an automatic way? Any suggestion would be very appretiated.

Thank you very much

I have nothing to say about the actual question, but just tuning in with a dream to use a CMA-ES onboard to fine-tune PIDs in-flight.

1 Like

Our experience and tests indicate that there’s only one proper way to tune the PIDs :
Full blown system identification followed by proper requirements-based pid design optimization.

But if you guys find something better, I’m all ears.


reboot : reboot autopilot