Club robotique de Sophia-Antipolis

Accueil > Projets et études > Etudes techniques > Odométrie > Roues codeuses

Roues codeuses

mardi 15 septembre 2009, par Keuronde

 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.

PNG - 26 ko

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

JPEG - 15.8 ko
JPEG - 8.7 ko

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.

PNG - 74.3 ko

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.

Zip - 1.9 ko
Roue codeuse à imprimer
PostScript - 39.3 ko
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).
PNG - 10.5 ko
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.

PNG - 17.6 ko
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.

PNG - 10.4 ko
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.

PNG - 14.5 ko
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.

PNG - 18.7 ko
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.

Vos commentaires

  • Le 21 septembre 2009 à 10:30, par nico En réponse à : Roues codeuses

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

    PS : le lien de telechargement ne marche pas.

    • Le 22 septembre 2009 à 13:40, par Laurent En réponse à : Roues codeuses

      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 ’,’.

    • Le 24 septembre 2009 à 23:43, par Keuronde En réponse à : Roues codeuses

      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.

    • Le 7 juillet 2012 à 19:32, par swolf En réponse à : Roues codeuses

      Je n’ai pas très bien compris comment définir la taille en centimètres, après avoir importé l’image dans un logiciel de traitement de texte...

    • Le 8 juillet 2012 à 07:51, par Julien Holtzer En réponse à : Roues codeuses

      Bonjour,

      Les logiciels de traitement de texte sont pourvus d’une règle (en haut de la zone de saisie) et les images se redimensionnent avec des poignées dans les coins.

      Une autre solution consiste à éditer les propriétés de l’image et à saisir au clavier la largeur et la hauteur de l’image souhaitée.

    Répondre à ce message

  • Le 22 février 2011 à 22:59, par Keuronde En réponse à : Roues codeuses

    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.

    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 ?
  • [Se connecter]

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