Ici nous vous informerons des dernières nouvelles concernant l'avancement de nos projets et autres !
Bonne lecture !
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
11 décembre 2022
Par rapport à nos nouvelles du 2 décembre 2022, nous avons bien avancé sur la programmation des déplacements ! À ce niveau, le dernier point encore non maîtrisé est l’utilisation du gyroscope pour se positionner.
Nous avons publié notre code sur Github avec un Readme qui explique la structure du code.
Pour l’instant, nous n’avons pas de belle vidéo à présenter, mais ça ne saurait tarder... Pour patienter, un test "en boucle ouverte", seuls les moteurs sont asservis en vitesse, il n’y a pas de retour sur la position du robot !
Et voici les courbes obtenues lors des essais de contrôle en vitesse avec une accélération et une décélération - ce sont bien des courbes expérimentales :
Le code supporte les trajectoires droites, circulaires ou suivant les courbes de Bézier.
Donc nous sommes - presque - prêts à nous déplacer avec classe et précision !
Mots clés : 2023, Programmation, Raspberry Pi Pico, Vidéo, Robot holonome
13 juin 2022
Nous voulons jouer prudents, et ne pas nous retrouver bloqués dans la même situation qu’au match précédent.
Nous collons une bande de papier sur notre mât balise pour éviter d’être invisible pour un autre robot.
Nous allons rajouter une trajectoire pour s’échapper d’un cas similaire et surtout indiquer à notre robot de ne pas s’acharner. S’il rencontre un robot face à lui sur le chemin vers les carrés de fouilles, il n’insiste plus, il va déposer la statuette.
L’autre point vient des carrés de fouille eux même. Notre précision est parfois trop mauvaise et nous voulons y remédier. Nous ajoutons deux capteurs de proximité (un seul servira) pour détecter le premier carré de fouille. c’est une modification notable et pour ne pas prendre de risque nous la testons bien. Même, nous ne l’utilisons que du côté jaune pour simplifier les tests.
Et puis, nous travaillons enfin sur ces échantillons que nous n’arrivions pas à attraper. Au lieu d’utiliser la chambre à air, nous utilisons des élastiques pour assurer une bonne adhérence entre notre robot et les échantillons.
Nous tombons jaune et allons pouvoir tester notre nouveau code en conditions réelles !
Le robot attrape la statuette, attrape les deux échantillons et dépose la statuette. Celle-ci ne bascule pas mais se retrouve quand même bien positionnée dans la zone de dépose.
Le code pour détecter les carrés de fouille s’active et le robot semble bien se comporter, même si la lecture du carré de fouille semble échouer.
Vient ensuite la rencontre du robot adverse. Nous l’apprendrons après le match, leur robot s’est décalé, il a détecté un échantillon mal tombé comme la bordure. Le robot vient donc bien loin dans notre zone et nous entendons un petit choc. Le robot adverse pousse notre carré avec une croix rouge...
Mais après ce choc, les deux robots se suivent et remplissent leurs missions en s’évitant honorablement !
Et à 1"48, le robot par vers la zone de dépose de la statuette et vous nous entendez dire "Oh non, oh non, oh non !". Le robot embarque avec lui un échantillons qui va se bloquer entre lui et la zone de dépose. Il arrivera à activer la vitrine, mais la dépose de la statuette ne nous rapportera pas de point : elle dépasse de la vitrine !
Pour plus de détails, regardez l’échantillon vert sur la vidéo, comment, sournoisement, étape par étape, il se déplace pour nous bloquer !
Le robot affiche le score qu’il pense avoir fait, soit 86 points alors qu’il n’en a marqué que 71.
Ce qui nous rapporte 79 points pour ce match et nous maintient 10e !
La vidéo est disponible en 720p ici (mp4 - 25 Mo).
Mots clés : Coupe, Vidéo, Eurobot 2022, Match
page précédente 1 2 3 4 5 page suivante