Visão de IA#
Introdução#
O sensor de visão com IA do robô de programação VEX AIM deteta e rastreia 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.
O sensor de visão com IA tem uma resolução de 320×240 pixéis. A origem (0, 0) está localizada no canto superior esquerdo, posicionando o centro do sensor em (160, 120), como mostra o esquema abaixo:

Segue abaixo a lista de todos os blocos:
Ações — Controlar o fluxo de visão da IA e capturar dados de objetos.
Visualizador de IA no ecrã — Ativa ou desativa a transmissão em direto de IA no ecrã do robô.
obter dados do objeto — Captura os dados para uma assinatura específica, como uma cor configurada, um objeto pré-treinado ou um ID AprilTag.
Configurações — Ajuste quais os objetos detetados que serão acedidos.
set AI Vision object item — Seleciona um objeto específico da lista de objetos detetados.
Valores — Retorna a presença, classificação e propriedades do objeto.
tem objeto — Verifica se o robô está a segurar um objeto detetado.
Objeto de visão de IA existe — Reporta se um objeto foi detetado.
O objeto de visão de IA é — Verifica se um objeto detetado corresponde a uma classificação específica.
O objeto AI Vision é ID AprilTag — Verifica se um ID AprilTag detetado corresponde a um ID específico.
Contagem de objetos de visão de IA — Reporta o número de objetos detetados.
Propriedade do objeto AI Vision — Reporta detalhes como:
centerX & centerY — Coordenadas da posição central na vista do sensor.
originX & originY — Coordenadas da posição do canto superior esquerdo na vista do sensor.
rotação — Orientação do objeto.
bearing — Ângulo horizontal em relação à frente do robô.
tagID — Número de identificação de um ID AprilTag.
Ações#
Visualizador de IA Vision no ecrã#
O bloco de pilha Visualizador de IA no ecrã ativa ou desativa a transmissão em direto da IA no ecrã do robô. Quando ativado, o ecrã apresenta os dados dos sensores em tempo real, impedindo que outras imagens ou textos apareçam. Para apresentar outro conteúdo, utilize este bloco para ocultar a transmissão.
AI Vision [mostrar v] visualizador na tela
Parâmetros |
Descrição |
|---|---|
estatuto |
Controla a apresentação do fluxo de dados no ecrã do robô: show exibe o fluxo de dados, enquanto hide remove o fluxo de dados do ecrã. |
Exemplo
quando iniciar
[View the AI Vision Sensor's feed for five seconds.]
AI Vision [mostrar v] visualizador na tela
aguardar [5] segundos
AI Vision [ocultar v] visualizador na tela
obter dados do objeto#
O bloco de pilha obter dados do objeto filtra os dados do quadro do sensor de visão de IA 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 [bola esportiva v] da AI Vision
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:
|
Exemplo
quando iniciar
[Move forward if a sports ball is detected.]
para sempre
obter dados de [bola esportiva v] da AI Vision
se <objeto de AI Vision existe?> então
mover [frente v] por [10] [mm v] ▶
Assinaturas de cores#
Uma Assinatura de Cor é uma cor única que o Sensor de Visão com IA consegue reconhecer. Estas assinaturas permitem que o sensor detete e rastreie objetos com base na sua cor. Depois de uma Assinatura de Cor ser configurada no Utilitário de Visão com IA, o sensor pode identificar 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.

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] da AI Vision
se <objeto de AI Vision existe?> então
imprimir [Color signature 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. Uma vez configurado no utilitário de visão por computador, o sensor pode reconhecer 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.

Exemplo
quando iniciar
[Display if any objects matching the BlueRed 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 [BlueRed v] da AI Vision
se <objeto de AI Vision existe?> então
imprimir [Color 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 AI Vision para (1)
Parâmetros |
Descrição |
|---|---|
artigo |
O número do item no conjunto de dados a utilizar. |
Exemplo
quando iniciar
[Display the width of the smallest detected object.]
para sempre
obter dados de [toda a carga v] da AI Vision
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
se <objeto de AI Vision existe?> então
definir item de objeto de AI Vision para (contagem de objetos de AI Vision)
imprimir (objeto de AI Vision [largura v]) na tela ▶
Valores#
possui objeto#
O bloco booleano tem objeto informa se o robô tem atualmente um objeto detetado contra o seu Kicker.
Verdadeiro — O robô possui o objeto.
Falso — O robô não possui o objeto.
<tem [bola esportiva v] ? :: custom-ai-vision>
Parâmetro |
Descrição |
|---|---|
objeto |
Objecto a detectar pelo kicker do robô:
|
Exemplo
quando iniciar
[Kick when the robot has a sports ball.]
para sempre
se <tem [bola esportiva v] ? :: custom-ai-vision> então
chutar objeto [médio v]
O objeto IA Vision existe.#
O bloco booleano Objeto de Visão de IA existe informa se um objeto foi detetado no conjunto de dados.
Verdadeiro — O conjunto de dados inclui um objeto detetado.
Falso — Não foi detetado nenhum objeto.
<objeto de AI Vision existe?>
Parâmetros |
Descrição |
|---|---|
Este bloco não possui parâmetros. |
Exemplo
quando iniciar
[Move forward if a sports ball is detected.]
para sempre
obter dados de [bola esportiva v] da AI Vision
se <objeto de AI Vision existe?> então
mover [frente v] por [10] [mm v] ▶
O objeto de Visão de IA é#
O bloco booleano AI Vision object is informa 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 AI Vision é [bola esportiva v]?>
Parâmetro |
Descrição |
|---|---|
objeto |
Com que objeto comparar o item:
|
Exemplo
quando iniciar
[Display if a sports ball is detected.]
para sempre
obter dados de [toda a carga v] da AI Vision
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
se <objeto de AI Vision existe?> então
se <objeto de AI Vision é [bola esportiva v]?> então
imprimir [Sports ball detected!] na tela ▶
aguardar [0.5] segundos
O objeto AI Vision é o ID AprilTag.#
O bloco booleano Objeto de Visão de IA é o ID do AprilTag informa se um ID do AprilTag detetado corresponde a um ID específico.
Verdadeiro — O ID do AprilTag é o número.
Falso — O ID do AprilTag não é o número.
<AI Vision object is AprilTag ID [1] ?>
Parâmetros |
Descrição |
|---|---|
ID da etiqueta de abril |
O número a comparar com o número de identificação AprilTag detectado. |
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 AI Vision
Parâmetros |
Descrição |
|---|---|
Este bloco não possui parâmetros. |
Exemplo
quando iniciar
[Display the amount of sports balls and barrels.]
para sempre
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
obter dados de [toda a carga v] da AI Vision
se <objeto de AI Vision existe?> então
imprimir (contagem de objetos de AI Vision) 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 AI Vision [largura v]
Todos os valores de propriedade, exceto tagID, descrevem a posição, o tamanho, a orientação ou a direção do objeto detetado no momento em que o bloco obter dados do objeto foi utilizado. Estes valores são medidos em pixéis ou graus, 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.
Nota: Os valores dos pixéis são relativos ao sistema de coordenadas do sensor. Consulte o diagrama na Introdução para referência.
objeto de AI Vision [largura v]

Exemplo
quando iniciar
[Move towards a blue barrel until its width is larger than 100 pixels.]
para sempre
obter dados de [barril azul v] da AI Vision
se <objeto de AI Vision existe?> então
se <(objeto de AI Vision [largura v]) [math_less_than v] [100]> então
mover [frente v]
fim
senão
parar todo o movimento
altura#
A propriedade altura indica a altura do objeto detetado em pixéis, como por exemplo um número inteiro de 1 a 240.
Nota: Os valores dos pixéis são relativos ao sistema de coordenadas do sensor. Consulte o diagrama na Introdução para referência.
objeto de AI Vision [altura v]

Exemplo
quando iniciar
[Move towards a blue barrel until its height is larger than 100 pixels.]
para sempre
obter dados de [barril azul v] da AI Vision
se <objeto de AI Vision existe?> então
se <(objeto de AI Vision [altura v]) [math_less_than v] [100]> então
mover [frente v]
fim
senão
parar todo o movimento
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.
Nota: Os valores dos pixéis são relativos ao sistema de coordenadas do sensor. Consulte o diagrama na Introdução para referência.
objeto de AI Vision [centroX v]

Exemplo
quando iniciar
[Turn slowly until a blue barrel is centered in front of the robot.]
definir velocidade de giro para [30]%
virar [direita v]
para sempre
obter dados de [barril azul v] da AI Vision
se <objeto de AI Vision existe?> então
se <[140] [math_less_than v] (objeto de AI Vision [centroX v]) [math_less_than v] [180]> então
parar todo o movimento
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.
Nota: Os valores dos pixéis são relativos ao sistema de coordenadas do sensor. Consulte o diagrama na Introdução para referência.
objeto de AI Vision [centroY v]

Exemplo
quando iniciar
[Move towards a blue barrel until its center y-coordinate is more than 140 pixels.]
para sempre
obter dados de [barril azul v] da AI Vision
se <objeto de AI Vision existe?> então
se <(objeto de AI Vision [centroY v]) [math_less_than v] [140]> então
mover [frente v]
fim
senão
parar todo o movimento
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.
Nota: Os valores dos pixéis são relativos ao sistema de coordenadas do sensor. Consulte o diagrama na Introdução para referência.
objeto de AI Vision [origemX v]

Exemplo
quando iniciar
[Display if an orange barrel 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 [barril laranja v] da AI Vision
se <objeto de AI Vision existe?> então
se <(objeto de AI Vision [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.
Nota: Os valores dos pixéis são relativos ao sistema de coordenadas do sensor. Consulte o diagrama na Introdução para referência.
objeto de AI Vision [origemY v]

Exemplo
quando iniciar
[Display if an orange barrel 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 [barril laranja v] da AI Vision
se <objeto de AI Vision existe?> então
se <(objeto de AI Vision [origemY v]) [math_less_than v] [80]> então
imprimir [Far!] na tela ▶
senão
imprimir [Close!] na tela ▶
fim
aguardar [0.5] segundos
rotação#
A propriedade rotação indica a orientação do ID ou código de cor do AprilTag detetado como um número inteiro em graus, de 0 a 359.
objeto de AI Vision [rotação v]

Exemplo
quando iniciar
[Slide left or right depending on how the Color Code is rotated.]
para sempre
obter dados de [Red_Blue v] da AI Vision
se <objeto de AI Vision existe?> então
se <[50] [math_less_than v] (objeto de AI Vision [rotação v]) [math_less_than v] [100]> então
mover [direita v]
senão se <[270] [math_less_than v] (objeto de AI Vision [rotação v]) [math_less_than v] [330]> então
mover [esquerda v]
senão
parar todo o movimento
fim
senão
parar todo o movimento
rolamento#
A propriedade direção indica a distância de um objeto à esquerda ou à direita do centro do campo de visão do sensor de visão com IA, em graus. Um valor de 0 significa que o objeto está centrado, valores positivos indicam que está à direita e valores negativos indicam que está à esquerda.
quando iniciar
[Keep the blue barrel directly in front of the robot.]
definir velocidade de giro para [40]%
para sempre
obter dados de [barril azul v] da AI Vision
se <objeto de AI Vision existe?> então
se <(objeto de AI Vision [orientação v]) [math_greater_than v] [5]> então
virar [direita v]
senão se <(objeto de AI Vision [orientação v]) [math_less_than v] [-5]> então
virar [esquerda v]
senão
parar todo o movimento
ID da etiqueta#
A propriedade tagID reporta o número de identificação do AprilTag ID detetado como um número inteiro.
objeto de AI Vision [tagID v]
Exemplo
quando iniciar
[Move forward when AprilTag ID 0 is detected.]
para sempre
obter dados de [AprilTag ID 0 v] da AI Vision
se <objeto de AI Vision existe?> então
mover [frente v]
fim
parar todo o movimento