Robot Coupe 2014 IFRELO

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

Goo

Apprenti
antoine_cvra a dit:
En régime établi, oui tu auras l'asservissement qui corrige, mais en régime transitoire... j'ai des gros doutes là dessus.
D'ailleurs comment ce problème est géré chez CVRA ?
 
A

antoine_cvra

Apprenti
Tu touches un sujet sensible là.... :wink:

En fait pour le moment on gère pas le problème de la décharge des accus, mais on a une carte qui bippe quand on descend sous un certain seuil, seuil à partir duquel on les change. On voulait essayer de changer les coef du PID en fonction de la charge des batteries mais je n'ai pas eu le temps de tester (saleté d'examens :evil:).

C'est aussi important de noter que chez nous on régule uniquement en position pour l'instant. L'année prochaine on va tenter un asservissement complet : position + vitesse + courant, histoire d'essayer de se débarasser de ce problème de batteries :)


a+
Antoine
 
S

syoctax

Apprenti
antoine_cvra a dit:
L'année prochaine on va tenter un asservissement complet : position + vitesse + courant, histoire d'essayer de se débarasser de ce problème de batteries
+ acceleration et là tu n'auras plus les problèmes de transitoire dont tu parlais :-D
 
A

antoine_cvra

Apprenti
C'est le rôle de l'asservissement en courant justement : le courant dans un moteur DC est proportionnel au couple fourni et donc a l'accélération de ton robot.

D'ailleurs si tu as déjà fait ça tu le faisais a quelle fréquence ?
 
R

romain_cvra

Ouvrier
Quelques précisions, lorsque la tension des batteries diminue, la puissance max du moteur ainsi que sa vitesse max diminue. Comme dit précédemment.
Cela implique aussi que les régulateur PID n'auront pas exactement le même comportement. Ce qui générera des oscillations sur les système sensible (comme nos bras par exemple) mais si le régulateur n'est pas réglé trop fort, sa passe très bien.
Par contre, le robot fera toujours se que le programme lui demande et le moteur atteindra le point souhaité peut importe la tension d'alimentation.

Nous avions prévu de résoudre le problème du comportement des régulateurs PID en changent la valeur maximum du PWM pouvant être envoyé au moteur en fonction de la tension des accus.
Mais comme le dit t Antoine, sa n'a pas été implémenté ni testé.

En se qui concerne le problème de Louloute :
A mon avis, si effectivement, les codeurs ne compte plus correctement quand la batterie est basse, c'est que celui-ci s'arret car il ne reçoit plus la tension nécessaire a ces bornes.
Appel de courant d'un actuateur sur les batteries et donc chute de la tension. (C'est pour cela que nous utilisons des batteries Lipo)

Louloute, Quelque est la tension l'alimentation minimum de tes codeurs? La tension de la batterie? La techno de tes batteries?
 
L

louloute30

Compagnon
Salut Romain,

Voilà qq infos:

-1 seule Batterie au plomb 12V 1.8Ah pour alimenter l'ensemble du PR (3 moteurs PAP + 4 servo + électronique fine).
-Codeurs HEDS 5500 E05 (5V),
Je les ai relié à la carte TI qui elle même est alimenté via la batterie avec un 7805 sans rien d'autre (pas eu le temps de rajouter des condo...)

En gros, le 7805 fournissait:
- une grosse Led RGB
- 2 codeurs
- la carte TI
et sans doute 2 ou 3 petits trucs encore mais pas gourmand.

J'ai sur le PR 4 servo moteur MG995 alimenté via 2 UBEC

Enfin, 3 moteurs PAP géré via 3 drivers.

Je ne perdais le cap et la distance que lorsque les moteurs PAP de propu étaient en marche.
Autrement, si je me contentais de pousser le robot à la main sans alimenter autre chose que les codeurs et la TI (l'électronique fine), les pas des codeurs se comptabilisaient correctement.

C'est pourquoi dans un premier temps j'avais pensé le vendredi soir que le serrage des codeurs sur l'axe des roues codeuses était peut être insuffisant, dû éventuellement à un desserrage à cause des tremblements que procurent les impulsions des moteurs PAP (même si en 1/4 de pas sur des NEMA 17, c'est des tremblements plutôt doux...)
Finalement, ce n'était pas ça.


Concernant la batterie, à pleine charge, la tension est autour de 13.3V, après une série de 5 ou 6 matchs, elle doit être de 12.1V environ, et vu le nombre de tests (une 20ène de match) que j'avais fait, elle devait être autour de 10V lorsque les soucis sont arrivés...
 
R

romain_cvra

Ouvrier
Ok donc à priori, la batterie descendais en dessous de 7V ( la tension min d'alim des 7805) surement a cause de la faible charge des batteries et du pic de courant du au moteur.
Par contre, c'est étrange que la carte TI ne resetait pas... Faut croire qu'elle est plus tolérante...
 
A

antoine_cvra

Apprenti
La carte TI est alimentée en 3.3V je pense -> tension min à l'entrée : 5v.
 
G

goulou

Nouveau
antoine_cvra a dit:
La carte TI est alimentée en 3.3V je pense -> tension min à l'entrée : 5v.

Selon la DS de la carte TI, son alim doit être entre 4.75 et 5.25V.
En ce qui me concerne, dès qu'on descend un peu en dessous j'ai des reset en boucle (alors que, par exemple, les modules bluetooth continuent à fonctionner correctement).
 
L

louloute30

Compagnon
Hello,

J'alimente la TI en 5V (7805) sur la pin VBUS.

De mon coté la TI ne resetait pas sinon, les moteurs auraient coupé attendant la clé de démarrage:

Programme sur la TI:

Voici la boucle d'asser simplifiée avec correction cap + distance:

La boucle de commande des moteurs donne l'ordre de stopper les impl envoyé au moteur gauche dès lors que NImplCodeurGauche+coeff_Erreur (=environ 10 soit 2mm) > NImplCodeurDroit (avec un coeff d'erreur d'une 10ène d'impulsion codeur).

j'en déduis alors que :
Soit la carte comptabilisait des impl qui n'existait pas, soit le codeur était sous alimenté au point de "clignoter" peut être par lui même et faire croire que son axe tournait...
 
R

romain_cvra

Ouvrier
En faite, il y aurait peut être une autre explication... Car au vu des discutions ci-dessus, je suis pas super convaincu que le problème viennent du codeur ou de la comptabilisation des puls.
Et tu sur que le moteur PàP arrivait à faire tout les pas que tu lui demandait de faire (suivre l'accélération demandée)? Par ce qu'il y a quand même une grosse perte de puissance entre 13.1V et moins de 10V...

louloute30 a dit:
Je n'arrivais pas à comptabilisé tous les pas de la roue codeuse droite du PR.
Est ce que tu pourrais nous donner plus de précision sur le comportement du robot et l'état des codeurs?
Ainsi qu'une description du problème et de ce qui te faisait dire que c'était les roue codeuses le problème?
 
L

louloute30

Compagnon
Ce sur quoi je m'appuie pour dire qu'il existait un pb lié à la comptabilisation des impl du codeurs est ma prog.

De là à dire que le codeur était responsable, ou la TI, je n'en ai aucune idée.
Mais la TI ne resetait pas, donc, j'en avais déduis que le codeur était responsable sans avoir pensé à la batterie...

Ce qui est sûr (et en principe), c'est que la roue codeuse gauche et la roue codeuse droite devaient avoir enregistré autant d'impulsions à une 12ène près quelques soit la distance parcourue.

En effet, ce qui était étonnant c'est que la batterie devait avoir plus de 7V puisque les moteurs tournaient, la TI fonctionnait...

PRbug.PNG
 
R

romain_cvra

Ouvrier
Est ce que tu sais ou le robot pensait être? Ces Coordonnées X/Y calculées par odométrie?

Si il savait qu'il était pas à la bonne place, c'est les moteurs qui ont manqué de puissance.
Si il pensait être à la bonne place, les codeurs ont eu un problème.

Mais vu que la cas que tu nous décris, je pencherais plus pour les moteurs car si un des codeurs ratais des puls le robot aurait été plus loin que la position qu'il aurait du atteindre.
Et non moins loin comme sur le dessin.

A+
 
J

Jorus

Apprenti
Je rejoins l'avis de Romain.

D'ailleurs les 10cm parcourus correctement ne correspondent-ils pas à la phase d'accélération ? Tu as un profil de vitesse trapezoidal ?
Un appel de courant important peut provoquer une chute de tension qui ne fait pas forcément tout reseter, seulement quelques composants qui ne fonctionnent plus. As-tu mis des condos de découplage ?

++
Jorus
 
L

louloute30

Compagnon
Bonjour,

J'ai récemment commandé 3 capteurs SICK DT50 (en espérant bientôt les recevoir).
Ces capteurs sont à base de lasers class I; Ils détectent et renvoie en analog la distance entre l'objet et le capteur avec une erreur de l'ordre du mm;

Au départ, j'avais prévu d'en acheter que 2, mais finalement, le vendeur m'a fait une proposition pour 3, alors, j'ai craqué !
Vous l'avez devinez, ils sont prévu pour la triangulation sur balises fixes...

Ça reste de grosse bête (en taille), mais ça passe dans la balise.
Je posterai des photos dès que je les reçois, et aussi un premier jet des plans des balises.

A bientôt.

PS: Je vais refaire un test dans 15 jours concernant le PR, et l'user jusqu'à ce que sa batterie se vide, et retourner dans l'état dans lequel il était.
 
S

syoctax

Apprenti
louloute30 a dit:
Vous l'avez devinez, ils sont prévu pour la triangulation sur balises fixes...

Sympas ces capteurs, je ne connaissais pas. Tu penses faire comment pour suivre les robots depuis les balises fixes? Faire tourner un miroir (rotation continue, tracking,..) ou faire balayer directement le capteur?
 
L

louloute30

Compagnon
Salut,

C'est le capteur qui va balayer la table (pas de miroir).

Voici un tout début d'idée:
balise.png


Motorisé en diam 16mm avec réducteur 1:70 et encodeur HEDS ou HEDL 500impl/tours en quadrature, ce qui donnera une précision de 500 impl pour 90°.
batterie 12V lithium type caméra ou Appareil photo (pour éviter la pochette).
 
G

Goo

Apprenti
Hello louloute,

Pour avoir pas mal discuté balise avec les membres d'Omybot durant la coupe d'ile de France, je te conseille de faire très attention aux conditions de fonctionnement de la balise.
En effet, les supports balises sont très négligés sur les tables officielles, d'où leur correction d'assiette sur leur balises actuelles.
Pour la petite anecdote, ils ont joué un match a eurobot ou un support était mal fixé et s'est abaissé de 10cm durant le match, les arbitres n'ont pas voulu rejouer le match alors que leur robot ne voyait plus l'adversaire du coup...
Je ne dis pas cela pour te décourager, mais plus pour rappeler que les hypothèses ne sont pas toujours respectées. En tout cas j espère qu'à force de voir de plus en plus de balises, l'orga sera plus exigeante sur les supports ...
 
L

louloute30

Compagnon
Salut Goo,

En effet, j'ai lu tout ce qui a été dit sur PS, et je connais ces défauts. Mais je vais tout de même tenter ça. J'ai aussi pensé à poser ces capteurs sur 3 vis de réglages par précaution; Et je n'oublierai pas ma trousse à outil pour revoir leur support balise avant chaque matchs !

Ces capteurs n'auront qu'un devoir stratégique (Savoir où les robots adverses ont été, et ou ils sont pour éviter d'y aller). D'autres capteurs seront dispo sur les robots pour l'"évitement d'urgence".

Cependant, je vous rejoins sur ce mécontentement, et ajouterai même qu'en Belgique les supports balises ont l'air de mieux répondre au règlement qu'en France...
 
L

louloute30

Compagnon
Bonsoir les amis !

Après quelques méandres, le colis a fini par arriver avec 1 semaine de retard...
3 * DT50
2 * DT20

J'ai hâte de voir ce qu'ils donnent !

IMG_20140711_175014.jpg
 
S

syoctax

Apprenti
Une belle brochette...

Ce qui serait intéressant de voir, c'est est-ce qu'ils se perturbent entre eux si tu les mets face à face - je ne pense pas mais on sait jamais.
 
L

louloute30

Compagnon
Bonsoir !

J'ai un soucis avec mes derniers capteurs.
En effet, la distance relevée influe sur l'ampérage en sortie et non sur la tension...
https://www.mysick.com/eCat.aspx?go=FinderSearch&Cat=Gxf&At=Fa&Cult=French&FamilyID=402&Category=Produktfinder&Selections=48225,48226
Reférence complète: DT50-P1123 Qa out 4mA ... 20mA (DC 10-30V)

Comment donc faire ? connaissez vous un composant qui transformerait cette variation d'intensité en variation de tension pour relier ça en analog ? Et surtout, est-ce la meilleure solution ?

Ces capteurs pourraient-ils être associés à une résistance ajustable alimenté en 12V, ou alors, à une sortie PWM [en crénaux], vu qu'on fait bien varier l'intensité lumineuse d'une led en jouant sur la valeur du PWM...
Je pencherai plus pour la première version, vu que dans la notice, il est indiqué:
Rmax=(Vs-2V)/20.5mA


Peut-être est-ce ça dont j'ai besoin ?
http://www.ebay.fr/itm/New-Mini-Current-to-Voltage-Transmitter-Module-4-20mA-to-0-5V-Sensor-/261245331575?pt=BI_Control_Systems_PLCs&hash=item3cd36f6877
 
Dernière édition par un modérateur:
A

antoine_cvra

Apprenti
Ce composant c'est simplement une résistance entre la sortie et la masse. Tu peux calculer sa valeur avec la loi d'Ohm. Tu prends i=20mA et U= la tension max de sortie que tu veux. Par exemple avec 5V tu as r=u/i=250 ohms.
 
L

louloute30

Compagnon
Ok, donc, pour mesurer l'intensité, j'utilise un shunt et je mesure la tension à ses bornes via l'entrée analog ?

Voici deux vidéos qui présentent les capteurs DT50 et DT20 (valeur affichée en mm).
 
Dernière édition par un modérateur:
S

syoctax

Apprenti
antoine_cvra a dit:
Ce composant c'est simplement une résistance entre la sortie et la masse. Tu peux calculer sa valeur avec la loi d'Ohm. Tu prends i=20mA et U= la tension max de sortie que tu veux. Par exemple avec 5V tu as r=u/i=250 ohms.

Oui et il faut aussi vérifier que tu dissipes pas trop de puissance dans la résistance, P=UxI=5x0.02=0.1W ce qui est limite pour les résistance CMS 0603, mais ok pour les résistances traversantes (en général 1/4W).

Tu peux mesurer la tension ainsi générée avec un multimètre et faire une dizaine de relevé pour vérifier que la relation tension/distance est bien linéaire. Il y aura un offset, a priori avec une résistance de 250 Ohms la tension devrait varier de 1 à 5V.

Si c'est bien linéaire, tu peux brancher la résistance directement à l'entrée ADC d'un microcontrôleur (en général en dessous de 10k d'impédance c'est bon) . Ou sinon, le plus propre serait de mettre un montage suiveur entre la résistance et l'ADC pour être sûr que la conversion ne perturbe pas la mesure.
 
L

louloute30

Compagnon
Hello, et bon week-end de montage - prog et strat !

Je reviens pour vous présenter quelques tests des capteurs de distances:
J'ai acheter un convertisseur 4-20mA => 0-5V pour obtenir une tension variable.
voici le montage:
IMG_3884.JPG


Voici quelques résultats:
IMG_3885.JPG


Plus la distance est grande, et meilleur est le résultat, et à l'inverse, pour une distance inférieure à 1.2m, l'erreur s'intensifie obtenant jusqu'à 20cm d'erreur à 40cm du capteur.

Avec une série de relevé, on peut appliquer une correction hyperbolique et le résultat devrait s'améliorer.
 
S

syoctax

Apprenti
louloute30 a dit:
Plus la distance est grande, et meilleur est le résultat, et à l'inverse, pour une distance inférieure à 1.2m, l'erreur s'intensifie obtenant jusqu'à 20cm d'erreur à 40cm du capteur.
L'erreur est seulement sur la sortie analogique qui tu as amplifié, ou bien également sur l'afficheur du DT50?

Quelle type de surface as tu mis en face du capteur?
 
L

louloute30

Compagnon
Le DT fait bien son travail. Quand au type de surface, c'est la tapisserie de la salle dans laquelle je suis.
Je pense que le problème vient plutôt de la petite carte électronique convertisseur courant => tension
Mais j'ai aussi constaté que les résultats varient en fonction de la puissance dans les batteries, c'est peut être même d'ailleurs la seule source d'erreur. je rajouterai dès que j'ai un peu de temps un algo pour prendre en compte la tension des batteries.
Au début du test, j'avais 12V, à la fin, j'étais à 8.5V (et au passage, le DT fonctionnait toujours à 8.5V).

J'essayerai avec une alim secteur 12V pour confirmer les résultats, mais cela n'évitera pas de prendre en compte la tension dans les batteries.
 
L

lapoutre

Ouvrier
Coucou,
La température du capteur joue aussi ce qui peut expliquer la non linéarité du télémétre sur son CNA.
Microb en 2009 avait aussi fait une table de correspondance pour rectifier la mesure.
Vincent
 

Sujets similaires

N
Réponses
78
Affichages
9 810
nipil
N
looplyla
Réponses
7
Affichages
2 203
looplyla
looplyla
Manta
Réponses
53
Affichages
58 198
Marmothon
Marmothon
Valentin (INSA Rennes)
Réponses
14
Affichages
4 909
K-lean (Oleg) (Ensim)
K-lean (Oleg) (Ensim)
baptiste_c
Réponses
27
Affichages
6 247
baptiste_c
baptiste_c
MrDUS31
Réponses
19
Affichages
69 431
Valentin (INSA Rennes)
Valentin (INSA Rennes)
TDS-Team
Réponses
31
Affichages
8 194
TDS-Team
TDS-Team
MrDUS31
Réponses
12
Affichages
55 525
cedric91540
C
K-lean (Oleg) (Ensim)
Réponses
49
Affichages
8 593
K-lean (Oleg) (Ensim)
K-lean (Oleg) (Ensim)
A
Réponses
17
Affichages
5 171
romain_cvra
R
Trognon
Réponses
12
Affichages
3 464
syoctax
S
MrDUS31
Réponses
27
Affichages
7 199
pwet
The Devil Ravemaster
Réponses
5
Affichages
2 535
The Devil Ravemaster
The Devil Ravemaster
Haut