TESTER et REGLER UN ROBOT
Il faut le faire depuis le début !
Séparément pour chaque élément essentiel du robot -puis globalement
Un robot ne fait pas du premier coup exactement ce qu'on espérait !
Elément par élément -Fonction par fonction
-
attendre la fin de la construction d'un robot pour le tester c'est courir à la crise de nerfs
une fois le robot terminé tout un série d'éléments mécaniques, électroniques, programmes sont réunis ; en cas de dysfonctionnement : il est trés difficle de localiser ou est l'erreur , il est plus facile de tester élément par élément
-
tester les montages et les sécuriser
- les connections qui ont été établies peuvent être de mauvaise qualité: il faut les vérifier d'abord a vue , et pourquoi pas avec une loupe ?
- tester les tensions et résitances avec un multimétre est indispensable
- quelques diodes lumineuses témoin placées aux points stratégiques des circuits permettent un premier controle facile , il ne faut pas s'en priver par exemple pour savoir si un circuit est alimenté ou pour voir si c'est le détecteur droit ou gauche d'un robot suiveur de ligne qui a repéré une ligne sombre sur fond clair.
- le controle de l'amplitude et de la durée des signaux émis sur les pattes (pins) des microcontroleurs est plus délicate : il faut un oscilloscope
- eviter les fils mal fixés ou mal isolés : mettre des colliers et de la gaine isolante thermorétractable
- les composants des montages (microprocesseur en particulier pour ses entrées et ses sorties) ont des limites pour les intensités et/ou voltages au delà desquels on risque d'avoir une mauvaise sensibilité ou pire de les détruire . Il est indispensable de lire attentivement les data sheets sur les sites des fournisseurs.
-
les valeurs donnant une réponse minimum, maximale ou d'équilibre d'un robot ne correspondent presque jamais a ce que vous avez calculé en théorie
-
- par exemple : en principe un servomoteur ne se déplace pas lorsqu'il reçoit des impulsions de 1,5 ms de durée : en fait c'est souvent un peu plus ou un peu moins . Cest important car en général au départ on ne veut pas que le robot se déplace sans qu'on le veuille : il faut trouver le point neutre par tatonnement.
-
les détecteurs ont une zone de réponse hors de laquelle ils sont peu ou pas sensibles :
- il faut enregister leurs réponses pour connaitre cette zone
- mais on peut aussi déplacer cette zone grace aux composants associés au détecteur: en ajoutant des résistances en série par exemple.
-
pour tester les commandes des moteurs c'est tellement plus simple de poser le plancher du robot sur un support (boite etc) pour décoller les roues
du sol
-
des détecteurs en apparence identiques ont des courbes de réponse différentes
-
- si vous utilisez des détecteurs d'obstacles , par exemple des détecteurs IR de Sharp pour repérer les obstacles à droite et a gauche du chemin du robot pour caler sa route au milieu il faut savoir que celui de droite répond rarement comme celui de gauche : il faut déplacer un écran face a chaque détecteur et tracer sa courbe de réponse
-
des interférences entre le fonctionnement de différents éléments peuvent tout changer
-
- une fois les éléments réunis ils peuvent interférer
- les cas le plus simple est celui du démarrage des moteurs a courant continu : il produit des variations de tension et parasites sur les montages . Il y a 2 solutions: soit alimenter les moteurs sur une batterie a part, soit intercaller des condensateurs entre la terre et le +
-
-
Les programmes informatiques ou les circuits reçoivent des valeurs parfois inattendues (ou pas de valeur du tout)
-
- il est prudent de tester les programmes pour des valeurs extémes et de prévoir des solutions (controles des zônes , valeur par défaut) pour éviter le plantage
- de même il faut réfléchir par exemple à ce que donne un potentiométre sur un circuit lorsqu'on le pousse a ses valeurs extrémes (que se passe il si on met sa résistance a zéro ? noter que si ce cas peut être dangereux on peut l'éviter en branchant une petite résistance fixe en série avec le potentiométre).
Test global d'évitement d'obstacles
Le robot équipé de 3 détecteurs d'obstacles IR (devant,droite, gauche) est placé sur un terrain clot par des murs (plaques de polystyréne ) qui délimitent un espace avec quelques recoins comme piéges éventuels.
On vérifie que le robot n'avance tout droit que quand la voie est libre devant: : pas de mur.
Lorsque le robot se rapproche d'un mur de face , il s'arréte (au dessus d'un seuil de signal du détecteur IR qu'on aura déterminé) ,il recule un peu et repart en tournant un peu (nous avons choisi arbitrairement vers la gauche).
Lorsque le robot se rapproche en biais d'un mur , le programme PID le fait s'en écarter progressivement.
Si le robot enchaîne plusieures fois de suite la même suite de manoeuvres , une alarme "blocage" se déclenche et il essaie de s'en sortir en faisant une rotation de 120 degrés sur place, avant de reprendre sa marche avant.
Note: pour tester la détection d'objets au ras du sol par les moustaches, un livre posé au milieu de l'aréne fera l'affaire.
Test global du suivi des consignes de trajectoire avec ou sans odométrie
Le robot est mis sur une case départ bien dessinée au sol et on lui demande de parcourir un trajet rectangulaire et de revenir exactement a son point et dans sa direction de départ. On refait le test en parcourant le même circuit en sens inverse, pour tester les erreurs de virage a droite et a gauche.
Test global de correction de trajectoire entre 2 murs avec virage a droite et virage a gauche
On place le robot entre deux murs (plaques de polystyréne ) qui dessinent un tracé comportant: 4 segments de 50 cm de ligne droite formant deux virages a 20 degrés un a droite puis un a gauche . Ce trajet en serpent sert a vérifier que le robot corrige en douceur sa trajectoire (grace au PID) sans alterner de brusques virages a droite puis a gauche. Pour cela , un microcontroleur gérant bien en paralléle d'une part le contrôle des moteurs et d'autre part la lecture des détecteurs IR (qui demandent du temps pour la lecture ) est indispensable: en effet si le microcontroleur doit interompre une tache pour se consacrer a l'autre la progression du robot se fera par saccades.
Test global en labyrinthe
La resolution du positionnement et du choix du trajet vers la sortie ont été réalisées a part , a l'aide d'un programme sur PC (un algorithme classique genre Dikjstra) qui échange par radio des données et consignes de déplacement avec le robot et visualise la position du robot sur l'écran : ce programme est détaillé ailleurs et fonctionne bien.
Ici nous allons contrôler que le robot réajuste légérement ses trajectoires pour rester a distance des murs et pouvoir tourner sans les percuter. Il suffit de bien le positionner au départ et d'observer ses déplacements : c'est stressant !
Quand le robot accroche un mur c'est toujours vers la fin du parcours , a cause de trajectoires qui ne sont pas bien corrigées et a l'accumulation de petites erreurs. Y a encore du travail de réglage fin a faire et c'est pas évident !
A la fin l e plus dur c'est toujours de faire corriger les petites erreurs dues a la mécanique du robot et a l'environnement.
En plus un robot ça vieillit (usure, frottements, batteries qui se vident) donc les erreurs changent.