Balises de détection : prototypage électronique

Après avoir trouvé une solution de positionnement réalisable, il nous a fallu faire un prototype.

Choix de la technologie

Le problème est donc d’être capable de mesurer les différences de distances précisément. Nous nous sommes donc orientés vers des capteurs ultrason. Les ultrasons ayant le très grand avantage d’avoir une vitesse de propagation « lente » (340 m/s). Ce qui permet d’avoir une plus grande précision dans les mesures avec du matériel peu onéreux. En revanche il ne faut pas oublier les inconvénients des cette technologie :

  1. Les ultrasons rebondissent beaucoup, il faudra donc être capable d’ignorer les rebonds.
  2. La vitesse du son varie légèrement en fonction des conditions atmosphériques.
  3. Il est très compliqué de moduler un signal ultrason.
  4. La puissance du signal varie fortement avec la distance.

Il va donc falloir trouver une solution à ces inconvénients, et ce ne sont que ceux que nous avons identifiés pour le moment.

Le montage sera le suivant : une balise mobile à poser sur le robot adversaire émettra des ultrasons sur 360°. Les 3 balises fixes recevront ce signal, et le démoduleront. A la réception elles enverront un signal à un microcontrôleur serveur qui se chargera alors d’en déduire les différences entre les temps de réception des 3 balises, et calculera la position du robot adversaire.

Prototypage

Lors de la phase de prototypage nous nous sommes particulièrement préoccupé des points 3 et 4 qui nous inquiétaient le plus. Il est important de moduler le signal, car si le robot adversaire envoie un signal à la même fréquence il faut être capable de l’ignorer. Pour la réalisation finale nous essaierons d’éviter la fréquence la plus commune de 40kHz afin de réduire le risque de tomber contre un robot adversaire qui utilise des ultrasons à la même fréquence que nous. Une fréquence par balise, car il y a deux robots adversaires à détecter être capable de moduler deux signaux différents est compliqué. Pour le prototypage nous avons fait des essais avec des capteurs fonctionnant à 40 kHz.

Pour la réalisation des circuits nous nous sommes très fortement inspirés du travail de Kerry D. Wong. L’émetteur est constitué d’un pont en H piloté par un ATtiny45 qui envoie toutes les 50 ms un train de 8 pulses, suivi d’un blanc de longueur équivalent à 16 pulses 3 fois à la suite.

circuit-emetteuremetteur Et avec une capsule branchée directement sur l’oscilloscope, sans aucune amplification à environ 5 cm de distance de l’émetteur, nous obtenons :

recepteurVoici donc le problème de moduler des ultrason. On émet 8 pulses, on en reçoit 30. Ceci vient probablement en parti du fait que le récepteur est un système résonnant, il faut un moment pour que la membrane entre en résonance, mais une fois qu’elle y est, elle y reste un petit peu. L’autre problème se voit aussi en bougeant un peu le récepteur, la puissance diminue très rapidement, il sera compliqué de conserver un signal sur un niveau de tension exploitable par un ADC sur un signal reçu à 20 cm et un reçu à 4 m.

Un autre problème que l’on peut constater est que le signal met un temps important à s’établir. Sur l’image, les 3 premières pulses reçues ont une amplitude très faible, mais sont très importantes car on veux connaitre avec précision l’instant du début du signal.

Publicités

Balises de détection : choix et simulations

Problématique

L’une des plus grandes problématiques imposées par le règlement de la coupe de France de robotique est l’interdiction de rentrer en contact avec le robot adversaire. Il est donc indispensable d’être capable de détecter le robot adversaire afin de l’éviter.

De nombreuses solutions s’offrent à nous, mais toutes n’offrent pas la même fiabilité ou précision. L’objectif de notre réalisation est d’avoir la position du robot adversaire quelque soit sa position sur la table, y compris quand il est à plus de 3 mètres de notre robot, et avec une erreur de moins de 10 centimètres.

Le règlement autorise de placer une balise autonome ne dépassant pas les dimensions d’un cube de 8 cm de côté sur chacun des robots adversaire, ainsi que 3 balises fixes sur le bord de la table de 8 cm par 8 cm de base et 16 cm de haut. Ces 3 balises peuvent être reliées par une liaison filaire.

La théorie

Une première idée à été de partir sur un système de triangulation avec différentes idées quant à la manière de mesurer les angles. Mais des simulations nous ont rapidement fait abandonner l’idée : une erreur de mesure des angles de 2 ou 3 degrés peut induire des erreurs sur le positionnement de plus d’un mètre. Nous avons pu nous rendre compte de ce problème grâce au travail de Vincent Pierlot et Marc Van Droogenbroeck qui proposent un outil de simulation de nombreux algorithmes de triangulation sur leur site : http://www2.ulg.ac.be/telecom/triangulation/

Face à cette contrainte majeure qui exige une réalisation quasi parfaite, nous nous sommes orientés vers la multilateration. Le principe est celui du GPS, mais juste dans l’autre sens pour notre cas : la balise mobile émet un signal, une première balise fixe reçoit le signal à un instant T et sert de référence de temps. La deuxième balise reçoit ensuite le signal à un instant T + dt1, et la troisième à un instant T + dt2. Connaissant la vitesse de propagation du signal, on en déduit les distances.

multilaterationIci R est inconnu, nous ne connaissons que dr1 et dr2.

Les équations sont assez complexes pour retrouver la position du robot . Nous avons utilisé les équations proposées par la méthode de Fang. La recherche a été assez compliquée car nous avons trouvé 3 articles scientifiques présentant cette méthode, mais chacun contenant des erreurs dans les algorithmes.

Nous avons alors réalisé des simulations pour confirmer la viabilité de notre solution. Nous avons fait « bouger » un robot virtuel sur toute la table cm par cm, et simulé 200 mesures par point. Pour chaque point nous avons calculé la distance aux 3 balises, ajouté une erreur aléatoire entre 0 et 6.8 cm sur chaque distance, et soustrait les deux plus grandes distances par la plus courte pour obtenir dr1 et dr2 avec un bruit aléatoire. Ce qui donne le résultat suivant :

Fang_error68mm_tresh75mmSur l’échelle à droite, le bleu foncé correspond à une erreur moyenne de positionnement de 0 cm, et le rouge à une erreur moyenne supérieur ou égale à 7.5 cm.

Ces résultats sont donc très prometteurs, car une approximation sur la réalisation des balises n’aura qu’une conséquence modérée sur la dégradation des mesures.

 

La suite du prototypage se passe ici.