Skip to content

Exemples d'instanciation

jguyonneau edited this page Aug 26, 2022 · 1 revision

Dans ces exemples non exhaustifs, je passe sous silence les instances d'encodeur et de MotorController, ils dépendent à 100% du hardware que vous utilisez ;)

La plus basique :

  • Contrôleur en vitesse : SpeedController
  • AccelerationDecelerationLimiterInterface d'angle : SimpleAccelerationLimiter
  • AccelerationDecelerationLimiterInterface de distance : SimpleAccelerationLimiter

Ici, vous aurez à régler 2 (Kp;Ki), pour contrôler chaque roue indépendamment en vitesse, à régler une accélération maximale, et 2 Kp pour le controle en distance et angle. /!\ Attention, le SimpleAccelerationLimiter ne gère que l’accélération. La décélération est directement la sortie du P du contrôleur d'angle ou distance.

L'instance ESIAL 2021 :

  • Contrôleur en vitesse : AdaptativeSpeedController
  • AccelerationDecelerationLimiterInterface d'angle : SimpleAccelerationLimiter
  • AccelerationDecelerationLimiterInterface de distance : AdvancedAccelerationLimiter

Ici, pour chaque controlleur en vitesse, vous aurez plusieurs set de PI à régler avec à chaque fois des vitesses d'utilisation. Ie: On a un premier set de (Kp;Ki) assez fort de l’arrêt à très basse vitesse (pour contrer les frottements sec et la puissance nécessaire à l'arrachement), puis des set de (Kp;Ki) qui diminuent lorsque la vitesse augmente. Vous aurez à régler une accélération maximale simple sur l'angle et une méthode de calcul plus complexe pour la distance qui permet de mieux gérer le moment où le robot passe de l’arrêt au mouvement. Il y aura aussi 2 Kp pour le contrôle en distance et angle. /!\ Attention, le SimpleAccelerationLimiter et AdvancedAccelerationLimiter ne gèrent que l’accélération. La décélération est directement la sortie du P du contrôleur d'angle ou distance.

L'instance ESIAL 2022:

  • Contrôleur en vitesse : AdaptativeSpeedController
  • AccelerationDecelerationLimiterInterface d'angle : SimpleAccelerationLimiter
  • AccelerationDecelerationLimiterInterface de distance : AccelerationDecelerationLimiter

Ici, tout pareil que précédemment, sauf que l’accélération et la décélération sont contrecollé par AccelerationDecelerationLimiter, qui nécessite de régler plus de paramètres.