[Avr-list] limitation en vitesse et en accélerat ion

2009-05-08 Par sujet sylv sylv

Bonjour,
Comme Julien l'a déjà dit, je'ai réalisé un portage d'aversive sur dspic 33.

J'en suis aux réglages du robot. Quand je réalise un test d'avance en ligne 
droite avec la fonction 
trajectory_d_rel(traj,distance),
le
robot n'avance pas droit. Je me suis aperçu que cela venait du fait que
les consignes moteurs sont saturées... Je pense donc que j'ai un
problème dans le choix de mes limitations en vitesse et en distance
pour l'asservissement en distance.

J'ai deux principaux problèmes
Premièrement, on met une limitation en vitesse et en accélération à deux 
endroits:
aux niveaux du quadramp avant le PID
quadramp_set_1st_order_vars(robot.qr_d, 250, 250); /* set speed */
quadramp_set_2nd_order_vars(robot.qr_d, 15, 15); /* set accel */

dans le module trajectory:
trajectory_set_speed(robot.traj, 250, 3000); /* d, a */

J'ai
un peu de mal à comprendre le lien entre les deux. J'imagine que si le
choix pour le module trajectory est correct alors le quadramp est
quasiment inutile ???


Deuxièmement, je ne suis pas certain
de l'unité utilisée cm/(periode de l'asservissement) ?? Comment doit on
choisir la valeur de ces seuils ?

++
Sylv1





_
Téléphonez gratuitement à tous vos proches avec Windows Live Messenger  !  
Téléchargez-le maintenant ! 
http://www.windowslive.fr/messenger/1.asp___
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog

Re: [Avr-list] limitation en vitesse et en accélerat ion

2009-05-08 Par sujet Olivier MATZ
Salut Sylvain,

 J'ai deux principaux problèmes
 Premièrement, on met une limitation en vitesse et en accélération à deux
 endroits:
 aux niveaux du quadramp avant le PID
 quadramp_set_1st_order_vars(robot.qr_d, 250, 250); /* set speed */
 quadramp_set_2nd_order_vars(robot.qr_d, 15, 15); /* set accel */
 
 dans le module trajectory:
 trajectory_set_speed(robot.traj, 250, 3000); /* d, a */

Effectivement, quadramp_set_1st_order_vars() et trajectory_set_speed()
agissent sur le mêmes paramètres. En gros, trajectory_manager utilise
le filtre quadramp pour fixer la vitesse max en angle/distance.

Appeler quadramp_set_1st_order_vars() n'a donc a priori pas
d'intérêt si on utilise le trajectory manager puisque c'est lui
qui va écraser la conf du filtre. Ca permet cependant de mettre
une valeur par défaut à l'init. En gros, dans certains cas, le
trajectory_manager est capable de limiter la vitesse maximale (dans
le quadramp) à une valeur plus faible que celle configurée par
trajectory_set_speed(): typiquement lorsqu'il faut beaucoup tourner
pour se mettre face au point visé, alors la limite de vitesse en
distance est réduite pour que le robot fasse un pivot.

Les paramètres d'accélération ne sont par contre pas modifiés
par le trajectory_manager.

 Deuxièmement, je ne suis pas certain de l'unité utilisée cm/(periode de
 l'asservissement) ?? Comment doit on choisir la valeur de ces seuils ?

Pour la vitesse, il s'agit du delta de pas codeurs en une
période d'asservissement.

Pour l'accélération, il s'agit du delta de vitesse (le delta
du delta en fait) par période d'asservissement.

Les cm ne sont utilisés que pour les fonctions du style goto_truc().
A noter d'ailleurs que j'utilise des mm depuis peu dans la
branche b_zer0.


Olivier

___
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog