Ici nous vous informerons des dernières nouvelles concernant l'avancement de nos projets et autres !
Bonne lecture !
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 : 2023, Robot holonome, Raspberry Pi Pico, Programmation
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 : 2023, Coupe, Vidéo, Robot holonome
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, 2023, Vidéo, Robot holonome
23 février 2023
Cette année, nous participons à la coupe de France de Robotique dans la catégorie "Legends" nouvellement créée. Une des conditions est de fournir un projet scientifique et un plan de communication. Voici le nôtre.
Le dernier prototype nous avait donné satisfaction, voici la vidéo.
Aspiration des balles avec le prototype (1 Mo).
Voici quelques photos de la construction de la version finale. Nous l’avons bien montée une fois sur le robot mais démontée presque aussi tôt pour s’occuper des contacteurs.
Une autre raison pour laquelle nous avons démonté le système, c’est que lors de nos essais la turbine était maintenue à la main et que nous l’avons bousillée. Attention, les pâles de turbines sont vraiment dangereuses pour les yeux !
Nous avons reçu les nouvelles turbines, mais nous ne les avons pas encore installées.
Les contraintes de place sont assez fortes au niveau des contacteurs. Surtout que ceux-ci doivent être protégés car nous comptons sur eux pour longer des murs. Nous avons finalement un modèle qui nous satisfait. Voici le prototype :
L’intégration nous a quand même demandé un peu de temps. Mais les contacteurs sont maintenant câblés et raccordés à la carte électronique.
Nous avons fini la conception de nos cartes, commandé et reçu nos cartes de détection de l’adversaire.
Nous les avons aussi partiellement soudées. Nous avons commandé les mauvaises référence de LED, nous attendons la nouvelle commande. Nous n’avons pas encore soudé tous les capteurs. Nous attendons de valider un minimum le code avant de tous les souder.
Les quelques lignes de code montrent que la carte se comporte comme prévu, avec la possibilité de désactiver les capteurs un par un.
Nous arrivons enfin à finaliser un mouvement qui nous tenait à cœur : avancer droit en faisant tourner le robot sur lui-même.
C’est probablement l’un des mouvements le plus complexe que le robot aura à faire et donc un bon moyen de valider notre architecture.
Bref, la joie du robot holonome !
Du côté de nos tâches :
Mots clés : Conception, Coupe, Électronique, Mécanique, Vidéo, Photo, Robot holonome, 2023
25 janvier 2023
Voici nos essais qui datent de début janvier, avant que nous installions proprement la carte électronique. Ce qui est fonctionnel :
La première vidéo nous a permis de mesurer les effets de l’accélération sur l’erreur de position.
Voici nos résultats :
Ce qui nous incite à privilégier les accélérations lente en début de match et tenter une trajectoire vraiment rapide en fin de match si nécessaire.
Aller-retours avec accélération contrôlée (720p - 12,3 Mo).
La petite oscillation en fin de mouvement est certainement due à une courroie détendue.
Mais là, ce ne sont que des aller-retours. Or, un robot holonome, ça permet de faire des trajectoires plutôt cool, comme une translation circulaire, que voici :
Trajectroire circulaire avec accélération contrôlée (720p - 3,3 Mo).
Mots clés : Robot holonome, Vidéo, Essais, 2023
page précédente 1 2 3 page suivante