Ici nous vous informerons des dernières nouvelles concernant l'avancement de nos projets et autres !
Bonne lecture !
27 décembre 2023
Eh oui, nous démontons notre précieuse création. Mais c’est surtout que nous avons bien appris avec ce robot et que nous souhaitons en réaliser un autre sur une structure proche.
Nous l’avons donc mis en pièces :
Ce que nous allons récupérer (en lettre) :
A : La batterie 12V NiMh
B : La carte électronique avec ses 2 Raspberry Pi Pico et ses 3 ponts en H
C : Les 3 blocs moteurs
D : Notre précieux gyroscope (pas vraiment mis en valeur sur la photo)
E : Notre carte de détection de l’adversaire, à base de VL53L1X
F : Notre logo poivron (on ne sait pas où il sera, mais il sera probablement sur le robot)
G : L’écran pour afficher le score
Ce que nous ne réutiliserons peut-être pas (en chiffre) :
1 : Montants verticaux et support pour la carte électronique
2 : Le toit avec le système de déclenchement du déguisement
3 : Notre bras, rajouté à l’arrache
4 : Les contacteurs pour détecter et longer les bords
5 : Le troisième montant vertical avec le propulseur
6 : Turbine, chambre d’aspiration et trompe
7 : Rampe pour guider les cerises jusqu’au propulseur
8 : Le châssis
Mots clés : 2024, 2023, Conception, Photo
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
19 mars 2023
Presque un mois sans faire de point d’avancement, alors où en sommes nous ?
L’objectif de ces derniers jours était d’avoir un robot fonctionnel pour la coupe Auvergne-Rhône-Alpes junior. Même si nous avons passé un très bon moment là-bas, d’un point de vu du robot, ce n’est pas une réussite à 100%, le robot n’a pas pu rouler sur les tables de jeux, il n’était pas prêt.
Cependant, nous avons bien avancé sur de nombreux de points. Principalement, le propulseur a été prototypé, testé, amélioré, re-testé puis intégré. Il reste un problème à régler avec les perturbations électromagnétiques, mais envelopper les moteurs dans du papier d’aluminium devrait régler le problème.
La structure a aussi bien avancé avec la fixation du toit, de l’arrêt d’urgence, de la batterie et de la tirette.
Prochain rendez-vous le 1er avril 2023, pour la coupe Auvergne Rhône-Alpes à l’INSA de Lyon !
Du côté de nos tâches :
6 mars 2023
Sur la vidéo suivante, le robot ne se comporte pas comme demandé. Nous verrons pourquoi nous considérons que ceci n’est pas un problème d’asservissement.
Avance et tourne ! (480p - 5 Mo | 720p - 10 Mo).
Ce que l’on voit sur la vidéo, c’est que la rotation du robot sur lui-même n’est pas fluide. Elle devrait progresser en même temps que le mouvement.
Pour comprendre ce qui se passe, notre premier réflexe est de comparer la rotation du robot avec sa consigne de rotation.
En zoomant sur la courbe, ça ressemble vraiment à un asservissement mal réglé (à un ou deux détails près).
Dans la première partie, l’orientation suit bien sa consigne puis elle décroche et dépasse sa consigne lorsqu’elle est proche de sa valeur finale. C’est assez semblable au comportement d’un correcteur intégrale mal réglé.
Notre premier réflexe a été d’ouvrir le code de notre asservissement en rotation pour aller modifier le gain de notre correcteur intégral sur notre orientation. Et là, nous réalisons que nous n’avons jamais mis de gain intégral sur notre correcteur en orientation. Le seul gain intégral que nous ayons est sur l’asservissement des moteurs. Nous observons alors le comportement des moteurs
Sur le dernier graphique, celui du moteur C, le moteur n’atteint pas sa consigne à plusieurs reprises dans le cycle. Plus en détail, il semble décrocher quand la consigne dépasse les 500 mm/s alors que la consigne va grimper jusqu’à 1 500 mm/s (probablement sous l’influence du terme intégral).
Ceci arrive lorsque le robot atteint 60° d’orientation. À ce moment-là, tandis que toutes les roues assurent la rotation du robot, la roue C commence à être la seule à faire avancer le robot (selon le vecteur vert sur le schéma) alors que les deux autres roues, dans leur rôle de faire tourner le robot, participent à diminuer sa vitesse.
Projetez les vitesses sur l’axe Y, vous verrez !
Nous demandons au robot une consigne qu’il ne peut pas atteindre, car ses moteurs ne sont pas assez puissants.
Si cette théorie est bonne, alors le robot devrait pouvoir réaliser la même trajectoire, mais moins vite.
Ce qui se voit sur la vidéo et les graphiques ci-dessous, où la vitesse maximale a été diminuée de 1 000 mm/s à 300 mm/s.
Tant pour l’orientation qui suit sa consigne :
Que pour les moteurs :
Ceci n’est donc pas un problème d’asservissement.
C’est un problème de consigne ! La consigne doit être atteignable. C’est une notion qui est importante, car nous aurions pu perdre beaucoup de temps à corriger nos gains sans obtenir de résultats. De là à considérer que si la consigne (ou l’erreur) sort de certaines valeurs il faut couper l’asservissement et sortir en erreur, il n’y a qu’un pas. Ce n’est pas notre priorité pour l’instant, car il faut ensuite gérer le cas où l’asservissement se "bloque", mais c’est une piste pour améliorer la fiabilité du robot.
Bien sûr, le doute peut persister, est-ce qu’un asservissement un peu plus violent nous permettrait de réaliser le même mouvement plus vite ? Probablement, mais nous pensons que l’effet serait plutôt marginal.
Note du 8/3/2023 : Si l’article s’attarde sur le problème de vitesse des moteurs, c’est parce que la vitesse est la donnée la plus facilement observable. En réalité, le problème se situe au niveau du couple moteur disponible à une certaine vitesse, donc à un problème de puissance des moteurs !
Mots clés : Conception, Vidéo, Robot holonome, 2023
page précédente 1 2 3 4 page suivante