Introduction
La plupart de nos robots sont pilotés par des moteurs pas à pas. Quand il n’y a pas d’odométrie indépendante (par roue libre par exemple) pour piloter les consignes envoyées, on utilise le nombre de pas commandés (i.e. demandés de faire) pour connaitre la position du robot.
Prérequis
– Prérequis fondamental : cela suppose qu’on fasse confiance à la mécanique et à l’électronique pour qu’un pas commandé soit un pas réalisé, donc que les moteurs ne "perdent" pas de pas, en patinant lors d’une accélération trop importante par exemple.
– Prérequis secondaire : on accepte aussi dans ces conditions que la position calculée ne le soit que par étape. Il vaut mieux "se recaler", c’est à dire estimer la position du robot par une autre procédure, contact avec un mur, balises, boussole, etc....
Mesures physiques
Il faut connaitre :
d | le diamètre d’une roue |
D | l’entraxe entre les points de contacts [1] |
P | le nombre de pas que fait la roue par tour |
Mesures calculées
On en déduit :
– la distance parcourue par une roue lorsqu’elle fait un tour : d*Pi
– la distance parcourue par une roue lorsque le robot fait un tour complet : D*Pi
On a donc le rapport de proportionnalité suivant pour connaitre le nombre de pas pour un tour complet du robot :
Nb pas | Distance parcourue |
P | d*Pi |
? | D*Pi |
x = P*D/d
Exemple pratique
Voici les valeurs pour un robot où les roues sont fixées directement sur les moteurs.
d | 76 mm |
D | 184 mm |
P | 200 pas |
nombre de pas pour tourner de 360° : 484,2 pas
Cas particulier
La grandeur ’P’ n’est pas toujours connue. Généralement le nombre de pas du moteur est connu.
Lorsque le moteur n’est pas fixé aux roues dans une relation 1:1, par exemple sur le xPo où des poulies crantées de tailles différentes sont utilisées, il faut distinguer "pas du moteur" et "pas de la roue" en ajoutant un coefficient de proportionnalité (donné par le nombre de dents des engrenages, les diamètres des poulies crantées, ...).
Astuce : avec un peu de patience, et si la mécanique le permet, on peut tourner la roue pendant un tour en comptant le nombre de clics que fait le moteur.
Commande en demi-pas
Dans le cas de deux bobines, il est possible de commander le moteur en ’demi-pas’ en allumant successivement l’une puis l’autre bobine. Si c’est le cas de votre programme de commande de moteurs, il faut donc multiplier par 2 les ordres de commande. Cette règle s’ajoute bien entendu au ratio présenté au paragraphe précédent.
Approximation
En fait, la rigueur scientifique voudrait que l’on considère le déplacement élémentaire d’une roue lorsque le moteur fait un pas comme une rotation de centre la roue opposée et de longueur d’arc la distance calculée ci-dessus. Mais dans la pratique de cette odométrie sommaire, par exemple une commande du robot par [turn and go], ces rotations élémentaires sont compensées par le mouvement de l’autre roue qui va rétablir au pas suivant la différence entre rotation et translation.