Une IA pour la stratégie des robots

Lors de nos précédentes participations à la Coupe, nos robots étaient programmés pour réaliser une suite d’actions sans changements possibles. Cela posait quelques problèmes lorsqu’un autre robot se plaçait entre notre robot et l’actionneur. Une solution est de sélectionner les actions à réaliser en temps réel lors du match pour s’adapter aux changements lors du match.

Pour parvenir à cela, il faut dans un premier temps développer un environnement qui simule un match de la CDFR. Il faut dans un premier temps définir les limites du terrain et les murs. Ensuite il faut créer les éléments de jeu comme les palets et les robots. Chaque classe Match contient 4 objets de type Robots qui peuvent être contrôlés par l’utilisateur. Chaque robot contient 5 TOF qui donne sa distance à un mur.

Simulation d’un match avec 2 robots dont un transportant 3 palets.

Chaque robot peut déplacer des palets et donc marquer des points. Maintenant il ne reste plus qu’à laisser l’IA gérer tout ça !

Comme chaque IA reçoit un score à la fin de chaque match, il s’agit d’un problème bien adapté à un algorithme génétique. J’ai choisi l’algorithme NEAT (NeuroEvolution of Augmenting Topologies) car il permet une sauvegarde facile. Les neurones d’entrées sont à 0 ou 1 suivant le temps qui s’est écoulé depuis le début du match, la position du robot, le nombre de palets que le robot transporte, les distances TOFs ect.. . Le but de l’algorithme est de créer les poids qui relient les entrées aux sorties qui maximisent le score du match. Les sorties du réseau sont la prochaine action à effectuer.

Exemple d’un réseau de neurone qui relie les observations d’un robot à l’action qu’il souhaite effectuer.

Chaque réseau peut être sauvegardé dans un fichier texte pour être implémenté dans un microcontrôleur de notre robot.

Après 17 époques, les robots sont déjà à un score maximal de 62 points. La seconde courbe représente la moyenne des matchs.

Après environ 700 époques d’évolutions, les robots arrivent à se coordonner et à marquer 120 points sans bonus, expérience ou bonus de libération du Goldenium. Il reste maintenant à voir si ces stratégies fonctionnent en réalité! Résultat à la prochaine Coupe 😉

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *