Codificación con el sensor de visión AI en bloques VEXcode V5

Asegúrese de tener Firmas de color y Códigos de color configurados con su Sensor de visión AI para que puedan usarse con sus bloques. Para obtener más información sobre cómo configurarlos, puede leer los siguientes artículos:

El sensor de visión de IA también puede detectar clasificaciones de IA y etiquetas de abril. Para saber cómo habilitar estos modos de detección, vaya aquí:

Para obtener más información sobre estos bloques individuales y cómo usarlos en VEXcode, vaya al sitio de la API.


Tomar instantánea

Un bloque que contiene el comando toma una instantánea de con dos selecciones desplegables: una etiquetada AIVision1 y la otra etiquetada COL1. Este bloque está diseñado para tomar una instantánea de un sensor de visión de IA y hacer referencia a un objeto o color específico de las variables designadas en un entorno de codificación visual. La forma del bloque tiene ligeras curvas en los extremos, típicas de las interfaces de codificación basadas en bloques.

El bloque Tomar instantánea toma una imagen de lo que el sensor de visión de IA está viendo actualmente y extrae datos de esa instantánea que luego se pueden usar en un proyecto. Cuando se toma una instantánea, debe especificar de qué tipo de objeto debe recopilar datos el sensor de visión AI:

  • Firma del color
  • Código de color
  • Clasificaciones de IA
  • AprilTags

Tomar una instantánea creará una matriz de todos los objetos detectados que especificó. Por ejemplo, si desea detectar una firma de color "rojo" yel sensor de visión AI detecta 3 objetos rojos diferentes, los datos de los tres se colocarán en la matriz.

Para obtener más información sobre cómo especificar entre diferentes objetos, vaya a la sección "Establecer elemento de objeto" en este artículo.

Un bloque de codificación azul claro con el comando para tomar una instantánea de un objeto o color. Hay dos opciones desplegables: una etiquetada como AIVision2 y la otra etiquetada como Blue. El bloque está diseñado para su uso en un entorno de codificación basado en bloques, donde captura una instantánea de un sensor AI Vision y rastrea un objeto o color definido como Azul. El bloque tiene ligeras curvas, típicas de las interfaces de codificación que utilizan bloques modulares.

En este ejemplo, solo detectará objetos que coincidan con su Firma de color "Azul" configurada y nada más.

Datos tomados de una instantánea

Tenga en cuenta que el sensor de visión AI utilizará su última instantánea tomada para cualquier bloque que venga después. Para asegurarse de que siempre está obteniendo la información más actualizada de su sensor de visión de IA, vuelva a tomar su instantánea cada vez que desee extraer datos de ella. 

Resolución

Comprender la resolución del sensor de visión de IA es crucial para una interpretación precisa de los datos. El sensor tiene una resolución de 320x240 píxeles, con el centro exacto en las coordenadas (160, 120).

Las coordenadas X inferiores a 160 corresponden a la mitad izquierda del campo de visión del sensor, mientras que las superiores a 160 representan la mitad derecha. Del mismo modo, las coordenadas Y inferiores a 120 indican la mitad superior de la vista, y las superiores a 120 representan la mitad inferior.

Vaya a Comprensión de los datos en AI Vision Utility en VEXcode V5 para obtener más información sobre cómo se miden los objetos con el sensor de visión AI.

Ancho y alto

Este es el ancho o la altura del objeto detectado en píxeles.

La imagen muestra una Buckyball azul con un contorno cuadrado blanco que la sigue. La esquina superior izquierda tiene una etiqueta que indica que es un objeto azul, con coordenadas X:176, Y:117 y dimensiones W:80, H:78. Las flechas rojas resaltan el ancho y el alto del objeto.

Las medidas de ancho y alto ayudan a identificar diferentes objetos. Por ejemplo, una Buckyball tendrá una altura mayor que un Ring.

Dos objetos cúbicos azules rastreados por un sistema de reconocimiento visual. El cubo superior tiene un contorno blanco con una etiqueta que indica su posición como X:215, Y:70 y dimensiones W:73, H:84. El cubo inferior tiene un contorno blanco similar con la etiqueta que muestra X:188, Y:184 y dimensiones W:144, H:113. Cada cubo tiene una cruz blanca centrada, que probablemente indica el punto focal para el seguimiento. Las etiquetas resaltan las mediciones y los datos de seguimiento de cada objeto.

El ancho y la altura también indican la distancia de un objeto desde el sensor de visión AI. Las mediciones más pequeñas generalmente significan que el objeto está más lejos, mientras que las mediciones más grandes sugieren que está más cerca.

El programa comienza con el bloque cuando se inicia, seguido de un bucle para siempre. Dentro del bucle, el programa toma una instantánea utilizando el sensor AI Vision (AIVision1) para detectar un objeto azul. Si el objeto existe, el programa comprueba si el ancho del objeto es inferior a 250 píxeles. Si es cierto, el robot avanza; de lo contrario, deja de conducir. Los bloques se apilan juntos, indicando el flujo del programa en un entorno de codificación modular.

En este ejemplo, el ancho del objeto se utiliza para la navegación. El robot se acercará al objeto hasta que el ancho haya alcanzado un tamaño específico antes de detenerse.

CenterX y Center Y

Estas son las coordenadas centrales del objeto detectado en píxeles.

Una Buckyball azul siendo rastreada por un sistema de visión por computadora. El objeto está delineado con un cuadrado blanco, y dentro del contorno hay un cuadrado rojo más pequeño que rodea una cruz blanca centrada. En la esquina superior izquierda de la imagen, una etiqueta indica que el objeto es azul, con coordenadas X:176, Y:117 y dimensiones W:80, H:78.

Las coordenadas CenterX y CenterY ayudan con la navegación y el posicionamiento. El sensor de visión AI tiene una resolución de 320 x 240 píxeles.

Dos objetos cúbicos azules rastreados por un sistema de visión. El objeto superior está etiquetado con las coordenadas X:215, Y:70 y las dimensiones W:73, H:84, con un contorno blanco y una cruz blanca centrada. El objeto inferior está etiquetado con las coordenadas X:188, Y:184 y las dimensiones W:144, H:113, también delineadas en blanco con una cruz blanca centrada.

Puede ver que un objeto más cercano al sensor de visión AI tendrá una coordenada CenterY más baja que un objeto que está más lejos.

Una secuencia de codificación basada en bloques que comienza con cuando se inicia seguida de un bucle para siempre. Dentro del bucle, el programa toma una instantánea usando AIVision1 para detectar un objeto azul. Si existe un objeto, el programa gira hasta que el objeto esté centrado en la vista del sensor AI Vision. El objeto se considera centrado si su valor centerX está entre 150 y 170. Si el objeto no está centrado, el robot gira a la derecha; de lo contrario, deja de conducir. Los bloques indican el flujo y la lógica del programa visual.

En este ejemplo, debido a que el centro de la vista del sensor de visión AI es (160, 120), el robot girará a la derecha hasta que la coordenada centerX de un objeto detectado sea superior a 150 píxeles, pero inferior a 170 píxeles.

Ángulo

Angle es una propiedad solo disponible para códigos de colorAprilTags. Esto representa si el código de color detectado o AprilTag está orientado de manera diferente.

Una pila de dos cubos, uno verde en la parte superior y otro azul en la parte inferior, siendo rastreados por un sistema de visión. Un contorno blanco rodea ambos cubos, con una cruz blanca centrada en el cubo verde. La etiqueta en la parte inferior de la imagen muestra Green_Blue A:87°, indicando los colores detectados y una medición del ángulo. Debajo de eso, las coordenadas se enumeran como X:117, Y:186, con dimensiones W:137, H:172, que representan la posición y el tamaño de los cubos apilados en el marco.

Puede ver si el robot está orientado de manera diferente en relación con el Color CodeAprilTag y tomar decisiones de navegación de acuerdo con eso.

Dos cubos, uno verde y otro azul, colocados uno al lado del otro y seguidos por un sistema de visión. Un contorno blanco rodea ambos cubos con una cruz blanca en el centro. La etiqueta superior izquierda indica Green_Blue A:0°, haciendo referencia a los colores detectados y a una medición de ángulo. Debajo de eso, las coordenadas se muestran como X:150, Y:102, con dimensiones W:179, H:109, que representan la posición y el tamaño de los cubos dentro del marco.

Por ejemplo, si un código de color no se detecta en un ángulo adecuado, es posible que el objeto que representa no pueda ser recogido correctamente por el robot.

OriginX y OriginY

OriginX y OriginY son las coordenadas en la esquina superior izquierda del objeto detectado en píxeles.

Una Buckyball azul siendo rastreada por un sistema de visión. Un contorno blanco rodea el objeto, con una cruz blanca centrada dentro del contorno. La etiqueta superior izquierda indica el color del objeto en azul, junto con las coordenadas X:176, Y:117 y las dimensiones W:80, H:78. Un pequeño cuadrado rojo resalta la esquina superior izquierda del objeto.

Las coordenadas OriginX y OriginY ayudan con la navegación y el posicionamiento. Al combinar esta coordenada con el ancho y la altura del objeto, puede determinar el tamaño del cuadro delimitador del objeto. Esto puede ayudar a rastrear objetos en movimiento o navegar entre objetos.

Una secuencia de codificación basada en bloques que comienza con cuando se inicia seguida de un bucle Forever. Dentro del bucle, el programa toma una instantánea usando AIVision1 para detectar un objeto azul. Si el objeto existe, el programa dibujará un rectángulo en la pantalla Cerebro en función de la posición y el tamaño del objeto. El rectángulo se dibuja utilizando los valores originX, originY, width y height del objeto, que son proporcionados por el sensor AIVision1. Este programa rastrea y resalta visualmente el objeto detectado en la pantalla Cerebro.

En este ejemplo, se dibujará un rectángulo en el cerebro utilizando las coordenadas exactas de su origen, ancho y altura.

tagID

El tagID solo está disponible para AprilTags. Este es el número de identificación de la etiqueta de abril especificada.

Tres tarjetas cuadradas con AprilTags rastreadas por un sistema de visión. Cada tarjeta está etiquetada con un número de identificación y los datos de seguimiento asociados. La tarjeta de la izquierda tiene la etiqueta ID:0, que muestra las coordenadas A:350°, X:110, Y:96, W:41, H:41. La tarjeta del medio, etiquetada ID:3, tiene coordenadas A:1°, X:187, Y:180, W:57, H:57. La tarjeta de la derecha tiene la etiqueta ID:9, con coordenadas A:3°, X:237, Y:89, W:38, H:38. Cada carta tiene un contorno blanco y el sistema realiza un seguimiento de sus posiciones y orientaciones.

La identificación de AprilTags específicos permite una navegación selectiva. Puede programar su robot para moverse hacia ciertas etiquetas mientras ignora otras, usándolas efectivamente como señales para la navegación automatizada.

Puntaje

La propiedad score se utiliza al detectar clasificaciones de IA con el sensor de visión de IA.

La imagen muestra cuatro objetos rastreados por un sistema de visión: dos bolas y dos anillos. La bola roja está etiquetada con las coordenadas X:122, Y:84, W:67, H:66 y una puntuación del 99%. La bola azul tiene X:228, Y:86, W:70, H:68, con una puntuación del 99%. El anillo verde tiene coordenadas X:109, Y:186, W:98, H:92 y una puntuación del 99%. El anillo rojo está etiquetado como X:259, Y:187, W:89, H:91, con una puntuación del 99%. Cada objeto está delineado en blanco, lo que indica la precisión del seguimiento.

El puntaje de confianza indica qué tan seguro es el sensor de visión AI sobre su detección. En esta imagen, tiene un 99% de confianza en la identificación de las clasificaciones de IA de estos cuatro objetos. Puede usar esta puntuación para asegurarse de que su robot solo se centre en detecciones de alta confianza.


Establecer artículo de objeto

Cuando el sensor de visión de IA detecta un objeto, se coloca en una matriz. De forma predeterminada, el sensor de visión AI extraerá datos del primer objeto de la matriz o del objeto con el índice de 1. Si su sensor de visión AI solo ha detectado un objeto, ese objeto se  seleccionará de forma predeterminada.
Sin embargo,
cuando su sensor de visión AI haya detectado varios objetos a la vez, deberá usar el bloque Establecer elemento de objeto para especificar de qué objeto desea extraer datos.

Un bloque de codificación azul claro. Contiene un comando para establecer el elemento de objeto para AIVision1 en 1. Este bloque es parte de un entorno de codificación basado en bloques, que generalmente se utiliza para definir en qué objeto o elemento debe enfocarse o rastrearse el sensor AI Vision. La forma del bloque tiene ligeras curvas, que encajan en la naturaleza modular de la plataforma de codificación visual.

Cuando el sensor de visión de IA detecta varios objetos, se organizan en la matriz de mayor a menor. Eso significa que el objeto detectado más grande siempre se establecerá en el índice de objeto 1, y el objeto más pequeño siempre se establecerá en el número más alto.

La interfaz de AI Vision Utility con dos cubos azules detectados en el lado izquierdo, cada uno marcado con sus coordenadas y dimensiones X e Y. El sistema está conectado y las etiquetas de abril están activadas, mientras que la clasificación de IA está desactivada. A la derecha, se muestran los ajustes de color azul con rangos de tonalidad y saturación ajustables, configurados en 22 y 0.34, respectivamente. Existe la opción de agregar o configurar el color y congelar el video. El firmware está actualizado, ejecutando la versión 1.0.0.b16, y un botón de cierre está disponible en la parte inferior.

En este ejemplo se han detectado dos objetos con la Firma de Color “Azul”. Ambos se colocarán en la matriz cuando se utilice el bloque Tomar instantánea.

La interfaz de AI Vision Utility, que rastrea dos cubos azules etiquetados con sus datos X, Y y de dimensión. El cubo izquierdo tiene coordenadas X:127, Y:179 y dimensiones W:136, H:123, mientras que el cubo derecho tiene coordenadas X:233, Y:74 y dimensiones W:78, H:87. El sistema está conectado, AprilTags está encendido y AI Classification está apagado. Los ajustes de color azul tienen un rango de tonalidad de 22 y una saturación de 0,34. En la parte inferior se muestra un botón Freeze Video e información de firmware (versión 1.0.0.b16).

Aquí, el objeto en el frente se convertiría en el índice de objeto 1, ya que es el objeto más grande, y el objeto más pequeño se convertiría en el índice de objeto 2.


El objeto existe

Antes de extraer cualquier dato de una instantánea, es importante verificar siempre para asegurarse de que el sensor de visión AI haya detectado primero cualquier objeto de esa instantánea. Aquí es donde entra en juego el bloque Object Exists.

¿Existe un bloque de codificación hexagonal azul claro con el objeto de texto AIVision1? Este bloque es parte de un entorno de codificación basado en bloques, que generalmente se utiliza para verificar si un objeto es detectado por el sensor AI Vision etiquetado como AIVision1. El bloque está diseñado para encajar dentro de una estructura de codificación modular, con las ligeras curvas y la forma característica de dichos entornos.

Este bloque devolverá un valor VerdaderoFalso sobre si la última instantánea tomada tiene o no algún objeto detectado en ella.

Este bloque siempre debe usarse para asegurarse de que no está tratando de extraer ningún dato de una instantánea potencialmente vacía.

Una secuencia de codificación basada en bloques que comienza con cuando se inicia seguida de un bucle para siempre. Dentro del bucle, el sensor AI Vision (AIVision2) toma una instantánea para detectar el color azul. Si se detecta un objeto con la firma visual azul, el robot avanzará. Si no se detecta ningún objeto, el robot dejará de conducir. Los bloques se apilan para representar la lógica condicional del programa, donde la presencia de un objeto detectado controla el movimiento del robot.

Por ejemplo, aquí el robot estará constantemente tomando instantáneas con el sensor de visión AI. Si identifica algún objeto con la Firma de color "Azul", avanzará.


Si alguna instantánea no tiene la firma de color "Azul", el robot dejará de moverse.


Recuento de objetos

Un bloque de codificación redondeado de color azul claro etiquetado como recuento de objetos AIVision1. Este bloque se utiliza en un entorno de codificación basado en bloques para recuperar la cantidad de objetos detectados por el sensor AI Vision etiquetado como AIVision1. El bloque encaja dentro de una estructura modular, comúnmente utilizada en interfaces de programación visual para robótica o sistemas de visión.

El uso del bloque Recuento de objetos le permitirá ver cuántos objetos de una firma de color específica puede ver el sensor de visión AI en su última instantánea. 

La interfaz de AI Vision Utility con dos cubos azules detectados a la izquierda. El sistema está conectado, con AprilTags habilitado y AI Classification desactivado. La interfaz muestra la configuración para detectar el color azul, con el tono establecido en 22 y la saturación en 0.34. Hay botones para congelar el video y agregar o configurar el color. El firmware se indica como actualizado, ejecutando la versión 1.0.0.b16. También hay un botón para desconectar la conexión o cerrar la utilidad.

Aquí, vemos que el sensor de visión AI tiene la firma de color "Azul" configurada y detecta dos objetos.

Una secuencia de codificación basada en bloques que comienza con cuando se inicia, seguida de un bucle para siempre. Dentro del bucle, el programa toma una instantánea utilizando AIVision2 para detectar la firma visual azul. Borra y reinicia la consola antes de comprobar si se detectan objetos azules. Si existe un objeto azul, el recuento de objetos se imprime en la consola. El programa espera dos segundos antes de repetir el proceso. Los bloques representan visualmente una comprobación continua de objetos azules, mostrando los resultados en la consola.Una salida de consola con el número 2 impreso. La consola es parte de una interfaz más grande que probablemente muestra los resultados de un programa que se ejecuta en un entorno de codificación basado en bloques. La parte superior de la consola tiene botones para acciones o controles adicionales, y el programa que se ejecuta aquí está enviando datos a la Consola de impresión, que muestra un resultado de 2 en la pantalla.

En este código, el sensor de visión AI tomaría una instantánea e imprimiría "2" en la consola VEXcode, ya que solo detecta dos firmas de color "Azul".


Objeto

Un menú desplegable para seleccionar propiedades de objetos relacionadas con AIVision1. La opción seleccionada es ancho, y el menú enumera otras opciones que incluyen altura, centerX, centerY, angle, originX, originY, tagID y score. Estas opciones permiten al usuario recuperar puntos de datos específicos del objeto detectado por el sensor AI Vision, proporcionando flexibilidad para rastrear o medir varios atributos del objeto.

El bloque Object le permite reportar la propiedad de su objeto especificado. Esto le permite utilizar cualquiera de los datos disponibles extraídos de la instantánea tomada más recientemente.

Las propiedades del objeto que se pueden extraer de las instantáneas tomadas son:

  • ancho
  • altura
  • centerX
  • centerY
  • ángulo
  • originX
  • originY
  • tagID
  • puntaje

Lea la sección "Datos tomados de la instantánea" de este artículo para obtener más información sobre estas propiedades.


La etiqueta de abril detectada es

Un bloque hexagonal azul claro desde una interfaz de codificación. Contiene el comando para comprobar si el AprilTag detectado por AIVision1 coincide con el valor 1. Este bloque se utiliza en un entorno de codificación basado en bloques y está diseñado para evaluar si una AprilTag específica está presente. La forma y la estructura le permiten encajar dentro de otros bloques lógicos, típicamente utilizados en la programación visual para tareas de robótica o visión de IA.

El bloque Detected AprilTag is solo está disponible cuando el modo de detección AprilTag está activado.

Este bloque informará de Verdadero o Falso dependiendo de si el objeto especificado es una determinada AprilTag.

Tres etiquetas de abril rastreadas por un sistema de visión. Cada etiqueta tiene una identificación y coordenadas asociadas. La etiqueta izquierda está etiquetada como ID:0, con coordenadas X:110, Y:96, W:41, H:41. La etiqueta central está etiquetada como ID:3, con coordenadas X:187, Y:180, W:57, H:57. La etiqueta derecha está etiquetada como ID:9, con coordenadas X:237, Y:89, W:38, H:38.

Cuando se detectan varias etiquetas de abril en una sola instantánea, se organizan en la matriz en función de su ID identificado, no por tamaño.

En esta imagen se detectan tres AprilTags con IDs 0, 3 y 9. Se organizarán en orden ascendente de su ID en la matriz. El objeto en el índice 1 correspondería a la etiqueta de abril con ID 0, en el índice 2 a la etiqueta de abril con ID 3 y en el índice 3 a la etiqueta de abril con ID 9.

Para obtener más información sobre qué son las etiquetas de abril y cómo habilitar su detección con el sensor de visión de IA, lea este artículo.


La clasificación de IA es

Un bloque hexagonal azul claro de un entorno de codificación basado en bloques. El bloque contiene el comando AIVision1 ¿La clasificación de IA es BlueBall? Este bloque comprueba si el sensor AI Vision (AIVision1) ha clasificado el objeto detectado como BlueBall. El bloque presenta opciones desplegables, lo que permite a los usuarios seleccionar diferentes objetos o clasificaciones de IA para fines de seguimiento y toma de decisiones en una interfaz de programación visual.

El bloque Clasificación de IA solo está disponible cuando el Modo de detección de clasificación de IA está activado.

 

Este bloque informará de Verdadero o Falso dependiendo de si el objeto especificado es una determinada Clasificación de IA.

Las clasificaciones de IA que puede detectar el sensor de visión de IA varían según el modelo que esté utilizando. Para obtener más información sobre qué clasificaciones de IA están disponibles y cómo habilitar su detección con el sensor de visión de IA, lea este artículo.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: