Detección de visión#
Introducción#
El sensor de visión para VEX V5 detecta y rastrea colores y códigos de color. 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:
Tomar instantánea del sensor de visión – Captura datos para una firma de color o un código de color específico.
Establecer elemento de objeto del sensor de visión – Selecciona un objeto específico de la lista de objetos detectados.
Conteo de objetos del sensor de visión – Devuelve la cantidad de objetos detectados.
¿Existe el objeto del sensor de visión? – Devuelve si se detectó un objeto.
Propiedad del objeto Sensor de visión – Devuelve detalles como:
tomar una instantánea del sensor de visión#
El bloque tomar instantánea del sensor de visión filtra los datos del marco del sensor de visión. Este puede detectar firmas que incluyen colores y códigos de color configurados.
Los colores y códigos de color deben configurarse primero en Vision Utility antes de poder usarse con este bloque.
El conjunto de datos almacena objetos ordenados de mayor a menor por ancho, comenzando por el elemento 1. Se puede acceder a las propiedades de cada objeto mediante el bloque Propiedad del objeto de visión. Si no se detectan objetos coincidentes, se devuelve un conjunto de datos vacío.
[Vision1 v]una instantánea de [SELECT_A_SIG v]
Parámetro |
Descripción |
---|---|
visión |
El sensor de visión a utilizar, configurado en la ventana Dispositivos. |
firma |
La firma de color o código de color a analizar en la instantánea. |
Ejemplo
cuando empezó :: hat events
[Move forward if a red box is detected.]
para siempre
[Vision1 v]una instantánea de [RED_BOX v]
si <¿Existe [Vision1 v] objeto?> entonces
unidad [adelante v] para [10] [mm v] ▶
Establecer elemento del objeto del sensor de visión#
El bloque establecer elemento de objeto del sensor de visión establece qué elemento del conjunto de datos utilizar.
Establecer el elemento de objeto [Vision1 v] en (1)
Parámetro |
Descripción |
---|---|
visión |
El sensor de visión a utilizar, configurado en la ventana Dispositivos. |
artículo |
El número del elemento en el conjunto de datos que se utilizará. |
Ejemplo
cuando empezó :: hat events
[Display the largest detected red object.]
para siempre
[Vision1 v]una instantánea de [RED_BOX v]
borrar todas las filas en [Brain v]
Coloque el cursor en la fila [1] columna [1] de [Brain v]
si <¿Existe [Vision1 v] objeto?> entonces
Establecer el elemento de objeto [Vision1 v] en (1)
imprimir ([Vision1 v] objeto [amplitud v]) en [Brain v] ▶
fin
esperar [0.5] segundos
Recuento de objetos del sensor de visión#
El bloque Conteo de objetos del sensor de visión devuelve la cantidad de objetos detectados en el conjunto de datos como un entero.
([Vision1 v] recuento de objetos)
Parámetro |
Descripción |
---|---|
visión |
El sensor de visión a utilizar, configurado en la ventana Dispositivos. |
Ejemplo
cuando empezó :: hat events
[Display the amount of red objects.]
para siempre
borrar todas las filas en [Brain v]
Coloque el cursor en la fila [1] columna [1] de [Brain v]
[Vision1 v]una instantánea de [RED_BOX v]
si <¿Existe [Vision1 v] objeto?> entonces
imprimir ([Vision1 v] recuento de objetos) en [Brain v] ▶
fin
esperar [0.5] segundos
¿Existe el objeto del sensor de visión?#
El bloque ¿Existe el objeto del sensor de visión? devuelve un valor booleano que indica si se detecta algún objeto en el conjunto de datos.
Verdadero: el conjunto de datos incluye un objeto detectado.
Falso: el conjunto de datos no incluye ningún objeto detectado.
<¿Existe [Vision1 v] objeto?>
Parámetro |
Descripción |
---|---|
visión |
El sensor de visión a utilizar, configurado en la ventana Dispositivos. |
Ejemplo
cuando empezó :: hat events
[Move forward if a red box is detected.]
para siempre
[Vision1 v]una instantánea de [RED_BOX v]
si <¿Existe [Vision1 v] objeto?> entonces
unidad [adelante v] para [10] [mm v] ▶
Propiedad del objeto Sensor de visión#
Hay cinco propiedades que se incluyen con cada objeto (que se muestran a continuación) almacenado después de que se utiliza el bloque tomar instantánea del sensor de visión.
([Vision1 v] objeto [amplitud v])
Algunos valores de propiedad se basan en la posición del objeto detectado en la vista del sensor de visión al momento de usar el bloque tomar instantánea del sensor de visión. El sensor de visión tiene una resolución de 316 x 212 píxeles.
Parámetro |
Descripción |
---|---|
visión |
El sensor de visión a utilizar, configurado en la ventana Dispositivos. |
propiedad |
¿Qué propiedad del objeto detectado utilizar?: |
ancho#
width devuelve el ancho del objeto detectado en píxeles como un entero de 1 a 316.
([Vision1 v] objeto [amplitud v])
Ejemplo
cuando empezó :: hat events
[Move towards a red object until its width is larger than 100 pixels.]
para siempre
[Vision1 v]una instantánea de [RED_BOX v]
si <¿Existe [Vision1 v] objeto?> entonces
si <([Vision1 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 212.
([Vision1 v] objeto [altura v])
Ejemplo
cuando empezó :: hat events
[Move towards a red object until its height is larger than 100 pixels.]
para siempre
[Vision1 v]una instantánea de [RED_BOX v]
si <¿Existe [Vision1 v] objeto?> entonces
si <([Vision1 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 316.
([Vision1 v] objeto [centroX v])
Ejemplo
cuando empezó :: hat events
[Turn slowly until a red object is centered in front of the Vision Sensor.]
establecer la velocidad de giro a [30] [% v]
turno [derecha v]
para siempre
[Vision1 v]una instantánea de [RED_BOX v]
si <¿Existe [Vision1 v] objeto?> entonces
si <<[140] [math_less_than v] ([Vision1 v] objeto [centroX v])> y <([Vision1 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 212.
([Vision1 v] objeto [centroY v])
Ejemplo
cuando empezó :: hat events
[Move towards a red object until its center y-coordinate is more than 140 pixels.]
para siempre
[Vision1 v]una instantánea de [RED_BOX v]
si <¿Existe [Vision1 v] objeto?> entonces
si <([Vision1 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 detectado como un entero en grados de 0 a 180.
([Vision1 v] objeto [ángulo v])
Ejemplo
cuando empezó :: hat events
[Turn left or right depending on how the Color Code is rotated.]
para siempre
[Vision1 v]una instantánea de [BOX_CODE v]
si <¿Existe [Vision1 v] objeto?> entonces
si <<[70] [math_less_than v] ([Vision1 v] objeto [ángulo v])> y <([Vision1 v] objeto [ángulo v]) [math_less_than v] [110]>> entonces
girar [derecha v] por (45) grado ▶
de lo contrario si <<[250] [math_less_than v] ([Vision1 v] objeto [ángulo v])> y <([Vision1 v] objeto [ángulo v]) [math_less_than v] [290]>> entonces
girar [izquierda v] por (45) grado ▶
demás
deja de conducir
fin