« Balises » : différence entre les versions

De Pensée Profonde - Club de robotique
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
Cette page présente un système de balise permettant au robot de connaitre la direction de points particuliers. Le système est composé de 2 types d'éléments :
Cette page présente un système de balise infra-rouge permettant au robot de connaitre la direction de points particuliers.
* une ou plusieurs balises émettrices qui agissent comme des phares. Elles seront nommées Balises TX.
* une balise réceptrice recherchant la direction des balises émettrices. Elle sera nommée Balises RX.  


=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'[http://fr.wikipedia.org/wiki/Phare_d'Alexandrie 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==
[[Image:Balises-placement.jpg|frame|Placement des différentes balises.]]
[[Image:Balises-placement.jpg|frame|Placement des différentes balises.]]
Dans le cadre d'Eurobot 2008 chaque équipe a la possibilité de placer des balises sur le robot adverse et sur les 4 supports de balises sur les bords du terrain.  
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 :
Le règlement impose plusieurs contraintes techniques au sujet des balises :
* les balises doivent être autonomes concernant leur alimentation
* 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.
* 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.
* la balise embarquée doit tenir dans un cube de 80 mm d'arrête.
<br clear="all" />


=Le Signal=
[[Image:Balise-tx-code4.jpg|frame|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é.


=Balises TX=
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 balises TX sont des émetteurs d'infrarouge modulé en amplitude. Elles servent ainsi de "phare". Chacune des balises émet un code unique et permet ainsi au robot de connaitre la direction d'un point particulier. Chaque balise doit tenir dans un cube de 8cm de coté et embarquer sa propre source d'alimentation.
 
==Architecture==
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.


==Signal==
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).
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é.  
Afin de se différencier d'une source de lumière constante un "blanc" d'au moins 15ms doit être observé au minimum toutes les 90ms. Afin de simplifier l'implémentation chaque trame dure 20ms et toutes les 4 trames (80ms < 90ms) une 5e trame est ignorée (20ms > 15ms).


[[Image:Balise-tx-code4.jpg|frame|Exemple de signal transmis. Ici le code 4.]]
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.
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 :
La liste de base des trames valides est donc :
Ligne 74 : Ligne 81 :




=Balise RX=
=Balises RX=
La balises RX reçoit, démodule et analyse les signaux provenant de capteurs IR. Elle peut ainsi savoir dans quelle direction se trouvent les différentes balises. Ces informations sont stockées et disponiblent "sur demande" via I2C.  
<div style="float:right;">
<gallery>
Image:Balise-rx-2.jpg|Balise RX assemblée
Image:Balise-rx.jpg|Balise RX en 2 parties
</gallery>
</div>
Les balises RX sont composées de 2 parties :
* des récepteurs IR répartis sur 360°.
* un PIC 18F4520 analyse les signaux reçus et effectue les recherches sur demande.
 
Les récepteurs sont des TSOP1856. Ils ont la particularité d'intégrer l'électronique de démodulation et de filtrage dans un boitier de la taille d'un petit pois.
Autre particularité: leur grand angle de réception. Celui s'avère être un inconvénient dans notre utilisation et il est indispensable d'adjoindre un cache afin de découper le champ de vision.
 
=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.


==Architecture==
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.
La balise RX est réalisée autour d'un PIC 18F4520. Celui-ci décode les signaux en provenance de plusieurs récepteurs IR. Les récepteurs intègrent un circuit de démodulation correspondant à la fréquence de la porteuse (56kHz). Le PIC n'a plus qu'à analyser les signaux pour y découper des trames et comparer leurs longueurs afin d'identifier la balise.


Chaque capteur observe une zone plus ou moins large. Cela permet de localiser rapidement une balise à l'aide de capteur observant une zone large tout en gardant la possibilité de viser précisément un point avec un capteur observant une zone étroite.  
=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.


Les capteurs utilisés sont des {{pdf|Tsop18xx.pdf|Tsop18xx}}, Tsop1856 dans notre cas. Leur réceptivité est très forte et évite donc d'avoir à émettre des IR de fortes puissances. On réduit ainsi les phénomènes de réflexion tout en réduisant la consommation des balises émettrices. Ils se chargent également de démoduler le signal ainsi que de filtrer les sources de bruits telles que l'éclairage.




=Limites=
=Limites=
==Mélange==
==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 par exemple se produire lorsque la balise embarquée sur le robot adverse, une balise fixe et le robot sont alignés. Le signal provenant des 2 balises se "mélangent".  
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 il est possible de modifier les codes afin que chacun d'eux soit répété moins souvent et de façon plus aléatoire. Ainsi on minimise le risque que 2 balises émettent aux même moment.
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.


Il est également possible d'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==
==Précision==

Version actuelle datée du 7 octobre 2008 à 22:12

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 RX

Les balises RX sont composées de 2 parties :

  • des récepteurs IR répartis sur 360°.
  • un PIC 18F4520 analyse les signaux reçus et effectue les recherches sur demande.

Les récepteurs sont des TSOP1856. Ils ont la particularité d'intégrer l'électronique de démodulation et de filtrage dans un boitier de la taille d'un petit pois. Autre particularité: leur grand angle de réception. Celui s'avère être un inconvénient dans notre utilisation et il est indispensable d'adjoindre un cache afin de découper le champ de vision.

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.

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.