Club robotique de Sophia-Antipolis

Accueil > Projets et études > Etudes techniques > Odométrie > Odométrie par moteur pas à pas

Odométrie par moteur pas à pas

calculs élémentaires de déplacement d’un robot

jeudi 17 novembre 2005, par Patrick

 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 :

dle diamètre d’une roue
Dl’entraxe entre les points de contacts [1]
Ple 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 pasDistance parcourue
Pd*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.

d76 mm
D184 mm
P200 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.


[1la partie de la roue qui touche le sol, généralement le centre de la jante

[turn and gole robot reçoit des ordres pour tourner sur place (turn, tourner en anglais), puis pour parcourir une distance en ligne droite (go, avance en anglais), et ainsi de suite..

Vos commentaires

  • Le 2 septembre 2006 à 18:34, par Julien H. En réponse à : Odométrie par moteur pas à pas

    Précision sur les mode "pas" et "demi-pas" :

    Sur un moteur bipolaire biphase comme on en utilise, il y a deux bobines, mais qui sont alimentées dans un sens et dans l’autre successivement. Les quatre fils de commandent doivent donc être alimentés successivement. Si on note A B C D ces quatre fils, l’explication ci-dessus permet de montrer que A = C et B = D.

    On peut alimenter chaque fil 1 à 1. On est alors dans un mode "par pas" à 1 bobine :

    ABCD
    1000
    0100
    0010
    0001

    Plus classiquement, on alimente deux bobines à la fois, ce qui permet d’avoir plus de couple. C’est toujours un mode "par pas"

    ABCD
    1100
    0110
    0011
    1001

    Enfin, on peut intercaler une consigne avec 1 bobine entre les commandes précédentes, c’est le "demi-pas".

    ABCD
    1100
    0100
    0110
    0010
    0011
    0001
    1001

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document