La stratégie

Règles du jeu

Pour gagner un match, notre robot doit mettre plus de balles blanches dans les trous de sa couleur que le robot adverse. Un point est attribué par balle blanche dans les trous de sa couleur. Le robot peut aussi empêcher le robot adverse de marquer des points en mettant des balles noires dans les trous de sa couleur. Seule la première méthode a été envisagée.

À part ça, le robot peut aussi enlever les balles des trous. Soit des balles blanches peuvent être enlevés du trou adverse pour lui retirer des points, soit des balles noires peuvent être ôtées de nos trous pour laisser la place à des balles blanches. Mais nous n'avons pas implémenté de système de récupération des balles.

De plus, un système de totems est mis en place sur le plateau pour permettre aux deux robots de libérer les balles supplémentaires blanches et noires situées dans des réservoirs aux quatre coins du terrain de jeu. Ces totems peuvent être déclenchés à l'aide d'un contact électrique. Cette méthode a aussi été envisagée et implémentée.

Le départ

Les deux robots partent chacun d'un côté du terrain. Déjà, lors de la phase d'installation sur la table, nous sélectionnons la couleur qui nous est affectée à l'aide d'un interrupteur à deux positions (bleue ou rouge). Le départ est donné à l'aide d'un fil rattaché au robot que nous tirons pour annoncer le départ et donc faire démarrer le robot. Ensuite, le robot doit repérer les totems sur la table pour choisir de quel côté partir, afin d'éviter le côté encombré. En effet, il faut que le robot dépasse la ligne noire situé environ au tiers du terrain. Sans cela, nous sommes considérés comme forfait.

Le ramassage des balles

Ensuite, pour mettre des balles blanches dans les trous de notre couleur, le robot doit d'abord aller les chercher sur le terrain de jeu et les ramasser. Pour cela, la trajectoire est prévue pour que le robot passe à l'endroit où des balles blanches sont initialement placées, notamment sur la ligne médiane du plateau de jeu. Le robot doit alors ramasser les balles à l'aide d'un tapis roulant.

Le traitement des balles

Il était ensuite prévu de faire le tri des balles en utilisant un détecteur de couleur qui commande un aiguillage et dirige les balles noires vers la sortie. Ce détecteur fonctionnait « en laboratoire » mais n'a pas été installé sur le robot. Les balles blanches sont aiguillées vers un réservoir qui conduit à une trappe en bas du robot. Cette trappe s'ouvre alors et permet de laisser la balle tomber dans un trou quand le robot passe au dessus. Nous avons finalement opté pour une trajectoire aléatoire dans cette phase du jeu.

Une autre partie de la stratégie aurait pu être de s'appuyer sur le module de vision c'est-à-dire la webcam pour se diriger vers les trous. Ce module aurait pu communiquer les différentes distances et directions pour aller aux trous pour que le centre de décision envoie l'ordre à la commande moteur de s'y rendre. Cela n'a pas été effectué, la webcam n'a pas été utilisée puisque nous ne l'avions pas testé le code ayant été écrit trop tardivement. La vision avait aussi un rôle de correction de position.

Le déclenchement des totems, les obstacles

Le déclenchement des totems se fait par contact électrique entre deux bandes métalliques fixées sur un totem. Cela libère les balles dans l'aire de jeu, à l'opposé de la position du totem. Ceci n'a pas été fait lors des différents matchs bien qu'un bras ait été prévu à cet effet. Ce dernier était prévu pour s'ouvrir au moment où nous voulions commencer à actionner les totems. Il a finalement été replié pour que, même fermé, il puisse activer un totem en cas de choc frontal de notre robot contre un totem.

Le contournement des obstacles (robot adverse, totems et bordure du terrain) se fait par envoi des états des capteurs de chocs au centre de décision qui réagissaient en conséquence par une procédure de dégagement. Ceci a été implémenté pour le dernier match et était assez concluant.