Coupe de France 2021/2022/Session 3

Robot 1

Session 3 : Idées des systèmes qui pourraient être compatibles :

Afin de trouver un système qui pourrait nous aider à marquer plus de points pour la compétition nous nous sommes mis en groupe de 3, pour avoir plus d’idées.

La première idée était : construire un système qui ressemble à un chariot élévateur, l’idée semble intéressante vu qu’on doit récupérer les hexagones et de les inverser en fonction de la couleur

Deuxième idée : Un système qui empile les hexagones de façon de les mettre une après l’autre et de les pousser avec une pignon crémaillère, les hexagones seront empilés et bloqués à l’aide d’un clapet anti – retour.

Robot 2

Durant cette séance, les membres responsables du robot secondaire se sont concertés pour se mettre d'accord sur les fonctions, la stratégie, la forme, et les contraintes du robot.

La structure du robot sera une base carrée avec une certaine hauteur. Son cadre sera fabriqué avec des makerbeams . Le robot sera composé de 3 étages : premier étage où nous installerons tous les composants électroniques, deuxième étage pour les actionneurs. Le dernier étage (le dessus du robot), est réservé aux éléments de communication avec les autres systèmes(robot1, PC, ...) . Chaque étage sera séparé par un "plancher" , fait avec un matériau autre que le bois (Le bois est trop souple pour supporter le poids des composants, ce qui a causé un affaissement sur le robot de l'année dernière).

Le robot secondaire aura donc deux objectifs : échanger la statuette et le cube, lire les résistances des plaquettes à retourner puis les retourner si besoin.

Le comportement du robot sera piloté par une carte STM32 (pas de modèle spécifique pour l'instant). La motorisation du robot se fera avec des moteurs pas-à-pas pour assurer une meilleure précision (l'utilisation de moteurs DC a causé des problèmes au niveau de l'asservissement du robot de l'année dernière). Nous sommes conscients que les moteurs pas-à-pas ralentiront le robot mais nous avons estimé que la vitesse sera tout de même suffisante pour la compétition.

Pour les actionneurs, le robot aura deux pinces qui se situeront sur le côté. Une pince attrapera la statuette, l'autre le cube, puis le robot effectuera un demi-tour sur place pour effectuer l'échange. Sur une des deux pinces, un module de lecture de résistance sera installé. Les pinces devront être articulées pour renverser les plaquettes.

Le trajet sera, pour l'instant, pré-programmé ; Tout d'abord, le robot commence avec la statuette dans une pince. Au top départ, le robot ira jusqu'au cube pour l'attraper avec l'autre pince. Il effectuera un demi-tour sur place, déposera la statuette, puis ira à la vitrine pour y déposer le cube. Il s'occupera ensuite des plaquettes/résistances . Si l'équipe responsable de l'odométrie des robots avec le Lidar(ou autre) réussit à obtenir un système assez stable et efficace, nous l'implémenterons au robot 2 au lieu de pré-programmer son trajet.

Nous avons discuté avec l'équipe Vitrine sur la taille de la statuette ainsi que l'épaisseur du sol de la vitrine. Nous nous sommes assurés que les dimensions de la vitrine et de la statuettes soient compatibles avec les contraintes du robot 2. (## partie à élaborer avec les chiffres)

Nous avons discuté avec l'équipe Robot1 sur les dimensions de leur robot. Nous devons nous assurer que la dimension combinée des deux robots soit en règle. Ensuite, en sachant que la base de notre robot sera carrée, nous avons calculé la longueur d'un côté du carré. (##Chiffres, Calcul)

Après concertation avec les autres équipes, nous avons décidé de travailler sur SolidWorks pour les conceptions 3D.

Lors de la prochaine séance, nous installerons : SolidWorks pour la conception 3D, CubeIDE pour programmer la STM32. Nous essaierons ensuite de faire le choix des composants. Il faudra notamment se renseigner sur le pilotage des moteurs pas-à-pas avec une STM32.

Lidar

Durant cette séance nous avons commencé à travailler sur la technologie Lidar. Il s'agit d'un outil qui envoie un faisceau lumineux à 360° permettant d'estimer la distance
entre des objets se trouvant du Lidar et lui-même.

Dans le cadre de la mise en place de ce système sur nos robots afin qu'ils se repèrent en temps réel sur le terrain de jeu, nous nous sommes d'abord renseigner sur son fonctionnement et ce qu'il
permet de faire. Nous avons ainsi jugé qu'il n'était pas nécessaire de l'utiliser sur un repère 3D mais qu'un repère en 2 dimensions serait suffisant puisqu'il nous suffira de placer des bandes
réfléchissantes au même niveau sur les balises aux 4 coins du terrain.

 
Cartographie de la salle prise par le Lidar en 2D

Dans un second temps, nous avons téléchargé le software proposé par les constructeurs de notre Lidar afin d'avoir une première vision de ce qu'il était capable de faire. Après plusieurs réglages sur la carte 2D du software (échelle, vitesse de rotation, angle,...) nous avons pu obtenir des résultats très satisfaisant comme le montre la cartographie ci-contre.

Des limites sont aussi apparues, par exemple plus on s'éloigne du lidar et moins il est précis puisque les points sont plus espacés quand on est loin de l'émetteur (le lidar constituant le sommet d'un triangle et deux points proches, les deux autres sommets). Nous avons malgré tout estimé que le terrain n'excédant pas 3 mètres, cela ne devrait pas poser de problème. Le cas échéant nous devrons alors gérer la vitesse de rotation du lidar en fonction de ce qu'il fait (un repérage global entrainera un vitesse lente, alors qu'un repérage sur courte distance entrainera une vitesse plus élevée).

Enfin, nous avons fini la séance en recherchant quelques exemples de code utilisant le Lidar sur youtube ou encore github. Nous essaierons donc de les appliquer en créant notre propre code (sur python probablement) la semaine prochaine. Notre but dans un premier temps étant de pouvoir obtenir rapidement un programme permettant de reconstruire l'environnement autour du Lidar avec des points, de la même manière que le software.

Vitrine + Statuette

 
Pinout de la carte STM32 L432
 
Circuit électronique permettant de piloter un bandeau de LEDs

Nous avons déterminé les dimensions avec l'équipe du Robot 2. En effet, ce robot s'occupera de poser la statuette dans la vitrine et donc la hauteur du socle doit être minimale pour faciliter l'utilisation du bras. La vitrine se trouve à 7 cm du sol et la statuette sera posée à même le fond de la vitrine. Un laser sera posé afin de détecter la pose de la statuette, de cette manière pas besoin de mettre d'interrupteur sous le socle.

La vitrine sera équipée d'une petite STM32 L432 à laquelle sera reliée une photorésistance pour détecter le rayon du laser ainsi qu'un petit circuit qui permettra de contrôler un bandeau de LEDs. L'objectif est d'activer les LEDs (RGB) lorsque la statuette sera posée. Le tout sera alimenté sur batterie, dont le bandeau de LED qui tire plus de courant que la STM32 ne peut délivrer.

Nous avons donc réfléchi à la manière dont nous allons contrôler ces LEDs, la solution envisagée serait de connecter les canaux RGB à la batterie par le biais de transistors contrôlés par la STM32. Nous enverrons un signal PWM dans la base du transistor, ce qui laissera passer le courant par exemple une fois sur deux. De cette façon, nous pourrons contrôler la tension moyenne dans les canaux RGB et donc changer la couleur. Peut être que nous rajouterons un condensateur pour lisser la tension car les LEDs parfois n'aiment pas le PWM.

Nous avons téléchargé le logiciel Cube IDE pour coder sur la STM32 et allons ensuite démarrer la programmation de la carte.

Nous allons nous inspirer du montage réalisé dans cette vidéo YouTube à partir d'une carte Arduino Uno, mais facilement convertissable pour STM32:

Raspberry

Pendant cette séance nous avons repris le code de l'année dernière pour la détection de la bousole (Nord ou Sud). Nous avons commencé à l'adapter pour la détection des codes ArUco qui seront sur les carrés de fouilles et également au dessus de chaque robots.

Le raspberry sur chaque robot a pour but de :

  • envoyer des informations de debug au superviseur
  • envoyer les messages reçus depuis le STM32 au superviseur
  • executer les commandes choisis par le superviseur
  • communiquer avec le raspberry sur l'autre robot
  • effectuer des tâches pendant l'épreuve tels que la détection du code ArUco des hexagones

Superviseur

 
Superviseur en developpement

Nous souhaitons également utiliser un superviseur à distance depuis un ordinateur afin de faciliter le debug et le developpement des robots. Le superviseur sera connecté à chaque raspberry sur le terrain par wifi. Nous avons comme finalité de pouvoir créer à la souris un trajet complet sur le superviseur, pouvoir le tester en direct et pouvoir l'exporter en code que l'on peut directement enregistrer dans le projet.

Le superviseur a pour but de :

  • contrôler à distance les raspberry (et donc les robots) utilisés dans le projet.
  • afficher des informations de debug envoyées par les raspberry (cf photo)

Terrain de jeux

Pour nous organiser nous avons fait un tableur partagé avec la priorité de chaque pièce à fabriquer.

Nous avons commencé à faire les échantillons, pour cela nous avons cherché dans les stocks du bois de 15 mm d’épaisseur. Nous en avons trouvé et donc avons fait un calepinage.

Toutes les autres pièces font 22 mm d’épaisseur or nous n'avons pas cette épaisseur. Nous avons donc cherché des références à acheter.

 
débit d’un échantillon extrait du règlement de la coupe

Balise

Lors de cette séance, nous avons effectué une recherche de solutions pour les différentes technologies possibles pour faire fonctionner les balises.

Nous avons relevé 2 solutions :

- L'utilisation de signaux ultrasons, déjà étudiée les années précédentes;

- L'utilisation de signaux électromagnétiques, dont on a relevé plusieurs moyens de mesurer la distance : la mesure de la vitesse de propagation, et la mesure de la puissance transmise.

Dans le cas des signaux électromagnétiques, nous avons écarté la possibilité d'utiliser la vitesse de propagation, nous n'avons pas de matériel capable de mesurer sa vitesse.