L’approche matérielle
La dépose d’une balle se fait en la libérant dans un enclos d’un peu moins de 70mm de côté. Ainsi, même si le centrage sur le trou n’est pas parfait, la balle y tombera toujours, et il n’est pas obligatoire de s’arrêter complètement.
La libération des balles une par une se fait au moyen du portillon double décrit dans l’article sur la capture.
Afin de savoir si l’enclos de dépose est libre ou si la balle est entrée dans le trou, une barrière infra-rouge à base d’IS471 analogue à celle installée dans la turbine est placée en travers.
Pour affiner le positionnement, deux IS471 montés en réflexion, espacés de 3 cm et placés sous l’extrémité du tube de stockage fournissent au micro-contrôleur de pilotage les informations nécessaires pour pivoter le robot et l’amener en bonne position.
La photo ci-dessus montre l’ensemble du dispositif, vu de dessous :
– les deux détecteurs de centrage, sur la gauche, avec les IS471, les LEDs IR et leurs protentiomètres de réglage de puissance
– sur la droite, la barrière optique dont on voit la LED IR en haut et l’IS471 en bas.
A noter que chaque IS471 est doté de son condensateur de découplage afin de filtrer les parasites éventuels pouvant être générés sur l’alimentation par la modulation de la LED IR.
Les algorithmes de mouvement
La détection du cercle de couleur
Le robot utilise ses capteurs de couleur pour approcher d’un trou. Tous les cas de figure réels ont été étudiés et nous avons pu limiter le traitement à 3 seulement, en diminuant l’écartement des capteurs :
– le robot arrive bien droit sur le cercle de couleur
– le robot arrive décalé à gauche du trou
– le robot arrive décalé à droite du trou
Nous avions laissé une marge de 10 mm entre les deux analyses d’entrée sur le trou, pour déterminer si le robot était suffisament bien aligné.
Important : nous ne faisions pas de différence entre un décalage complet (le second capteur ne passe pas du tout sur la couleur) et un décalage limité (le second capteur rattrape la couleur après plus de 10 mm de marge). Seule difficulté, lorsqu’un des deux capteurs passaient sur le trou, mais nous avons pu régler facilement ce point (voir plus bas).
La correction du décalage
Si nous n’étions pas aligné avec le trou, il fallait corriger en tournant le robot. Contrainte importante, nous ne pouvions pas nous permettre des rotations trop importantes, surtout pour les premiers trous, très près du bord. Nous avons donc du ruser.
La première idée consistant à pivoter le robot jusqu’à avoir les deux détecteurs au bord du cercle de couleur n’était pas réalisable.
La solution est vite venue : comme ce n’était pas le robot (ie. l’axe des roues) qui devait être aligné sur le trou, mais juste l’enclos, il nous suffisait donc d’avancer sur le trou, d’aligner cet enclos sur le même arc de cercle que le trou (le centre étant le milieu de l’axe des roues) et de tourner suffisament pour que la balle libérée dans l’enclos passe au-dessus et tombe dans le trou.
Pour se faire, il fallait continuer à avancer au-dessus du cercle de couleur, et s’arrêter une dizaine de centimètres au-delà. Mais selon le décalage, la distance à parcourir n’était pas la même, et nous ne disposions comme information uniquement des détecteurs de couleur !! Qu’à cela ne tienne, nous les avons réutilisé en sortie du cercle de couleur pour calculer la distance parcourue (à partir de la durée pendant laquelle nous avions été au-dessus de notre couleur) et donc la distance restant à parcourir pour retrouver l’arc de cercle intersectant l’enclos et le trou.
Disque vs. anneau
Comme vous l’aurez vite remarqué en regardant le terrain, les disques de couleur sont en fait des anneaux, et le trou en plein milieu crée une discontinuité pour notre capteur : il était probable que l’un des deux capteurs passe au-dessus, nous faisant croire à une sortie de cercle (pas de détection du vert). Il a donc fallu ruser, et ajouter une marge de 50 mm, le temps de dépasser le trou et de réanalyser si nous sommes bien sorti ou si nous sommes toujours sur le trou de couleur.
Quelques secondes avant le point
A cette étape du mouvement, le robot est resté en ligne droite pour venir se placer une dizaine de centimètres après le cercle de couleur. Selon notre décalage gauche/droite, nous tournons (dans le même sens ce qui accentue notre décalage puisque c’est l’arrière qui doit être bien positionné) d’un angle fixe, correspondant au maximum toléré (n’oublions pas que nous craignons tout contact avec les bords).
Le détecteur de trou rentre en action : la balle étant déjà descendue dans l’enclos, on stoppe le robot dès que le trou est détecté. La balle peut alors descendre et marquer le point.
Dégagement et récupération de cap
Le robot est alors parfaitement aligné avec le trou. Il faut donc reculer pour aligner le centre de rotation du robot (centre de l’axe des roues) avec le trou (simple puisque la distance enclos/roues est fixe) et tourner d’un angle opposé. Pour celà, l’odométrie des moteurs nous indique le nombre de pas effectué jusqu’à la détection du trou (et pas la consigne qui allait au-delà).
Au final, le robot est centré sur le trou, et a retrouvé sa direction d’entrée.