Introduction

Voici le détail des balises que nous avons conçues pour la coupe de 2005.  Quelques détails avant de commencer : ce projet était l'occasion de nous frotter à la vidéo et à son traitement sur FPGA en situation de systèmes embarqués (donc limités en ressources mémoire et puissance de calcul). Autrement dit, pas question d'utiliser une carte PC104 ou un portable. On a créé notre propre carte, basée sur un processeur SH4 et un gros FPGA d'Altera (un Stratix). Comme cette carte était aussi utilisée pour la détection des quilles, on voulait trouver un algorithme qui tienne dans le FPGA, sans utiliser de RAM externe. Conséquence sympathique, pas besoin de notre carte pour l'implémenter : il suffit d'une carte Parallax, d'une caméra OV7620 et le tour est joué... Surtout qu'en plus on fournit les codes source.

Principe général

L'émetteur est une simple matrice de LED haute-luminosité, en l'occurence des SuperFlux. Ces LED émettent de façon pulsée à 30Hz. Le récepteur se compose d'une caméra vidéo numérique (OV7620), et d'une carte Stratix (plus de détail sur cette carte bientôt). La caméra acquiert des trames à une fréquence de 60 trames/secondes. Sur deux trames consécutives, on aura donc la balise émettrice alternativement éteinte puis allumée. Il suffit alors de faire la différence entre deux trames successives :
  • le fond, globalement fixe donc constant, est éliminé
  • il ne reste que la balise
Bien sûr, ceci n'est qu'un principe global. Il reste beaucoup de points à régler, comme :
  • le fond qui peut ne pas être fixe (un robot adverse qui bouge, les projecteurs à 50Hz, fréquence proche de celle des balises, ...)
  • on fait la différence entre deux trames, une paire et une impaire qui ne représentent donc pas exactement les mêmes pixels
  • etc, etc...
Les paragraphes suivant expliquent notre approche pour régler ces problèmes.