Table des matières

UTCoupe : fondements et explication de l'IA

Objectif du document : expliquer la théorie, la pratique et le code de l'IA développée à UTCoupe.

La théorie

L'IA : à quoi ça sert ?

La principale utilité de notre IA est d'être le “cerveau” du robot : c'est elle qui donne les ordres. Elle récupère des informations des différents organes du robot (asserv, hokyo, capteurs divers) et prend les décisions qui s'imposent au cours du match.

Son rôle est donc de faire l'ensemble de la gestion des données récupérées par l'ensemble des organes du robot et de prendre des décisions au cours du match.

Quelle est son architecture ?

Globalement et en très simplifié, son architecture actuelle est orientée action : l'IA décide d'accomplir un objectif en jeu (par exemple renverser un feu), elle dit à l'asservissement d'aller à la position et une fois arrivée, l'action se déclenche (par exemple la sortie d'un bras). Une fois que s'est fait, elle calcule un nouvel objectif et demande à l'asservissement de s'y rendre.

En pratique, l'IA possède plusieurs modules (comprendre classes en POO) :

La pratique

En pratique, l'IA est relativement complexe, car elle doit gérer de nombreux paramètres et tâcher de faire concorder la situation réelle du robot, son évolution dans son environnement, mais aussi son état “virtuel”. Concilier ces divers points et gérer l'ensemble du robot et de son environnement est particulièrement difficile car nombre de variables et d'inconnues interviennent.

Néanmoins, diviser l'ensemble en plusieurs modules (comme ce qui se fait en programmation orientée objet) permet de simplifier grandement la conception et la réalisation de l'IA. C'est la solution qui a été retenue.

Fonctionnement des actions et de l'architecture orientée objectif

Outre toute la gestion, le principal rôle de l'IA est de commander le robot pour accomplir les actions en jeu (et donc rapporter des points). Un schéma général est respecté pour accomplir les actions :

Autre :