RoboJackets / robocup-software

Georgia Tech RoboJackets Software for the RoboCup Small Size League
Apache License 2.0
183 stars 187 forks source link

Use genetic algorithms for tuning motion control parameters #291

Closed justbuchanan closed 7 years ago

justbuchanan commented 9 years ago

This would go well as a tuning 'play'. It can start with an initial set of values for the parameters and run a robot along a test trajectory. As the robot runs, we'll integrate the robot's tracking error over time, which will be the 'fitness function' for the GA.

scikit-learn would probably be a good candidate for the genetic algorithm library.

A couple things that need to happen before we can do this:

justbuchanan commented 9 years ago

This paper describes a similar thing with a PID controller.

jgkamat commented 7 years ago

I want this to be a high priority item for Japan, as this is needed for per robot tuning (it would be a pain to do this by hand), and this will probably give us the biggest improvement to our robots at this point.

I think that hill climbing might be a simpler (and maybe better?) way to implement this, at least for PID, but I'm not sure (maybe we could use simulated annealing). Ideally this would be implemented mostly in common, and then we can use the same tuning code in firmawre and software (we can have robots auto-tune themselves without soccer sending any extra data). If we want to have soccer set firmware PID constants we would need to add some stuff to the radio (#304 above), but we could put all the PID tuning code in soccer, allowing it to be much bigger.