Outils d'utilisateurs

Outils du Site


explication_du_code_ia

Ceci est une ancienne révision du document !


Le code de l'IA

Vous l'avez surement remarqué, mais le code actuel n'est presque pas commenté, ce qui le rend extrêmement difficile à comprendre. Je vais tâcher de vous expliquer dans les grandes lignes la façon dont le code a été structuré à travers les différents fichiers. Je n'entrerai pas trop dans les détails pour 2 raisons : j'en suis incapable, et certaines parties seront amenées à être modifiée pour la coupe 2014.

Dossier "graph" :

Regroupe le code pour la construction du graph de recherche et la recherche de chemin pour le robot, en prenant en compte les parties de la table qui son inaccessible. N'ayant pas regardé cette partie du code, j'ignore comment ça fonctionne exactement (mais je ferais mon possible pour compléter les points noirs).

Dossier "load" :

Idem que le graph, code non touché.

Fichiers :

  • ia_base.py : Regroupe les méthodes de base d'une ia (setup des connections, setup de l'état interne, etc…), cette class implémente une ia basic qui ne fait rien à part demander les informations de l'hokyo et de l'asservissement puis de mettre à jour son état interne. La class doit être surchargée.Regroupe les méthodes de base de contrôle de l'IA, à savoir start/stop, la détection du jack, les boucles et quelques autres méthodes relatives aux actionneurs (la classe risque d'être éclatée pour en avoir une dédiée aux actionneurs).
  • ia_utcoupe.py : L'ia d'utcoupe, c'est la classe qui surcharge IaBase, elle implémente tooutes les spécificités de l'IA de cette année, elle pourrait être renommé en IAUtcoupe20XX pour avoir une trace d'année en année.
  • action.py : Super classe de actions.py. Cette classe regroupe l'ensemble des méthodes relatives à toutes les actions. A savoir principalement les calculs de chemins, de score et de priorité.
  • actions.py : Fichier qui regroupe toutes les classes d'actions. Cette architecture là sera amenée à évoluer.
  • gamestate.py : Classe représentant la connaissance de l'IA, toutes les infos récupérées et filtrées des différents drivers (hokuyo, asservissement, visio, …). La classe possède une méthode pour mettre à jour ses informations au fil du match.
  • robot.py : Classe représentant la connaissance de l'ia sur un robot. La classe fournit aussi quelques méthodes utilitaires sur les calculs de chemins.
  • smartasserv.py : Ne fonctionne pas actuellement, mais permet de gérer l'asserv d'une façon “intelligente”. C'est un module qu'il faudra absolument rendre fonctionnel pour la coupe 2014 afin de passer par celui-ci et non d'interroger directement l'asserv à partir de l'IA (ce qui est actuellement fait).

gateau.py, ia_test.py et verre.py ne sont plus utilisés (gateau et verre étaient des classes séparées pour els actions sur le gateau et avec les verres durant la coupe 2013).

Code en détail

explication_du_code_ia.1383494313.txt.gz · Dernière modification: 2013/11/03 16:58 par trecouvr