NXT-G, leçon n° 14 : Le PID, un contrôleur intelligent

Pour expliquer certains fonctionnements, principes et fondements.
Avatar de l’utilisateur
Alban42800
Level 11
Level 11
 
Messages: 2473
Localisation: Loire (42)
Âge: 50 ans
expertgbbexpertnxtvainqueurconcours

Messagepar Alban42800 » Dim Avr 03, 2011 11:15 pm

Salut,
Sans faire quelquechose de compliqué tu peux avec un seul capteur ne plus avoir d'oscillations :
Le capteur de lumière te renvoie une valeur variable.
Utilise la sortie "raw" qui renvoie la valeur brute du capteur qui est comprise entre 0 et 1024.
Met en place le 'P' du pid, tu n'a qu'a lire le début du cours de roboléo. La puissance des moteurs est simplement réglée en fonction de l'intensité lumineuse.
Après quelques essais (commence à rouler très doucement) ton robot n'oscillera plus.

Bon courage, le kit nxt avec une ligne noire peut t'occuper pendant des mois si tu cherche toujours à améliorer ;)

Kaidaten
Level 3
Level 3
 
Messages: 27

Messagepar Kaidaten » Lun Avr 04, 2011 1:07 pm

Alban42800 a écrit:Utilise la sortie "raw" qui renvoie la valeur brute du capteur qui est comprise entre 0 et 1024.
Met en place le 'P' du pid, tu n'a qu'a lire le début du cours de roboléo. La puissance des moteurs est simplement réglée en fonction de l'intensité lumineuse.
Après quelques essais (commence à rouler très doucement) ton robot n'oscillera plus.

Merci pour votre réponse, est-ce que vous pouvez juste, m'indiquer dans quelle partie du cours de Roboléo se trouve ce dont vous parlez s'il vous plait ?
Merci encore pour votre aide, je vous tiens au courant si j'y parviens :)
Bonne journée.

Avatar de l’utilisateur
Alban42800
Level 11
Level 11
 
Messages: 2473
Localisation: Loire (42)
Âge: 50 ans
expertgbbexpertnxtvainqueurconcours

Messagepar Alban42800 » Lun Avr 04, 2011 2:43 pm

Je ne sais pas ou il est dans le pdf mais le même cours est sur le forum... c'est dans ce topik, en page 1 ;)
Donc vraiment pas bien loin... :lol:

Kaidaten
Level 3
Level 3
 
Messages: 27

Messagepar Kaidaten » Mar Avr 05, 2011 7:20 am

Ah vi ! ^^'
Je suis bête =d
Merci encore

Kaidaten
Level 3
Level 3
 
Messages: 27

Messagepar Kaidaten » Mer Avr 06, 2011 2:01 pm

Bonjour bonjour,
J'aimerai juste savoir s'il serait éventuellement possible d'avoir le bloc
"Auto-Calib_Photo" s'il vous plait,
Dans le guide, le lien de téléchargement n'y est pas mentionné
Merci encore pour votre aide ^^
Mon projet avance à vitesse grand V ! :D

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Mer Avr 06, 2011 7:15 pm

Salut,
Le téléchargement est en page 85 du guide NXT-G vers.2.0 màj 1. Choisir "Affichage de l'Auto calibrage".
Si tu as ouvert le programme "Test Auto-calib Lum" avec NXT-G vers. 2.0, il suffit de double-cliquer sur le MonBloc "Auto-Calib_Photo". Ce MonBloc s'ouvre dans une autre fenêtre. Et là, tu as le bloc détaillé. ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Kaidaten
Level 3
Level 3
 
Messages: 27

Messagepar Kaidaten » Mer Avr 06, 2011 8:41 pm

J'ai effectivement essayé ça mais à chaque fois que je tente d'ouvrir le bloc,
le programme m'affiche une erreur ;
"Lego Mindstorm NXT a rencontré une erreur lors de l'ouverture du fichier de programme à [...] "
De plus, je ne sais pas si cela vient de votre programme, mais le bloc est fissuré au centre

Merci encore pour votre aide
Cordialement.

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Mer Avr 06, 2011 11:30 pm

Kaidaten a écrit:J'ai effectivement essayé ça mais à chaque fois que je tente d'ouvrir le bloc,
le programme m'affiche une erreur ;
"Lego Mindstorm NXT a rencontré une erreur lors de l'ouverture du fichier de programme à [...] "
De plus, je ne sais pas si cela vient de votre programme, mais le bloc est fissuré au centre

Merci encore pour votre aide
Cordialement.

Ce que tu appelles un bloc fissuré est un bloc rompu; j'en ai dit quelques mots dans le guide.
Après tentative de téléchargement j'ai obtenu le même message. Donc l'erreur vient de moi. Un Bloc est rompu lorsqu'il à été modifié. Dans ce cas je dois remplacer le bloc rompu dans le programme qui l'utilise par le même modifié.
Je fais le nécessaire et t'envoie la correction dès que possible. :oops:

EDIT: tu peux télécharger le MonBloc ici (Auto-Calib_Photo),
http://files.me.com/roboleo/bsoekq
Attention, il fonctionne avec NXT-G 2.0 (le capteur est différent du NXT 1.1, mais les paramètres sont les mêmes). Je pense que tu pourras l'ouvrir avec ta version et le lire. Pas sûr que tu puisse l'utiliser…
Dernière édition par roboleo le Jeu Avr 07, 2011 12:22 am, édité 2 fois au total.
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Avatar de l’utilisateur
Alban42800
Level 11
Level 11
 
Messages: 2473
Localisation: Loire (42)
Âge: 50 ans
expertgbbexpertnxtvainqueurconcours

Messagepar Alban42800 » Mer Avr 06, 2011 11:41 pm

roboleo a écrit:Salut,
Le téléchargement est en page 85 du guide NXT-G vers.2.0 màj 1. Choisir "Affichage de l'Auto calibrage".
Si tu as ouvert le programme "Test Auto-calib Lum" avec NXT-G vers. 2.0, il suffit de double-cliquer sur le MonBloc "Auto-Calib_Photo". Ce MonBloc s'ouvre dans une autre fenêtre. Et là, tu as le bloc détaillé. ;)

Attention Kaidaten est en NXT-G 1.0, le bloc n'est peut-être pas compatible à 100%.
@Kaidaten : En version 1.0 le nxt-g ne gère pas les nombre décimaux contrairement à la V2.0

Kaidaten
Level 3
Level 3
 
Messages: 27

Messagepar Kaidaten » Jeu Avr 07, 2011 5:03 pm

Alban42800 a écrit:Attention Kaidaten est en NXT-G 1.0, le bloc n'est peut-être pas compatible à 100%.
@Kaidaten : En version 1.0 le nxt-g ne gère pas les nombre décimaux contrairement à la V2.0

J'ai pu passer en version 2.0 il y a peu :D
Désolé, j'ai oublié de le mentionner
Merci encore ^^

Kaidaten
Level 3
Level 3
 
Messages: 27

Messagepar Kaidaten » Ven Avr 08, 2011 11:16 pm

Bonsouère, :)
J'ai réussit à programmer mon robot, et j'en suis pleinement satisfait,
Le suivi de ligne est quasi impeccable,
En effet, quasi, j'ai encore un petit souci :
La ligne étant faite uniquement de ruban adhésif noir, mes virages sont...comment dire..."Droits" ?
pas 90°, mais un angle entre 2 droites plutôt (ou segment)
Le problème est donc que, lorsque le virage, à DROITE seulement, (ou à gauche, j'ai un trou de mémoire), bref, d'un côté, ne se fait que si le virage est ouvert d'un angle minimum de 133°, ce qui est relativement grand.
Lors de la représentation, nous ne serons pas ceux (nous sommes 3 membres à travailler sur ce PPE) qui élaborerons le circuit.
J'ai donc peur que les examinateurs fassent un virage trop serré. J'ai essayé de faire des virages arrondis, mais pareil, lorsqu'il est trop serré, le robot ne le prend pas et se perd mais j'en suis quand même satisfait puisque l'angle maximal n'est plus du tout le même, le beaucoup le prend beaucoup plus facilement et il faut vraiment forcer sur le virage pour que celui ci se perde, mais encore faut-il que les examinateurs élaborent un circuit avec des virages arrondis, s'ils sont assez sympas pour se casser un peu la tête à étirer les rubans ^^
Est-ce que vous pouvez m'aider en m'indiquant sur quelles données je dois travailler (sur le programme) ?
Et, si je n'y arrive pas, pouvez vous m'indiquer des réponses svp ?
Merci beaucoup
Cordialement.

Avatar de l’utilisateur
Alban42800
Level 11
Level 11
 
Messages: 2473
Localisation: Loire (42)
Âge: 50 ans
expertgbbexpertnxtvainqueurconcours

Messagepar Alban42800 » Sam Avr 09, 2011 8:17 am

Si tu pouvais mettre une video de ce qui marche et ce qui ne marche pas et aussi ton programme ce serait plus facile à étudier. Y compris pour toi. Je filme souvent mes essais pour réfléchir au problème plus tard.
As tu mis en place un "debug" pour consulter les variables du programme qui évoluent pendant la course ? C'est très pratique pour comprendre ce qui se passe.

Kaidaten
Level 3
Level 3
 
Messages: 27

Messagepar Kaidaten » Dim Avr 10, 2011 1:05 pm

Alors, voilà une video illustrant mon problème



Ici, c'est une des rares fois où le robot à effectué plus de 60% du virage, et ce virage est (je trouve) déjà bien ouvert.
J'ai utilisé le programme généreusement fourni par Roboléo dans le guide,
J'ai réduit la vitesse des moteurs (Variable POWER) à 30, ou 25;
J'ai augmenté la valeur de la variable GAIN afin que la correction soit plus grande ; J'ai pensé qu'avec une plus grande correction, les virages seraient pris plus facilement puisque les moteurs ont donc des valeurs de puissance plus grande (ou plus faible selon côté)
J'avais pensé à multiplier la valeur fournie par le capteur par un facteur 1,5 pour que la distinction soit plus nette,
Mais sans succès, j'ai donc supprimé.

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Dim Avr 10, 2011 1:59 pm

Je pense que cela provient de la conception du robot.
L'arc de balayage du capteur me parait trop grand. Le capteur est à mon sens trop éloigné du train de roues directrices. Essaie de le rapprocher un peu plus de l'axe des roues motrices.
Essaie aussi de glisser le moteur avant entre ceux de la propulsion.

Un truc pour se fabriquer un tracé à peu de frais.
Dessine avec Microsoft Word sur une feuille blanche A4 un trait noir de grande épaisseur dans le sens de la longueur et dans l'axe. Sur une autre feuille A4 dessine un quart de cercle de même épaisseur en prenant un angle de la feuille comme centre et le petit côté comme rayon. Utilise l'outil dessin du logiciel.
Ces 2 feuilles seront imprimée en plusieurs exemplaires et combinées entre-elles pour confectionner des tracés divers (demi cercles, courbes en S, en addition avec des parties rectilignes, etc…). Il suffit de scotcher ces feuilles ensemble.
Si tu dispose d'un peu de moyens achète un rouleau de film Vénilia adhésif noir (grandes surfaces bricolage). Le recto est constitué d'un papier quadrillé sur lequel tu peux dessiner des lignes et des arcs de cercle. Découpe les en suivant les tracés et colle-les sur un support blanc. Si tu es en plus bricoleur, fais l'acquisition de dalles de sol en vinyle blanc et colle ces bandes sur chaque dalle. En les disposant en damier sur le sol tu peux te confectionner une multitudes de tracés différents que tu pourras ensuite ranger dans ton placard. ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Kaidaten
Level 3
Level 3
 
Messages: 27

Messagepar Kaidaten » Dim Avr 10, 2011 6:04 pm

Super, merci pour l'aide
Le robot tourne bien mieux :)
Maintenant, j'ai un tout autre problème, mais je ne sais pas trop si j'ai le droit de le poster dans ce sujet ci (Leçon 14)

J'ai conservé le programme de suivi de ligne proportionnel.
Avant cela, mon robot :
-Détecte un objet,
-Avance vers cet objet,
-Attrape l'objet puis le soulève,
-Part à la recherche de la ligne.

Une fois la ligne trouvée, je lui dit de se placer droit sur la ligne, afin de lancer le suivi de ligne proportionnel.
Malheureusement, la transition ne marche pas.
Le robot s'arrête bien sur la ligne, mais lorsqu'il doit exécuter le calibrage, celui ci ne le fait pas.
Il produit directement le son qui indique son départ, puis avance tout droit avant d'arrêter le programme après quelques secondes.
J'ai mis la détermination de variable au début, et une temporisation de 10secondes entre les 2 zones du programme, mais toujours le même problème.
Pouvez vous m'aider une fois de plus s'il vous plait ?
Merci encore


Retourner vers De la théorie à la pratique

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 5 invités