Détection des adversaires

Autre point commun entre les deux robots : la détection de l’adversaire. Pour ce faire nous avons utilisé le capteur SRF10 qui est un télémètre à ultrason capable de déterminer la distance qui sépare les robots d’un obstacle.

capteur SRF10

Il communique et s’interface grâce au protocole I²C et il est possible de modifier certain paramètres grâce à des registres I²C.  En première étape on initialise le capteur en réglant la distance à laquelle il peut « voir », son gain et donc le temps d’écoute de celui-ci. Nous avons aussi modifié l’adresse d’un des capteurs car nous en utilisons deux. Pour changer l’adresse il y a un protocole particulier à suivre qui consiste à écrire cette suite de commande à l’adresse du capteur : 0xA0, 0xAA, 0xA5 et 0xF2 (manipulation à n’écrire qu’une seule fois).

Une fois initialisé, nous avons le code qui nous intéresse pour effectuer le travail demandé. Ce code consiste simplement à demander une distance en centimètres au capteur. Ci-dessous le code utilisé :

Code SRF10

Le programme principal du robot appelle régulièrement ce code (sur une interruption de 50ms) afin d’avoir une « vue » de la table à chaque instant et ainsi éviter un obstacle le cas échéant.

2 réflexions au sujet de « Détection des adversaires »

  1. Hello!
    Sur ces capteurs SRF10, le gain et la distance max de détection sont configurables. Cf http://www.robot-electronics.co.uk/htm/srf10tech.htm
    Pour les besoins de la coupe et ses contraintes, quelle valeur de gain et distance utilisez-vous?
    Initiez-vous un ranging sur ces télémetres d’une manière « round-robin » ou bien en même temps (avec le risque que l’echo d’un module soit « vu » par le module voisin)?

    • Salut,
      Nous réglons effectivement le gain et la distance de détection au strict nécessaire (pour gagner en rapidité de prise de mesure et pour éviter de gêner l’adversaire)
      On a fait nos tests et le gain/distance dépend de nos robots (ca dépend ce qu’on cherche à voir). Cette année pour le gros robot on cherche un adversaire sur 500mm, pas plus, on a réglé une porté de &H09 et un gain de &H04. Mais encore une fois ce réglage n’est que pour ce robot principal 2014. Il faut faire les tests.
      Pour l’algo qui s’occupe de ces capteurs, nous avons fait plusieurs essais cette année, dont la manière « round-robin » … mais c’est une grosse perte de temps. Au final on a remarqué qu’en envoyant simultanément l’info sur tous nos SRF en même temps, ils ne se perturbent pas. Nous émettons donc en même temps (vers l’avant quand on avance ou vers l’arrière quand on recule). Nous avons deux capteurs par côté pour qu’ils se confirment, car ils envoient parfois n’importe quoi : Si un capteur est défaillant on le détecte on l’initialise de nouveau et s’il ne fonctionne toujours pas, le programme le déclare HS et on ne s’occupe que du seul capteur en « vie ».
      C’est donc une bonne solution d’évitement, pas très chère, rapide à mettre en place, mais qui ne reste pas très fiable.
      Pour l’année prochaine, nous allons ajouter une nouvelle technologie supplémentaire, car l’US seul ne suffi pas pour Eurobot. Dans bien des cas on se retrouve avec un mauvais évitement ou des blocages non désirés.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>