Vision IA#

Introduction#

Le capteur de vision IA du robot de codage VEX AIM détecte et suit les objets, les couleurs et les identifiants AprilTag. Cela permet au robot d’analyser son environnement, de suivre les objets et de réagir en fonction des données visuelles détectées.

Le capteur de vision IA possède une résolution de 320 × 240 pixels. L’origine (0, 0) est située dans le coin supérieur gauche, ce qui place le centre du capteur à (160, 120), comme illustré dans le schéma ci-dessous :

Un diagramme montrant la résolution du capteur de vision AIM AI, avec les coordonnées 0, 0 en haut à gauche du diagramme, 320, 0 en haut à droite et 0, 240 en bas à gauche, avec 160, 120 au centre exact.

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

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

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

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

Actes#

Visionneuse AI Vision à l’écran#

Le bloc Visionneuse AI Vision à l’écran permet d’activer ou de désactiver l’affichage en direct du flux AI Vision sur l’écran du robot. Lorsqu’il est activé, l’écran affiche les données des capteurs en temps réel, empêchant l’affichage d’autres images ou textes. Pour afficher d’autres contenus, utilisez ce bloc pour masquer le flux.

Afficher ou masquer le bloc de pile du tableau de bord AI Vision.#
[afficher v] Visionneuse de la caméra IA à l'écran

Paramètres

Description

statut

Contrôle l’affichage du flux de données sur l’écran du robot : show affiche le flux de données, tandis que hide supprime le flux de données de l’écran.

Exemple

Une pile de blocs commence par un bloc « Au démarrage », suivi d’un bloc de commentaire indiquant : « Afficher le flux du capteur de vision IA pendant cinq secondes. » Un bloc « Afficher le tableau de bord Vision IA » affiche le flux, puis un bloc « Attendre » suspend l’exécution pendant cinq secondes. Après l’attente, un bloc « Masquer le tableau de bord Vision IA » masque le flux.#
au démarrage
[View the AI Vision Sensor's feed for five seconds.]
[afficher v] Visionneuse de la caméra IA à l'écran
attendre [5] secondes
[masquer v] Visionneuse de la caméra IA à l'écran

obtenir les données de l’objet#

Le bloc de pile get object data filtre les données de la trame du capteur de vision AI pour obtenir une seule signature — une description enregistrée de quelque chose que le capteur peut reconnaître, comme un objet pré-entraîné, un ID AprilTag ou une couleur ou un code couleur configuré.

Les couleurs et les codes de couleur doivent d’abord être configurés dans l’utilitaire AI Vision avant de pouvoir être utilisés avec ce bloc.

L’ensemble de données stocke les objets classés par largeur décroissante, à partir de l’index 0. Les propriétés de chaque objet sont accessibles via le bloc AI 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 [ballon de sport v] des données de la caméra IA

Paramètre

Description

signature

Filtre l’ensemble de données pour n’inclure que les données de la signature spécifiée. Les signatures disponibles sont :

  • ballon de sport
  • tonneau orange
  • tonneau bleu
  • robot AIM
  • ID AprilTag 0
  • ID AprilTag 1
  • ID AprilTag 2
  • ID AprilTag 3
  • ID AprilTag 4
  • toute la cargaison - Ballons de sport et tous les tonneaux
  • NOM - Une couleur ou un code couleur où NOM est le nom configuré dans l’utilitaire AI Vision

Exemple

Une pile de blocs commence par un bloc « quand démarré », suivi d’un bloc de commentaire indiquant « Avancer si un ballon de sport est détecté ». Un bloc « obtenir les données de l’objet » capture l’image d’un ballon de sport. Un bloc « si » vérifie ensuite la présence d’un objet AI Vision. Si c’est le cas, un bloc « avancer » fait avancer le robot de 10 millimètres.#
au démarrage
[Move forward if a sports ball is detected.]
indéfiniment
obtenir [ballon de sport v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
se déplacer [avant v] sur [10] [mm v] ▶

Signatures de couleur#

Une signature de couleur est une couleur unique que le capteur de vision IA peut reconnaître. Ces signatures permettent au capteur de détecter et de suivre les objets en fonction de leur couleur. Une fois la signature de couleur configurée dans l’utilitaire de vision IA, le capteur peut identifier les objets de cette couleur spécifique dans son champ de vision.

Les signatures de couleur sont utilisées dans le bloc get object data pour traiter et détecter les objets colorés en temps réel.

L'utilitaire AI Vision montre un capteur de vision connecté détectant deux objets colorés. La partie gauche affiche le flux vidéo en direct d'une caméra, avec un cadre bleu à gauche et un cadre rouge à droite, chacun entouré d'un cadre blanc. Des étiquettes noires indiquent leurs noms, coordonnées et dimensions respectifs. La partie droite contient les paramètres de signature colorimétrique, avec des curseurs pour la teinte et la saturation des deux cadres. Des boutons permettant d'ajouter des couleurs, de figer la vidéo, de copier et d'enregistrer l'image se trouvent en bas, ainsi qu'un bouton de fermeture dans le coin inférieur droit.

Exemple

au démarrage
[Display if any objects matching the Red_Box signature is detected.]
indéfiniment
placer le curseur sur la ligne [1] et colonne [1] sur l'écran
effacer la ligne [1] sur l'écran
[Change the signature to any configured Color Signature.]
obtenir [Red_Box v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
afficher [Color signature detected!] sur l'écran ▶

Codes de couleur#

Un code couleur est un motif structuré composé de 2 à 4 signatures de couleur agencées dans un ordre précis. Une fois configuré dans l’utilitaire de vision par IA, le capteur peut reconnaître des motifs de couleurs prédéfinis.

Les codes couleur sont particulièrement utiles pour identifier des objets complexes, les aligner avec des éléments de jeu ou créer des marqueurs uniques pour la navigation autonome.

L'interface de l'utilitaire de vision IA affiche un capteur de vision connecté détectant deux objets adjacents : un rectangle bleu à gauche et un rectangle rouge à droite, regroupés dans un seul cadre blanc nommé BleuRouge. Les informations de détection comprennent l'angle A : 11° , les coordonnées X : 143, Y : 103 , la largeur L : 233 et la hauteur H : 108 . Sur le panneau de droite, trois signatures de couleur sont affichées : Rouge_Case, Bleu_Case et BleuRouge, avec des plages de teinte et de saturation réglables. La signature BleuRouge combine les signatures Bleu_Case et Rouge_Case. Sous le flux vidéo se trouvent des boutons intitulés Figer la vidéo, Copier l'image, Enregistrer l'image et Fermer.

Exemple

au démarrage
[Display if any objects matching the BlueRed code is detected.]
indéfiniment
placer le curseur sur la ligne [1] et colonne [1] sur l'écran
effacer la ligne [1] sur l'écran
[Change the signature to any configured Color Code.]
obtenir [BlueRed v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
afficher [Color code detected!] sur l'écran ▶

Paramètres#

élément d’objet AI Vision#

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

Bloc de pile d’éléments de l’objet Set AI Vision.#
définir l'objet vu par la caméra IA sur (1)

Paramètres

Description

article

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

Exemple

Une pile de blocs commence par un bloc « quand démarré », suivi d’un bloc de commentaire indiquant « Afficher l’ID AprilTag le plus élevé détecté ». Dans une boucle infinie, un bloc « obtenir les données de l’objet » capture une image des ID AprilTag. Un bloc « si » vérifie si un objet AI Vision existe. Si c’est le cas, un bloc « définir le nombre d’objets AI Vision » assigne le nombre d’objets à une variable, et un bloc « afficher » affiche l’ID de l’objet détecté à l’écran.#
au démarrage
[Display the width of the smallest detected object.]
indéfiniment
obtenir [toutes les cargaisons v] des données de la caméra IA
effacer la ligne [1] sur l'écran
placer le curseur sur la ligne [1] et colonne [1] sur l'écran
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
définir l'objet vu par la caméra IA sur (Objet compté par la caméra IA)
afficher ([largeur v] de l'objet vu par la caméra IA) sur l'écran ▶

Valeurs#

a un objet#

Le bloc booléen has object indique si le robot a actuellement un objet détecté contre son Kicker.

  • Vrai — Le robot possède l’objet.

  • Faux — Le robot ne possède pas l’objet.

<voit [ballon de sport v] ? :: custom-ai-vision>

Paramètre

Description

objet

Objet à détecter face au lanceur du robot :

  • ballon de sport
  • baril quelconque
  • baril orange
  • baril bleu

Exemple

Une pile de blocs commence par un bloc « quand on démarre », suivi d’un bloc de commentaire indiquant : « Donner un coup de pied quand le robot a un ballon. » Dans une boucle infinie, un bloc « si » vérifie si le robot possède un ballon. Si c’est le cas, un bloc « donner un coup de pied » est exécuté avec une puissance moyenne.#
au démarrage
[Kick when the robot has a sports ball.]
indéfiniment
si <voit [ballon de sport v] ? :: custom-ai-vision> alors
tir [moyen v]

L’objet AI Vision existe#

Le bloc booléen AI Vision object exists indique si un objet est détecté dans l’ensemble de données.

  • Vrai — L’ensemble de données comprend un objet détecté.

  • Faux — Aucun objet n’a été détecté.

L’objet AI Vision existe sous forme de bloc booléen.#
<L'objet vu par la caméra IA Vision existe-t-il ?>

Paramètres

Description

Ce bloc ne comporte aucun paramètre.

Exemple

Une pile de blocs commence par un bloc « quand démarré », suivi d’un bloc de commentaire indiquant « Avancer si une balle est détectée ». Un bloc « obtenir les données de l’objet » capture l’image d’une balle de sport. Un bloc « si » vérifie ensuite la présence d’un objet AI Vision. Si c’est le cas, un bloc « avancer » fait avancer le robot de 10 millimètres.#
au démarrage
[Move forward if a sports ball is detected.]
indéfiniment
obtenir [ballon de sport v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
se déplacer [avant v] sur [10] [mm v] ▶

L’objet AI Vision est#

L’objet AI Vision est un bloc booléen indiquant si un objet détecté correspond à une classification spécifique.

  • Vrai — L’élément du jeu de données est l’objet spécifique.

  • Faux — L’élément du jeu de données n’est pas l’objet spécifique.

La classification IA de la vision est un bloc booléen d’objet.#
<L'objet vu par la caméra IA est [ballon de sport v]?>

Paramètre

Description

objet

À quel objet comparer l’élément ?

  • ballon de sport
  • tonneau orange
  • tonneau bleu
  • robot AIM

Exemple

Une pile de blocs commence par un bloc « quand démarré », suivi d’un bloc de commentaire indiquant « Afficher si un ballon de sport est détecté ». Dans une boucle infinie, un bloc « obtenir les données de l’objet » capture une image à l’aide de la classification par IA. L’écran est effacé et le curseur est positionné à la ligne 1, colonne 1. Un bloc « si » vérifie l’existence d’un objet AI Vision ; si c’est le cas, un autre bloc « si » vérifie s’il s’agit d’un ballon de sport. Si c’est le cas, un bloc « afficher » affiche « Ballon détecté ! » à l’écran, suivi d’un bloc « attendre » qui fait une pause de 0,5 seconde avant de recommencer le processus.#
au démarrage
[Display if a sports ball is detected.]
indéfiniment
obtenir [toutes les cargaisons v] des données de la caméra IA
effacer la ligne [1] sur l'écran
placer le curseur sur la ligne [1] et colonne [1] sur l'écran
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
si <L'objet vu par la caméra IA est [ballon de sport v]?> alors
afficher [Sports ball detected!] sur l'écran ▶
attendre [0.5] secondes

L’objet AI Vision est AprilTag ID#

L’objet AI Vision est un ID AprilTag (bloc booléen) indique si un ID AprilTag détecté correspond à un ID 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.#
<AI Vision object is AprilTag ID [1] ?>

Paramètres

Description

Identifiant AprilTag

Le numéro à comparer avec le numéro d’identification AprilTag détecté.

nombre d’objets AI Vision#

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

Objet compté par la caméra IA

Paramètres

Description

Ce bloc ne comporte aucun paramètre.

Exemple

au démarrage
[Display the amount of sports balls and barrels.]
indéfiniment
effacer la ligne [1] sur l'écran
placer le curseur sur la ligne [1] et colonne [1] sur l'écran
obtenir [toutes les cargaisons v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
afficher (Objet compté par la caméra IA) sur l'écran ▶
fin
attendre [0.5] secondes

propriété d’objet AI Vision#

Il existe neuf 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.#
[largeur v] de l'objet vu par la caméra IA

Toutes les valeurs de propriétés, à l’exception de tagID, 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, selon la résolution du capteur (320 x 240 pixels).

Un canon bleu à rayure orange est centré dans le cadre, entouré d'un rectangle noir. Les axes x et y sont gradués de 0 à 320 de gauche à droite en haut et de 0 à 240 de haut en bas à gauche.

Paramètre

Description

propriété

Which property of the detected object to use:

largeur#

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

Remarque : Les valeurs des pixels sont relatives au système de coordonnées du capteur. Voir le diagramme dans l’introduction pour référence.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur largeur.#
[largeur v] de l'objet vu par la caméra IA

Un canon bleu à rayure orange est centré dans le cadre, entouré d'un rectangle noir. Deux lignes verticales rouges pointillées s'étendent du haut du cadre jusqu'aux bords gauche et droit du rectangle. Une flèche noire à double pointe entre ces lignes indique la largeur.

Exemple

au démarrage
[Move towards a blue barrel until its width is larger than 100 pixels.]
indéfiniment
obtenir [baril bleu v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
si <([largeur v] de l'objet vu par la caméra IA) [math_less_than v] [100]> alors
se déplacer [avant v]
fin
sinon
arrêter tout mouvement

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 240.

Remarque : Les valeurs des pixels sont relatives au système de coordonnées du capteur. Voir le diagramme dans l’introduction pour référence.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur hauteur.#
[hauteur v] de l'objet vu par la caméra IA

Un tonneau bleu à rayure orange est centré dans le cadre, entouré d'un rectangle noir. Deux lignes horizontales rouges pointillées s'étendent du côté gauche du cadre jusqu'aux bords supérieur et inférieur du rectangle. Une flèche noire à double pointe entre ces lignes indique la hauteur.

Exemple

au démarrage
[Move towards a blue barrel until its height is larger than 100 pixels.]
indéfiniment
obtenir [baril bleu v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
si <([hauteur v] de l'objet vu par la caméra IA) [math_less_than v] [100]> alors
se déplacer [avant v]
fin
sinon
arrêter tout mouvement

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 0 et 320.

Remarque : Les valeurs des pixels sont relatives au système de coordonnées du capteur. Voir le diagramme dans l’introduction pour référence.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur centerX.#
[centreX v] de l'objet vu par la caméra IA

Un canon bleu à rayure orange est centré dans le cadre, entouré d'un rectangle noir. Une ligne verticale rouge en pointillés s'étend du haut du cadre jusqu'au centre du rectangle, indiquant l'abscisse du centre.

Exemple

au démarrage
[Turn slowly until a blue barrel is centered in front of the robot.]
définir la vitesse de rotation à [30]%
pivoter [droite v]
indéfiniment
obtenir [baril bleu v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
si <[140] [math_less_than v] ([centreX v] de l'objet vu par la caméra IA) [math_less_than v] [180]> alors
arrêter tout mouvement

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 0 et 240.

Remarque : Les valeurs des pixels sont relatives au système de coordonnées du capteur. Voir le diagramme dans l’introduction pour référence.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur centerY.#
[centreY v] de l'objet vu par la caméra IA

Un canon bleu à rayure orange est centré dans le cadre, entouré d'un rectangle noir. Une ligne pointillée rouge horizontale s'étend du côté gauche du cadre jusqu'au centre du rectangle, indiquant la coordonnée Y du centre.

Exemple

au démarrage
[Move towards a blue barrel until its center y-coordinate is more than 140 pixels.]
indéfiniment
obtenir [baril bleu v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
si <([centreY v] de l'objet vu par la caméra IA) [math_less_than v] [140]> alors
se déplacer [avant v]
fin
sinon
arrêter tout mouvement

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 0 et 320.

Remarque : Les valeurs des pixels sont relatives au système de coordonnées du capteur. Voir le diagramme dans l’introduction pour référence.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur originX.#
[origineX v] de l'objet vu par la caméra IA

Un canon bleu à rayure orange est centré dans le cadre, entouré d'un rectangle noir. Une ligne verticale rouge en pointillés s'étend du haut du cadre jusqu'au bord gauche du rectangle, indiquant l'abscisse de l'origine de ce dernier.

Exemple

au démarrage
[Display if an orange barrel is to the left or the right.]
indéfiniment
effacer la ligne [1] sur l'écran
placer le curseur sur la ligne [1] et colonne [1] sur l'écran
obtenir [baril orange v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
si <([origineX v] de l'objet vu par la caméra IA) [math_less_than v] [160]> alors
afficher [To the left!] sur l'écran ▶
sinon
afficher [To the right!] sur l'écran ▶
fin
attendre [0.5] 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 0 et 240.

Remarque : Les valeurs des pixels sont relatives au système de coordonnées du capteur. Voir le diagramme dans l’introduction pour référence.

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur originY.#
[origineY v] de l'objet vu par la caméra IA

Un canon bleu à rayure orange est centré dans le cadre, entouré d'un rectangle noir. Une ligne pointillée rouge horizontale s'étend du côté gauche du cadre jusqu'au bord supérieur du rectangle, indiquant la coordonnée Y de l'origine du rectangle.

Exemple

au démarrage
[Display if an orange barrel is close or far from the robot.]
indéfiniment
effacer la ligne [1] sur l'écran
placer le curseur sur la ligne [1] et colonne [1] sur l'écran
obtenir [baril orange v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
si <([origineY v] de l'objet vu par la caméra IA) [math_less_than v] [80]> alors
afficher [Far!] sur l'écran ▶
sinon
afficher [Close!] sur l'écran ▶
fin
attendre [0.5] secondes

rotation#

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

Le bloc de pile de propriétés de l’objet AI Vision avec son paramètre défini sur rotation.#
[rotation v] de l'objet vu par la caméra IA

Une interface de caméra affiche un objet empilé verticalement, avec une moitié supérieure bleue et une moitié inférieure rouge, centré dans le cadre. Une étiquette sous l'objet indique Rouge_Bleu A:270° CX:185 CY:81 L:93 H:150, précisant le nom de l'objet, son angle de rotation, les coordonnées X et Y de son centre, sa largeur et sa hauteur. Des lignes de grille et des axes numériques marquent les dimensions de l'image, X allant de 0 à 320 et Y de 0 à 240.

Exemple

au démarrage
[Slide left or right depending on how the Color Code is rotated.]
indéfiniment
obtenir [Red_Blue v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
si <[50] [math_less_than v] ([rotation v] de l'objet vu par la caméra IA) [math_less_than v] [100]> alors
se déplacer [droite v]
sinon si <[270] [math_less_than v] ([rotation v] de l'objet vu par la caméra IA) [math_less_than v] [330]> alors
se déplacer [à gauche v]
sinon
arrêter tout mouvement
fin
sinon
arrêter tout mouvement

palier#

La propriété orientation indique la position d’un objet à gauche ou à droite du centre du champ de vision du capteur de vision IA, exprimée en degrés. Une valeur de 0 signifie que l’objet est centré ; les valeurs positives indiquent qu’il est à droite, et les valeurs négatives qu’il est à gauche.

Un robot de programmation VEX AIM se trouve sur un terrain, avec un ballon de sport placé en diagonale vers l'avant et la gauche. Un angle de -30 degrés est tracé entre le centre du robot et le ballon. Un robot de programmation VEX AIM se trouve sur un terrain, avec un ballon de sport placé en diagonale vers l'avant et la droite. Un angle de 30 degrés est tracé entre le centre du robot et le ballon.
au démarrage
[Keep the blue barrel directly in front of the robot.]
définir la vitesse de rotation à [40]%
indéfiniment
obtenir [baril bleu v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
si <([orientation v] de l'objet vu par la caméra IA) [math_greater_than v] [5]> alors
pivoter [droite v]
sinon si <([orientation v] de l'objet vu par la caméra IA) [math_less_than v] [-5]> alors
pivoter [à gauche v]
sinon
arrêter tout mouvement

tagID#

La propriété tagID 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.#
[ID de la balise v] de l'objet vu par la caméra IA

Exemple

au démarrage
[Move forward when AprilTag ID 0 is detected.]
indéfiniment
obtenir [AprilTag ID 0 v] des données de la caméra IA
si <L'objet vu par la caméra IA Vision existe-t-il ?> alors
se déplacer [avant v]
fin
arrêter tout mouvement