Balises

De Pensée Profonde - Club de robotique
Aller à la navigation Aller à la recherche

Cette page présente un système de balise infra-rouge permettant au robot de connaitre la direction de points particuliers.

Principe et Objectifs

Le système est composé de 2 types d'éléments :

  • une ou plusieurs balises émettrices qui agissent comme des phares (comme celui d'Alexandrie). Elles seront nommées Balises TX.
  • une balise réceptrice recherchant la direction des balises émettrices. Elle sera nommée Balises RX.

La principale utilisation de ces balises est la recherche de points particuliers tels qu'un but ou un panier. Une fois l'orientation déterminée il est facile pour un robot de se diriger vers ce point ou d'y lancer une balle.

Plusieurs balises TX peuvent être exploitées en même temps. Chacune d'elle émet un code différent que la balise RX sait interpréter.

Eurobot

Placement des différentes balises.

Dans le cadre d'Eurobot chaque équipe a la possibilité de placer des balises sur le robot adverse et sur les 3 (ou 4 selon les années) supports de balises sur les bords du terrain. Le règlement impose plusieurs contraintes techniques au sujet des balises :

  • les balises doivent être autonomes concernant leur alimentation
  • les balises fixes doivent tenir sur une base carrée de 80mm de coté et peuvent avoir une hauteur de 160mm au maximum.
  • la balise embarquée doit tenir dans un cube de 80 mm d'arrête.


Le Signal

Exemple de signal transmis. Ici le code 4.

Le signal émis par les balises est relativement simple.

  • Tout d'abord une porteuse à 56kHz est générée.
  • Cette porteuse est modulée selon le code sélectionné.

Ce principe permet de se protéger des parasites tels que la lumière ambiante ou un flash d'appareil photo. Il permet également de transmettre une information simple : le code de la balise.

Les capteurs utilisés pour la balise RX impose certaines contraintes concernant le signal. Par exemple un "blanc" (absence de signal) d'au moins 15ms doit être observé au minimum toutes les 90ms pour éviter d'être confondu avec une source lumineuse parasite. Afin de simplifier l'implémentation chaque trame dure 20ms et toutes les 3 trames (60ms < 90ms) 2 trames sont ignorées (40ms > 15ms).

Chaque trame comporte 20 bits de 1ms. La trame est composée de deux séries de 1 séparées par deux 0. La seconde série est plus longue que la première de deux 1. La liste de base des trames valides est donc :

Tableau des codes valides
Nom Code
Code1 1oo111oooooooooooooo
Code2 11oo1111oooooooooooo
Code3 111oo11111oooooooooo
Code4 1111oo111111oooooooo
Code5 11111oo1111111oooooo
Code6 111111oo11111111oooo
Code7 1111111oo111111111oo


Il est possible d'augmenter le nombre de codes valides en réduisant l'espace entre 2 trames ou la différence de longueur entre 2 trames. Dans le cadre d'Eurobot 2008 il n'est pas possible d'avoir plus de 5 balises (contrainte du règlement : 4 fixes et 1 embarquée). La limite de 7 codes nous convient donc parfaitement.

Puisque seule la longueur des séries de 1 compte il est possible de répéter les codes les plus courts afin d'augmenter la réactivité et d'espacer les 2 séries de 1 pour améliorer la fiabilité. Ces changements n'influent en rien sur la partie réception. On obtiens alors ces codes équivalents aux précédents :

Tableau des codes alternatifs valides
Nom Code
Code1 1ooo111ooo1ooo111ooo
Code2 11oo1111ooo11oo1111o
Code3 111oooo11111oooooooo
Code4 1111oooo111111oooooo
Code5 11111ooo1111111ooooo
Code6 111111ooo11111111ooo
Code7 1111111oo111111111oo


Balises TX

Les balises TX sont des émetteurs d'infrarouge modulé en amplitude. Chacune des balises émet un code unique permettant à la balise RX de les différencier. Ainsi il est possible de connaitre la direction d'un point particulier.

Hardware

Chaque balise TX est réalisée autour d'un PIC 18F4520. Celui-ci génère le signal "complet", à savoir une porteuse modulée en amplitude selon un code défini par des dip-switch. Ce signal est amplifié par un transistor qui alimente une rangée de LED IR.


Recherche d'une balise

La recherche d'une balise se fait très simplement via i2c.

  • La première étape consiste à indiquer le code recherché à la balise RX. Pour cela il suffit d'envoyer un octet contenant ce code. Par exemple le 7 : 0b00000111
  • A la détection d'une écriture la balise déclenche la recherche et stock le résultat dans son buffer d'émission i2c. Dés lors chaque lecture renverra un octet contenant le résultat de la recherche. Chaque bit de cet octet correspond à un capteur et s'il est à 1 indique une détection.


Limites

Combinaison de 2 signaux

Du fait du codage utilisé il est quasi impossible pour la balise réceptrice de décoder le signal provenant de 2 balises en même temps. Ce cas peut se produire lorsque la balise embarquée sur le robot adverse, une balise fixe et le robot sont alignés. Les signaux provenant des 2 balises se "combinent" rendant la détection de trame impossible.

Afin de réduire ce phénomène nous disposons de plusieurs solutions simples:

  • modifier la séquence d'envoi des trames afin de minimiser le risque que 2 balises émettent aux même moment. Les signaux ne sont plus brouillés mais on ne détecte qu'une des 2 balises alignées.
  • augmenter le nombre de récepteurs IR. Ainsi chacun d'eux observent une zone moins large et le risque de trouver 2 balises dans la zone diminue.


Précision

La précision de la mesure de direction dépend directement de la largeur de la zone observée par le récepteur IR. Afin d'augmenter la précision il faut augmenter le nombre de récepteurs IR.



Liens

Quelques liens vers des sites ou des documents traitant de la réalisation de balise ou de systèmes approchants.