Mon Premier robot... Premiers (8ème de) pas...

  • Auteur de la discussion louloute30
  • Date de début
L

louloute30

Compagnon
Re: Mon Premier robot...

Je placerai dans ce message l'étude odométrique utilisant des moteurs PAP !

Chapitre I: Correction trajectoire rectiligne avant mouvement utilisant les paramètres initiaux du robot
Paramètres de correction étudiés: Parallélisme des deux roues - Désaxage des roues - Parallélisme châssis/roues

Chapitre II: Correction des Trajectoires circulaires avant mouvement utilisant les paramètres initiaux du robot.
(En cours de rédaction)

Chapitre III: Correction et réaffectation de trajectoire après une période T
Etude Odométrique après déplacement (partiel ou total) rectiligne ou circulaire

Actuellement disponible sur le .pdf ci-joint, chapitre I ; le fichier sera compléter ces jours-ci...
Correction établi au fichier:
Rectification de qq erreurs (aucune formule mathématiques n'a été modifiée) Le 14/10 18H36
Voir la pièce jointe robot 2012.pdf
 
L

louloute30

Compagnon
Re: Mon Premier robot...

@ romain_cvra:
Aucune carte de commande de moteur PAP (du type CNC 3 axes ou plus) ne peut tenter de corriger une erreur de position sur un robot en live; En fait ça pourrait marcher seulement en ligne droite. Pour les courbes, il faudrait que la roue codeuse soit alors au centre de la roue motrice (Mécaniquement parlant, il y aurait de quoi s'amuser: Il s'agirait de prendre une roue plate et large environ 4cm, la couper en 2 (donc 2 roues de 2cm), y loger alors une roue codeuse libre entre les deux, et refermer tout ça avec deux type d'axe, une poulie d'entrainement sur les 2 cotés pour la roue motrice, et un axe au milieu relié à la roue codeuse; Bonjour la difficulté, et histoire d'en rajouter un peu, il faudrait alors que le parrallélisme des 2 roues soit parfait, qu'il n'existe aucun desaxage entre les 2 roues... LE ROBOT PARFAIT EN SOMME !! :mrgreen:
 
R

romain_cvra

Ouvrier
Re: Mon Premier robot...

louloute30 a dit:
Aucune carte de commande de moteur PAP (du type CNC 3 axes ou plus) ne peut tenter de corriger une erreur de position sur un robot en live
Je ne suis pas d'accord avec toi... Il est tout a fait envisageable de récupéré l'info des codeurs externe et d'y intégrer un régulateur PID pour viser la position ou le déplacement souhaité sur table et tous sa en live. C'est le même concepts qu'avec un moteur DC sauf que la tu ajoute ou soustrait des pas!

Pour la doc que tu as faite sur la correction du parallélisme des roues c'est pas aussi simple que tu sous entend. Et il y a d'autre paramètre nettement moins négligeable à calibrer avant.
L'entraxe, le diamètre et la différence de diamètre des roues codeuses. Et tu ne peux pas seulement les mesurés, la mesure te donne une bonne approximation mais des testes par essai successif donne ensuite de bien meilleur résultat.

Je me répète... Fait une base roulantes très simple pour les premiers testes!
Simplement deux roues motorisée avec deux codeurs externe et ce qu'il faut pour les contrôlés.
Rien de plus, temps que tu ne contrôlera pas parfaitement ton robot! Le reste du robot fait le seulement une fois que tu maîtrises ses déplacements!
 
L

louloute30

Compagnon
Re: Mon Premier robot...

Prennons le cas d'une rotation ayant pour centre l'une des 2 roues, on voit bien que les codeurs n'effectuerons jamais autant de pas que les roues motrices (puisque les périmètres des cercles sont différents, et encore faut-il que le robot soit parfait), d'où les cartes (Type CNC ayant pour fonction saut de pas, ou lecteur de roue codeuse) ne sont alors pas du tout adaptée.
Donc, il est préférable de prendre des cartes CNC sans trop d'option à part (1/2 pas, 1/4 de pas)... et implémenter via un microproc dédié au calcul les pas à effectuer.

C'est ce que je vais faire dans mon cas.

Faire un robot qui avance et recule sans odométrie, ça ne va pas vraiment m'avancer... Après, je suis bien obligé de chercher les formules correctrices. Contrairement aux moteurs DC, les PAP permettent 2 corrections, avant, et après le déplacement, autant profiter au max des avantages que ça peut procurer.
Corriger à "taton", je ne pense pas que je vais gagner bp de tps.

rotationsuruneroue.jpg
 
R

romain_cvra

Ouvrier
Re: Mon Premier robot...

louloute30 a dit:
d'où les cartes (Type CNC ayant pour fonction saut de pas, ou lecteur de roue codeuse) ne sont alors pas du tout adaptée.
Ok je pensais que tu parlais du contrôle de moteur PAP en général. C'est claire qu'une carte de contrôle de moteur PAP pour CNC n'est pas adaptée.
IL faut faire une carte home-made.

louloute30 a dit:
Faire un robot qui avance et recule sans odométrie, ça ne va pas vraiment m'avancer...
C'est pas de que je disais...

louloute30 a dit:
Après, je suis bien obligé de chercher les formules correctrices.
Oui mais tu ne cherche pas les bonnes... Il faut simplement corrigé le diamètre, la différence de diamètre, et l'entreaxe des roues codeuses.
Par essai successif, j'entend, que tu implémente les valeurs théoriques ou mesurée du diamètre, de la différence de diamètre, et de l'entraxe des roues codeuses.
Puis tu fait des déplacements spécifique qui interagisse que sur une seule de ces valeurs, et tu mesure l'écart que tu as par rapport à la valeur que tu cherche et tu corrige ces valeur en fonction.

louloute30 a dit:
Contrairement aux moteurs DC, les PAP permettent 2 corrections, avant, et après le déplacement, autant profiter au max des avantages que ça peut procurer.
Je vois pas trop de quoi tu parle tu peux préciser?
 
L

louloute30

Compagnon
Re: Mon Premier robot...

romain_cvra a dit:
Pour la doc que tu as faite sur la correction du parallélisme des roues c'est pas aussi simple que tu sous entend. Et il y a d'autre paramètre nettement moins négligeable à calibrer avant.
L'entraxe, le diamètre et la différence de diamètre des roues codeuses.

L'entraxe (Si tout du moins tu me parles du désaxage des roues: l'une placé plus en avant par rapport à l'autre) n'a pas lieu d'être pris en compte lors de déplacement rectiligne. Il en est tout autre dans les déplacements circulaires (l'étude est en cours, mais bp plus long à faire...Encore 3-4 jours).

Pour ce qui est du diamètre (roues motrices et roues codeuses) effectivement, je n'ai pas tenu compte de ces paramètres: J'ai supposé que les entreprises qui les fabriquaient, travaillaient ... correctement... :roll: :prayer:

louloute30 a dit:
Contrairement aux moteurs DC, les PAP permettent 2 corrections, avant, et après le déplacement, autant profiter au max des avantages que ça peut procurer.
romain_cvra a dit:
Je vois pas trop de quoi tu parle tu peux préciser?
Un PAP a un déplacement parfait: En effet, il tourne quand on lui demande et tjrs de la même façon (1pas=1pas)
Un DC, c'est seulement si on l'alimente, mais la résolution est variable (On ne peut donc pas vraiment prévoir avec exactitude la longueur parcourue de la roue) avant qu'elle l'ait parcourue. On corrige tjrs après; On fait des codeurs des lecteurs de position (ok, c'est leur rôle quoi que), mais avec les PAP on peut se permettre d'envisager la trajectoire qui sera parcourue, et donc, la modifier avant qu'elle ait lieu.
Dans le cas, les codeurs serviront plus à "vérifier" qu'à modifier la suivante trajectoire.

Mon idée, c'est faire en sorte que le robot puisse sans codeur se déplacer comme il le faut. Les codeurs n'auront lieux d'être là, juste pour vérifier la théorie.. et appliquer les nouveaux paramètres (adhérences des roues suivant support...) sur les formules afin de peaufiner les derniers détails.

Enfin, j'espère obtenir ce résultat...
 
R

romain_cvra

Ouvrier
Re: Mon Premier robot...

louloute30 a dit:
L'entraxe (Si tout du moins tu me parles du désaxage des roues: l'une placé plus en avant par rapport à l'autre) n'a pas lieu d'être pris en compte lors de déplacement rectiligne. Il en est tout autre dans les déplacements circulaires (l'étude est en cours, mais bp plus long à faire...Encore 3-4 jours).

Pour ce qui est du diamètre (roues motrices et roues codeuses) effectivement, je n'ai pas tenu compte de ces paramètres: J'ai supposé que les entreprises qui les fabriquaient, travaillaient ... correctement...
Non l'entraxe dont je te parlais c'est la distance entre la roue codeuse droite et la roue codeuse gauche.
Si tu veux faire en sorte que ton robot fonctionne sans codeur la diamètre des roues motrices est important mais dans le cas ou tu as des codeurs qui corrige ton robot en live ce n'est pas important seule le diamètre des roues codeuse l'est.

Le problème, c'est que les entreprises qui vont fabriquer tes roues codeuses ont beau faire du travaille plus que correcte...
Il faut régler le diamètre des roues codeuse en dessous du 1/100 de mm (0.01mm)!
Pour la distance entre les deux roues, c'est au centième. Gargamel de RCVA la parfaitement démontré mathématiquement.

Par contre, pour le désaxage des roues et le parallélisme, cela à besoin d’être nettement moins précis.
Avec une bonne mécanique (là je te fait entièrement confiance... :wink: ) tu n'as même pas besoin de t'en soucié.
On ne corrige pas ces deux paramètres et on arrive a moins de 1cm de décalage à la fin d'un match!

Tu vois ce que je veux dire?
 
L

louloute30

Compagnon
Re: Mon Premier robot...

Ok, merci, c'est très clair.
 
J

Jorus

Apprenti
Re: Mon Premier robot...

Non mais vous voulez me donner une migraine dès le lundi matin ou quoi ? :mrgreen:

Bon j'ai rien compris à ce que vous avez écrit, alors je relirai ca calmement plus tard. :)

Bonne semaine,
Jorus
 
R

romain_cvra

Ouvrier
Re: Mon Premier robot...

Jorus a dit:
Bon j'ai rien compris à ce que vous avez écrit, alors je relirai ca calmement plus tard.
Lol! On a aussi eu du mal a se comprendre!
 
J

Jorus

Apprenti
Re: Mon Premier robot...

romain_cvra a dit:
Jorus a dit:
Bon j'ai rien compris à ce que vous avez écrit, alors je relirai ca calmement plus tard.
Lol! On a aussi eu du mal a se comprendre!

Oui mais tu n'as pas le défaut d'être un informaticien !!! :smt003 :smt033 :lol: :smt031
 
L

louloute30

Compagnon
Re: Mon Premier robot...

Il a fallut calculer la longueur d'onde avant , et déterminer celle qu'on allait prendre pour bien se comprendre :smt003 :smt003

Alors, je voulais, non, je tenais à partager cela avec vous:
J'ai (par habitude) prospecter chez certains fabriquant chinois (de bonne augure) le cout des codeurs, et après enquète (vérification existance de l'entreprise, qualité du produit, tarif compétitif...) j'ai retenu une offre (alléchante):
Son message était considéré comme spam, et résultat, je ne l'ai vu qu'il y a 2 jours (c'est pour ça que j'attendais... :roll: ).
Par contre, ce qui me pose problème et le fait que c'est la première fois pour moi que je vais commander ces petites bêtes, c'est que je ne comprends pas (ou ne sais pas) lequel prendre.

Output circuit : voltage out ? Line driver out? push and pull out ? NPN ? PNP? (ok, npn et pnp, ça, ça va à comprendre)
D'office, j'aurais pris un 5V DC , 1000impl/résolution, mais ce qui me frêne, c'est "Line driver out" ? Qu'est-ce donc ? Après, je fais peut être une grosse erreur à prendre celui la... Vous l'aurez compris, je suis un peu perdu :???: Qu'en pensez-vous ?

Rotary-Encoder-E6B2-Series-.jpg
Voir la pièce jointe E6B2-CWZ Rotary Encoder pirce110712.xls
 
J

Jorus

Apprenti
Re: Mon Premier robot...

A part te donner un lien qui explique ce qu'est un line driver, je ne vais pas beaucoup t'aider. Surtout que je ne suis pas sûr que la même définition s'applique ici... :(
http://en.wikipedia.org/wiki/Line_driver

En tous cas ton codeur respire le TTL donc je pense que c'est le bon. :wink: Mais je peux me tromper. ^^

En tous cas merci pour l'info, j'étais en train de chercher aussi des codeurs et là j'arrivais plutôt à 100 euros pièce. Tu me donnes l'espoir de trouver moins cher. :wink:
 
R

romain_cvra

Ouvrier
Re: Mon Premier robot...

Salut,

D'après d'autre produit de chez eux, le "Line driver" c'est les signaux A/B qu'il faut donc la c'est OK.
Mais je pense pas que celui que tu as choisi fonctionnera pour un robot car c'est un codeur absolu. D'après la page : http://www.yingselectric.com/product_sh ... &cataid=91
Il faut des relatifs pour les roues codeuse d'un robot.

Chez le même fabriquant, celui-ci ira très bien :
http://www.yingselectric.com/product_show.asp?id=224

Faut prendre le max de puls possible c'est toujours mieux!

A+
 
L

louloute30

Compagnon
Re: Mon Premier robot...

Jorus a dit:
En tous cas merci pour l'info, j'étais en train de chercher aussi des codeurs et là j'arrivais plutôt à 100 euros pièce. Tu me donnes l'espoir de trouver moins cher. :wink:
Hum, dans la même gamme de prix qu'en chine (quoi que 1,5 fois plus cher) en europe, il y a ceux la:
compte expédition de 20€ (c'est ici que j'ai acheté mes poulies/courroie pour ma CNC) Pas cher, bonne qualité, après, savoir encore une fois si ces codeurs iraient... Je compte sur vous pour me dire un peu plus :???:

Sachant qu'il faut 4 codeurs, je ne voudrai pas me ruiné cette année dedans. Je veux bien en acheter 2 plus cher (histoire de m'en servir chaque année) mais 4 à 130€, pour commencer, ça fait vraiment cher... :eek:


Romain a dit:
Relatif/Absolue
Pourrais-tu me décrire la différence ?
 
R

romain_cvra

Ouvrier
Re: Mon Premier robot...

Un codeur absolu donne toujours la position à la quel il est par rapport à une référence qui lui est propre.
Par exemple: Un codeur avec comme résolution de 1000 puls/tour.
A une certaine position il t'indique 0, tu le tourne de 10 tours, il indiquera alors 10*1000=10000.
Et ceci que le codeur soie alimenté ou non. Il donne toujours la position à la quel il se trouve.
Tu ne peux pas le réinitialiser, il faut le tourné pour le remettre en position zéro.
Bon ça c'est pour la théorie en pratique c'est généralement assez différent... Il existe plein de variant spéciale à chaque fabriquant...

Un codeur relatif ou plus généralement appelé codeur incrémental t'indique lui de combien il bouge.
Il t'indique chaque fois qu'il fait un pas. Mais te donne pas de valeur de position à la quel il se trouve.

Se qu'il faut c'est un codeur avec des sortis A et B. Tu vois ce que c'est?

A+
 
J

Jorus

Apprenti
Re: Mon Premier robot...

Les sorties doivent être en quadrature, les deux signaux déphasés de 90°
 
L

louloute30

Compagnon
Re: Mon Premier robot...

Super, c'est très clair tout ça.

Donc, je vais essayer de redemander des devis pour le produit que tu m'as montré tout à l'heure romain (à nb d'impl différent: 500/1000/1500/2000 pour commencer).
Je vous en fais part dès réception !

Par contre, "plus il y a d'impulsion mieux c'est", en théorie, c'est sur, mais il faut avoir un microcontroleur qui compte en conséquence (?) Donc, si j'ai un 16Khz, j'imagine qu'il pourra compter au maximum 8 tours de roue codeuse à 2000impl par seconde ?
Ainsi, il faudrait alors qu'à 1m/s, le diamètre de la roue codeuse soit au minimum de 3.9cm (3.9*pi*8tours=98.01cm parcouru)
C'est bien cela ?
Donc, à 2000impl, et un diam de roue codeuse de 3.9cm, j'imagine que c'est correct, mais j'en conclu, en même tps qu'il est préférable de ne surtout pas prendre un codeur de plus de 2000imp (Je suppose tjrs)

Mieux vaut prendre 1000 ? 1500 ? 2000?
De même, à supposer que je rajoute un multiplicateur (2:1), dans ce cas, à 2000imp/resol, il faudrait alors une roue de 7.8cm de diam pr que le microcontroleur puisse compter.
Compte tenu des prix, je pense qu'entre 360imp et 1000 imp, y a plus à hésiter autant prendre 1000 (pour 10$ de différence, ça n'a plus d'importance...)


Et au passage, je dois prendre du NPN ? PNP ? Push Pull ? line driver ? ou voltage ? (Comme s'ils ne peuvent pas faire des codeurs spéciaux pour Eurobot :mrgreen: )
 
E

erolhc

Guest
Re: Mon Premier robot...

Bonjour

Attention la résolution d'un codeur s'entend pour un seul type de front (montant ou descendant) et pour un seul canal (A ou B) ( ce qui correspond en fait au nombre de lignes gravées) donc pour un décodage en quadrature c'est la résolution du codeur X 4.

Edit : c'est 16 kHz ou MHz ? :wink:
 
L

louloute30

Compagnon
Re: Mon Premier robot...

A oui, là, ça commence à faire bp un 2000imp (déjà même un 1000) pour le microcontroleur (Il ne chopera pas toutes les infos)... à moins que j'en achète un plus puissant. :roll:
 
E

erolhc

Guest
Re: Mon Premier robot...

Ca existe des µP à 16 kHz ? :wink:
L'Arduino travaille à 16 Mhz
 
L

louloute30

Compagnon
Re: Mon Premier robot...

chlore a dit:
Ca existe des µP à 16 kHz ? :wink:
L'Arduino travaille à 16 Mhz

Exact. J'ai confondu avec le "16.000" inscrit sur le composant... (oublié de multiplier par 1000 :roll: :axe: )

Pourtant, je l'ai tjrs trouvé plus lent :roll: :lol: Donc, ça pourrait "aller"... enfin, espérons le :prayer:


Aujourd'hui, j'ai préparé les moyeux des roues motrices, Reste alors 2 jours de travail (Donc, jeudi ou vendredi) j'aurai une "base roulante"; Par contre, elle ne correspondra en rien à la définitive, mais c'est histoire de tester la rapidité des NEMA 23...
Effectivement, je récupère la planche de base faite il y a qq tps et montré sur ce post, la carte CNC pour contrôler les moteurs (carte de 2A/3axes) et l'alim 24V branché au secteur :lol: (donc, robot sans fil, filaire ! :roll: )... Il aurait déjà du être près hier, mais contre tps...

Encore une question, les codeurs font 38mm de diam et 30 d'épaisseur... C'est gros ça non ?
 
R

romain_cvra

Ouvrier
Re: Mon Premier robot...

Pour info, nous avons 160 puls/mm en quadrature sur notre robot! C'est surement beaucoup trop... Mais sa donne une idée!
Pour les dimension c'est correcte tu peux trouvé plus petit mais c'est surement plus chère...
Par contre je te conseille vivement de mettre la roue codeuse directement sur l'axe du codeur.

Sur la version définitive de ton robot tu pense compté les puls comment?
Avec un microcontroleur dédié, avec le microcontroleur principal de gestion des déplacements ou avec un composant fait exprès pour ça?
 
L

louloute30

Compagnon
Re: Mon Premier robot...

romain_cvra a dit:
Pour info, nous avons 160 puls/mm en quadrature sur notre robot!
Mouai, ok...

romain_cvra a dit:
Sur la version définitive de ton robot tu pense compté les puls comment?
Avec un microcontroleur dédié, avec le microcontroleur principal de gestion des déplacements ou avec un composant fait exprès pour ça?
Je pense (Aujourd'hui...) utiliser l'arduino pr la stratégie, et un microcontroleur dédié au déplacement.
Si arduino est capable de tout faire, alors elle va travailler toute seule...
 
R

romain_cvra

Ouvrier
Re: Mon Premier robot...

louloute30 a dit:
romain_cvra a écrit:
Pour info, nous avons 160 puls/mm en quadrature sur notre robot!

Mouai, ok...
C'est la valeur que nous avons maintenant même si je pense qu'une cinquantaine est déjà amplement suffisant. Et les autres vous en avez combien?
Sa fait pas mal de temps qu'on aimerait faire un teste pratique de l’influence du nb de puls sur la précision mais c'est jamais le bon moment quand on a un robot fonctionnel... :cry:

louloute30 a dit:
Je pense (Aujourd'hui...) utiliser l'arduino pr la stratégie, et un microcontroleur dédié au déplacement.
Si arduino est capable de tout faire, alors elle va travailler toute seule...
Je suis pas certain que tu arrive à compté les puls et à gérer les déplacement sur le même microcontroleur...
Car tu doit faire une interruption sur chaque puls du coup sa consomme pas mal de ressource. Et donc plus tu vas vite et plus tu as d’interruption...
On n'a jamais essayé et je sais pas si quelqu'un la fait...?

Pour compensé se problème tu as plusieurs solution :
- mettre un petit microcontroleur dédié qui sert juste à compté les puls d'un codeur.
- mettre un chips qui est exprès prévu pour faire ça en hardwear.
- prendre un microcontroleur avec deux compteurs de codeur hardware intégré.
 
J

Jorus

Apprenti
Re: Mon Premier robot...

louloute30 a dit:
A oui, là, ça commence à faire bp un 2000imp (déjà même un 1000) pour le microcontroleur (Il ne chopera pas toutes les infos)... à moins que j'en achète un plus puissant. :roll:

Ben oui mais toi tu fais pas le *4. Le *4, c'est le maximum d'impulsions que tu peux avoir.
Toi avec ton microcontrolleur, tu vas juste compter les fronts montants sur sur le signal A. Et quand tu as une interruption sur le signal A, tu regardes la valeur du signal B pour connaitre le sens de rotation. Tu vois le principe ?

@Romain,

Tu peux tout mettre sur le microcontroleur mais il faut dimensionner correctement ton système : ne pas prendre un codeur comptant trop d'impulsions et prendre un microcontroleur avec une fréquence suffisament élévée. En gros faut faire des calculs pour maitriser ton système.

Nous on l'avait fait sur une arduino dualeminove avec des codeurs d'environ 2000 pulses par tour de roue (si ma mémoire ne me fait pas défaut). Elle comptait les pulses et faisait l'asservissement. Bon elle le faisait mal car la méca était pourrie mais bon. ^^

A++
Jorus
 
R

romain_cvra

Ouvrier
Re: Mon Premier robot...

Le PDF est vide...?
C'est juste marqué chargement de l’aperçu...?
 

Sujets similaires

N
Réponses
3
Affichages
2 376
icanbeafrog
I
T
Réponses
11
Affichages
897
hadoc
H
D
Réponses
9
Affichages
428
Doctor_itchy
D
fred 69
Réponses
25
Affichages
2 243
Doctor_itchy
D
gégé62
Réponses
15
Affichages
2 824
wika58
wika58
furynick
Réponses
416
Affichages
34 351
guy34
G
L
Réponses
29
Affichages
2 802
le_stan
L
S
Réponses
34
Affichages
55 399
simonpbmeca
S
charpi
Réponses
9
Affichages
6 151
Y
Haut