Le robot de la Coupe 2019

Chaque équipe peut présenter deux robots : un robot principal et un robot secondaire, qui évoluent ensemble sur le terrain de jeu. Nous avions prévu de présenter un robot secondaire mais nous avons préféré nous concentrer sur notre robot principal par manque de temps et car le robot secondaire n’avait pas le niveau de fiabilité attendu sur ses déplacements et son évitement.

De manière générale, les robots de la Coupe de France doivent respecter un règlement (dimensions, poids) et accomplir des actions de jeu. Une partie importante est également l’évitement : comme les robots n’agissent pas seuls sur le terrain, ils doivent être en mesure de détecter les autres robots et les éviter (le contact physique est interdit !).

Non, ce n’est pas ça (en principe)

Code des robots

Comme l’année dernière, nous utilisons un linux embarqué – si nous avons changé de processeur, passant d’une Beaglebone Black à une Raspberry Pi 3, le code n’en a pas été impacté, les deux cartes utilisant la même architecture ARM. Ce choix a été motivé par plusieurs facteurs: les performances bien supérieures de la Raspberry Pi 3, le prix (la Raspberry est environ deux fois moins chère que la Beaglebone), et la facilité d’utilisation de la Raspberry, en particulier en utilisant les ports USB. L’électronique de cette année a en effet été conçue autour des ports USB de la Raspberry: outre un câblage beaucoup plus simple et robuste que les picots classiques, cela permet la mise en place d’une architecture modulaire, où chaque partie peut être testée séparément puis assemblée. Ainsi, nous avons beaucoup profité de la possibilité de tester des composants du robot depuis un PC directement – il suffit de recompiler notre code, sans le modifier, pour pouvoir faire tourner les moteurs depuis un ordinateur ! Les quatre ports USB de la Raspberry étaient donc utilisés pour communiquer avec les éléments du robot: le LIDAR (RPLIDAR-A2) pour la détection, un contrôleur de servomoteurs (un MiniMaestro de Pololu), l’interface utilisateur (basée sur un écran LCD couplé à un microcontrôleur fabriqué par Adafruit, auquel nous avons rajouté des boutons et des leds sur un circuit imprimé maison) et une Arduino esclave pour la lecture des codeurs, et d’éventuels capteurs analogiques (cette année, un potentiomètre pour donner la position des ventouses de notre robot). Finalement, seuls les moteurs pas à pas utilisés pour la propulsion (la carte X-NUCLEO-IHM02A1 d’ST, basée sur un L6470) et le contrôle de la pompe à vide étaient directement branchés sur la Raspberry Pi, à travers l’interface SPI.

L’ensemble du code de notre robot (code C++ pour la Raspberry Pi mais aussi code de l’Arduino esclave pour la lecture efficace des codeurs, et code de l’expérience), ainsi que les schémas de câblage et les plans des circuits imprimés réalisés, sont disponibles sur notre Git:

https://github.com/matthieuvigne/MiAM_eurobot2019

Gertrude, le robot de MiAM Robotique

Gertrude, le robot de MiAM Robotique en 2019, prêt à jouer son 4e match

Cette année, notre robot Gertrude se compose des éléments suivants :

  • Un système constitué de 3 ventouses montées sur un rail et reliées à une pompe permettant de récupérer des atomes par succion par les ventouses. Au lieu d’électrovannes classiques, nous avons choisi d’utiliser un pincement de tuyaux souples avec des servos et des pièces imprimées en 3D.

  • Deux bras articulés permettant de pousser l’atome de bluenium dans l’accélérateur de particules pour libérer l’atome de goldium.
  • Un système de déplacement constitué de deux moteurs pas à pas et deux billes folles, avec 2 codeurs incrémentaux pour avoir un retour de position. Ce système permet de se déplacer (avec les moteurs) en ayant un retour précis de la position courante (avec les codeurs incrémentaux). Un asservissement est réalisé de manière logicielle afin de compenser les erreurs mesurées et faire un suivi de trajectoire précis. Ce système, tout nouveau cette année, nous permet d’avoir un déplacement très précis et une stratégie modulaire, et fait notre fierté par son succès 🙂
  • L’évitement est réalisé par l’intermédiaire d’un lidar (RPLidar A2M8) monté sur le mât du robot. Il réalise des mesures laser de distance sur 360 degrés (moins 4 angles morts liés aux « poteaux » de part et d’autre du lidar pour la plate-forme supérieure). Nous faisons l’analyse du nuages de points que fournit ce système pour les agréger en objets. Un algorithme logiciel prend alors le relais pour déterminer si un obstacle (robot adverse par exemple) se situe à une position qui interfère avec le déplacement de notre robot, qui adapte alors sa vitesse à la situation, voire prend la décision de changer sa stratégie. Nous avons développé la grande partie de cette partie du logiciel dans le mois précédent, et pendant la coupe, et ses performances nous rendent très heureux !

A propos de l’équipe MiAM Robotique

Gertrude en cours de montage en Février 2019