Ici nous vous informerons des dernières nouvelles concernant l'avancement de nos projets et autres !
Bonne lecture !
6 juin 2023
En bref, ce que nous retenons de la coupe, ce sont 4 jours de défis, à la fois contre nous-même et contre le temps. Le composant qu’on pensait fiable, testé et re-testé à la coupe qui nous surprend... Nous avons adoré l’ambiance la nuit pour travailler avec la calme musique d’Eirbot. Le Restobot qui ne paye pas de mine mais qui est vraiment bon. Enfin, nous sommes fiers et heureux de l’accueil qu’a reçu notre panier.
Nous sommes partis de la maison avec un robot homologable : détection de l’adversaire fonctionnelle, estimation du score dynamique, envoi des balles dans le panier avec un taux de réussite de l’ordre de 95%, récolte des cerises complètement validé, déplacements maîtrisés. Bref ça sentait quand même bon. Notre plan, à la coupe était de changer la stratégie pour charger 10 cerises dans le robot dès le départ et les lancer dans le panier. À l’origine, ces 10 cerises étaient destinées à notre second robot (qui n’a jamais vu le jour). Ensuite, nous planifions d’aller récupérer les cerises sur les différents supports puis enfin de rajouter de quoi pousser les gâteaux avec comme objectif à demi-avoué de faire mieux que Les Karibous dans leur match nominal.
En fait, nous connaissions une faiblesse à notre robot : la balise de détection avait des faux positifs, uniquement dans certains environnements... Nous croisions les doigts pour que le soucis ne survienne pas à la coupe (! LOL ! - comme disent les jeunes).
Les arbitres nous homologuent sans soucis. Nous, par contre, nous observons deux défauts :
Homologation (480p - 9 Mo | 720p - 16 Mo).
Autant nous prenons le problème d’évitement au sérieux, autant la communication I2C ne nous inquiète pas plus que cela. Ça nous ait déjà arrivé, mais vraiment de manière exceptionnelle. Est-ce qu’en l’ignorons, nous commençons une incantation pour appeler Murphy ? Allez savoir...
Nous nous concentrons sur le chargement des cerises au début du match (qui demande un petit bout de code) et la finitions de fonctions de la stratégie que nous n’utilisons pas. Nous commençons aussi nos recherches sur les VL53L1X pour obtenir les retours des autres équipes. C’est là que nous tombons sur la démonstration impressionnant de PM-Robotix qui, avec les même capteurs, n’a pas de problème de détections. En plus, ils sont capables de différentier un robot d’un autre obstacle...
Nous discutons aussi avec Projet&Tech Legacy. C’est d’eux que viendra notre solution (celle de PM-Robotix étant un chouïa complexe).
Sommes-nous confiant ? Oui, nous sommes confiants !
La suite : Coupe de France 2023 - Match 1
9 mai 2023
À une semaine de la coupe de France de Robotique, voici notre Poster !
Ça a été l’occasion de nommer notre robot : HEXA, pour Holonome Expérience Xylo Asservi
(Notons que Xylo, du grec, signifie bois).
La compétition approche et, même si nous avons attaqué les finitions, ce sont elles qui risquent de nous occuper sur la dernière semaine.
L’état du robot est le suivant :
Il faut encore rajouter un mini-bout de code pour afficher le score en fonction des actions réalisées ou pas.
Le gros bout manquant est l’évitement de l’adversaire. Pour l’instant, le robot s’arrête. Nous avons bien un bout de papier quelque part avec de jolies trajectoires d’évitement mais rien n’est codé.
1er mai 2023
C’est un des points que nous tenions à réaliser et que nous nous gardions pour la fin, parce que "ce sera facile".
Ben, pas tant que ça...
Le règlement propose un nombre conséquent de points si le robot change d’aspect à la fin du match. Nous voulions faire les choses bien, en restant dans le style de l’équipe.
L’une des idées initiales était de faire un accordéon en papier qui se déplierait verticalement et propre à partir du toit du robot, en restant dans le périmètre initial (notre hexagone de 12,5 cm de côté) . Mais une petite analyse a vite montré que la solution se heurterait aux autres éléments en place dans le robot. Nous changeons notre fusil d’épaule et partons sur une solution à base de tissu lesté par une baguette de bois.
L’idée est d’avoir un morceau de tissu par face, soit 6 systèmes...
Nous arrivons assez vite à monter un prototype, cousu à l’arrache et agrafé à la structure du robot, utilisant un axe en bois et du fil de fer comme crochets. L’ensemble fonctionne bien. Sous le rouleau de tissus, nous fixons des baguettes à 45° pour retenir le tissu et éviter un déclenchement prématuré.
Voici le résultat en vidéo...
Prototype déguisement (720p - 3 Mo).
Y’avait plus qu’à...
Sauf qu’il manque encore un actionneur, en faire 5 autres et rallonger le tissu, car le pantacourt, ça fait négligé !
En faisant les différentes parties, nous trouvons évidemment des améliorations possibles, mais nous décidons de ne pas refaire les morceaux déjà réalisés juste pour un aspect esthétique. Ça nous aurait fait plaisir, mais nous sommes trop proches de l’échéance pour nous le permettre...
Après la perceuse et les pinces pour tordre le fil de fer, nous avons fait chauffer les aiguilles, que ce soit avec la machine à coudre ou à la main !
Puis il a bien fallu se faire un actionneur. La première piste, c’est un actionneur par face... Mais nous partons rapidement sur une solution avec un actionneur pour deux faces (moins cher, en argent et un entrées/sorties). Après analyse de l’encombrement de ces solutions, nous finissons par choisir de n’avoir qu’un actionneur pour les 6 côtés.
Nous suspendons un servomoteur au centre du robot, sous le toit, et relions chaque système avec du fil de cerf-volant à la pièce que nous avons découpée à la scie à chantourner et accrochée au servomoteur. La forme un peu bizarre est due au passage des câbles pour la carte de détection sous le support balise. La découpe est-elle vraiment utile, nous ne le savons pas !
Le résultat nous plaît, même si le robot est plus joli sans son déguisement qu’avec !
Nous nous sommes quand même fait plaisir en gardant une visualisation sur l’affichage du score !
Et pour conclure cet article, le tout en vidéo !
25 avril 2023
La CARAR nous avait laissé un petit goût amer. Nous avions perdu du temps sur la gestion de la tirette, la détection de l’adversaire était dans sa forme la plus primitive et nous avions pris en défaut notre précieuse carte de détection. Et après tout ce temps passé sur le robot, l’un des membres souhaitait faire une petite pause. S’en suivi donc une semaine qui fut plutôt passée sur le panier que sur le robot...
Ensuite, il fallait savoir si la carte de détection pouvait poser problème... Au bout de deux séances d’essais, et la correction d’un bug potentiel, il fallut nous rendre à l’évidence. Dans certaines conditions, certes assez précises, un capteur VL53L1X peut détecter un obstacle à 35 cm alors qu’il n’y a rien à moins de 2 mètres devant lui. C’est quelque chose que nous avons pu reproduire, mais uniquement dans certains lieux.
C’est assez embêtant, mais en penchant les capteurs vers le bas, on devrait pouvoir contourner le problème, au moins partiellement...
Nous avons accepté ce défaut, pour continuer de travailler sur la détection de l’adversaire. Le code utilisé lors de la CARAR stoppe net le robot dès qu’un objet est détecté à proximité. D’un côté, le robot risquait de basculer, de l’autre, une fois au contact d’un obstacle, il n’est pas possible de repartir.
Nous avons dessiné des cônes de détection où nous souhaitons prendre en compte la présence d’un obstacle en fonction de la direction d’avancement du robot.
Chaque zone de détection d’un capteur est comparée avec le cône. Si les deux zones ne s’intersectent pas, le capteur est ignoré.
Pour vérifier le bon fonctionnement du code, nous créons une fonction permettant d’éteindre les LEDs associées aux capteurs de la carte de détection. Ces indications nous seront précieuses pour le débogage du code.
Les fonctions Trajets nous permettent de suivre une trajectoire avec un contrôle fin de l’accélération et de la décélération. Une trajectoire peut être une droite, un arc de cercle ou une courbe de Bézier. La solution que nous avons trouvée pour coupler élégamment la détection avec les fonctions Trajets a été de tout piloter au niveau de la stratégie. Le principe est le suivant : la fonction Stratégie appelle successivement :
De cette manière l’impact sur les fonctions Trajets est minime et le résultat est fonctionnel.
Comme l’an dernier, nous utilisons un écran E-Ink pour afficher le score. Cette année, il est plus grand et nous souhaitons le piloter directement avec les microcontrôleurs Raspberry Pi Pico. S’il ne nous a pas fallu très longtemps pour afficher le test sur l’écran, charger des images s’est avéré bien plus compliqué.
Le code proposé n’est fait que pour charger des images faisant exactement la taille de l’écran. Le seul format pris en charge étant celui - non standard, mais compréhensible - du programme, un format binaire brut. Notre image étant bicolore, chaque octet code 8 pixels. Nous avons réutilisé des bouts de code du vendeur (Waveshare) en C fournis pour Linux pour convertir nos images sur le PC avant de copier les données dans le code en C. Un printf bien placé aurait fait l’affaire, mais nous avons voulu être intelligents et nous avons perdu beaucoup de temps...
Le processus était même plus complexe :
Mais à la fin, nous avons ce que nous voulions : un écran lisible de loin !
Mots clés : Programmation, Robot holonome, 2023, Raspberry Pi Pico
2 avril 2023
Voici deux semaines qui ont été très chargées.
Au menu, intégrer les fonctions existantes pour créer un programme d’homologation et créer une ébauche de détection de l’adversaire.
Le programme d’homologation nous a réservé quelques surprises qu’il a bien fallu corriger, tandis que la détection de l’adversaire n’était qu’une ébauche avant notre départ pour la CARAR.
Après avoir pataugé bêtement pour faire fonctionner notre tirette, nous avons pu intégré la détection de l’adversaire sur place. Le robot était homologable.
Côté détection, une grosse mauvaise surprise : dans certaines conditions, lorsque le capteur n’avait pas d’obstacle à proximité, nous obtenions une valeur de l’ordre de 30 cm, pile dans la plage critique. C’est peut-être qu’un problème de code de notre côté, mais ça reste à confirmer !
Certes, il nous reste du travail, mais le robot commence à se montrer fiable sur un bon nombre d’actions et ça, c’est vraiment très important !
Match 3 - CARAR (720p - 12 Mo).
Nous avons également commencé à travailler sur notre panier définitif, mais il reste du travail :
Un bon nombre de nos tâches ont été terminées, et nous basculons maintenant sur la réalisation de la stratégie...
Du côté de nos tâches :
Mots clés : Coupe, Vidéo, Robot holonome, 2023