Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
explication_du_code_ia [2013/11/03 16:58] trecouvr [Fichiers :] |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== 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 ===== | ||
- | |||
- | * [[ IA : main ]] | ||
- | * [[ IA : ia_base ]] | ||
- | * [[ IA : robot ]] | ||
- | * [[ IA : gamestate ]] | ||
- | * [[ IA : action ]] | ||
- | * [[ IA : actions ]] |