Codificação com o sensor de visão AI em blocos VEXcode V5

Certifique-se de ter assinaturas de cores e códigos de cores configurados com seu AI Vision Sensor para que possam ser usados ​​com seus blocos. Para saber mais sobre como configurá-los, você pode ler os artigos abaixo:

O sensor de visão de IA também pode detectar classificações de IA e AprilTags. Para aprender como habilitar esses modos de detecção, acesse aqui:

Para saber mais detalhes sobre esses blocos individuais e como usá-los no VEXcode, acesse o site da API.


Tire uma foto rápida

Um bloco que contém o comando tira um instantâneo com duas seleções suspensas: uma com a etiqueta AIVision1 e outra com a etiqueta COL1. Este bloco foi concebido para tirar um instantâneo de um sensor AI Vision e fazer referência a um objeto ou cor específico das variáveis designadas num ambiente de codificação visual. O formato do bloco apresenta pequenas curvas nas extremidades, típicas das interfaces de codificação baseadas em blocos.

O blocoTirar instantâneo tira uma foto do que o sensor de visão de IA está vendo no momento e extrai dados desse instantâneo que podem ser usados em um projeto. Quando um instantâneo é tirado, você precisa especificar de que tipo de objeto o AI Vision Sensor deve coletar dados:

  • Assinatura de cor
  • Código de cores
  • Classificações de IA
  • Tags de abril

Tirar um instantâneo criará uma matriz de todos os objetos detectados que você especificou. Por exemplo, se você quisesse detectar uma Assinatura de Cor "Vermelho"e o Sensor de Visão de IA detectasse 3 objetos vermelhos diferentes, os dados de todos os três seriam colocados na matriz.

Para obter mais informações sobre como especificar entre objetos diferentes, vá para a seção "Definir Item de Objeto" neste artigo.

Um bloco de codificação azul claro com o comando para tirar um instantâneo de um objeto ou cor. Há duas opções suspensas: uma chamada AIVision2 e a outra chamada Azul. O bloco foi projetado para uso em um ambiente de codificação baseado em blocos, onde ele captura um instantâneo de um sensor AI Vision e rastreia um objeto ou cor definida como Azul. O bloco tem leves curvas, típicas de interfaces de codificação que usam blocos modulares.

Neste exemplo, ele detectará apenas objetos que correspondem à sua Assinatura de Cor “Azul” configurada e nada mais.

Dados obtidos de um instantâneo

Tenha em mente que o Sensor de Visão de IA usará seu último instantâneo tirado para quaisquer Blocos que vierem depois. Para garantir que você sempre obtenha as informações mais atualizadas do seu sensor de visão de IA, tire novamente o instantâneo sempre que quiser extrair dados dele. 

Resolução

Compreender a resolução do AI Vision Sensor é crucial para uma interpretação precisa dos dados. O sensor tem uma resolução de 320x240 pixéis, com um centro exato nas coordenadas (160, 120).

As coordenadas X inferiores a 160 correspondem à metade esquerda do campo de visão do sensor, enquanto as superiores a 160 representam a metade direita. Da mesma forma, as coordenadas Y inferiores a 120 indicam a metade superior da visualização e as superiores a 120 representam a metade inferior.

Vá para Compreender os dados no AI Vision Utility no VEXcode V5 para obter mais informações sobre a forma como os objetos são medidos com o AI Vision Sensor.

Largura e altura

Esta é a largura ou altura do objeto detectado em pixels.

A imagem mostra uma Buckyball azul com um contorno quadrado branco rastreando-a. O canto superior esquerdo tem uma etiqueta indicando que é um objeto azul, com coordenadas X:176, Y:117 e dimensões L:80, A:78. Setas vermelhas destacam a largura e a altura do objeto.

As medidas de largura e altura ajudam a identificar diferentes objetos. Por exemplo, um Buckyball terá uma altura maior que um Ring.

Dois objetos cúbicos azuis sendo rastreados por um sistema de reconhecimento visual. O cubo superior tem um contorno branco com uma etiqueta indicando sua posição como X:215, Y:70 e dimensões L:73, A:84. O cubo inferior tem um contorno branco semelhante com o rótulo exibindo X:188, Y:184 e dimensões L:144, A:113. Cada cubo tem uma cruz branca centralizada, provavelmente indicando o ponto focal do rastreamento. Os rótulos destacam as medições e os dados de rastreamento de cada objeto.

Largura e altura também indicam a distância de um objeto do sensor de visão de IA. Medidas menores geralmente significam que o objeto está mais distante, enquanto medidas maiores sugerem que ele está mais próximo.

O programa começa com o bloco quando iniciado, seguido por um loop infinito. Dentro do loop, o programa tira um instantâneo usando o sensor AI Vision (AIVision1) para detectar um objeto azul. Se o objeto existir, o programa verifica se a largura do objeto é menor que 250 pixels. Se for verdade, o robô avança; caso contrário, ele para de dirigir. Os blocos são empilhados, indicando o fluxo do programa em um ambiente de codificação modular.

Neste exemplo, a largura do objeto é usada para navegação. O robô se aproximará do objeto até que a largura atinja um tamanho específico antes de parar.

CentroX e Centro Y

Estas são as coordenadas centrais do objeto detectado em pixels.

Um Buckyball azul sendo rastreado por um sistema de visão computacional. O objeto é contornado por um quadrado branco e dentro do contorno há um quadrado vermelho menor circundando uma cruz branca centralizada. No canto superior esquerdo da imagem, uma etiqueta indica que o objeto é azul, com coordenadas X:176, Y:117 e dimensões L:80, A:78.

As coordenadas CenterX e CenterY ajudam na navegação e no posicionamento. O sensor de visão AI tem uma resolução de 320 x 240 pixels.

Dois objetos cúbicos azuis rastreados por um sistema de visão. O objeto superior é rotulado com coordenadas X:215, Y:70 e dimensões L:73, A:84, com um contorno branco e uma cruz branca centralizada. O objeto inferior é rotulado com as coordenadas X:188, Y:184 e dimensões L:144, A:113, também contornadas em branco com uma cruz branca centralizada.

Você pode ver que um objeto mais próximo do sensor de visão de IA terá uma coordenada CenterY menor do que um objeto mais distante.

Uma sequência de codificação baseada em blocos começando com quando começou, seguida por um loop infinito. Dentro do loop, o programa tira um instantâneo usando o AIVision1 para detectar um objeto azul. Se um objeto existir, o programa gira até que o objeto fique centralizado na visão do sensor AI Vision. O objeto é considerado centralizado se seu valor centerX estiver entre 150 e 170. Se o objeto não estiver centralizado, o robô vira para a direita; caso contrário, ele para de dirigir. Os blocos indicam o fluxo e a lógica do programa visual.

Neste exemplo, como o centro da visão do sensor de visão de IA é (160, 120), o robô virará para a direita até que a coordenada centroX de um objeto detectado seja maior que 150 pixels, mas menor que 170 pixels.

Ângulo

Ângulo é uma propriedade disponível somente para os códigos de cores eAprilTags. Isso representa se o código de cordetectadoou AprilTag está orientado de forma diferente.

Uma pilha de dois cubos, um verde em cima e um azul embaixo, sendo rastreados por um sistema de visão. Um contorno branco envolve ambos os cubos, com uma cruz branca centralizada no cubo verde. O rótulo na parte inferior da imagem exibe Verde_Azul A:87°, indicando as cores detectadas e uma medição de ângulo. Abaixo disso, as coordenadas são listadas como X:117, Y:186, com dimensões L:137, A:172, representando a posição e o tamanho dos cubos empilhados no quadro.

Você pode ver se o robô está orientado de forma diferente em relação ao Código de Cor ouAprilTag e tomar decisões de navegação de acordo com isso.

Dois cubos, um verde e um azul, colocados lado a lado e rastreados por um sistema de visão. Um contorno branco envolve ambos os cubos com uma cruz branca no centro. O rótulo superior esquerdo indica Verde_Azul A:0°, referenciando as cores detectadas e uma medição de ângulo. Abaixo disso, as coordenadas são mostradas como X:150, Y:102, com dimensões L:179, A:109, representando a posição e o tamanho dos cubos dentro do quadro.

Por exemplo, se um código de cor não for detectado em um ângulo adequado, o objeto que ele representa pode não ser captado corretamente pelo robô.

OrigemX e OrigemY

OriginX e OriginY são as coordenadas no canto superior esquerdo do objeto detectado em pixels.

Um Buckyball azul sendo rastreado por um sistema de visão. Um contorno branco circunda o objeto, com uma cruz branca centralizada dentro do contorno. O rótulo superior esquerdo indica a cor do objeto como azul, juntamente com as coordenadas X:176, Y:117 e as dimensões L:80, A:78. Um pequeno quadrado vermelho destaca o canto superior esquerdo do objeto.

As coordenadas OriginX e OriginY ajudam na navegação e no posicionamento. Ao combinar essa coordenada com a Largura e a Altura do objeto, você pode determinar o tamanho da caixa delimitadora do objeto. Isso pode ajudar a rastrear objetos em movimento ou a navegar entre objetos.

Uma sequência de codificação baseada em blocos começando com quando começou, seguida por um loop infinito. Dentro do loop, o programa tira um instantâneo usando o AIVision1 para detectar um objeto azul. Se o objeto existir, o programa desenhará um retângulo na tela do Brain com base na posição e no tamanho do objeto. O retângulo é desenhado usando os valores originX, originY, width e height do objeto, que são fornecidos pelo sensor AIVision1. Este programa rastreia visualmente e destaca o objeto detectado na tela do Brain.

Neste exemplo, um retângulo será desenhado no Brain usando as coordenadas exatas de sua origem, largura e altura.

ID da etiqueta

O tagID está disponível apenas paraAprilTags. Este é o número de ID para oAprilTagespecificado.

Três cartões quadrados com AprilTags sendo rastreados por um sistema de visão. Cada cartão é etiquetado com um número de identificação e dados de rastreamento associados. O cartão à esquerda é rotulado como ID:0, mostrando as coordenadas A:350°, X:110, Y:96, W:41, H:41. O cartão do meio, rotulado ID:3, tem coordenadas A:1°, X:187, Y:180, W:57, H:57. O cartão à direita é rotulado como ID:9, com coordenadas A:3°, X:237, Y:89, W:38, H:38. Cada carta tem um contorno branco, e o sistema está rastreando suas posições e orientações.

Identificar AprilTags específicos permite navegação seletiva. Você pode programar seu robô para se mover em direção a certas tags enquanto ignora outras, usando-as efetivamente como sinalizadores para navegação automatizada.

Pontuação

A propriedade de pontuação é usada ao detectarClassificações de IA com o Sensor de Visão de IA.

A imagem mostra quatro objetos sendo rastreados por um sistema de visão: duas bolas e dois anéis. A bola vermelha é rotulada com as coordenadas X:122, Y:84, W:67, H:66 e uma pontuação de 99%. A bola azul tem X:228, Y:86, W:70, H:68, com uma pontuação de 99%. O anel verde tem coordenadas X:109, Y:186, W:98, H:92 e uma pontuação de 99%. O anel vermelho é rotulado como X:259, Y:187, W:89, H:91, com uma pontuação de 99%. Cada objeto é contornado em branco, indicando precisão de rastreamento.

A pontuação de confiança indica o grau de certeza do sensor de visão de IA sobre sua detecção. Nesta imagem, há 99% de confiança na identificação das classificações de IA desses quatro objetos. Você pode usar essa pontuação para garantir que seu robô se concentre apenas em detecções altamente confiáveis.


Definir item de objeto

Quando um objeto é detectado pelo sensor de visão de IA, ele é colocado em uma matriz. Por padrão, o AI Vision Sensor extrairá dados do primeiro objeto na matriz ou do objeto com índice 1. Se o seu sensor de visão de IA tiver detectado apenas um objeto, esse objeto será selecionado por padrão.

No entanto, quando o seu sensor de visão de IA tiver detectado vários objetos de uma vez, você precisará usar o blocoDefinir item de objeto para especificar de qual objeto você deseja extrair dados.

Um bloco de codificação azul claro. Ele contém um comando para definir o item de objeto para AIVision1 como 1. Este bloco faz parte de um ambiente de codificação baseado em blocos, normalmente usado para definir em qual objeto ou item o sensor AI Vision deve focar ou rastrear. O formato do bloco tem leves curvas, adaptando-se à natureza modular da plataforma de codificação visual.

Quando vários objetos são detectados pelo sensor de visão de IA, eles são organizados na matriz do maior para o menor. Isso significa que o maior objeto detectado sempre será definido como índice de objeto 1, e o menor objeto sempre será definido como o número mais alto.

A interface do AI Vision Utility com dois cubos azuis detectados no lado esquerdo, cada um marcado com suas coordenadas X e Y e dimensões. O sistema está conectado e as AprilTags estão ativadas, enquanto a Classificação de IA está desativada. À direita, as configurações de cor azul são exibidas com intervalos ajustáveis de matiz e saturação, definidos em 22 e 0,34, respectivamente. Há uma opção para adicionar ou definir cores e congelar o vídeo. O firmware está atualizado, executando a versão 1.0.0.b16, e um botão Fechar está disponível na parte inferior.

Neste exemplo, dois objetos foram detectados com a Assinatura de Cor "Azul". Ambos serão colocados na matriz quando o blocoTake Snapshot for usado.

A interface do AI Vision Utility rastreia dois cubos azuis rotulados com seus dados X, Y e de dimensão. O cubo da esquerda tem coordenadas X:127, Y:179 e dimensões L:136, A:123, enquanto o cubo da direita tem coordenadas X:233, Y:74 e dimensões L:78, A:87. O sistema está conectado, o AprilTags está ativado e a Classificação de IA está desativada. As configurações de cor azul têm uma faixa de matiz de 22 e uma saturação de 0,34. Um botão Congelar vídeo e informações de firmware (versão 1.0.0.b16) são exibidos na parte inferior.

Aqui, o objeto na frente se tornaria o objeto índice 1, já que é o maior objeto, e o menor objeto se tornaria o objeto índice 2.


O objeto existe

Antes de extrair quaisquer dados de um instantâneo, é importantesempre verificar se o AI Vision Sensor detectou algum objeto daquele instantâneo primeiro. É aqui que o blocoObjeto Existe entra em jogo.

Existe um bloco de codificação hexagonal azul claro com o objeto de texto AIVision1? Este bloco faz parte de um ambiente de codificação baseado em blocos, normalmente usado para verificar se um objeto é detectado pelo sensor AI Vision rotulado como AIVision1. O bloco foi projetado para se encaixar em uma estrutura de codificação modular, com as leves curvas e formas características desses ambientes.

Este bloco retornará um valorVerdadeiro ouFalso sobre se o último instantâneo obtido tem ou não objetos detectados nele.

Este bloco devesempre ser usado para garantir que você não esteja tentando extrair dados de um instantâneo potencialmente vazio.

Uma sequência de codificação baseada em blocos que começa com quando foi iniciado, seguido por um loop infinito. Dentro do loop, o sensor AI Vision (AIVision2) tira uma foto para detectar a cor Azul. Se um objeto com a assinatura visual Azul for detectado, o robô avançará. Se nenhum objeto for detectado, o robô irá parar de dirigir. Os blocos são empilhados para representar a lógica condicional do programa, onde a presença de um objeto detectado controla o movimento do robô.

Por exemplo, aqui o robô estará constantemente tirando fotos com o sensor de visão de IA. Se identificar qualquer objeto com a assinatura de cores “Azul”, ele avançará.


Se algum instantâneo não tiver a assinatura de cor “Azul” , o robô irá parar de se mover.


Contagem de objetos

Um bloco de codificação arredondado azul claro rotulado como contagem de objetos AIVision1. Este bloco é usado em um ambiente de codificação baseado em blocos para recuperar o número de objetos detectados pelo sensor AI Vision rotulado como AIVision1. O bloco se encaixa dentro de uma estrutura modular, comumente usada em interfaces de programação visual para robótica ou sistemas de visão.

Usar o bloco Object count permitirá que você veja quantos objetos de uma Color Signature específica o AI Vision Sensor pode ver em seu último instantâneo. 

A interface do AI Vision Utility com dois cubos azuis detectados à esquerda. O sistema está conectado, com o AprilTags habilitado e a Classificação de IA desativada. A interface exibe configurações para detectar a cor azul, com matiz definido como 22 e saturação como 0,34. Botões para congelar o vídeo e adicionar ou definir a cor estão presentes. O firmware é indicado como atualizado, executando a versão 1.0.0.b16. Há também um botão para desconectar a conexão ou fechar o utilitário.

Aqui, vemos que o sensor de visão de IA tem a assinatura de cor configurada “Azul” e está detectando dois objetos.

Uma sequência de codificação baseada em blocos começando com quando iniciado, seguida por um loop infinito. Dentro do loop, o programa tira um instantâneo usando o AIVision2 para detectar a assinatura visual azul. Ele limpa e reinicia o console antes de verificar se algum objeto azul foi detectado. Se existir um objeto azul, a contagem de objetos será impressa no console. O programa então aguarda dois segundos antes de repetir o processo. Os blocos representam visualmente uma verificação contínua de objetos azuis, exibindo os resultados no console.Uma saída de consola com o número 2 impresso. A consola faz parte de uma interface maior que provavelmente exibe resultados de um programa executado num ambiente de codificação baseado em blocos. A parte superior da consola tem botões para ações ou controlos adicionais, e o programa em execução aqui envia dados para a Print Console, que mostra o resultado 2 no ecrã.

Neste código, o AI Vision Sensor tiraria um instantâneo e imprimiria “2” no console VEXcode, pois detecta apenas duas assinaturas de cores “Azuis” .


Objeto

Um menu suspenso para selecionar propriedades de objetos relacionadas ao AIVision1. A opção selecionada é largura, e o menu lista outras opções, incluindo altura, centroX, centroY, ângulo, origemX, origemY, tagID e pontuação. Essas opções permitem que o usuário recupere pontos de dados específicos do objeto detectado pelo sensor AI Vision, proporcionando flexibilidade para rastrear ou medir vários atributos do objeto.

O blocoObjeto permite que você informe a propriedade do objeto especificado. Isso permite que você use qualquer dado disponível extraído do instantâneo mais recente.

As propriedades do objeto que podem ser extraídas de instantâneos são:

  • largura
  • altura
  • centroX
  • centroY
  • ângulo
  • origemX
  • origemY
  • ID da etiqueta
  • pontuação

Leia a seção "Dados obtidos do instantâneo" deste artigo para obter mais informações sobre essas propriedades.


AprilTag detectado é

Um bloco hexagonal azul claro de uma interface de codificação. Ele contém o comando para verificar se o AprilTag detectado pelo AIVision1 corresponde ao valor 1. Este bloco é usado em um ambiente de codificação baseado em blocos e foi projetado para avaliar se uma AprilTag específica está presente. O formato e a estrutura permitem que ele se encaixe em outros blocos lógicos, normalmente usados em programação visual para robótica ou tarefas de visão de IA.

O blocoDetected AprilTag is só está disponível quando o Modo de DetecçãoAprilTag está ativado.

Este bloco reportará Verdadeiro ou Falso dependendo se o objeto especificado é um determinado AprilTag.

Três AprilTags sendo rastreadas por um sistema de visão. Cada tag tem um ID e coordenadas associadas. A tag da esquerda é rotulada ID:0, com coordenadas X:110, Y:96, W:41, H:41. A etiqueta central é rotulada ID:3, com coordenadas X:187, Y:180, W:57, H:57. A tag da direita é rotulada ID:9, com coordenadas X:237, Y:89, W:38, H:38.

Quando várias AprilTags são detectadas em um único instantâneo, elas são organizadas na matriz com base em seu ID identificado, não por tamanho.

Nesta imagem, três AprilTags são detectadas com IDs 0, 3 e 9. Eles serão organizados em ordem crescente de seu ID na matriz. O objeto no índice 1 corresponderia à AprilTag com ID 0, no índice 2 à AprilTag com ID 3 e no índice 3 à AprilTag com ID 9.

Para mais informações sobre o que são AprilTags e como habilitar sua detecção com o AI Vision Sensor, leia este artigo.


A classificação da IA é

Um bloco hexagonal azul claro de um ambiente de codificação baseado em blocos. O bloco contém o comando AIVision1 A classificação da IA é BlueBall? Este bloco verifica se o sensor AI Vision (AIVision1) classificou o objeto detectado como um BlueBall. O bloco apresenta opções suspensas, permitindo que os usuários selecionem diferentes objetos ou classificações de IA para fins de rastreamento e tomada de decisão em uma interface de programação visual.

A ClassificaçãoAI no bloco só está disponível quando o Modo de Detecção da ClassificaçãoAI está ativado.

 

Este bloco reportará Verdadeiro ou Falso dependendo se o objeto especificado é de uma determinada Classificação de IA.

As classificações de IA que podem ser detectadas pelo sensor de visão de IA variam dependendo do modelo que você está usando. Para mais informações sobre quais as classificações de IA disponíveis e como ativar a sua deteção com o AI Vision Sensor, leia este artigo.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: