Modifications

2 391 octets ajoutés ,  29 avril 2020 à 17:30
Ligne 81 : Ligne 81 :     
===Traitement des données===
 
===Traitement des données===
 +
A l’aide des fonctions utilisées pour l’estimation de la pose des marqueurs nous obtenons deux vecteurs qui décrivent leur '''translation (tvec)''' et leur '''rotation (rvec)''', par rapport à un système des coordonnées. Ce '''systeme de coordonnees''' a comme origine le centre de l’objectif de la caméra (modèle de caméra sténopé), les axes xy selon le plan de la caméra et l’axe z sortant de l'objectif. Ce système de coordonnées serait parfaitement adapté si nous souhaitons de mesurer la rotation des tags ou leur distance par rapport à la caméra, mais notre objectif est de repérer les robots sur leur terrain. Ainsi, le système de coordonnées le plus adapté aurait son plan xy coïncident avec le terrain de jeu, son axe z normal à ce plan et son origine au point (0,0) du terrain. Nous arrivons du coup au système exact cité dans le règlement de la coupe, utilisé pour repérer tous les objets du terrain.
 +
 +
Pour effectuer ce '''changement de base''', il suffit de trouver la '''matrice de passage''' de la base de la caméra sur la basse du terrain. Pour construire cette matrice de passage nous pouvons utiliser le marqueur numéro 42, situé sur le terrain de jeu, comme référence.
 +
 +
[[Fichier:L'aire_de_jeu.png|sans_cadre|centré|1000px]]
 +
 +
Au début du programme nous construisons la matrice de passage vers le système de coordonnées du tag no 42, suivant le méthode suivante:
 +
 +
# Nous effectuons une suite des mesures de la position du marqueur de référence au et nous calculons la moyenne des vecteurs tvec et rvec. Cette partie de la procédure de calibrage et faite en boucle et les mesures sont moyennées pour améliorer sa précision. La qualité de la matrice produite va directement influencer la précision de toutes
 +
# En utilisant ces vecteurs tvec et rvec moyennés, nous construisons la '''matrice 4x4 de passage''' à l’aide de la fonction '''cv2.Rodrigues()'''. [[Fichier:Mcalib.png|sans_cadre|centré|500px]]
 +
# Cette matrice décrit le passage de la base du tag de calibration vers la base de la caméra. Pour obtenir la transformation inverse, il suffit de calculer la '''matrice inverse'''.
 +
# Finalement, pour obtenir les coordonnées d’un autre marqueur dans la '''nouvelle base''' nous multiplions son vecteur de translation tvec, avec la matrice de passage. [[Fichier:Produit calib vec.png|sans_cadre|centré|500px]]
    
===Le réseau===
 
===Le réseau===