ITER Robots 2017 et 2018
Nous sommes ré-inscrits au concours ITER Robots 2018.
Cette année Arthur, Aurianne et Rémi avons pu aller piloter le robot à la finale alors que l'année dernière nous étions en stage...
Nous avons reçu le soutien de Anthony, Baptiste, Lilian et Raphaël de TSTL pour l'épreuve stand et de culture générale (4/5 Bravo !).
Ils ont aussi participé aux réglages PID du robot.
Cette année l'épreuve Ways Master comportait des parcours plus complexes qu'un simple suiveur de ligne.
Nous avons du revoir notre programmation et intégrer des priorités pour gérer ces parcours..
Pour cela nous avons organisé nos idées avec le Mind Mapping et identifié toutes les fonctions nécessaires à notre objectif.
Cette année encore nous avons détecté un manque de fiabilité des capteurs avec les conditions d'éclairage du concours.
Arthur a confertionné in-extremis une jupette autour des capteurs qui a bien amélioré la fiabilité.
Heureusement l'appli App-Inventor nous a permis de trouver des réglages assez fiables pour réussir tous nos parcours du premier coup lors du passage devant le jury.
Ainsi nous avons pu emporter l'épreuve Ways 2018 !
Ci-dessous notre expérience en 2017 plus basée sur le programme suiveur de ligne.
Le robot suiveur de ligne
L'appli Android suiveur de ligne modifiable (aia).
Cette application communique avec le robot par bluetooth, elle permet :
- de modifier les paramètres P,I,D du robot ,
- de démarrer et arrêter le robot à distance,
- d'afficher les valeurs des capteurs,
- d'afficher des informations pour debugger,
- de chronométrer le temps de parcours.
Les parcours : le réglement 2017
Une vidéo du concours ITER 2016
Le concept
Nous avons étudié le principe d’une régulation de température en cours. Le défi a consisté à adapter ce principe à un robot suiveur de ligne. Nous avons construit un schéma fonctionnel de notre asservissement. Nous avons identifié les éléments :
Pour notre correction PID nous avons besoin de capteurs de lumière à sortie analogique. Ainsi la correction ne sera pas du Tout Ou Rien, mais beaucoup plus douce pour obtenir une trajectoire plus stable et fluide. A partir de là nous avons pu choisir le matériel, nos variables et construire l’algorithme de notre programme. |
Matériel utilisé
La régulation PID : le pilotage
Les objectifs :
La précision : suivre la ligne sinon on "déligne"...
La stabilité : si le robot oscille trop autour de la ligne c'est que l'on manque de stabilité.
La rapidité : notre objectif est d'optimiser les paramètres afin d'être rapide stable et précis
Entrée perturbatrice :
Les changements de direction vont perturber notre système.
Notre commande a pour objectif de corriger la trajectoire à chaque
changement de direction.
Les variables :
La consigne suivre la
ligne est traduite par le fait que le capteur droit (Cd) doit
reçevoir la même quantité de lumière que le capteur gauche (Cg)
Il faut veiller à bien placer les capteurs à la frontière noir-blanc
de chaque coté de la ligne.
Attention les capteurs sont très sensibles au relief généré par le
déplacement du robot sur la feuille de papier.
Il faut bien tendre la feuille...
L'erreur ε : ε = Cd - Cg
dt = 2 ms : la durée du cycle.
Un cycle constant est important pour obtenir un comportement
cohérent.
Il est inutile d'être plus rapide car 2 ms est la période du hacheur
(commandé par la
PWM Arduino).
Par contre il faut veiller à ne pas ralentir le cycle (pas de
fonction delay...)
Lire le CAN multipléxé avec analogRead()
demande environ 140 µs par requête.
Pour communiquer il faut utiliser la fonction
Serial.print() avec parcimonie.
La condition (i%100==0) permet d'envoyer un message tous les 100 cycles
soit 200 ms. % :
modulo
L'analyseur logique nous permet de vérifier sur
les
chronogrammes la bonne maîtrise du temps.
(la patte D13 nous indique le temps de calcul environ 0,6 ms et la
durée du cycle 2 ms)
Il faut faire attention à ne pas dépasser la taille du buffer série
de 64 bits comme le montre ce
chronogramme.
Les corrections :La correction Proportionnelle : P = Kp*ε C'est la correction du moment Présent (toutes les 2 ms en réalité) proportionnelle à l'erreur Augmenter Kp permet d'augmenter la précision mais
génère de l'instabilité. La correction Intégrale : I = I + Ki*ε*dt Elle Intègre toutes les erreurs du passé. Elle permet l'apprentissage d'une trajectoire et apporte de la précision dans son exécution. Par contre à un changement de direction (entrée
perturbatrice) elle va générer de
l'instabilité. Augmenter Ki permet d'être précis sur une
trajectoire mais génère de l'instabilité lorsque celle-ci change. |
La correction Dérivée : D = Kd*dε/dt = Kd*(εn-εn-1)/dt
C'est une correction Dynamique qui anticipe le changement de direction.
Elle observe l'évolution de l'erreur.
Elle permet de corriger l'inertie due à la correction Intégrale
lors d'un changement de direction.
Sinon le poids du passé nous fait sortir de la trajectoire...
Augmenter Kd apporte de la stabilité notamment en
corrigeant l'erreur générée par la correction Intégrale.
Mais cela amplifie aussi le bruit : il ne faut pas en abuser et
trouver le bon compromis...
Au bilan la correction
PID permet
d'appliquer la bonne vitesse au moteur Droit et au moteur Gauche
pour que la vitesse résultante du robot soit tangente à la ligne...
La robustesse :
Pour augmenter la robustesse du process nous avons mis en place
des butées, un frein logiciel et le mode perdu.
Cette robustesse a été acquise après de nombreux essais et mises au
point.
Neg : pour limiter l'amplitude
des oscillations, on place une butée dans l'action négative (marche
arrière)
Lorsque les
accus se déchargent il faut augmenter cette valeur.
frein : on limite la vitesse max
(Pleine vitesse) en fonction de ε Pv
= 255 - frein*ε
Lorsque les accus se déchargent il faut diminuer le frein.
Noir : permet de définir le niveau correspondant au noir (1) pour la partie logique du programme.
Blanc : permet de définir le
niveau correspondant au blanc (0) pour la partie logique du
programme.
elle permet aussi d'activer le mode perdu...
Le 23 mai 2017
A force de pratique et de nombreuses mises au point du programme, notre robot a gagné en fiabilité.
L'application Android nous permet d'ajuster les réglages très rapidement.
En dernier ressort, le mode Perdu nous permet de nous remettre sur la ligne.
Aurianne, Arthur et Rémi ne sont pas là : ils sont en stage BTS.
Mais ils ont bien briefé Sacha et Aymeric (TS SVT option ISN) sur les subtilités du correcteur PID.
Chloé, Margot, Manon et Laure (TSTL) ont réalisé de jolies affiches et une belle déco pour le stand.
Tous ensemble, avec l'aide de google doc, nous avons réalisé le Flyer en français et en Anglais de promotion du projet Janetti Ways.
Cela sera-t-il suffisant face aux 23 concurrents de l'épreuve Ways ? La réponse en vidéo :
Félicitations à nos camarades du projet Pape : Pick And Place Express
Un coup de maître de Valentin, Nathan, Nicolas B. et Nicolas C. (Term. SSI de M Djebali) : première participation et déjà gagnants !