Capteurs

De Wiki INTech
Révision datée du 7 février 2017 à 11:13 par CF (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Les capteurs sont des éléments vitaux pour les robots. En effet, à la Coupe de France de robotique, un robot ne peut être homologué que si il est capable de détecter la présence d'un ennemi sur sa trajectoire, et de réagir en fonction. (Le plantage par Segfault est considéré comme une réaction valide si le robot arrête d'avancer !)
De plus, si vous souhaitez faire des systèmes assez complexes dans le robot, il faudra forcément y placer des capteurs.
Notez qu'il serait difficile de faire une liste précise de tous les capteurs, puisqu'il en existe autant que de grandeurs pouvant être mesurées.

À quoi ça sert ?

À Eurobot, un robot évolue dans un environnement changeant et contenant une part d’aléatoire (le robot adverse). Le robot doit donc être capable de percevoir son environnement afin d’interagir correctement et pouvoir répondre à ces questions :

  • l’ennemi est-il près de moi ?
  • l’objet que je veux prendre est-il bien là ?
  • l’objet que j’ai pris est-il bleu ou rouge ?
  • est-ce que je viens de déraper ?

Vous l’aurez compris, aujourd’hui on s’attaque aux sens des robots : les capteurs.

À vrai dire, il existe presque autant de capteurs que de grandeurs physiques mesurables : distance, couleur, pression, débit, force, luminosité… Je vais présenter les capteurs les plus courants et les plus pratiques dans le cadre d’Eurobot.


Il y a trois grands types de capteurs :

Capteurs de proximité

Des capteurs très utiles sont les capteurs de proximité. Un capteur de proximité est un capteur très simple : il dit à quelle distance il voit un objet. Il ne renvoie même pas une matrice de distance, cela signifie qu’on ne sait pas où est l’objet qu’on voit ; il nous dit juste « il y a quelque chose à 15 cm ».

Ces capteurs sont indispensables pour détecter l’ennemi car, rappelons-le, l’évitement de l’ennemi est obligatoire à l’homologation dynamique d’un robot.

Il existe plusieurs technologies pour ces capteurs, les plus courants étant probablement les capteurs à ultrasons (série des SRF) et à infrarouge (de Sharp). Dans les deux cas, le fonctionnement est le même : un émetteur envoie un signal (en infrarouge ou en ultrason) qui se réfléchit sur les objets. Un capteur permet de mesurer le signal reçu. Il calcule le temps de trajet (aller-retour) et en déduit la distance entre le capteur et l’objet.

Chaque capteur est conçu pour fonctionner dans une gamme de distance particulière. Généralement, lorsque le capteur ne voit rien, il donne une distance qui est proche de sa limite supérieure d’utilisation.

De plus, chaque capteur a une certaine directivité, c’est-à-dire un certain cône de détection. Avec un grand cône, le capteur pourra surveiller une grande partie de la table, par contre, l’incertitude de la position de l’objet vu sera d’autant plus grande (car, comme on l’a vu, le capteur ne donne qu’une indication de distance, sans dire d’où provient cette mesure). Les infrarouges possèdent un cône assez étroit (environ 5 °) et les ultrasons un cône plus large (35 °).

Cette information est d’autant plus importante qu’il faut faire en sorte que vos capteurs ne voient pas les éléments de jeu. En effet, votre robot pourrait confondre un élément de jeu avec l’ennemi ! Je vous recommande donc de placer vos capteurs en hauteur ; si besoin est, pour les ultrasons, qui ont un grand cône de détection, vous pouvez les incliner légèrement vers le haut.

Il est recommandé d’utiliser les deux technologies simultanément. En effet, chaque technologie peut être brouillée :

  • les infrarouges sont sensibles à la lumière des spots présents lors de la Coupe. On peut néanmoins protéger les capteurs avec des caches ;
  • les ultrasons peuvent se brouiller entre eux ; si un robot adverse utilise des capteurs de fréquence similaire aux vôtres, vous risquez d’obtenir des résultats aberrants.

Les ultrasons sont en général les moins directifs. Cela les rend moins précis, mais ils peuvent en contrepartie couvrir une assez grande zone de détection. C'est en général ce que nous utilisons pour détecter les robots adverses.
Les infrarouges, quant à eux, sont en général très directifs, et beaucoup plus précis. Utiliser deux technologies différentes, c’est diminuer les risques d’avoir un robot subitement aveugle.

Enfin, soyez conscients que les surfaces lisses peuvent ne pas renvoyer l’onde envoyée par le capteur vers celui-ci, ce qui aura pour effet que le capteur ne verra pas une telle surface (c’est d’ailleurs une technique simple de furtivité). Cela ne pose pas de réels problèmes à Eurobot, mais il vaut mieux en être conscients si vous faites des tests de détection d’ennemi avec des cartons bien carrés.

Capteurs de position

Parmi les exemples de capteurs de position, on peut citer :

Capteurs de fin de course, de couleurs

À présent, voici deux capteurs qui ne sont pas des capteurs de proximité mais qui vous seront probablement utiles.

  • Le capteur de contact ou de fin de course. Il permet simplement de savoir si un objet est au contact du robot ou non. Permet de vérifier la présence d’un élément de jeu (avant de le prendre par exemple) ou de vérifier l’état du robot (si un bras est suffisamment déplié, etc.). Très simple à utiliser.
  • Le capteur de couleur. Il sert le plus souvent à vérifier qu’un élément de jeu est de la bonne couleur (par exemple, le robot rouge qui doit prendre les éléments rouges). Le principe est simple : une diode projette une lumière colorée, qui sera plus ou moins réfléchie selon la couleur de l’objet (un objet rouge réfléchit beaucoup la couleur rouge, un objet bleu moins). Avec une photodiode, on peut mesurer la luminosité et en déduire la couleur. Ces capteurs sont très sensibles à la lumière ambiante et ne doivent mesurer que dans l’ombre.
  • Un codeur rotatif est un capteur permettant de mesurer un angle. Il existe des codeurs mécaniques et optiques, ces derniers étant les plus précis. Leur utilisation première à Eurobot est la mesure de déplacement des roues du robot, de manière à savoir de combien il se déplace et ainsi connaître sa position à chaque instant : c’est ce qu’on appelle l’odométrie.

On peut distinguer deux types de codeurs pour roues : les codeurs intégrés, qui ne font qu’un avec le moteur, et les codeurs externes. Les codeurs externes sont généralement reliés à une deuxième paire de roues, non motorisées, qui a pour seul but de mesurer les déplacements du robot. Ces roues non motorisées sont appelées roues codeuses.

Si le robot patine ou glisse (c’est-à-dire si le moteur tourne mais que le robot ne bouge pas), les codeuses externes détecteront ce patinage (car les roues codeuses, n’étant pas motorisées, ne tourneront pas) alors que les codeurs intégrés détecteront (à tort) un mouvement (car le moteur tourne).

Balise

La balise est une particularité d’Eurobot. En effet, à Eurobot, il est autorisé de :

  • positionner autour de la table jusqu’à trois balises fixes (dimensions maximales : 80 × 80 × 160 mm) ;
  • positionner sur le robot adverse une balise embarquée (dimensions maximales : 80 × 80 × 80 mm).

Disposer d’une balise n’est pas obligatoire pour une équipe. L’objectif est de fournir aux équipes de quoi détecter le robot adverse (même si parfois des équipes utilisent des GoPro en tant que balises fixes). La balise embarquée ne doit en aucun cas être une gêne pour le robot adverse.

La technologie est libre : laser (avec des classes faibles), ultrason, infrarouge… Je ne vais pas entrer dans les détails des balises : les technologies diffèrent souvent. Si vous êtes intéressés, je vous recommande néanmoins ce document de l’équipe Microb qui traite le sujet en profondeur.