jeudi 24 janvier 2013

Lego Mindstorms et les batteries ...

Il faut croire que 2012 ne m'a pas suffisament servi de leçon !

L'an dernier je m'étais rendu compte que les batteries avaient une incidence sur les performances du robot. Principalement le robot était certes plus rapide avec des batteries complètement rechargées mais il avait aussi un temps de rafraichissement et de calcul plus rapide. Etant donné que le robot n'était pas très précis (quelques centimètres de décalage après plusieurs mètres de déplacement ...) je comptais beaucoup sur le fait que le robot réalisait le même parcours à chaque match. C'est pour cette raison que je n'avais pas changé les batteries du robot principal durant toute la compétition ! J'avais changé les batteries du robot secondaire le samedi midi après les 5 matchs de sélection, ainsi le robot secondaire (qui n'avait pas d'odométrie) n'avait pas eu un comportement habituel en 8ème de final et rata les deux actions qu'il devait réalisé !



Hier j'expliquais que j'avais réglé le PID de déplacement du robot principal et que je devais le tester aujourd'hui sur la table de jeu de l'ENSIM... mais cette nuit j'ai mis à recharger les piles du robot principal et le comportement du robot a donc forcément été différent !
Tant qu'à faire, autant en profiter pour vous faire partager la diffèrence entre batterie pleine (affiche 8,5 sur le logiciel NXT) et batterie quasi vide (affiche 7 sur le logiciel NXT) :

 
Le robot était réglé sur Kp = 3,5 et Kd = 7  ; on voit clairement que le robot ondule beaucoup plus. Après quelques tests, le robot a une trajectoire beaucoup plus propre à Kp = 2 et Kd = 6. Que Kd soit à 6 ou 7 n'a pas grande incidence, par contre que Kp passe de 3,5 à 2 me dérange beaucoup plus ! Cela veut dire que au vu de mon programme actuel il faudrait que je fasse évoluer Kp en fonction de la charge des batteries ... Laissez moi quelques jours de réflexion et je vous dirais ce que j'ai trouvé pour résoudre ce problème !
 


J'en profite, pour les plus observateurs, pour vous signalez que les tests affichés hier ont été réalisés à 75% de puissance. Ceux d'aujourd'hui étaient à 100%. Il faut donc 3,5 secondes au robot principal pour parcourir 700 mm environ (une rotation puis une ligne droite). Le robot se déplace donc à 200 mm par seconde... Bref, il est lent.

6 commentaires:

  1. Pour obtenir un comportement régulier quelque soit l'état de charge des batteries, il faut chercher à asservir le robot sur une consigne qu'il peut tenir lorsque ses batteries sont faiblement chargées...
    Ainsi, l'asservissement fait le reste. (qui peut le plus peut le moins).
    En principe, la vitesse moyenne d'un robot asservi ne doit pas varier...!
    Après, c'est un peu étrange qu'il faille carrément faire évoluer les coefs Kx en fonction de la charge... Mais si c'est mieux, pourquoi pas !

    RépondreSupprimer
    Réponses
    1. Justement je n'ai pas d'asservissement en vitesse. Je rentre une commande puissance non asservie.

      Supprimer
  2. Et pourquoi ne pas mettre une vrai batterie avec un regulateur derrière le tout branché au NXT ? Tu serais au moins sur et certains de ta tension de sortie et tu limiterais ce problème ( voir l'annulerait complètement ... ) ?

    RépondreSupprimer
    Réponses
    1. Mon objectif est d'utiliser du materiel facile a utiliser. Si tu sais comment je peux le faire en lego ou en matos standard n'hesites pas.

      Supprimer
    2. Je ne sais pas trop ce que tire en courant ton robot mais mon idée serait d'utiliser une batterie et un BEC de modélisme ( pour la régulation ) si tu ne souhaite pas faire de soudure. Le BEC va réguler la tension de la batterie pour la maintenir à 7,2V (la tension moyenne pour le pack batterie d'un NXT avec des piles rechargeables).
      Il ne te reste plus qu'a relier l'ensemble aux deux bornes extrême du pack de piles du NXT.

      Le problème c'est que ça fait un peu bricolage ...

      Sinon j'ai vu qu'il existait des batteries rechargeables pour le NXT. Tu aurais peut être de meilleur résultats avec ce type de matériel ?

      Supprimer
    3. Je ne sais pas non plus ce qu'il tire en courant mon robot. Je n'ai pas vraiment envie de faire de bricolage comme ça. J'aurais suffisament mon compte je pense avec la funny action si je la fais ! ^^
      Les batteries rechargeables seraient certainement une bonne option mais je ne les aient pas prévues au budget donc je vais devoir trouver une solution par programmation.

      Supprimer