Sensor de visión de IA#
Introducción#
The VEX IQ AI Vision Sensor can detect and track objects, colors, and AprilTags. This allows the robot to analyze its surroundings, follow objects, and react based on detected visual data.
The AI Vision examples are designed for use with a Basebot equipped with a VEX IQ AI Vision Sensor. In these examples, the sensor is configured with the name AIVision1, which appears in the blocks.
Below is a list of all blocks:
Actions — Capture data from the VEX IQ AI Vision Sensor for a selected signature.
get object data — Captures data for a specific object type, such as colors, pre-trained objects, or AprilTags.
Settings — Choose which object to interact with.
set AI Vision object item — Selects a specific object from the detected object list.
Values — Access and use the captured data.
AI Vision object exists? — Returns whether an object is detected.
AI Vision object count — Returns the number of detected objects.
AI Vision object property — Returns details such as:
AI Vision object is? — Checks if a detected object matches a specific classification.
AI Vision object is AprilTag ID? — Checks if a detected AprilTag matches a specific ID.
Comportamiento#
obtener datos del objeto#
The get object data block filters data from the VEX IQ AI Vision Sensor frame. The VEX IQ AI Vision Sensor can detect signatures that include pre-trained objects, AprilTags, or configured colors and color codes.
Los colores y códigos de color deben configurarse primero en AI Vision Utility antes de poder usarse con este bloque.
El conjunto de datos almacena objetos ordenados de mayor a menor por ancho, comenzando en el índice 0. Se puede acceder a las propiedades de cada objeto mediante el bloque AI Vision object property. Si no se detectan objetos coincidentes, se devuelve un conjunto de datos vacío.
obtener [SELECT_A_SIG v] datos de [AIVision 1 v]
Parámetro |
Descripción |
|---|---|
firma |
Filters the dataset to only include data of the given signature. Available signatures are:
|
Nota: Para que aparezcan las opciones de AprilTag o Clasificación de IA, su detección debe estar habilitada en la Utilidad de Visión de IA.
Ejemplo
cuando empezó
[Drive forward if an AprilTag is detected.]
para siempre
obtener [AprilTags v] datos de [AIVision 1 v]
si <¿Existe [AIVIsion1 v] objeto?> entonces
unidad [adelante v] para [10] [mm v] ▶
Clasificaciones de IA#
The VEX IQ AI Vision Sensor can detect different objects under certain AI Classifications. Depending on the AI Classification model selected when configuring the VEX IQ AI Vision Sensor in the Devices window, different objects will be detected. The currently available models are:
Objetos del aula
Bola azul
Bola verde
Bola roja
Anillo azul
Anillo verde
Anillo rojo
Cubo azul
Cubo verde
Cubo rojo
VIQRC Mezcla y combina
Haz
Pin rojo
Pin azul
Pin naranja
Firmas de color#
A Color Signature is a unique color that the VEX IQ AI Vision Sensor can recognize. These signatures allow the sensor to detect and track objects based on their color. Once a Color Signature is configured, the sensor can identify objects with that specific color in its field of view.
Las firmas de color se utilizan en el bloque Obtener datos del objeto para procesar y detectar objetos de color en tiempo real. Se pueden configurar hasta 7 firmas de color simultáneamente.
La Utilidad de Visión con IA muestra un sensor de visión conectado que detecta dos objetos de color. El lado izquierdo muestra la transmisión de una cámara en vivo con un recuadro azul a la izquierda y uno rojo a la derecha, cada uno delimitado por cuadros blancos. Las etiquetas negras muestran sus respectivos nombres, coordenadas y dimensiones. El lado derecho contiene la configuración de la firma de color, con controles deslizantes para el tono y la saturación de los recuadros rojo y azul. Los botones para agregar colores, congelar el video, copiar y guardar la imagen se encuentran en la parte inferior, junto con un botón/_static/img/AiVision/color_signatures.pngcierre en la esquina inferior derecha.
Ejemplo
cuando empezó
[Display if any objects matching the RED_BOX signature is detected.]
para siempre
Coloque el cursor en la fila [1] columna [1] en la pantalla
Limpiar la fila [1] de la pantalla
[Change the signature to any configured Color Signature.]
obtener [RED_BOX v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
imprimir [Color detected!] en la pantalla ▶
Códigos de color#
A Color Code is a structured pattern made up of 2 to 4 Color Signatures arranged in a specific order. These codes allow the VEX IQ AI Vision Sensor to recognize predefined patterns of colors.
Los códigos de color son especialmente útiles para identificar objetos complejos, alinearlos con elementos del juego o crear marcadores únicos para la navegación autónoma. Se pueden configurar hasta 8 códigos de color a la vez.
La interfaz de la Utilidad de Visión IA muestra un sensor de visión conectado que detecta dos objetos adyacentes: un cuadro azul a la izquierda y un cuadro rojo a la derecha, agrupados en un único cuadro delimitador blanco denominado AzulRojo. La información de detección incluye el ángulo (A:11°), las coordenadas (X:143, Y:103), el ancho (W:233) y la altura (H:108). En el panel derecho, se listan tres firmas de color: Cuadro Rojo, Cuadro Azul y AzulRojo, con rangos/_static/img/AiVision/color_code.pngtono y saturación ajustables. La firma AzulRojo combina el Cuadro Azul y el Cuadro Rojo. Debajo de la señal de video se encuentran los botones Congelar Video, Copiar Imagen, Guardar Imagen y Cerrar.
Ejemplo
cuando empezó
[Display if any objects matching the RED_BLUE code is detected.]
para siempre
Coloque el cursor en la fila [1] columna [1] en la pantalla
Limpiar la fila [1] de la pantalla
[Change the signature to any configured Color Code.]
obtener [RED_BLUE v] datos de [AIVision 1 v]
si <¿Existe [AIVIsion1 v] objeto?> entonces
imprimir [Code detected!] en la pantalla ▶
Ajustes#
Establecer elemento de objeto de AI Vision#
El bloque establecer elemento de objeto de AI Vision establece qué elemento del conjunto de datos utilizar.
Establecer el elemento de objeto [AIVision 1 v] en (1)
Parámetros |
Descripción |
|---|---|
artículo |
El número del elemento en el conjunto de datos que se utilizará. |
Ejemplo
cuando empezó
[Display the largest detected AprilTag ID.]
para siempre
obtener [AprilTags v] datos de [AIVision 1 v]
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
si <¿Existe [AIVision 1 v] objeto?> entonces
Establecer el elemento de objeto [AIVision 1 v] en ([AIVision 1 v]object count)
imprimir ([AIVision 1 v] objeto [ID de etiqueta v]) en la pantalla ▶
Valores#
¿Existe el objeto AI Vision?#
El bloque El objeto AI Vision existe devuelve un valor booleano que indica si se detecta algún objeto en el conjunto de datos.
True — The dataset includes a detected object.
False — The dataset does not include any detected objects.
<¿Existe [AIVision 1 v] objeto?>
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó
[Drive forward if an object is detected.]
para siempre
obtener [AI Classifications v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
unidad [adelante v] para [10] [mm v] ▶
Recuento de objetos de AI Vision#
El bloque Recuento de objetos de AI Vision devuelve la cantidad de objetos detectados en el conjunto de datos como un entero.
([AIVision 1 v] recuento de objetos)
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó
[Display the total amount of cubes, rings, and balls.]
para siempre
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
obtener [AI Classifications v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
imprimir ([AIVision 1 v] recuento de objetos) en la pantalla ▶
fin
esperar [0.5] segundos
Propiedad del objeto AI Vision#
Hay nueve propiedades que se incluyen con cada objeto (que se muestran a continuación) almacenado después de que se utiliza el bloque Obtener datos del objeto.
([AIVision 1 v] objeto [amplitud v])
Some property values are based off of the detected object’s position in the VEX IQ AI Vision Sensor’s view at the time that the Get object data block was used. The VEX IQ AI Vision Sensor has a resolution of 320 by 240 pixels.
Parámetro |
Descripción |
|---|---|
propiedad |
Which property of the detected object to use: |
ancho#
width devuelve el ancho del objeto detectado en píxeles como un entero de 1 a 320.
([AIVision 1 v] objeto [amplitud v])
Ejemplo
cuando empezó
[Drive towards an object until its width is larger than 100 pixels.]
para siempre
obtener [AI Classifications v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [amplitud v]) [math_less_than v] [100]> entonces
unidad [adelante v]
fin
demás
deja de conducir
altura#
altura devuelve la altura del objeto detectado en píxeles como un entero de 1 a 240.
([AIVision 1 v] objeto [altura v])
Ejemplo
cuando empezó
[Drive towards an object until its height is larger than 100 pixels.]
para siempre
obtener [AI Classifications v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [altura v]) [math_less_than v] [100]> entonces
unidad [adelante v]
fin
demás
deja de conducir
centroX#
centerX devuelve la coordenada x del centro del objeto detectado en píxeles como un entero de 0 a 320.
([AIVision 1 v] objeto [centroX v])
Ejemplo
cuando empezó
[Turn slowly until an object is centered in front of the robot.]
establecer la velocidad de giro a [30] [% v]
turno [derecha v]
para siempre
obtener [AI Classifications v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <[140] [math_less_than v] ([AIVision 1 v] objeto [centroX v]) [math_less_than v] [180]> entonces
deja de conducir
centroY#
centerY devuelve la coordenada y del centro del objeto detectado en píxeles como un entero de 0 a 240.
([AIVision 1 v] objeto [centroY v])
Ejemplo
cuando empezó
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
para siempre
obtener [AI Classifications v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [centroY v]) [math_less_than v] [140]> entonces
unidad [adelante v]
fin
demás
deja de conducir
ángulo#
ángulo devuelve la orientación del código de color o AprilTag detectado como un entero en grados de 0 a 359.
([AIVision 1 v] objeto [ángulo v])
Ejemplo
cuando empezó
[Slide left or right depending on how the Color Code is rotated.]
para siempre
obtener [RED_BLUE v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <[50] [math_less_than v] ([AIVision 1 v] objeto [ángulo v]) [math_less_than v] [100]> entonces
unidad [derecha v]
de lo contrario si <[270] [math_less_than v] ([AIVision 1 v] objeto [ángulo v]) [math_less_than v] [330]> entonces
unidad [izquierda v]
demás
deja de conducir
fin
demás
deja de conducir
origenX#
originX devuelve la coordenada x de la esquina superior izquierda del cuadro delimitador del objeto detectado en píxeles como un número entero de 0 a 320.
([AIVision 1 v] objeto [origenX v])
Ejemplo
cuando empezó
[Display if an object is to the left or the right.]
para siempre
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
obtener [AI Classifications v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [origenX v]) [math_less_than v] [160]> entonces
imprimir [To the left!] en la pantalla ▶
demás
imprimir [To the right!] en la pantalla ▶
fin
esperar [0.5] segundos
origenY#
originY devuelve la coordenada y de la esquina superior izquierda del cuadro delimitador del objeto detectado en píxeles como un número entero de 0 a 240.
([AIVision 1 v] objeto [origenY v])
Ejemplo
cuando empezó
[Display if an object is close or far from the robot.]
para siempre
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
obtener [AI Classifications v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [origenY v]) [math_less_than v] [80]> entonces
imprimir [Far!] en la pantalla ▶
demás
imprimir [Close!] en la pantalla ▶
fin
esperar [0.5] segundos
ID de etiqueta#
tagID devuelve el número de identificación del AprilTag detectado como un entero.
([AIVision 1 v] objeto [ID de etiqueta v])
Ejemplo
cuando empezó
[Drive forward when AprilTag ID 0 is detected.]
para siempre
obtener [AprilTags v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [ID de etiqueta v]) [math_equal v] [0]> entonces
unidad [adelante v]
demás
deja de conducir
fin
esperar [0.5] segundos
¿Qué es el objeto de AI Vision?#
El bloque ¿El objeto AI Vision es? devuelve un valor booleano que indica si un objeto detectado coincide con una clasificación específica.
True — The item in the dataset is the specific object.
False — The item in the dataset is not the specific object.
<[AIVision1 v] object is [BlueBall v]?>
Parámetro |
Descripción |
|---|---|
objeto |
¿Con qué Clasificación IA comparar el artículo? |
Ejemplo
cuando empezó
[Display if a Blue Cube is detected.]
para siempre
obtener [AI Classifications v] datos de [AIVision 1 v]
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
si <¿Existe [AIVision 1 v] objeto?> entonces
si <[AIVision1 v] object is [BlueCube v]?> entonces
imprimir [Cube detected!] en la pantalla ▶
esperar [0.5] segundos
¿El objeto AI Vision es AprilTag ID?#
El bloque ¿El objeto AI Vision es AprilTag ID? devuelve un valor booleano que indica si un AprilTag detectado coincide con un ID específico.
True — The AprilTag ID is the number.
False — The AprilTag ID is not the number.
<[AIVision 1 v] objeto es AprilTag [1]?>
Parámetros |
Descripción |
|---|---|
Número de etiqueta de abril |
El número que se comparará con el número de identificación de AprilTag detectado. |
Ejemplo:
cuando empezó
[Report if AprilTag ID 3 is detected.]
para siempre
pantalla clara
Coloque el cursor en la fila [1] columna [1] en la pantalla
obtener [AprilTags v] datos de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <[AIVision 1 v] objeto es AprilTag [3]?> entonces
imprimir [That is 3!] en la pantalla ▶
demás
imprimir [That isn't 3!] en la pantalla ▶
fin
fin
esperar [0.1] segundos