Aller au contenu


Photo
- - - - -

Rampe et frein d'un servo-moteur


1 réponse à ce sujet

#1 jparbel

jparbel

    Membre

  • Membres
  • 39 messages

Posté 16 juillet 2020 - 09:25

@Mike118

Quels sont les effets de la rampe et du frein dans les commandes d'un servo-moteur, et quelles sont les unités (relatives ou absolues) ?

 



#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 16 juillet 2020 - 10:06

Dans la configuration hardware il y a un système de mixages permettant d'associer vos différentes commandes à des actions sur vos différents moteurs avec plus ou moins de gains. 

Lors de la mise à jour récente de cette table de mixages en faisant la séparation des Mixages16 pour les commandes16 et des Mixages8 pour les Commandes8 on a implémenté une fonctionnalité de rampe et de frein s'appliquant sur ces commandes avant de passer par les mixages pour être appliqué aux moteurs.

Le rôle de ces deux valeurs ( rampe et frein ) est de lisser les consignes envoyées au robots en permettant de jouer sur la "vitesse d'incrément " de la consigne courante pour atteindre une consigne demandée. La fréquence de calcul d'incrément de ce lissage est hard codé à 50hz ( c'est la fréquence d'un servomoteur ) on fait donc le calcul d'incrémentation toutes les 20ms. 

Ces valeurs sont exprimés dans l'unités de votre consigne (sur la période de temps de 20ms qui est hard codé) , par défaut les commandes16 sont exprimés en degré entre -180° et 180° ( car les commandes16 sont généralement utilisés pour piloter les servomoteurs ) et les commandes8 sont en %  car généralement utilisés pour piloter un "pwm entre -100 % et 100%"  ( en réalité un pwm de 0 à 100% et le signe gérant le changement de sens des moteurs ...)  mais vous pouvez choisir de changer vos unités d'affichages si vous le souhaitez ... 

 

Dans l'idée que cela soit pour la rampe ou le frein, le calcul du lissage est assez simple. 

Exemple concret :
Si votre consigne courante est à 0 et que vous souhaitez avoir une consigne de 100. 
Avec une valeur de incrément à 1 il vous faudra  2s pour que votre consigne augmente progresseivement de 1 en 1 pour atteindre la consigne de 100 démandé ( car incrément de 1 toute les 20 ms  ... ) 

Note : mettre une valeur à 0 désactive la fonctionnalité, et la commande passe directement à 100. 

 

Incrément de rampe ? Ou incrément de Frein ? 
En fonction de la consigne demandée, l'incrément utilisé pour le calcul décrit ci dessus sera : 
=> soit celui de la rampe dans le cas où la consigne est éloignée de la valeur d'initialisation,
=> soit celui du frein dans le cas où la consigne est presque égale à la valeur d'initialisation. 


Vous pouvez donc avoir les cas suivant : 

  • Rampe 0 frein 0  => Aucune action les moteurs vont directement à la consigne demandé. ( fonctionnalité complètement inactive)

 

  • Rampe 3.5 frein 0 => Le mouvement d'un utilisateur ( rampe)  est très lissé ... très lent... ça protège des secousses faites par les utilisateurs, par contre la remise à 0  ( frein ) se fait instantanément ( j'ai mis 3,5 arbitrairement j'aurais pu mettre 1.2 ou 5 ... gardez juste en tête que c'est dans l'unité que vous utilisez ... degré, % ou autre ... donc ça ne sert à rien de mettre des valeurs trop grande ...  

 

  • Rampe 0 frein 3 =>  le frein est très lent... Permet de faire des mises à 0 en douceur et  le mouvement utilisateur lui est instantané par ça laisse donc complètement les utilisateurs gérer la rampe de commandes souhaitée . 

 

  • Rampe 10 frein 20 => Le mouvement utilisateur est lissé ainsi que le frein mais comme on a frein > rampe le freinage sera plus " sec " que l'accélération que pourra faire l'utilisateur ... Particulièrement utile pour le déplacement du robot où on veut garder de la réactivité pour s'arrêter rapidement si on commence à foncer dans un mur ...  En mettant la même valeur pour rampe et frein on a le même comportement d'accélération et de freinage.
    On peut éventuellement imagine mettre une valeur de rampe plus importante que le frein, mais je ne sais pas quel serait le cas concret utile ...

Ces valeurs sont réglables pour chacune des commandes 6 et des commandes 8 dans les tableaux  mixages16 et les mixages8 ( l'indice dans le tableau des mixages correspondant à l'indice de la commande, il est important que la taille de ce tableau match avec le nombre de commande correspondante configuré dans votre configuration de la télécommande !  Notez que l'indice dans les tableaux de gains dans chacun des objets mixages correspond lui à l'indice des moteurs , il est donc important que la taille des tableaux gains match avec le nombre de moteurs configuré dans votre configuration hardware.) 

 

Pour rappel les commandes16 ce sont les croix sur le retour vidéo. ( le nombre de croix est configurable )
Les commandes8 c'est je joystick bouton ( dont le nombre est hardcodé à 3 pour le moment ) 

 

16 pour 16 bits et donc résolution plus importante que 8 pour 8 bits ...


 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 




Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users