Exemples d'instanciation
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 ;)
- 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.
- 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.
- 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.