Le javascript est désactivé sur votre navigateur
 
Prononcer /'po.bot/
Accueil du siteNos étudesOdométrie
  publication inférieure à 7 jours
  publié < 7j sous cette rubrique
     
À propos de l'article
    Publié le 15 septembre 2009
    par Keuronde

    Mis à jour le 25 septembre 2009
Mots-clés de cet article
    Composants :
    codeur incrémental ,
    Electronique :
    infra-rouge , quadrature ,
    Mécanique :
    odométrie
Choisir votre langue :

Roues codeuses

 Présentation générale

Les roues codeuses sont un élément vital du robot. Elles permettent de contrôler ses déplacements. D’une manière générale, ces pièces sont particulièrement coûteuses. Nous allons essayer d’en réaliser à moindre coût.

La fonction d’une roue codeuse est de renvoyer un signal qui dépend du déplacement effectué par la roue. Les roues codeuses industrielles sont généralement composées d’un faiseau lumineux et d’une roue perforée de manière régulière. Suivant la position de la roue, le faisceau lumineux est interrompu ou non. Un capteur détecte la présence du faisceau et renvoie un signal électrique. Plus la roue tournera vite et plus les créneaux du signal seront rapprochés.

Nous allons utliser le même principe, à partir de fourches infrarouges et d’un disque imprimé sur du papier transparent. Notre robot dispose de deux roues porteuses qui sont des roues de roller. Ce sont sur ces roues que nous allons fixer les codeurs. Pour espacer le disque de la roue, nous réalisons une sorte d’entretoise en carton ondulé.

 Réalisation

Pour les fourches infrarouges (ref TCST1103 chez farnell), nous comptons les fixer sur un support en bois. A cause de l’épaisseur du faisseau (environ 1mm), nous sommes obligés d’avoir une zone opaque supérieure à 1 mm en bout de roue.

Nous réalisons une roue de 5cm de diamètre avec 60 bandes noires alternées avec des zones transparantes. La roue est dessinée avec Inkscape. L’impression des dessins à la bonne taille se fait en exportant le fichier en eps (qui est un format vectoriel) pour l’importer dans un traitement de texte. Il sera possible ici de définir une taille du dessin en centimètres. Attention, ça peut baver un peu à la sortie de l’imprimante.

Un premier essai nous montre que notre entretoise était trop large. Nous décidons de réduire le diamètre extèrieur à 3 cm pour laisser 1 cm de pénétration au capteur.

Le disque imprimé s’abîme très vite, l’encre se détache facilement du disque, surtout en cas de frottement. Nous prévoyons de coller un disque transparent du côté de l’encre afin de préserver le disque.

Roue codeuse à imprimer
Roue codeuse (.eps)
Image d’une roue codeuse. Fichier à intégrer dans un traitement de texte pour pouvoir l’imprimer à la taille désirée.

 Capteurs

Nous commençons ensuite la partie capteur. Première question que nous pourrions nous poser : Pourquoi mettre deux fourches par roues ?

Avec deux signaux correctement déphasés, il est possible de connaître le sens de rotation de la roue et ça, c’est particulièrement intéressant si nous souhaitons faire tourner le robot sur lui-même. Car dans ce cas, une roue avance et l’autre recule.

Le déphasage, c’est quoi ?

Le déphasage est un décalage temporel entre deux signaux identiques. La différence entre un retard et un déphasage est assez mince. Dans notre cas, nous retiendrons que si un retard est exprimé en unité de temps (généralement en secondes), ce n’est pas le cas du déphasage. Le déphasage est un retard qui dépend de la période du signal. Il est généralement exprimé en unité d’angle (en degrés ou en radian).

Par exemple :

  • Deux signaux qui ne présentent aucun retard auront un déphasage de 0 (degrés ou radians).
  • Deux signaux qui présentent un retard d’une période complète auront un déphasage de 2.PI ou 360°.
  • Des signaux qui sont légèrement décalés comme ceux ci-dessous ont un déphasage de 15° (ou 0,26 radian).
Exemple de déphasage
À gauche, les deux courbes sont en phases. À droite les deux courbes sont légèrement déphasées.

Comment se crée le déphasage dans notre cas ?

Dans notre cas, le déphasage se crée en positionnant correctement les capteurs. Comme on peut le voir sur le schéma suivant, en position initiale, les deux capteurs voient le faisceau lumineux. Si la roue tourne dans le sens 1, on s’aperçoit que le faisceau du capteur 1 sera interromptu avant celui de capteur 2. Si la roue tourne dans l’autre sens, c’est le faisceau du capteur C2 qui sera coupé en premier.

Obtention du déphasage sur une roue codeuses
Explications décrivant l’obtention de déphasages différents en fonction du sens de rotation de la roue.

Les capteurs C1 et C2 sont nos fourches infrarouges.

On comprend l’interêt du déphasage en mémorisant la valeur d’un signal lors du front montant de l’autre signal.

Obtention du sens de rotation à partir du déphasage

Nous avons maintenant notre moyen de connaître le sens de rotation de notre roue.

Principale difficulté

Notre problème vient du centrage du disque codeur par rapport à la roue. Si le disque est mal centré, le capteur ne sera pas à une distance constante du centre de la roue codeuse. Ceci est problématique car le déphasage dépend de cette distance. Nous voulons calculer l’impact qu’aurait un décentrage sur le déphasage pour être sûr que celui-ci reste acceptable.

Le déphasage idéal est de 90°, un quart de période. Les valeurs extrêmes à ne pas atteindre sont 0° (les deux signaux sont superposés ou en phase) et 180° (les signaux sont à l’opposé l’un de l’autre, dits en opposition de phase). Dans ces deux cas si la roue change de direction nous ne pouvons pas le détecter. Pire, si la valeur du déphasage oscille autour de l’une de ces deux valeurs, nous auront l’impression que la roue change de sens alors que ce n’est pas le cas.

Problème de phase

Dans le cas de gauche, sur l’image ci-dessus, le déphasage vaut un quart de periode. Si le déphasage varie un peu (dans la zone verte), notre lecture du sens de rotation restera bonne. Par contre, dans le cas de droite, où la valeur du déphasage est proche d’une période ou d’une demi-période, même une légère variation du déphasage peut entraîner une erreur de lecture du sens de rotation de la roue.

Notre roue compte 60 bandes opaques alternées avec 60 bandes transparentes. Notre période angulaire est d’un soixantième de tour, soit 6 degrés. Pour avoir un déphasage d’un quart de période, il faut donc espacer les capteurs de 1,5 degrés sur la roue. Ceci nous obligerait à avoir des capteurs particulièrements proches (ou à avoir une roue particulièrement grande). Nous allons alors rajouter un nombre entier de période pour les espacer. Ça, c’est encore de la théorie. Dans la pratique, l’espacement entre nos deux capteurs est fixe et il faut ajuster la distance entre les capteurs et le centre de la roue pour obtenir le déphasage idéal.

Positionnement des capteurs
Principales dimensions permettant de connaître le déphasage entre les deux capteurs.

La variation de d, influe sur l’angle alpha qui nous permet de déterminer le déphasage. alpha = arc_tan(e/2r). En rajoutant la variation d, on a alpha = arc_tan(e /(2r+2d))

Le graphique suivant donne le déphasage que l’on observerait en fonction de la distance des capteurs par rapport au centre de la roue. La valeur du déphase est remise à 0 toutes les demi-périodes (180°). Ceci permet de mettre en évidence les zones à éviter. L’écartement entre les deux capteurs (2,7 cm) a été choisi de manière à se retrouver dans un cas favorable. Ici, les capteurs peuvent bouger de huit millimètres (entre 4,2 cm et 5 cm) par rapport au centre de la roue sans que nous ayons de problèmes avec la phase.

Déphasage en fonction de la position des capteurs.

 
Répondre à cet article
Vous avez aimé cet article ? Merci de nous recommander !
Commentaires :
  1. Keuronde
    mardi 22 février 2011 à 22:59
    Répondre Fil de discussion

    J’ai reçu un mail de eudiant.zaz (chez gmail) qui a reproduit le schéma de la fiche technique des fourches IR et qui n’arrive pas a obtenir un signal TTL en sortie de la fourche.

    Le schéma de la fiche technique utilise deux résistances, l’une de 50 Ohm, l’autre de 100 Ohm. Il s’agit du schéma d’un circuit pour tester le composant et mesurer ses temps de réponse.

    Le composant n’est pas capable de délivrer un fort courant. Pour avoir un signal exploitable, il me semble qu’il faut changer la valeur de la résistance qui est en série avec le phototransistor (celle de 100 Ohm). La remplacer par une résistance de 4,7 k (ou plus) semble une bonne idée.

    Keuronde

    Ps : je me permets de répondre ici car l’adresse que j’ai de eudiant.zaz ne semble pas valide.

  2. nico
    lundi 21 septembre 2009 à 10:30
    Répondre Fil de discussion

    J’ai une questtion : avec quel logiciel faire les patterns de roues codeuses ? Inkscape ?

    PS : le lien de telechargement ne marche pas.

  3. Laurent
    mardi 22 septembre 2009 à 13:40
    Répondre Fil de discussion
    Un programme pour créer des roues codeuses : voir le site de nos confrères US. http://www.societyofrobots.com/sensors_encoder.shtml Attention dans la saisie il faut remplacer les ’.’ par des ’,’.
  4. Keuronde
    jeudi 24 septembre 2009 à 23:43
    Répondre Fil de discussion

    Les motifs pour les roues codeuses sont bien faits avec Inkscape. Pour la première lamelle, je me sers des guides pour avoir le bon angle (on peut spécifier l’angle d’un guide en double cliquant dessus). Ensuite je la duplique et la fais tourner de l’angle désiré avec les outils de transformation (CTRL + MAJ + M).

    Je n’ai pas réussi à changer le fichier, du coups j’en ai mis un autre en .eps.