Vue globale du projet
En étant à la racine du dossier, je t'invite à exécuter ces deux commandes :
$ find src -type f | wc -l
678
$ find src -type f | xargs wc -l
186823 total
Il y a actuellement 678 fichiers source pour presque 200.000 lignes de code ; je te l'accorde c'est beaucoup.
Bien sûr, tous ces fichiers sont structurés et ce petit schéma peut te donner une idée des merveilles que tu peux trouver dans le dossier src/
:
Bien entendu, ce fichier est à mettre à jour en fonction des nouvelles fonctionnalités apportées, et si tu veux y participer il faut utiliser le logiciel dia.
sudo apt-get install dia
Comme tu peux t'en apercevoir, il y a trois parties principales :
commun
- Tu peux y retrouver plein d'outils qui facilitent la programmation (manipulation d'unités physiques, constantes, manipulation de la communication, ...). Ce dossier est hyper important, mais je te conseille dans un premier temps d'utiliser les outils pour travailler sur le reste avant de te plonger dans ces librairies (certaines notions sont un peu compliquées et tout ce code n'est pas forcément directement lié à la robotique).simulateur/
- Ce dossier regroupe l'ensemble des fichiers nécessaires pour mettre au point un simulateur graphique qui nous permet de tester la stratégie du robot avant de l'avoir en vrai, mécaniquement parlant. Si tu veux en savoir plus sur l'architecture du simulateur, elle est détaillée ici.robot/
- Il y a toute la stratégie, les interfaces de manipulation des actionneurs, ... C'est dans ce dossier que la majorité du code est écrit, et c'est bien sûr la partie la plus ancrée avec les autres pôles.
Présentation des abstraction informatiques autour du robot
En informatique, il y a de nombreuses couches d'abstraction qui séparent les cartes électroniques de l'IA du match. Je te propose un petit aperçu de ces couches, des explications supplémentaires et spécifiques à chaque couche te seront apportées en suivant.
CE TABLEAU DOIT ÊTRE MIS À JOUR
Couches d'abstraction | Explications brèves | Localisation | |||||
---|---|---|---|---|---|---|---|
Petrilab | Interface graphique pour créer les stratégies | src/robot/Principal/petri/ | |||||
IAPrincipale | IAWiiMote | IATests | IATestLidar | ... | Exécution de la stratégie / tests haut niveau | src/robot/Principal/IA/ | |
Stratégie | MecaManager | Couleur, repère, temps, tirette ; fonctions haut niveau | Strategie.h | MecaManager.h | |||
RobotPrincipal (public RobotCommun) | Assignation des cartes pour 2018 |
src/robot/Principal/librobot/Robot.h | |||||
RobotCommun (virtual) | Com', adversaire, déplacements, cartes | src/robot/Commun/Robot.h | |||||
Déplacement | Servos | Moteurs |
Évitement |
... | Interfaces bloquantes | src/robot/Commun/ | |
Cartes électroniques | Communication par trames | src/robot/Cartes/ |