Vision#

Introduction#

Le drone VEX AIR est équipé de deux capteurs de vision qui détectent et suivent les identifiants AprilTag. Ces capteurs lui permettent d’analyser son environnement, de suivre des objets et de réagir en fonction des données visuelles détectées.

Vous trouverez ci-dessous la liste de tous les blocs disponibles :

Actions — Contrôlez le flux vidéo et capturez les données des objets.

Paramètres — Ajustez les objets détectés auxquels on accède.

Valeurs — Récupérer la présence, la classification et les propriétés de l’objet.

Actes#

obtenir les données de l’objet#

Le bloc de pile get object data filtre les données provenant de la trame du capteur de vision. Les capteurs de vision peuvent détecter les identifiants AprilTag.

L’ensemble de données stocke les objets classés par largeur, du plus grand au plus petit, à partir de l’index 0. Les propriétés de chaque objet sont accessibles via le bloc Vision object property. Un ensemble de données vide est signalé si aucun objet correspondant n’est détecté.

Bloc de pile Get object data.#
obtenir les données [tous les AprilTags v] de la caméra [avant v]

Paramètre

Description

signature

Filtre l’ensemble de données pour n’inclure que les données de la signature spécifiée. La signature disponible est tous les AprilTags.

caméra

Le capteur de vision pour récupérer les données, soit vers l’avant, soit vers le bas.

Exemple

au démarrage
[Climb upward when an AprilTag ID is detected.]
décoller à [300] [mm v] ▶
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
si <Caméra a-t-elle détecté un objet ?> alors
se déplacer [en haut v] sur [200] [mm v] ▶

Paramètres#

élément d’objet Vision#

Le bloc de pile set Vision object item définit l’élément du jeu de données à utiliser.

Bloc de pile d’éléments de l’objet Set AI Vision.#
définir l'objet détecté par Caméra à [1]

Paramètres

Description

article

Le numéro de l’élément à utiliser dans l’ensemble de données.

Exemple

au démarrage
[Display the smallest-appearing AprilTag ID.]
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
effacer la console
si <Caméra a-t-elle détecté un objet ?> alors
définir l'objet détecté par Caméra à (nombre d'objets détectés par Caméra)
afficher (Objet [id v]) sur la console ▶

Valeurs#

L’objet de vision existe#

Le bloc booléen Vision object exists indique si le capteur de vision spécifié détecte actuellement des objets.

  • Vrai — Le capteur de vision spécifié détecte un objet.

  • Faux — Le capteur de vision spécifié ne détecte aucun objet.

Afficher ou masquer le bloc de pile du tableau de bord AI Vision.#
<Caméra a-t-elle détecté un objet ?>

Paramètre

Description

Ce bloc ne comporte aucun paramètre.

Exemple

au démarrage
[Climb upward when an AprilTag ID is detected.]
décoller à [300] [mm v] ▶
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
si <Caméra a-t-elle détecté un objet ?> alors
se déplacer [en haut v] sur [200] [mm v] ▶

L’objet Vision est AprilTag ID#

Le bloc booléen objet Vision : ID AprilTag indique si l’ID AprilTag correspond à un numéro d’identification spécifique.

  • Vrai — L’identifiant AprilTag est le numéro.

  • Faux — L’identifiant AprilTag n’est pas le numéro.

L’IA Vision a détecté que l’identifiant AprilTag est un bloc booléen.#
<Vision object is AprilTag ID [1]>

Paramètres

Description

Numéro d’identification AprilTag

Le nombre à comparer avec le numéro d’identification AprilTag détecté, compris entre 0 et 37.

Exemple

au démarrage
[Display when the target AprilTag ID is detected.]
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
effacer la console
si <Caméra a-t-elle détecté un objet ?> alors
si <Vision object is AprilTag ID [21]> alors
afficher [Target found!] sur la console ▶
fin

nombre d’objets de vision#

Le bloc de rapport Vision object count indique le nombre d’objets détectés dans l’ensemble de données sous forme de nombre entier.

Bloc de pile d’éléments de l’objet Set AI Vision.#
(nombre d'objets détectés par Caméra)

Paramètres

Description

Ce bloc ne comporte aucun paramètre.

Exemple

au démarrage
[Display how many AprilTag IDs are detected.]
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
effacer la console
afficher (nombre d'objets détectés par Caméra) sur la console ▶
attendre [0.2] secondes

propriété de l’objet Vision#

Il existe plusieurs propriétés incluses avec chaque objet (indiquées ci-dessous) stockées après l’utilisation du bloc get object data.

Bloc de reporting des propriétés de l’objet AI Vision.#
(Objet [largeur v])

Toutes les valeurs de propriétés, à l’exception de id, décrivent la position, la taille, l’orientation ou le relèvement de l’objet détecté au moment où le bloc get object data a été utilisé. Ces valeurs sont exprimées en pixels ou en degrés. Chaque capteur de vision possède une résolution différente.

  • Face avant : 640 x 480 pixels

  • Orientation vers le bas : 640 x 400 pixels

Paramètre

Description

propriété

Quelle propriété de l’objet détecté utiliser :

largeur#

La propriété width indique la largeur de l’objet détecté en pixels sous forme d’un nombre entier compris entre 1 et 640.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur largeur.#
(Objet [largeur v])

Exemple

au démarrage
[Show if the AprilTag ID appears large or small.]
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
effacer la console
si <Caméra a-t-elle détecté un objet ?> alors
si <(Objet [largeur v]) [math_greater_than v] [100]> alors
afficher [Large] sur la console ▶
sinon
afficher [Small] sur la console ▶
fin
fin
attendre [0.2] secondes

hauteur#

La propriété hauteur indique la hauteur de l’objet détecté en pixels sous forme d’un nombre entier compris entre 1 et 480.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur hauteur.#
(Objet [hauteur v])

Exemple

au démarrage
[Show if the AprilTag ID appears large or small.]
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
effacer la console
si <Caméra a-t-elle détecté un objet ?> alors
si <(Objet [hauteur v]) [math_greater_than v] [100]> alors
afficher [Large] sur la console ▶
sinon
afficher [Small] sur la console ▶
fin
fin
attendre [0.2] secondes

centreX#

La propriété centerX indique la coordonnée x du centre de l’objet détecté en pixels sous forme d’un nombre entier compris entre 1 et 640.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur centerX.#
(Objet [centreX v])

Exemple

au démarrage
[Show if an AprilTag ID is to the left or the right of the camera.]
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
effacer la console
si <Caméra a-t-elle détecté un objet ?> alors
si <(Objet [centreX v]) [math_less_than v] [320]> alors
afficher [To the left] sur la console ▶
sinon
afficher [To the right] sur la console ▶
fin
fin
attendre [0.2] secondes

centreY#

La propriété centerY indique la coordonnée y du centre de l’objet détecté en pixels sous forme d’un nombre entier compris entre 1 et 480.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur centerY.#
(Objet [centreY v])

Exemple

au démarrage
[Take off and attempt to align the drone with an AprilTag ID on the wall.]
[Adjust the takeoff height to observe different results.]
décoller à [800] [mm v] ▶
obtenir les données [tous les AprilTags v] de la caméra [avant v]
si <Caméra a-t-elle détecté un objet ?> alors
si <(Objet [centreY v]) [math_less_than v] [240]> alors
afficher [Below the target!] sur la console ▶
sinon
afficher [Above the target!] sur la console ▶
fin
sinon
afficher [No target found!] sur la console ▶

palier#

La propriété relèvement indique un angle représentant la position d’un objet par rapport au drone. Son comportement dépend du capteur de vision utilisé.

Une valeur de 0° indique que le centre de l’objet et le capteur sont alignés. Les valeurs positives signifient que l’objet est à droite, tandis que les valeurs négatives signifient qu’il est à gauche.

Capteur

Retours

Vers le bas

Degrés selon lesquels l’avant du drone doit tourner pour s’aligner avec le centre de l’objet, de –180º à 180º.

Avant

Degrés selon lesquels l’objet est décalé à gauche ou à droite du centre du capteur de vision, de –180º à 180º.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur centerY.#
(Objet [orientation v])

Exemples

au démarrage
[Align the front of the drone to an AprilTag ID.]
définir la vitesse de rotation à (15)%
décoller à [500] [mm v] ▶
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [vers le bas v]
si <Caméra a-t-elle détecté un objet ?> alors
si <[-20] [math_less_than v] (Objet [orientation v]) [math_less_than v] [20]> alors
[Hover once sensor is centered on the AprilTag ID.]
vol stationnaire
jouer le son [succès v] ▶
sinon si <(Objet [orientation v]) [math_less_than v] [-21]> alors
pivoter [à gauche v]
sinon
pivoter [droite v]

rotation#

La propriété rotation indique l’orientation de l’identifiant AprilTag détecté sous forme d’un nombre entier en degrés compris entre 1 et 359.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur rotation.#
(Objet [rotation v])

Exemple

au démarrage
[Turn left or right based on the rotation of an AprilTag ID.]
décoller à [1000] [mm v] ▶
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
si <Caméra a-t-elle détecté un objet ?> alors
si <[240] [math_less_than v] (Objet [rotation v]) [math_less_than v] [300]> alors
pivoter [à gauche v] de [90] degrés ▶
sinon si <[60] [math_less_than v] (Objet [rotation v]) [math_less_than v] [120]> alors
pivoter [droite v] de [90] degrés ▶
sinon
vol stationnaire

originX#

La propriété originX indique la coordonnée x du coin supérieur gauche de la boîte englobante de l’objet détecté en pixels sous forme d’un nombre entier compris entre 1 et 640.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur originX.#
(Objet [origineX v])

Exemple

au démarrage
[Draw lines to the AprilTag ID origin from all corners.]
indéfiniment
effacer l'écran
get [all AprilTags v] data from vision [forward v] camera
si <Caméra a-t-elle détecté un objet ?> alors
tracer la ligne reliant le point x1 : [0] y1 : [0] et x2 :(Objet [origineX v]) y2 :(Objet [origineY v]) sur l'écran
tracer la ligne reliant le point x1 : [0] y1 : [480] et x2 :(Objet [origineX v]) y2 :(Objet [origineY v]) sur l'écran
tracer la ligne reliant le point x1 : [640] y1 : [0] et x2 :(Objet [origineX v]) y2 :(Objet [origineY v]) sur l'écran
tracer la ligne reliant le point x1 : [640] y1 : [480] et x2 :(Objet [origineX v]) y2 :(Objet [origineY v]) sur l'écran
fin
attendre [0.2] secondes

origine#

La propriété originY indique la coordonnée y du coin supérieur gauche de la boîte englobante de l’objet détecté en pixels sous forme d’un nombre entier compris entre 1 et 480.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur originY.#
(Objet [origineY v])

Exemple

au démarrage
[Draw lines to the AprilTag ID origin from all corners.]
indéfiniment
effacer l'écran
get [all AprilTags v] data from vision [forward v] camera
si <Caméra a-t-elle détecté un objet ?> alors
tracer la ligne reliant le point x1 : [0] y1 : [0] et x2 :(Objet [origineX v]) y2 :(Objet [origineY v]) sur l'écran
tracer la ligne reliant le point x1 : [0] y1 : [480] et x2 :(Objet [origineX v]) y2 :(Objet [origineY v]) sur l'écran
tracer la ligne reliant le point x1 : [640] y1 : [0] et x2 :(Objet [origineX v]) y2 :(Objet [origineY v]) sur l'écran
tracer la ligne reliant le point x1 : [640] y1 : [480] et x2 :(Objet [origineX v]) y2 :(Objet [origineY v]) sur l'écran
fin
attendre [0.2] secondes

identifiant#

La propriété id indique le numéro d’identification de l’identifiant AprilTag détecté sous forme de nombre entier.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur tagID.#
(Objet [id v])

Exemple

au démarrage
[Display the detected AprilTag ID.]
indéfiniment
obtenir les données [tous les AprilTags v] de la caméra [avant v]
effacer la console
si <Caméra a-t-elle détecté un objet ?> alors
afficher (Objet [id v]) sur la console ▶
fin
attendre [0.2] secondes