top of page

La partie algorithme doit à terme nous permettre de piloter le cerf-volant automatiquement. Pour ce faire, nous placerons en bas des suspentes  une caméra qui regardera le cerf-volant. Dans le champ de vision de la caméra, le cerf-volant se déplace quasiment comme un rectangle qui tourne et bouge dans tout l’espace. C’est pour ça que nous avons d’abord modélisé la voile par un rectangle.

 

La conception de l’algorithme se fait en plusieurs étapes, à l’aide d’un langage C++ :

  • La partie simulation : créer un rectangle de pixels et le faire tourner comme on le désire

  • La partie traitement : analyser un rectangle déjà existant et déterminer de quel angle il a tourné à l’aide d’un algorithme.

  • Le test de l’algorithme sur le cerf-volant : traitement d’une vidéo du vol d’un cerf-volant pour déterminer sa position à chaque instant

  • La partie commande : faire bouger le cerf-volant comme on le désire. Cette partie se fait en lien avec la mécanique car le programme à mettre en place dépendra du générateur utilisé.

Travaux déjà réalisés

 

  • La partie simulation comporte la création d’une fonction « setup_kite Â» qui nous permettra de générer un rectangle blanc sur fond noir. Pour que la rotation soit possible il a fallu créer ce rectangle en 3D, avec des longueurs nulles dans une des directions. 

    Il s’agit ensuite de faire tourner et déplacer ce rectangle. Pour cela on utilise des matrices de rotation et de translation d’un rectangle 3D.

    (Cliquer sur les extraits de programme pour les afficher).

 

 

 

 

 

 

 

 

 

 

 

  • La partie traitement comporte d’abord un calcul du centre de gravité du rectangle. Pour cela on énumère tous les pixels noirs (en ordonnée et abscisse) et on fait la moyenne des coordonnées (cliquer sur l'extrait de programme pour l'afficher).

 

 

 

 

 

 

 

 

 

 

 

Il faut ensuite calculer l’angle formé par le rectangle avec l’horizontale. On commence par calculer un

point intermédiaire (point 3 sur la figure).
Remarque : cette méthode n’est pas efficace pour des angles proches de 0° à cause du phénomène de pixel-

lisation.
Cependant l’erreur pour calculer un point intermédiaire est grande. On choisit donc de calculer la pente

du côté le plus grand (cliquer sur l'extrait de programme pour l'afficher).

Algorithme

bottom of page