Club robotique de Sophia-Antipolis

Accueil > Projets, études > Nos réalisations > Balises de localisation > Balises à ultrason : introduction (2009)

Balises à ultrason : introduction (2009)

Pourquoi faire des balises ?

jeudi 10 septembre 2009, par Keuronde

Pour la coupe de robotique, l’un des problèmes récurrent est la localisation des robots. Pour cela, deux écoles s’affrontent :
 Ceux qui ne jurent que par l’odométrie (qui se servent de la distance parcourue de par chaque roue pour savoir où il se trouve)
 Ceux qui ont un fonctionnement vraiment intelligent capable d’agir sans localisation précise (avec reconnaissance d’image par exemple)
 Ceux qui, en désespoir de cause, tentent les balises parce qu’aucune des solutions précédentes n’a marché

Voilà, Murphy oblige, je fais maintenant partie de la troisième catégorie.
Deux grand principes de balise ont déjà été mis en place :

 D’un coté, il y a le positionnement par mesure d’angle
 De l’autre, le positionnement par mesure de distance

Repérage angulaire

Dans le principe, mesurer les angles semble bien plus simple. Un capteur sur le robot tourne. A chaque fois qu’il passe face à une balise, il renvoie un signal. A chaque fois que le robot reçoit le signal, il mémorise l’angle du capteur. Une fois les trois balises détectées, il est possible de déterminer la position du robot avec un calcul trigonométrique.

Dans la pratique, les choses se compliquent. Tout d’abord, le robot peut tourner sur lui même, il faut donc connaître la rotation du robot entre chaque mesure sous peine d’avoir des mesures fausses. Ensuite le robot peut continuer d’avancer ce qui faussera aussi les mesures. Lorsqu’il est possible de connaitre le déplacement et la rotation du robot il est possible de corriger les mesures. Autant pour la rotation, la correction est simple, autant pour une translation la correction à apporter dépend de la position du robot. Heureusement, une translation n’induit qu’une faible erreur de mesure. Dans le cas de petites translation, l’erreur pourra être considérée comme négligeable. La solution la plus simple étant d’interroger les balise lorsque le robot est à l’arrêt.

Ensuite, il faut envisager qu’un robot adverse puisse cacher l’une des balise. En théorie, il suffit de prévoir le cas et de le détecter. En pratique, il semble plus prudent de pouvoir identifier chacune des balises. De toutes façon, il vaut mieux s’assurer que le capteur à bien vue une balise et non pas un parasite quelconque. Dans le cas où les balises émettent des codes, il faut que le capteur tourne suffisamment lentement pour recevoir le code.

Une dernière difficulté vient du capteur tournant. Si le capteur tourne en continue, il faut impérativement songer aux câbles qui pourraient s’emmêler. Une solution mise en place par une équipe (A retrouver) consistait à avoir un capteur fixe et à faire tourner un miroir incliné à 45° au dessus du capteur. Le capteur étant orienté vers le haut. L’idée semble simple, mais elle ne l’est pas. La précision requise pour l’angle du miroir est supérieure à celle obtenu habituellement.

Deux techniques me semblent adaptées aux positionnement par mesure d’angle :

  • Le laser
  • Les infrarouges

Balises lasers

Avec un système laser, les balises pourraient être des mirroirs cylindriques. Sur le robot tournerait un ensemble composé du laser et du capteur. Lorsque le laser pointe sur une balise, le faisceau est renvoyé vers le robot.

Les lasers sont difficiles à employer à la coupe, le règlement n’autorisant que deux classes de laser (les lasers de classe 1 et les lasers de classe 2). De plus il est stipulé que les faisceaux des lasers de classe 2 ne doivent jamais sortir du terrain. Or lorsque le laser pointera entre deux balises, il sortira du terrain. Ainsi seuls les lasers de classe 1 peuvent être employés. Il sont durs à trouver et hors de mon budget.

Balises infrarouges

Avec un système infrarouge, les balises émettent un code en continu et le capteur à bord du robot les identifie.

Les balises sont simples à réaliser et la difficulté se situe au niveau du capteur. Lors d’un essais, le capteur ne voyait la balise d’une seule fois. Après l’avoir vue, il refusait de la détecter à nouveau. Ceci était probablement du au capteur utilisé. Pour ne pas être perturbé, nous avions utilisé un capteur qui nécessitait un signal modulé. Lors des essais, nous avions remarqué que le robot voyait comme balise les pieds de chaises métalliques. Les reflets posent donc facilement problème.

Les lasers étant inabordables, les infrarouges posant parfois problèmes avec les capteurs, nous nous tournons vers une autre solution : les balises à ultrason

Repérage par les distances

Le robot mesure la distance qui le sépare de chacune des balises. A partir de ces distances et de la position des balises, le robot peut savoir où il se trouve. La théorie requiert 3 balises :

  • Avec une balise, on sait que le robot est sur un cercle ayant pour centre la balise
  • Avec deux balises, on sait que le robot est à l’un des deux points d’intersection des cercles ayant pour centre les balises
  • Avec trois balise, on connait le point où se trouve le robot
Repérage avec deux balises
Schéma explicatif du positionnement basé sur deux balises
Repérage avec trois balises
Schéma explicatif du positionnement à 3 balises

Telles que sont posés les supports de balise, une astuce permet de ne se servir que de deux balises. En effet, en utilisant que les deux balises de gauche, l’une des positions possibles est systématiquement en dehors du terrain.

Cependant, cette méthode comporte un inconvénient majeur. On obtient la position du robot mais pas son orientation. Il est possible de palier à ce défault en dérivant la position en fonction du temps.

Balises ultrasons

Comme précédemment la théorie est relativement simple. Les balises émettent chacune à leur tour un signal ultrason. Le robot doit mesurer le temps mis pas le signal entre la balise et lui. À partir de ce temps, il en déduit la distance, et peux savoir où il est.

Le premier problème qui se pose est de savoir quand est-ce que la balise à émis le signal. Deux solutions s’offrent à nous :

  • Soit les balises émettent à intervalles réguliers et le robot déduit l’instant d’emission lorsqu’il se trouve sur sa position de départ. Il connait sa position et la position des balises, donc les distances les séparant, donc le temps mis par chaque signal pour parvenir jusqu’à lui. Il faut encore savoir quel signal provient de quelle balise. Soit il faut déplacer le robot et faire un deuxième calibrage, soit il faut insérer un code dans le message ultrason des balises.
  • Soit les balises émettent à la demande du robot. Il faut donc les équiper d’un système de réception. Bien que plus compliquer à concevoir et un peu plus coûteux, ce système semble bien plus simple à utiliser et permet de ne pas saturer d’ultrason l’air de jeux. Ceci facilitera l’utilisation d’autres capteurs à ultrason

Vos commentaires

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 ?

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 champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.