Visión de IA#

Introducción#

El sensor de visión de IA del robot de codificación VEX AIM detecta y rastrea objetos, colores y AprilTags. Esto le permite analizar su entorno, seguir objetos y reaccionar según los datos visuales detectados. A continuación, se muestra una lista de todos los bloques disponibles:

Acciones: controla la alimentación de AI Vision y captura datos de objetos.

  • Visor de AI Vision – Habilita o deshabilita la transmisión en vivo de AI Vision en la pantalla del robot.

  • obtener datos de objeto – Captura datos para un tipo de objeto específico, como colores, objetos entrenados previamente o AprilTags.

Configuración: ajusta a qué objetos detectados se accede.

Valores – Devuelve la presencia, clasificación y propiedades del objeto.

Comportamiento#

Visor de AI Vision#

El bloque Visor de Visión de IA activa o desactiva la transmisión en vivo de Visión de IA en la pantalla del robot. Al activarse, la pantalla muestra datos del sensor en tiempo real, lo que impide que aparezcan otras imágenes o texto. Para mostrar otro contenido, utilice este bloque para ocultar la transmisión.

El bloque de pila del panel de control de AI Vision para mostrar u ocultar.#
[mostrar v] Visor de visión de IA en pantalla

Parámetros

Descripción

estado

Controla la visualización de la fuente de datos en la pantalla del robot:

  • mostrar: muestra la fuente de datos.
  • ocultar: elimina la fuente de datos de la pantalla.

Ejemplo

Una pila de bloques que comienza con un bloque “Cuándo se inició”, seguido de un bloque de comentario que indica “Ver la fuente del sensor de visión de IA durante cinco segundos”. Un bloque “Mostrar panel de AI Vision” muestra la fuente; luego, un bloque “Esperar” pausa la ejecución durante cinco segundos. Tras la espera, un bloque “Ocultar panel de AI Vision” elimina la fuente de la vista.#
cuando empieza :: hat events
[Vea la transmisión del sensor de visión de inteligencia artificial durante cinco segundos.]
[mostrar v] Visor de visión de IA en pantalla
esperar [5] segundos
[ocultar v] Visor de visión de IA en pantalla

obtener datos del objeto#

El bloque obtener datos de objeto filtra los datos del marco del sensor de visión de IA. Este puede detectar firmas que incluyen objetos preentrenados, AprilTags o colores y códigos de color configurados.

Colors and color codes must be configured first in the AI Vision Utility before they can be used with this block.

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.

El bloque de pila Obtener datos del objeto.#
obtener [balón deportivo v] datos de AI Vision

Parámetro

Descripción

firma

Filtra el conjunto de datos para incluir solo los datos de la firma dada. Las firmas disponibles son:

  • Balón deportivo
  • Barril naranja
  • Barril azul
  • Robot AIM
  • ID de AprilTag 0
  • ID de AprilTag 1
  • ID de AprilTag 2
  • ID de AprilTag 3
  • ID de AprilTag 4
  • Toda la carga: balones deportivos y todos los barriles
  • NOMBRE: un color o código de color donde NOMBRE es el nombre configurado en la Utilidad AI Vision

Ejemplo

Una pila de bloques que comienza con un bloque “Cuando se inició”, seguido de un bloque de comentario que indica “Avanzar si se detecta un balón deportivo”. Un bloque “Tomar una instantánea de AI Vision” captura la imagen de un balón deportivo. Un bloque “Si” comprueba si existe un objeto de AI Vision. Si es verdadero, un bloque “Avanzar” mueve el robot 10 milímetros hacia adelante.#
cuando empieza :: hat events
[Avanzar si se detecta un balón deportivo.]
por siempre
obtener [balón deportivo v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
mover [adelante v] para [10] [mm v] ▶

Firmas de color#

Una Firma de Color es un color único que el Sensor de Visión con IA puede reconocer. Estas firmas permiten al sensor detectar y rastrear objetos según su color. Una vez configurada una Firma de Color, el sensor puede identificar objetos con ese color específico en su campo de visión.

Las firmas de color se utilizan en el bloque Obtener datos del objeto para procesar y detectar objetos de color en tiempo real.

AI Vision Utility muestra un sensor de visión conectado que detecta dos objetos de colores. El lado izquierdo muestra una transmisión de cámara en vivo con un cuadro azul a la izquierda y un cuadro rojo a la derecha, cada uno delineado con cuadros delimitadores 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 el rango de saturación para los cuadros rojo y azul. Los botones para añadir colores, congelar vídeo, copiar y guardar la imagen se encuentran en la parte inferior, junto con un botón de cierre en la esquina inferior derecha.

Ejemplo

cuando empieza :: hat events
[Se detecta la visualización de un objeto que coincide con la firma de Red Box.]
por siempre
establecer cursor a [1]  columna de fila [1] en pantalla
borrar fila [1] en pantalla
[Cambie la firma a cualquier Firma de color configurada.]
obtener [Red_Box v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
imprimir [¡Firma de color detectada!] en pantalla ▶

Códigos de color#

Un código de color es un patrón estructurado compuesto por de 2 a 4 firmas de color, dispuestas en un orden específico. Estos códigos permiten al sensor de visión con IA reconocer patrones de colores predefinidos.

Los códigos de color son particularmente útiles para identificar objetos complejos, alinearse con elementos del juego o crear marcadores únicos para la navegación autónoma.

La interfaz de AI Vision Utility 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 solo cuadro delimitador blanco etiquetado como BlueRed. 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 muestran tres firmas de color: Red_Box, Blue_Box y BlueRed, con rangos de tonalidad y saturación ajustables. La firma BlueRed combina Blue_Box y Red_Box. Debajo de la fuente de vídeo hay botones etiquetados como Congelar vídeo, Copiar imagen, Guardar imagen y Cerrar.

Ejemplo

cuando empieza :: hat events
[Se detecta la visualización de un objeto que coincide con el código Azul Rojo.]
por siempre
establecer cursor a [1]  columna de fila [1] en pantalla
borrar fila [1] en pantalla
[Cambie la firma a cualquier código de color configurado.]
obtener [BlueRed v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
imprimir [Código de color detectado!] en 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.

El bloque de pila de elementos del objeto Establecer visión de IA.#
establecer el elemento de objeto AI Vision en (1)

Parámetros

Descripción

artículo

El número del elemento en el conjunto de datos que se utilizará.

Ejemplo

Una pila de bloques que comienza con un bloque “cuando se inició”, seguido de un bloque de comentario que indica “Mostrar el ID de AprilTag más grande detectado”. Dentro de un bucle infinito, un bloque “tomar una instantánea de AI Vision” captura una imagen de AprilTags. Un bloque “si” comprueba si existe un objeto de AI Vision. Si es verdadero, un bloque “establecer elemento de objeto de AI Vision” asigna el recuento de objetos a una variable, y un bloque “imprimir” muestra el ID de etiqueta del objeto detectado en la pantalla.#
cuando empieza :: hat events
[Mostrar el ID de AprilTag más grande detectado.]
por siempre
obtener [abrilEtiquetas v] datos de AI Vision
borrar fila [1] en pantalla
establecer cursor a [1]  columna de fila [1] en pantalla
si <¿Existe el objeto AI Vision?> entonces
establecer el elemento de objeto AI Vision en (Recuento de objetos de AI Vision)
imprimir (Objeto AI Vision [ID de etiqueta v]) en pantalla ▶

Valores#

¿tiene objeto?#

El bloque tiene objeto devuelve un valor booleano que indica si el robot tiene actualmente un objeto detectado contra su Kicker.

  • Verdadero – El robot tiene el objeto.

  • Falso – El robot no tiene el objeto.

El bloque de pila del panel de control de AI Vision para mostrar u ocultar.#
<tiene [balón deportivo v] ?>

Parámetro

Descripción

objeto

El objeto a detectar contra el pateador del robot:

  • pelota deportiva
  • cualquier barril
  • barril naranja
  • barril azul

Ejemplo

Una pila de bloques que comienza con un bloque “cuando se inició”, seguido de un bloque de comentario que indica “Patear” cuando el robot tiene una pelota. Dentro de un bucle infinito, un bloque “si” comprueba si el robot tiene una pelota deportiva. Si es verdadero, un bloque de objeto “patear” se ejecuta con potencia media.#
cuando empieza :: hat events
[Patea cuando el robot tiene una pelota deportiva.]
por siempre
si <tiene [balón deportivo v] ?> entonces
patear objeto [mediano v]

¿Existe el objeto AI Vision?#

The AI Vision object exists block returns a Boolean indicating whether any object is detected in the dataset.

  • Verdadero: el conjunto de datos incluye un objeto detectado.

  • Falso: el conjunto de datos no incluye ningún objeto detectado.

El objeto AI Vision existe en el bloque booleano.#
<¿Existe el objeto AI Vision?>

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

Una pila de bloques que comienza con un bloque “Cuando se inició”, seguido de un bloque de comentario que indica “Avanzar si se detecta una pelota”. Un bloque “Tomar una instantánea de AI Vision” captura la imagen de una pelota deportiva. Un bloque “Si” comprueba si existe un objeto de AI Vision. Si es verdadero, un bloque “Avanzar” mueve el robot 10 milímetros hacia adelante.#
cuando empieza :: hat events
[Avanzar si se detecta un balón deportivo.]
por siempre
obtener [balón deportivo v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
mover [adelante v] para [10] [mm v] ▶

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

  • Verdadero: el elemento del conjunto de datos es el objeto específico.

  • Falso: el elemento del conjunto de datos no es el objeto específico.

La clasificación de IA de AI Vision es un bloque booleano de objetos.#
<¿El objeto AI Vision es [balón deportivo v] ?>

Parámetro

Descripción

objeto

¿Con qué objeto comparar el artículo?

  • Pelota deportiva
  • Barril naranja
  • Barril azul
  • Robot AIM

Ejemplo

Una pila de bloques que comienza con un bloque “cuando se inició”, seguido de un bloque de comentario que indica “Mostrar si se detecta un balón deportivo”. Dentro de un bucle infinito, un bloque “tomar una instantánea de AI Vision” captura una imagen usando Clasificaciones de IA. La pantalla se borra y el cursor se coloca en la fila 1, columna 1. Un bloque “si” comprueba si existe un objeto de AI Vision y, si es verdadero, otro bloque “si” verifica si la clasificación corresponde a un balón deportivo. De ser así, un bloque de impresión muestra “¡Balón detectado!” en la pantalla, seguido de un bloque de espera que se detiene durante 0,5 segundos antes de repetir el proceso.#
cuando empieza :: hat events
[Mostrar si se detecta un balón deportivo.]
por siempre
obtener [toda la carga v] datos de AI Vision
borrar fila [1] en pantalla
establecer cursor a [1]  columna de fila [1] en pantalla
si <¿Existe el objeto AI Vision?> entonces
si <¿El objeto AI Vision es [balón deportivo v] ?> entonces
imprimir [Balón deportivo detectado!] en 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.

  • Verdadero: el ID de AprilTag es el número.

  • Falso: el ID de AprilTag no es el número.

AI Vision detectó que AprilTag es un bloque booleano.#
<¿El objeto AI Vision 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.

cuando empieza :: hat events
[Informar si se detecta el ID 3 de AprilTag.]
por siempre
borrar pantalla
establecer cursor a [1]  columna de fila [1] en pantalla
obtener [abrilEtiquetas v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <¿El objeto AI Vision es AprilTag [3] ?> entonces
imprimir [Eso es 3!] en pantalla ▶
si no
imprimir [Eso no es 3!] en pantalla ▶
fin
fin
esperar [0.1] segundos

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.

El bloque de pila de elementos del objeto Establecer visión de IA.#
Recuento de objetos de AI Vision

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando empieza :: hat events
[Muestra la cantidad de pelotas deportivas y barriles.]
por siempre
borrar fila [1] en pantalla
establecer cursor a [1]  columna de fila [1] en pantalla
obtener [toda la carga v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
imprimir (Recuento de objetos de AI Vision) en 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.

El bloque informador de propiedades de objetos de AI Vision.#
Objeto AI Vision [amplitud v]

Some property values are based off of the detected object’s position in the AI Vision Sensor’s view at the time that the Get object data block was used. The AI Vision Sensor has a resolution of 320 by 240 pixels.

Un barril azul con una franja naranja está centrado en el marco, rodeado por un cuadro delimitador negro.

Parámetro

Descripción

propiedad

¿Qué propiedad del objeto detectado utilizar?

ancho#

width devuelve el ancho del objeto detectado en píxeles como un entero de 1 a 320.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en ancho.#
Objeto AI Vision [amplitud v]

Un barril azul con una raya naranja está centrado en el marco, rodeado por un recuadro negro. Dos líneas verticales rojas discontinuas se extienden desde la parte superior del cuadro hasta los bordes izquierdo y derecho del cuadro delimitador. Una flecha negra de dos puntas entre estas líneas indica la medida del ancho.

Ejemplo

cuando empieza :: hat events
[Muévete hacia un barril azul hasta que su ancho sea mayor a 100 píxeles.]
por siempre
obtener [barril azul v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <(Objeto AI Vision [amplitud v]) [math_less_than v] [100]> entonces
mover [adelante v]
fin
si no
detener todo movimiento

altura#

altura devuelve la altura del objeto detectado en píxeles como un entero de 1 a 240.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en altura.#
Objeto AI Vision [altura v]

Un barril azul con una raya naranja está centrado en el marco, rodeado por un recuadro negro. Dos líneas discontinuas rojas horizontales se extienden desde el lado izquierdo del marco hasta los bordes superior e inferior del cuadro delimitador. Una flecha negra de dos puntas entre estas líneas indica la medición de la altura.

Ejemplo

cuando empieza :: hat events
[Muévete hacia un barril azul hasta que su altura sea mayor a 100 píxeles.]
por siempre
obtener [barril azul v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <(Objeto AI Vision [altura v]) [math_less_than v] [100]> entonces
mover [adelante v]
fin
si no
detener todo movimiento

centroX#

centerX devuelve la coordenada x del centro del objeto detectado en píxeles como un entero de 0 a 320.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en centerX.#
Objeto AI Vision [centroX v]

Un barril azul con una franja naranja está centrado en el marco, rodeado por un recuadro negro. Una línea discontinua roja vertical se extiende desde la parte superior del marco hasta el centro del cuadro delimitador, indicando la coordenada X del centro.

Ejemplo

cuando empieza :: hat events
[Gire lentamente hasta que un barril azul esté centrado frente al robot.]
establecer la velocidad de giro [30] en %
giro [derecha v]
por siempre
obtener [barril azul v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <[140] [math_less_than v] (Objeto AI Vision [centroX v]) [math_less_than v] [180]> entonces
detener todo movimiento

centroY#

centerY devuelve la coordenada y del centro del objeto detectado en píxeles como un entero de 0 a 240.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en centerY.#
Objeto AI Vision [centroY v]

Un barril azul con una franja naranja está centrado en el marco, rodeado por un recuadro negro. Una línea discontinua roja horizontal se extiende desde el lado izquierdo del marco hasta el centro del cuadro delimitador, indicando la coordenada Y del centro.

Ejemplo

cuando empieza :: hat events
[Muévase hacia un barril azul hasta que su coordenada y central sea mayor a 140 píxeles.]
por siempre
obtener [barril azul v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <(Objeto AI Vision [centroX v]) [math_less_than v] [140]> entonces
mover [adelante v]
fin
si no
detener todo movimiento

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.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en originX.#
Objeto AI Vision [origenX v]

Un barril azul con una raya naranja está centrado en el marco, rodeado por un recuadro negro. Una línea discontinua roja vertical se extiende desde la parte superior del marco hasta el borde izquierdo del cuadro delimitador, indicando la coordenada X del origen del cuadro delimitador.

Ejemplo

cuando empieza :: hat events
[Muestra si un barril naranja está a la izquierda o a la derecha.]
por siempre
borrar fila [1] en pantalla
establecer cursor a [1]  columna de fila [1] en pantalla
obtener [barril de naranja v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <(Objeto AI Vision [origenX v]) [math_less_than v] [160]> entonces
imprimir [A la izquierda!] en pantalla ▶
si no
imprimir [A la derecha!] en 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.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en originY.#
Objeto AI Vision [origenY v]

Un barril azul con una raya naranja está centrado en el marco, rodeado por un recuadro negro. Una línea discontinua roja horizontal se extiende desde el lado izquierdo del marco hasta el borde superior del cuadro delimitador, indicando la coordenada Y del origen del cuadro delimitador.

Ejemplo

cuando empieza :: hat events
[Mostrar si un barril naranja está cerca o lejos del robot.]
por siempre
borrar fila [1] en pantalla
establecer cursor a [1]  columna de fila [1] en pantalla
obtener [barril de naranja v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <(Objeto AI Vision [origenY v]) [math_less_than v] [80]> entonces
imprimir [Lejos!] en pantalla ▶
si no
imprimir [Cerca!] en pantalla ▶
fin
esperar [0.5] segundos

rotación#

La rotación devuelve la orientación del AprilTag o código de color detectado como un entero en grados de 0 a 359.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en rotación.#
Objeto AI Vision [rotación v]

Una interfaz de cámara muestra un objeto apilado verticalmente con una mitad superior azul y una mitad inferior roja, centradas en el marco. Una etiqueta debajo del objeto dice Red_Blue A:270° CX:185 CY:81 W: 93 H:150, indicando el nombre del objeto, el ángulo de rotación, las coordenadas X e Y del centro, el ancho y la altura. Las líneas de cuadrícula y los ejes numéricos marcan las dimensiones de la imagen, con X que van de 0 a 320 e Y de 0 a 240.

Ejemplo

cuando empieza :: hat events
[Deslice hacia la izquierda o hacia la derecha según cómo gire el código de color.]
por siempre
obtener [Red_Blue v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <[50] [math_less_than v] (Objeto AI Vision [rotación v]) [math_less_than v] [100]> entonces
mover [derecha v]
de lo contrario si <[270] [math_less_than v] (Objeto AI Vision [rotación v]) [math_less_than v] [330]> entonces
mover [izquierda v]
si no
detener todo movimiento
fin
si no
detener todo movimiento

cojinete#

El rumbo indica la distancia a la izquierda o a la derecha de un objeto respecto al centro de la vista del sensor de visión de IA, expresada en grados. Un valor de 0 significa que está centrado, los valores positivos indican que el objeto está a la derecha y los negativos, a la izquierda.

cuando empieza :: hat events
[Mantenga el barril azul directamente frente al robot..]
establecer la velocidad de giro [40] en %
por siempre
obtener [barril azul v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <(Objeto AI Vision [rodamiento v]) [math_greater_than v] [5]> entonces
giro [derecha v]
de lo contrario si <(Objeto AI Vision [rodamiento v]) [math_less_than v] [-5]> entonces
giro [izquierda v]
si no
detener todo movimiento

ID de etiqueta#

tagID devuelve el número de identificación del AprilTag detectado como un entero.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en tagID.#
Objeto AI Vision [ID de etiqueta v]

Ejemplo

cuando empieza :: hat events
[Avanzar cuando se detecte el ID de AprilTag 0.]
por siempre
obtener [abrilEtiquetas v] datos de AI Vision
si <¿Existe el objeto AI Vision?> entonces
si <(Objeto AI Vision [ID de etiqueta v]) [math_equal v] [0]> entonces
mover [adelante v]
fin
detener todo movimiento