Codificación con el sensor de visión AI en bloques VEXCODE EXP

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

Bloque VEXCODE EXP Take Snapshot que dice Take a AIVision1 snapshot of COL1. Hay dos menús desplegables, uno para seleccionar el sensor de visión AI y el segundo para seleccionar el código de color.

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.

Bloque VEXCODE EXP Take Snapshot que dice Take a AIVision2 snapshot of Blue.

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

Diagrama de la resolución del sensor de visión AI. La esquina superior izquierda está etiquetada como 0, 0, la esquina superior derecha está etiquetada como 320, 0 y la esquina inferior izquierda está etiquetada como 0, 240. El centro de la pantalla está etiquetado como 160, 120.

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 Comprender los datos en AI Vision Utility en VEXcode EXP 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.

Se muestra el sensor de visión AI rastreando una Buckyball azul. La Buckyball tiene un rectángulo de seguimiento a su alrededor, y la etiqueta anterior muestra que tiene un ancho de 80 píxeles y una altura de 78 píxeles. Las flechas rojas resaltan el rectángulo de seguimiento para demostrar su ancho y alto.

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

Se muestra el sensor de visión AI rastreando dos cubos azules. Los Cubos tienen rectángulos de seguimiento a su alrededor, y uno está mucho más cerca de la cámara. El más cercano tiene un ancho de 144 y una altura de 113, y el más lejano tiene un ancho de 73 y una altura de 84.

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.

Proyecto VEXcode Blocks en el que el robot se acercará al objeto hasta que el ancho haya alcanzado un tamaño específico antes de detenerse. El proyecto comienza con un bloque When started y un bucle Forever. El resto del proyecto está dentro del bucle Forever. Primero, tome una instantánea AIVision1 de Blue, luego el resto del proyecto está dentro de un bloque If que lee si existe el objeto AIVision1? Dentro de este bloque If hay un bloque If Else que lee si el ancho del objeto AIVision1 es inferior a 250, luego avance, de lo contrario deje de conducir.

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.

Se muestra el sensor de visión AI rastreando una Buckyball azul. La Buckyball tiene un rectángulo de seguimiento a su alrededor, y la etiqueta anterior muestra que tiene una posición X de 176 y una posición Y de 117. El centro del rectángulo de seguimiento se resalta para demostrar que la posición se mide desde el centro.

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.

Se muestra el sensor de visión AI rastreando dos cubos azules. Los Cubos tienen rectángulos de seguimiento a su alrededor, y uno está mucho más cerca de la cámara. El más cercano tiene una posición Y de 184, y el más lejano tiene una posición Y de 70.

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.

VEXcode Bloquea el proyecto en el que el robot girará hacia un objeto detectado hasta que esté en el centro de la vista del sensor de visión AI. El proyecto comienza con un bloque When started y un bucle Forever. El resto del proyecto está dentro del bucle Forever. Primero, tome una instantánea AIVision1 de Blue, luego el resto del proyecto está dentro de un bloque If que lee si existe el objeto AIVision1? Dentro de este bloque If hay un bloque If Else que lee si AIVision1 object centerX es mayor que 150 y AIVision1 object centerX menor que 170, luego gire a la derecha, de lo contrario deje de conducir.

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

Animación de un cuadrado rojo y un cuadrado verde que se giran juntos para demostrar los 360 grados de un valor de á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.

El sensor de visión AI se muestra siguiendo un código de color verde y luego azul. La transmisión de video muestra un cubo verde apilado encima de un cubo azul. El valor del ángulo del Código de colores está resaltado y lee 87 grados, lo que indica que el Código de colores está orientado verticalmente.

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.

El sensor de visión AI se muestra siguiendo un código de color verde y luego azul. La transmisión de video muestra un cubo verde sentado junto a un cubo azul, pero están en un ángulo incómodo en comparación con el sensor. El valor del ángulo del código de color está resaltado y lee 0 grados, lo que indica que el ángulo del código de color no se puede leer.

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.

Se muestra el sensor de visión AI rastreando una Buckyball azul. La Buckyball tiene un rectángulo de seguimiento a su alrededor, y la etiqueta anterior muestra que tiene una posición X de 176 y una posición Y de 117. La esquina superior izquierda del rectángulo de seguimiento está resaltada para demostrar que la posición de origen se mide desde su esquina superior izquierda.

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.

Proyecto VEXcode Blocks en el que el robot dibujará un objeto detectado en su pantalla como un rectángulo. El proyecto comienza con un bloque When started y un bucle Forever. El resto del proyecto está dentro del bucle Forever. Primero, tome una instantánea AIVision1 de Blue, luego el resto del proyecto está dentro de un bloque If que lee si existe el objeto AIVision1? Dentro de este bloque If hay un bloque de rectángulo Draw que dice draw rectangle AIVision1 object originX, AIVision1 object originY, AIVision1 object width, AIVision1 object height on Brain.

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 etiquetas de abril están siendo rastreadas por AI Vision Utility. Cada etiqueta está identificada, ubicada y delineada, indicando su seguimiento por parte del sistema. Los ID de AprilTag en este ejemplo son 0, 3 y 9.

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 utilidad AI Vision está rastreando cuatro objetos, dos BuckyBalls y dos Rings. Cada objeto es identificado, localizado y delineado, indicando su seguimiento por el sistema. La utilidad también enumera la puntuación de clasificación de IA de cada objeto; en este ejemplo, cada puntuación es del 99%.

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.

VEXcode EXP Establecer bloque de elemento de objeto que dice Establecer elemento de objeto AIVision1 a 1. Hay un menú desplegable para seleccionar el sensor de visión AI y un campo de texto para ingresar el índice del objeto.

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.

Se muestra el sensor de visión AI rastreando dos cubos azules. Los Cubos tienen rectángulos de seguimiento a su alrededor, y uno está mucho más cerca de la cámara. El más cercano tiene un ancho de 136, y el más lejano tiene un ancho de 78.

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.

Se muestra el sensor de visión AI rastreando dos cubos azules. Los Cubos tienen rectángulos de seguimiento a su alrededor, y uno está mucho más cerca de la cámara. El cubo más cercano se etiqueta como 1 y el cubo más lejano se etiqueta como 2.

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 el bloque VEXcode EXP Object que lee que existe el objeto AIVision1? Hay un menú desplegable para seleccionar el sensor de visión AI.

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.

Proyecto VEXcode Blocks en el que el robot se dirigirá hacia un objeto azul detectado. El proyecto comienza con un bloque When started y un bucle Forever. El resto del proyecto está dentro del bucle Forever. Primero, tome una instantánea de AIVision2 de Blue, luego un bloque If Else que lee si existe el objeto AIVision2, luego conduzca hacia adelante, de lo contrario deje de conducir.

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

VEXcode EXP Bloque de recuento de objetos que lee el recuento de objetos AIVision1. Hay un menú desplegable para seleccionar el sensor de visión AI.

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. 

Se muestra el sensor de visión AI rastreando dos cubos azules. Los Cubos tienen rectángulos de seguimiento a su alrededor, y uno está mucho más cerca de la cámara.

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

Proyecto VEXcode Blocks en el que el robot imprimirá el número de objetos azules detectados en la Consola de impresión. El proyecto comienza con un bloque When started y un bucle Forever. El resto del proyecto está dentro del bucle Forever. Primero, tome una instantánea AIVision2 de Azul, borre todas las filas en la Consola y luego coloque el cursor en la siguiente fila en la Consola. A continuación hay un bloque If que lee si existe el objeto AIVision2, luego imprime el recuento de objetos AIVision2 en la consola y establece el cursor en la siguiente fila. Fuera del bloque If, hay un bloque Wait configurado para esperar durante 2 segundos.La salida de la Consola de impresión del proyecto VEXcode Blocks anterior con una lectura de mensaje impreso 2.

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

Bloque de objetos VEXcode EXP AI Vision que lee el ancho del objeto AIVision1. Hay un menú desplegable para seleccionar el sensor de visión AI y un menú desplegable abierto para seleccionar el atributo del objeto para la detección. La lista de opciones dice width, height, centerX, centerY, angle, originX, originY, tagID y score.

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

VEXcode EXP Detectado AprilTag es un bloque que lee AIVision1 detectado AprilTag es 1? Hay un menú desplegable para seleccionar el sensor de visión AI.

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 están siendo rastreadas por AI Vision Utility. Cada etiqueta está identificada, ubicada y delineada, indicando su seguimiento por parte del sistema. Los ID de AprilTag en este ejemplo son 0, 3 y 9.

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

VEXcode EXP AI Classification es un bloque que lee AIVision1 AI classification is BlueBall? Hay un menú desplegable para seleccionar el sensor de visión de IA y otro menú desplegable para seleccionar el objeto de clasificación de IA objetivo.

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: