Ici nous vous informerons des dernières nouvelles concernant l'avancement de nos projets et autres !
Bonne lecture !
23 avril 2024
Voilà un mois que nous n’avons rien publié et nous voilà à 2 semaines de la compétition... Mais qu’avons-nous fait ?
Rappelons que ce capteur mesure 64 distances à chaque acquisition, répartis sur une grille de 8x8.
Ce capteur nous a bien occupé et les résultats sont au niveau des attentes. Le robot détecte les bordures et se recale. Il trouve même sa position de départ tout seul !
L’identification de la bordure se fait en prenant 8 points horizontaux. Nous utilisons une régression linéaire et les caractéristiques de la droite trouvée nous ont vite donné satisfaction. Ce qui nous a embêté, c’est le rejet des valeurs perturbées par la présence d’un pot devant la bordure. Pour cela, nous utilisions un critère, nommé qualité de prédiction par Wikipédia. Ce critère, pour estimer que les points forment une droite, est proche de 1 si les points forment une droite, proche de 0 dans le cas contraire. Or dans notre cas, face à une bordure, le critère variait en fonction de l’angle du robot avec la bordure. Ci-dessous, nos données expérimentales :
L’explication détaillée mériterait un article, mais en gros, le critère que nous utilisions évaluait le rapport entre la variation en Y des points théoriques par rapport à la variation en Y des points réels. Quand l’angle entre la bordure et le robot est proche de 0, la variation des points théoriques devient très faible alors que la variation des points réels reste constant à cause des erreurs de mesures.
Nous avons bidouillé notre propre critère en se basant sur les écarts en les Y réels et les Y théoriques.
Le capteur permet aussi au robot de trouver les plantes, avec une logique simple, ciblant le point le plus proche.
Le robot a attrapé ses premiers pots. Un moment touchant pour nous, car le spectacle semble à la hauteur de nos espérances.
Nous vous avions présenté la conception de la carte électronique des PAMIs, voici la conception mécanique !
Et le premier PAMI partiellement monté :
C’est maintenant une course contre la montre :
Mots clés : 2024, Capteur, Vidéo, Mini robot (PAMI), Programmation
23 mars 2024
... mais ce n’est plus un grappin.
Après nos essais non-concluants, nous nous sommes remis au travail. Nous avons coupé les doigts du grappin, percer des trous pour pouvoir fixer différents types de doigts. Finalement, notre seconde itération s’avérera concluante.
Nous avons fixé nos cartes électronique et raccordé la quasi-totalité de capteurs et actionneurs. Il ne manque que la tirette, le bouton de sélection de la couleur de l’équipe et le petit écran qui indique le score.
Ce qui nous a permis de reprendre le programme de l’an dernier et ses nombreux tests unitaires. Le début ne s’est pas fait sans mal :
❌Recompilation du code en mode test : pas de mode test
❌make clean puis recompilation en mode test : pas de mode test
❌rm -r build/* puis recompilation en mode test : mode test OK (c’est le cache du cmake qui posait soucis), mais pas de retour des codeurs
❌ Oh, le code de test n’initialise pas le module codeur : le code tourne, mais les codeurs sont à 0 en permanence
✅ Ah, oui, après relecture du plan de la carte, les codeurs ne sont pas alimentés par l’USB. On attrape l’arrêt d’urgent de l’an dernier, le connecteur pour la batterie, la batterie et Oh ! Les données arrivent !
✅ Quoi ? Pas de graphique teleplot pour nos codeurs : ça c’est corrigé !
La suite se déroule beaucoup mieux :
✅ Lecture des codeurs
✅ Pilotage des moteurs
✅ Asservissement des moteurs
✅ Lecture du gyroscope
✅ Localisation par codeur + gyroscope
Nous fixons l’arrêt d’urgence (à cause du souci rencontré plus haut), le gyroscope et le capteur de détection des plantes (VL53L8).
L’arrêt d’urgence se base sur notre système habituel, une sorte de tringlerie en bois qui active un interrupteur à levier.
Le gyroscope est situé à un endroit accessible, afin de facilement pouvoir y accéder en cas de soucis (notamment l’enfermer dans une cage en aluminium).
Et notre capteur est situé au milieu du robot, à hauteur des plantes qu’il doit identifier.
Nous avons réglé les positions des 6 bras avec leurs aimants et rajouter sur la carte servomoteur, le code pour communiquer en I2C.
Le gros point restant est le traitement du capteur VL53L8 et la stratégie !
Mots clés : 2024, Mécanique, Programmation, Photo
26 octobre 2023
Le règlement définitif de la Coupe de France de robotique est enfin publié et nous avons donc avancé dans la conception générale de notre robot.
Tout d’abord, nous avons abandonné complètement l’idée de notre premier actionneur, cette espèce de doigt. En effet, la présence des feuilles faisait qu’il repoussait les plantes au lieu de les saisir et pour les pots, la force nécessaire pour les tenir lorsqu’ils contiennent une plante nous paraissait trop grande.
Puis nous avons décidé que nous nous focaliserons sur la partie principale du règlement, attraper les plantes pour les mettre en pot et les stocker dans la jardinière. Pour cela, nous identifions trois parties principales du robot :
Le bras pour manipuler les pots va avoir un gros impact sur la conception du robot. Nous avons rapidement réalisé un prototype en faisant un pari risqué : nous parions que les pots seront ceux d’Ikea lors des compétitions et nous les ersatz en impression 3D.
Cette année, l’élément de jeu principal - les plantes - ne se trouve pas à une position fixe sur la table de jeu. Nous décidons d’utiliser un système de détection pour les trouver.
Notre choix se porte sur le VL53L8CX après des essais plus ou moins concluants avec le VL53L1X. Le VL53L1X semblait prometteur dans le sens où nous étions en bonne voie d’arriver à détecter un pot. Mais le VL53L8CX présente de nombreux avantages, notamment une utilisation plus simple pour ce genre de cas et une bien meilleure précision.
Nous fournissons un code "rustique", basé sur l’API de STMicroelectronics (STM), pour le Raspberry Pi Pico avec un bout de code pour visualiser les données sur le PC avec Processing. L’ensemble est sur notre Gitea.
Le montage se base sur les cartes SATEL de STM.
Voici une vidéo des données visualisées lorsque le capteur voit une plante passer devant puis s’en rapproche. Chaque pixel contient une information de distance, de 2 cm à 4 m, avec une précision de l’ordre du millimètre. Bleu signifie que l’objet est loin (65 cm dans la vidéo), rouge que l’objet est très proche.
Bref, nous sommes très contents de ce capteur !
Mots clés : 2024, Vidéo, Programmation, Capteur, Mécanique
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
15 janvier 2023
À force de faire des essais et de laisser traîner la carte sur le bureau, une patte de résistance qui traînait a arqué et ça nous a motivé à faire un support propre pour la carte électronique.
Nous avons profité de l’arrivée d’un jeune nouveau membre pour commencer la carte de détection de l’adversaire. Si tout se passe comme prévu, nous utiliserons des capteurs VL53L1X :
Enfin, nous avons fini notre article sur les astuces pour utiliser VS Code pour le Raspberry Pi Pico.
Du côté de nos tâches :
Mots clés : Mécanique, Programmation, Photo, Robot holonome, 2023
page précédente 1 2 3 4 5 page suivante