Sensor de visão de IA#
Introdução#
O sensor de visão VEX IQ AI consegue detetar e rastrear objetos, cores e IDs AprilTag. Isto permite que o robô analise o ambiente à sua volta, siga objetos e reaja com base nos dados visuais detetados.
Os exemplos de IA Vision são concebidos para utilização com um Basebot equipado com um sensor de IA VEX IQ. Nestes exemplos, o sensor é configurado com o nome AIVision1, que aparece nos blocos.
Segue abaixo a lista de todos os blocos:
Ações — Capturar os dados do sensor de visão VEX IQ AI para uma assinatura selecionada.
obter dados do objeto — Captura os dados para uma assinatura específica, como uma cor configurada, um objeto pré-treinado ou um ID AprilTag.
Definições — Escolha com que objeto interagir.
set AI Vision object item — Seleciona um objeto específico da lista de objetos detetados.
Valores — Aceder e utilizar os dados captados.
Objeto de visão de IA existe — Reporta se um objeto foi detetado.
Contagem de objetos de visão de IA — Reporta o número de objetos detetados.
Propriedade do objeto AI Vision — Reporta detalhes como:
O objeto de visão de IA é? — Verifica se um objeto detetado corresponde a uma classificação específica.
O objeto de visão de IA é AprilTag? — Verifica se o objeto detetado é um AprilTag que corresponde a um ID específico.
O objeto AI Vision é ID AprilTag? — Verifica se um ID AprilTag detetado corresponde a um ID específico.
Ações#
obter dados do objeto#
O bloco de pilha obter dados do objeto filtra os dados do quadro do sensor de visão VEX IQ AI para uma única assinatura — uma descrição guardada de algo que o sensor pode reconhecer, como um objeto pré-treinado, um ID AprilTag ou uma cor ou código de cor configurado.
As cores e os seus códigos devem ser configurados primeiro no utilitário AI Vision antes de serem utilizados com este bloco.
O conjunto de dados armazena os objetos ordenados do maior para o mais pequeno por largura, começando no índice 0. As propriedades de cada objeto podem ser acedidas utilizando o bloco Propriedade do objeto AI Vision. Um conjunto de dados vazio é reportado se não for detetado nenhum objeto correspondente.
obter dados de [SELECT_A_SIG v] de [AIVision1 v]
Parâmetro |
Descrição |
|---|---|
assinatura |
Filtra o conjunto de dados para incluir apenas os dados da assinatura fornecida. As subscrições disponíveis são:
|
Nota: Para que as opções de ID do AprilTag ou Classificação por IA apareçam, a deteção das mesmas deve estar ativada no Utilitário de Visão por IA.
Exemplo
quando iniciar
[Drive forward if an AprilTag ID is detected.]
para sempre
obter dados de [AprilTag IDs v] de [AIVision1 v]
se <objeto de [AIVIsion1 v] existe?> então
conduzir [frente v] por [10] [mm v] ▶
Classificações de IA#
O sensor de visão VEX IQ AI pode detetar diferentes objetos sob determinadas classificações de IA. Dependendo do modelo de classificação de IA selecionado ao configurar o sensor de visão VEX IQ AI na janela Dispositivos, serão detetados diferentes objetos. Os modelos atualmente disponíveis são:
Objetos da sala de aula
Bola Azul
Bola Verde
Bola Vermelha
Anel Azul
Anel Verde
Anel Vermelho
Cubo Azul
Cubo Verde
Cubo Vermelho
Competição de Robótica VEX IQ: Misture e Combine
Raio de luz
Pino vermelho
BluePin
Alfinete Laranja
Aprimore o seu nível na competição de robótica VEX IQ
BlueBeanBag
RedBeanBag
Puff amarelo
Assinaturas de cores#
Uma assinatura de cor é uma cor única que o sensor de visão VEX IQ AI consegue reconhecer. Estas assinaturas permitem que o sensor detete e rastreie objetos com base na sua cor. Uma vez configurada, a assinatura de cor permite que o sensor identifique objetos com essa cor específica no seu campo de visão.
As assinaturas de cor são utilizadas no bloco obter dados do objeto para processar e detetar objetos coloridos em tempo real. Podem ser configuradas até 7 assinaturas de cor de cada vez.

Exemplo
quando iniciar
[Display if any objects matching the RED_BOX signature is detected.]
para sempre
definir cursor para linha [1] coluna [1] na tela
limpar linha [1] na tela
[Change the signature to any configured Color Signature.]
obter dados de [RED_BOX v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
imprimir [Color detected!] na tela ▶
Códigos de cores#
Um código de cores é um padrão estruturado composto por 2 a 4 assinaturas de cores organizadas numa ordem específica. Estes códigos permitem que o sensor de visão VEX IQ AI reconheça padrões de cor predefinidos.
Os códigos de cores são particularmente úteis para identificar objetos complexos, alinhar com elementos do jogo ou criar marcadores únicos para navegação autónoma. É possível configurar até 8 códigos de cor em simultâneo.

Exemplo
quando iniciar
[Display if any objects matching the RED_BLUE code is detected.]
para sempre
definir cursor para linha [1] coluna [1] na tela
limpar linha [1] na tela
[Change the signature to any configured Color Code.]
obter dados de [RED_BLUE v] de [AIVision1 v]
se <objeto de [AIVIsion1 v] existe?> então
imprimir [Code detected!] na tela ▶
Configurações#
definir item de objeto de visão de IA#
O bloco de pilha set AI Vision object item define qual o item do conjunto de dados que deve ser utilizado.
definir item de objeto de [AIVision1 v] para (1)
Parâmetros |
Descrição |
|---|---|
artigo |
O número do item no conjunto de dados a utilizar. |
Exemplo
quando iniciar
[Display the largest detected AprilTag ID.]
para sempre
obter dados de [AprilTag IDs v] de [AIVision1 v]
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
se <objeto de [AIVision1 v] existe?> então
definir item de objeto de [AIVision1 v] para (contagem de objetos de [AIVision1 v])
imprimir (objeto de [AIVision1 v] [tagID v]) na tela ▶
Valores#
O objeto IA Vision existe.#
O bloco booleano Objeto de Visão de IA existe informa se foi detetado algum objeto no conjunto de dados.
Verdadeiro — O conjunto de dados inclui um objeto detetado.
Falso — O conjunto de dados não inclui nenhum objeto detetado.
<objeto de [AIVision1 v] existe?>
Parâmetros |
Descrição |
|---|---|
Este bloco não possui parâmetros. |
Exemplo
quando iniciar
[Drive forward if an object is detected.]
para sempre
obter dados de [Classificações de IA v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
conduzir [frente v] por [10] [mm v] ▶
contagem de objetos da Visão com IA#
O bloco de relatório Contagem de objetos de visão com IA reporta o número de objetos detetados no conjunto de dados como um número inteiro.
(contagem de objetos de [AIVision1 v])
Parâmetros |
Descrição |
|---|---|
Este bloco não possui parâmetros. |
Exemplo
quando iniciar
[Display the total amount of cubes, rings, and balls.]
para sempre
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
obter dados de [Classificações de IA v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
imprimir (contagem de objetos de [AIVision1 v]) na tela ▶
fim
aguardar [0.5] segundos
propriedade de objeto de Visão de IA#
Existem nove propriedades que são incluídas em cada objeto (apresentado abaixo) armazenado após a utilização do bloco obter dados do objeto.
(objeto de [AIVision1 v] [largura v])
Todos os valores de propriedade, exceto tagID, descrevem a posição e o tamanho do objeto detetado no campo de visão do sensor VEX IQ AI Vision no momento em que o bloco obter dados do objeto foi utilizado. Estes valores são medidos em pixéis, com base na resolução de 320 por 240 pixéis do sensor.
Parâmetro |
Descrição |
|---|---|
propriedade |
Qual a propriedade do objeto detetado a utilizar: |
largura#
A propriedade largura indica a largura do objeto detetado em pixéis, como por exemplo um número inteiro de 1 a 320.
(objeto de [AIVision1 v] [largura v])
Exemplo
quando iniciar
[Drive towards an object until its width is larger than 100 pixels.]
para sempre
obter dados de [Classificações de IA v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <(objeto de [AIVision1 v] [largura v]) [math_less_than v] [100]> então
conduzir [frente v]
fim
senão
parar de conduzir
altura#
A propriedade altura indica a altura do objeto detetado em pixéis, como por exemplo um número inteiro de 1 a 240.
(objeto de [AIVision1 v] [altura v])
Exemplo
quando iniciar
[Drive towards an object until its height is larger than 100 pixels.]
para sempre
obter dados de [Classificações de IA v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <(objeto de [AIVision1 v] [altura v]) [math_less_than v] [100]> então
conduzir [frente v]
fim
senão
parar de conduzir
centroX#
A propriedade centerX indica a coordenada x do centro do objeto detetado em pixéis, como um número inteiro de 0 a 320.
(objeto de [AIVision1 v] [centroX v])
Exemplo
quando iniciar
[Turn slowly until an object is centered in front of the robot.]
definir velocidade de giro para [30] [% v]
virar [direita v]
para sempre
obter dados de [Classificações de IA v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <[140] [math_less_than v] (objeto de [AIVision1 v] [centroX v]) [math_less_than v] [180]> então
parar de conduzir
centroY#
A propriedade centerY reporta a coordenada y do centro do objeto detetado em pixéis, como um número inteiro de 0 a 240.
(objeto de [AIVision1 v] [centroY v])
Exemplo
quando iniciar
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
para sempre
obter dados de [Classificações de IA v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <(objeto de [AIVision1 v] [centroY v]) [math_less_than v] [140]> então
conduzir [frente v]
fim
senão
parar de conduzir
ângulo#
A propriedade ângulo indica a orientação do código de cor ou do ID AprilTag detetado como um número inteiro em graus, de 0 a 359.
(objeto de [AIVision1 v] [ângulo v])
Exemplo
quando iniciar
[Slide left or right depending on how the Color Code is rotated.]
para sempre
obter dados de [RED_BLUE v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <[50] [math_less_than v] (objeto de [AIVision1 v] [ângulo v]) [math_less_than v] [100]> então
conduzir [direita v]
senão se <[270] [math_less_than v] (objeto de [AIVision1 v] [ângulo v]) [math_less_than v] [330]> então
conduzir [esquerda v]
senão
parar de conduzir
fim
senão
parar de conduzir
origemX#
A propriedade originX reporta a coordenada x do canto superior esquerdo da caixa delimitadora do objeto detetado, em pixéis, como um número inteiro de 0 a 320.
(objeto de [AIVision1 v] [origemX v])
Exemplo
quando iniciar
[Display if an object is to the left or the right.]
para sempre
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
obter dados de [Classificações de IA v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <(objeto de [AIVision1 v] [origemX v]) [math_less_than v] [160]> então
imprimir [To the left!] na tela ▶
senão
imprimir [To the right!] na tela ▶
fim
aguardar [0.5] segundos
origemY#
A propriedade originY reporta a coordenada y do canto superior esquerdo da caixa delimitadora do objeto detetado, em pixéis, como um número inteiro de 0 a 240.
(objeto de [AIVision1 v] [origemY v])
Exemplo
quando iniciar
[Display if an object is close or far from the robot.]
para sempre
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
obter dados de [Classificações de IA v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <(objeto de [AIVision1 v] [origemY v]) [math_less_than v] [80]> então
imprimir [Far!] na tela ▶
senão
imprimir [Close!] na tela ▶
fim
aguardar [0.5] segundos
ID da etiqueta#
A propriedade tagID reporta o número de identificação do AprilTag ID detetado como um número inteiro.
(objeto de [AIVision1 v] [tagID v])
Exemplo
quando iniciar
[Drive forward when AprilTag ID 0 is detected.]
para sempre
obter dados de [AprilTag IDs v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <(objeto de [AIVision1 v] [tagID v]) [math_equal v] [0]> então
conduzir [frente v]
senão
parar de conduzir
fim
aguardar [0.5] segundos
O que é um objeto IA Vision?#
O bloco Objeto de Visão de IA é? devolve um valor booleano indicando se um objeto detetado corresponde a uma classificação específica.
Verdadeiro — O item no conjunto de dados é o objeto específico.
Falso — O item no conjunto de dados não é o objeto específico.
<objeto de [AIVision1 v] é [BlueBall v]?>
Parâmetro |
Descrição |
|---|---|
objeto |
Qual Classificação de IA comparar o item. |
Exemplo
quando iniciar
[Display if a Blue Cube is detected.]
para sempre
obter dados de [Classificações de IA v] de [AIVision1 v]
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
se <objeto de [AIVision1 v] existe?> então
se <objeto de [AIVision1 v] é [BlueCube v]?> então
imprimir [Cube detected!] na tela ▶
aguardar [0.5] segundos
O objeto de visão com IA é o AprilTag?#
O bloco Objeto de Visão de IA é AprilTag? devolve um valor booleano indicando se o objeto detetado é um AprilTag que corresponde a um ID específico.
Verdadeiro — O objeto detetado é um AprilTag com o ID fornecido.
Falso — O objeto detetado não é um AprilTag com o ID fornecido.
<objeto de [AIVision1 v] é AprilTag [0]?>
Parâmetro |
Descrição |
|---|---|
ID da etiqueta de abril |
O número de identificação a comparar com o AprilTag detectado. |
Exemplo
quando iniciar
[Report if AprilTag 3 is detected.]
para sempre
limpar tela
definir cursor para linha [1] coluna [1] na tela
obter dados de [AprilTag IDs v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <objeto de [AIVision1 v] é AprilTag [3]?> então
imprimir [That is 3!] na tela ▶
senão
imprimir [That isn't 3!] na tela ▶
fim
fim
aguardar [0.1] segundos
O objeto AI Vision é o ID AprilTag?#
O bloco Objeto de Visão de IA é o ID do AprilTag? devolve um valor booleano indicando se um ID do AprilTag detetado corresponde a um ID específico.
Verdadeiro — O ID do AprilTag é o número.
Falso — O ID AprilTag não é o número.
<[AIVision1 v] object is AprilTag ID [1] ?>
Parâmetros |
Descrição |
|---|---|
Número de identificação AprilTag |
O número a comparar com o número de identificação AprilTag detectado. |
Exemplo:
quando iniciar
[Report if AprilTag ID 3 is detected.]
para sempre
limpar tela
definir cursor para linha [1] coluna [1] na tela
obter dados de [AprilTag IDs v] de [AIVision1 v]
se <objeto de [AIVision1 v] existe?> então
se <[AIVision1 v] object is AprilTag ID [3] ?> então
imprimir [That is 3!] na tela ▶
senão
imprimir [That isn't 3!] na tela ▶
fim
fim
aguardar [0.1] segundos