Ceci est une ancienne révision du document !
Pour contrôler la vitesse du robot, il est important d'asservir les moteurs en vitesse. Pour cela, il faut un capteur permettant de mesurer la vitesse réelle du moteur. Ici, nous allons utiliser un encodeur monté directement sur le moteur.
Nous utilisons un correcteur de type PID. Il faut appliquer la régulation à chaque moteur.
En asservissant les deux moteurs séparément, on devrait théoriquement avoir la même réponse et le robot devrait rouler droit. Malheureusement, en pratique, 2 moteurs d'une même série ne sont pas exactement identiques (inertie, résistance…) donc même en appliquant la même consigne aux moteurs, les 2 vont réagir différemment. Si un des moteurs est plus réactif, il va accélérer plus vite que l'autre et le robot va tourner.
Il faut donc travailler sur l'ensemble des 2 moteurs en asservissant un moteur en tenant compte de l'autre. En couplant l'asservissement du moteur droit à celui du moteur gauche, si le moteur gauche prend du retard sur le moteur droit, le moteur gauche va accélérer alors que le moteur droit va ralentir.
On va donc définir une vitesse linéaire et une vitesse angulaire à partir de la vitesse de chaque moteur :
vitesselinéaire = (vitessemoteur_droit + vitessemoteur_gauche) / 2 vitesseangulaire = vitessemoteur_droit - vitessemoteur_gauche
Si on veut que le robot aille tout droit, la consigne de vitesse angulaire doit être nulle et si on veut que le robot tourne sur lui même, c'est la consigne de vitesse linéaire qui doit être nulle.