Codificación con el sensor de visión de IA en bloques EXP de VEXcode

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

El sensor de visión de IA también puede detectar clasificaciones de IA y AprilTags. 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, visite el sitio API.


Tomar instantánea

Bloque VEXcode EXP Tomar instantánea que dice Toma una instantánea AIVision1 de COL1. Hay dos menús desplegables, uno para seleccionar el sensor de visión IA y el segundo para seleccionar el código de color.

El bloqueTomar instantánea toma una fotografía 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 qué tipo de objeto debe recopilar datos el sensor de visión de IA:

  • Firma de color
  • Código de colores
  • Clasificaciones de IA
  • Etiquetas de abril

Al tomar una instantánea se creará una matriz de todos los objetos detectados que usted especificó. Por ejemplo, si quisiera detectar una firma de color "Rojo", y el sensor de visión de IA detectara 3 objetos rojos diferentes, los datos de los tres se colocarían 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 Tomar instantánea que dice Toma una instantánea AIVision2 de 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 de IA utilizará la última instantánea tomada para cualquier bloque que venga después. Para asegurarse de obtener siempre la información más actualizada de su sensor de visión de IA, vuelva a tomar la instantánea cada vez que desee extraer datos de él. 

Resolución

Diagrama de la resolución del sensor de visión IA. 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 menores a 160 corresponden a la mitad izquierda del campo de visión del sensor, mientras que aquellas mayores a 160 representan la mitad derecha. De manera similar, las coordenadas Y menores a 120 indican la mitad superior de la vista, y aquellas mayores a 120 representan la mitad inferior.

Vaya a Comprensión de los datos en la utilidad de visión de IA en VEXcode EXP para obtener más información sobre cómo se miden los objetos con el sensor de visión de IA.

Ancho y alto

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

Se muestra un sensor de visión de IA rastreando una Buckyball azul. El Buckyball tiene un rectángulo de seguimiento a su alrededor y la etiqueta de arriba 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, un Buckyball tendrá una altura mayor que un Ring.

Se muestra el sensor de visión de IA 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 al sensor de visión IA. Las medidas más pequeñas generalmente significan que el objeto está más lejos, mientras que las medidas más grandes sugieren que está más cerca.

Proyecto de bloques VEXcode en el que el robot se acercará al objeto hasta que el ancho alcance un tamaño específico antes de detenerse. El proyecto comienza con un bloque Cuando se inicia y un bucle Siempre. 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 menor a 250, entonces avanza; de lo contrario, deja 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 alcance un tamaño específico antes de detenerse.

Centro X y Centro Y

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

Se muestra un sensor de visión de IA rastreando una Buckyball azul. El Buckyball tiene un rectángulo de seguimiento a su alrededor, y la etiqueta de arriba muestra que tiene una posición X de 176 y una posición Y de 117. El centro del rectángulo de seguimiento está resaltado 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 IA tiene una resolución de 320 x 240 píxeles.

Se muestra el sensor de visión de IA 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.

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

Proyecto de bloques VEXcode en el que el robot girará hacia un objeto detectado hasta que esté en el centro de la vista del sensor de visión de IA. El proyecto comienza con un bloque Cuando se inicia y un bucle Siempre. 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 centro del objeto AIVision1X es mayor que 150 y el centro del objeto AIVision1X es menor que 170, entonces gira a la derecha, de lo contrario deja de conducir.

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

Ángulo

Animación de un cuadrado rojo y un cuadrado verde que giran juntos para demostrar los 360 grados de un valor de ángulo.

El ángulo es una propiedad disponible solo para los códigos de color yde abril Etiquetas. Esto representa si el código de colordetectado ocódigo de color de abril están orientados de manera diferente.

Se muestra un sensor de visión de inteligencia artificial que rastrea 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 color está resaltado y mide 87 grados, lo que indica que el código de color está orientado verticalmente.

Puede ver si el robot está orientado de manera diferente en relación con el código de color oAprilTag y tomar decisiones de navegación en función de eso.

Se muestra un sensor de visión de inteligencia artificial que rastrea un código de color verde y luego azul. La transmisión de video muestra un Cubo Verde 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 se resalta y se lee 0 grados, lo que indica que no se puede leer el ángulo del código de color.

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

OriginX y OriginY

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

Se muestra un sensor de visión de IA rastreando una Buckyball azul. El Buckyball tiene un rectángulo de seguimiento a su alrededor, y la etiqueta de arriba 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 a 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 Cuando se inicia y un bucle Siempre. 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 Draw rectangle que lee draw rectangle AIVision1 object originX, AIVision1 object originY, AIVision1 object width, AIVision1 object height en Brain.

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

ID de etiqueta

El tagID solo está disponible paraAprilTags. Este es el número de identificación para elAprilTagespecificado.

La utilidad AI Vision Utility está rastreando tres AprilTags. Cada etiqueta es identificada, localizada y delimitada, 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 que se mueva hacia ciertas etiquetas e ignore otras, utilizándolas efectivamente como señales para la navegación automatizada.

Puntaje

La propiedad de puntuación se utiliza al detectarclasificaciones 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 delimitado, indicando su seguimiento por parte del sistema. La utilidad también enumera la puntuación de clasificación de IA de cada objeto; en este ejemplo, cada puntuación es 99%.

La puntuación de confianza indica qué tan seguro está el sensor de visión de IA acerca de su detección. En esta imagen, hay un 99% de confianza en la identificación de las clasificaciones de IA de estos cuatro objetos. Puede utilizar esta puntuación para garantizar que su robot solo se centre en detecciones altamente confiables.


Elemento de objeto de conjunto

Cuando el sensor de visión de IA detecta un objeto, este se coloca en una matriz. De forma predeterminada, el sensor de visión de IA extraerá datos del primer objeto de la matriz o del objeto con el índice 1. Si su sensor de visión de IA solo ha detectado un objeto, ese objeto se seleccionará de forma predeterminada.

Sin embargo, cuando su sensor de visión de IA haya detectado varios objetos a la vez, deberá usar el bloqueEstablecer elemento de objeto para especificar de qué objeto desea extraer datos.

Bloque de elemento de objeto EXP de VEXcode que lee Establecer elemento de objeto AIVision1 en 1. Hay un menú desplegable para seleccionar el sensor de visión de IA y un campo de texto para ingresar el índice del objeto.

Cuando el sensor de visión de IA detecta varios objetos, estos se organizan en la matriz del más grande al más pequeño. Esto significa que el objeto más grande detectado 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 de IA 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 bloqueTomar instantánea.

Se muestra el sensor de visión de IA 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 está etiquetado como 1 y el cubo más lejano está etiquetado como 2.

Aquí, el objeto del 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 que el sensor de visión de IA haya detectado primero todos los objetos de esa instantánea. Aquí es donde entra en juego el bloqueObjeto Existe.

VEXcode EXP ¿Existe un bloque de objeto que lee el objeto AIVision1? Hay un menú desplegable para seleccionar el sensor de visión IA.

Este bloque devolverá un valor deVerdadero oFalso según si la última instantánea tomada contiene o no objetos detectados.

Este bloque debe para garantizar que no intente extraer datos 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 Cuando se inicia y un bucle Siempre. El resto del proyecto está dentro del bucle Forever. Primero, tome una instantánea AIVision2 de Blue, luego un bloque If Else que lea si el objeto AIVision2 existe, entonces avance, de lo contrario deje de conducir.

Por ejemplo, aquí el robot tomará constantemente instantáneas con el sensor de visión IA. Si identifica cualquier objeto con la FirmaColor “Azul” , avanzará.


Si alguna instantánea no tiene la Firma de color “Azul” , el robot dejará de moverse.


Recuento de objetos

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

El uso del bloque Conteo de objetos le permitirá ver cuántos objetos de una Firma de color específica puede ver el Sensor de visión de IA en su última instantánea. 

Se muestra el sensor de visión de IA 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 de IA tiene configurada la firma de color “Azul”, y está detectando dos objetos.

Proyecto VEXcode Blocks en el que el robot imprimirá la cantidad de objetos azules detectados en la consola de impresión. El proyecto comienza con un bloque Cuando se inicia y un bucle Siempre. El resto del proyecto está dentro del bucle Forever. Primero, tome una instantánea AIVision2 de Blue, borre todas las filas en la consola y luego coloque el cursor en la siguiente fila en la consola. El siguiente es un bloque If que lee si existe el objeto AIVision2 y luego imprime el recuento de objetos AIVision2 en la consola y establece el cursor en la siguiente fila. Fuera del bloque Si, hay un bloque Esperar configurado para esperar 2 segundos.La salida de la consola de impresión del proyecto VEXcode Blocks anterior con un mensaje impreso que dice 2.

En este código, el sensor de visión de IA 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 objeto VEXcode EXP AI Vision que lee el ancho del objeto AIVision1. Hay un menú desplegable para seleccionar el sensor de visión de IA y un menú desplegable abierto para seleccionar el atributo del objeto para detectar. La lista de opciones incluye ancho, alto, centroX, centroY, ángulo, origenX, origenY, tagID y puntuación.

El bloqueObjeto le permite informar 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 de objeto que se pueden extraer de las instantáneas tomadas son:

  • ancho
  • altura
  • centroX
  • centroY
  • ángulo
  • origenX
  • origenY
  • ID de etiqueta
  • puntaje

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


Se detectó AprilTag

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

El bloqueDetected AprilTag es solo está disponible cuando el Modo de detecciónAprilTag está activado.

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

La utilidad AI Vision Utility está rastreando tres AprilTags. Cada etiqueta es identificada, localizada y delimitada, indicando su seguimiento por parte del sistema. Los ID de AprilTag en este ejemplo son 0, 3 y 9.

Cuando se detectan varias AprilTags en una sola instantánea, se organizan en la matriz según su ID identificado, no por tamaño.

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

Para obtener más información sobre qué son las AprilTags 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

La clasificación de IA de VEXcode EXP es un bloque que lee AIVision1 ¿La clasificación de IA es 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 de destino.

El bloque de clasificación de IAsolo está disponible cuando el modo de detección de clasificación de IA está activado.

 

Este bloque informará si es 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: