Codifica con il sensore di visione AI nei blocchi VEXcode V5

Assicurati di avere Firme colore e Codici colore configurati con il tuo sensore di visione AI in modo che possano essere utilizzati con i tuoi blocchi. Per saperne di più su come configurarli, puoi leggere gli articoli seguenti:

Il sensore di visione AI può anche rilevare le classificazioni AI e gli AprilTag. Per sapere come abilitare queste modalità di rilevamento, vai qui:

Per saperne di più sui singoli blocchi e su come utilizzarli in VEXcode, visita il sito API.


Scatta un'istantanea

Un blocco che contiene il comando "Esegui uno snapshot" con due selezioni a discesa: una denominata AIVision1 e l'altra denominata COL1. Questo blocco è progettato per acquisire un'istantanea da un sensore AI Vision e fare riferimento a un oggetto o colore specifico dalle variabili designate in un ambiente di codifica visiva. La forma del blocco presenta leggere curve alle estremità, tipiche delle interfacce di codifica basate su blocchi.

Il bloccoTake Snapshot scatta una foto di ciò che il sensore di visione AI sta attualmente vedendo ed estrae dati da tale istantanea che possono poi essere utilizzati in un progetto. Quando si acquisisce un'istantanea, è necessario specificare di quale tipo di oggetto il sensore di visione AI deve raccogliere dati:

  • Firma a colori
  • Codice colore
  • Classificazioni AI
  • Tag di aprile

L'acquisizione di uno snapshot creerà una matrice di tutti gli oggetti rilevati specificati. Ad esempio, se si desidera rilevare una firma di colore "Rosso"e il sensore di visione AI rileva 3 diversi oggetti rossi, i dati di tutti e tre verranno inseriti nell'array

Per maggiori informazioni su come specificare tra oggetti diversi, consultare la sezione "Imposta elemento oggetto" in questo articolo.

Un blocco di codice azzurro con il comando per scattare un'istantanea di un oggetto o di un colore. Sono disponibili due opzioni a discesa: una denominata AIVision2 e l'altra denominata Blue. Il blocco è progettato per essere utilizzato in un ambiente di codifica basato su blocchi, in cui acquisisce un'istantanea da un sensore AI Vision e traccia un oggetto o un colore definito come blu. Il blocco presenta leggere curve, tipiche delle interfacce di codifica che utilizzano blocchi modulari.

In questo esempio, rileverà solo gli oggetti che corrispondono alla sua firma di colore "Blu" configurata e nient'altro.

Dati presi da uno snapshot

Tieni presente che il sensore di visione AI utilizzerà l'ultima istantanea scattata per tutti i blocchi successivi. Per assicurarti di ricevere sempre le informazioni più aggiornate dal tuo sensore di visione AI, scatta nuovamente l'istantanea ogni volta che desideri estrarre dati da esso. 

Risoluzione

Per un'interpretazione accurata dei dati è fondamentale comprendere la risoluzione del sensore di visione AI. Il sensore ha una risoluzione di 320x240 pixel, con il centro esatto alle coordinate (160, 120).

Le coordinate X inferiori a 160 corrispondono alla metà sinistra del campo visivo del sensore, mentre quelle superiori a 160 rappresentano la metà destra. Allo stesso modo, le coordinate Y inferiori a 120 indicano la metà superiore della vista, mentre quelle superiori a 120 rappresentano la metà inferiore.

Vai a Comprensione dei dati nell'utilità AI Vision in VEXcode V5 per ulteriori informazioni su come gli oggetti vengono misurati con il sensore AI Vision.

Larghezza e altezza

Questa è la larghezza o l'altezza dell'oggetto rilevato in pixel.

L'immagine mostra un Buckyball blu con un contorno quadrato bianco che lo segue. Nell'angolo in alto a sinistra c'è un'etichetta che indica che si tratta di un oggetto blu, con coordinate X:176, Y:117 e dimensioni W:80, H:78. Le frecce rosse evidenziano la larghezza e l'altezza dell'oggetto.

Le misure di larghezza e altezza aiutano a identificare i diversi oggetti. Ad esempio, un Buckyball avrà un'altezza maggiore di un Ring.

Due oggetti cubici blu tracciati da un sistema di riconoscimento visivo. Il cubo superiore ha un contorno bianco con un'etichetta che indica la sua posizione come X:215, Y:70 e le dimensioni W:73, H:84. Il cubo inferiore ha un contorno bianco simile con l'etichetta che mostra X:188, Y:184 e le dimensioni W:144, H:113. Ogni cubo ha una croce bianca al centro, che probabilmente indica il punto focale del tracciamento. Le etichette evidenziano le misurazioni e i dati di tracciamento di ciascun oggetto.

Larghezza e altezza indicano anche la distanza di un oggetto dal sensore di visione AI. Di solito, misure più piccole indicano che l'oggetto è più lontano, mentre misure più grandi indicano che è più vicino.

Il programma inizia con il blocco all'avvio, seguito da un ciclo infinito. All'interno del ciclo, il programma scatta un'istantanea utilizzando il sensore AI Vision (AIVision1) per rilevare un oggetto blu. Se l'oggetto esiste, il programma controlla se la larghezza dell'oggetto è inferiore a 250 pixel. Se è vero, il robot avanza; altrimenti, smette di muoversi. I blocchi sono impilati insieme, indicando il flusso del programma in un ambiente di codifica modulare.

In questo esempio, la larghezza dell'oggetto viene utilizzata per la navigazione. Il robot si avvicinerà all'oggetto finché la larghezza non avrà raggiunto una dimensione specifica prima di fermarsi.

CentroX e Centro Y

Si tratta delle coordinate centrali dell'oggetto rilevato in pixel.

Un Buckyball blu monitorato da un sistema di visione artificiale. L'oggetto è contornato da un quadrato bianco e all'interno del contorno c'è un quadrato rosso più piccolo che circonda una croce bianca al centro. Nell'angolo in alto a sinistra dell'immagine, un'etichetta indica che l'oggetto è blu, con coordinate X:176, Y:117 e dimensioni L:80, A:78.

Le coordinate CenterX e CenterY aiutano nella navigazione e nel posizionamento. Il sensore di visione AI ha una risoluzione di 320 x 240 pixel.

Due oggetti cubici blu tracciati da un sistema visivo. L'oggetto superiore è etichettato con le coordinate X:215, Y:70 e le dimensioni W:73, H:84, con un contorno bianco e una croce bianca al centro. L'oggetto inferiore è etichettato con le coordinate X:188, Y:184 e le dimensioni W:144, H:113, anch'esse delineate in bianco con una croce bianca al centro.

Come puoi vedere, un oggetto più vicino al sensore di visione AI avrà una coordinata CenterY inferiore rispetto a un oggetto più lontano.

Una sequenza di codifica basata su blocchi che inizia con when started seguita da un ciclo infinito. All'interno del ciclo, il programma scatta un'istantanea utilizzando AIVision1 per rilevare un oggetto blu. Se un oggetto esiste, il programma ruota finché l'oggetto non è centrato nella visuale del sensore AI Vision. L'oggetto è considerato centrato se il suo valore centerX è compreso tra 150 e 170. Se l'oggetto non è centrato, il robot gira a destra, altrimenti smette di muoversi. I blocchi indicano il flusso e la logica del programma visivo.

In questo esempio, poiché il centro della visuale del sensore di visione AI è (160, 120), il robot girerà a destra finché la coordinata centraleX di un oggetto rilevato non sarà maggiore di 150 pixel, ma minore di 170 pixel.

Angolo

L'angolo è una proprietà disponibile solo per i codici colore eAprilTags. Ciò indica se il codice coloreo AprilTag rilevato è orientato in modo diverso.

Una pila di due cubi, uno verde in alto e uno blu in basso, monitorati da un sistema di visione. Un contorno bianco circonda entrambi i cubi, con una croce bianca al centro del cubo verde. L'etichetta nella parte inferiore dell'immagine mostra Green_Blue A:87°, che indica i colori rilevati e una misurazione dell'angolo. Al di sotto, le coordinate sono elencate come X:117, Y:186, con dimensioni W:137, H:172, che rappresentano la posizione e la dimensione dei cubi impilati nel frame.

È possibile vedere se il robot è orientato in modo diverso rispetto al codice colore oAprilTag e prendere decisioni di navigazione di conseguenza.

Due cubi, uno verde e uno blu, posizionati uno accanto all'altro e monitorati da un sistema di visione. Un contorno bianco circonda entrambi i cubi con una croce bianca al centro. L'etichetta in alto a sinistra indica Green_Blue A:0°, che fa riferimento ai colori rilevati e alla misurazione dell'angolo. Al di sotto, le coordinate sono mostrate come X:150, Y:102, con dimensioni W:179, H:109, che rappresentano la posizione e la dimensione dei cubi all'interno della cornice.

Ad esempio, se un codice colore viene rilevato con l'angolazione corretta, l'oggetto che rappresenta potrebbe non essere rilevato correttamente dal robot.

OriginX e OriginY

OriginX e OriginY sono le coordinate nell'angolo in alto a sinistra dell'oggetto rilevato in pixel.

Un Buckyball blu monitorato da un sistema visivo. Un contorno bianco circonda l'oggetto, con una croce bianca al centro all'interno del contorno. L'etichetta in alto a sinistra indica il colore dell'oggetto come blu, insieme alle coordinate X:176, Y:117 e alle dimensioni W:80, H:78. Un piccolo quadrato rosso evidenzia l'angolo in alto a sinistra dell'oggetto.

Le coordinate OriginX e OriginY aiutano nella navigazione e nel posizionamento. Combinando questa coordinata con la larghezza e l'altezza dell'oggetto, è possibile determinare la dimensione del riquadro di delimitazione dell'oggetto. Può essere utile per tracciare oggetti in movimento o per spostarsi tra gli oggetti.

Una sequenza di codifica basata su blocchi che inizia con when started seguita da un ciclo infinito. All'interno del ciclo, il programma scatta un'istantanea utilizzando AIVision1 per rilevare un oggetto blu. Se l'oggetto esiste, il programma disegnerà un rettangolo sullo schermo Brain in base alla posizione e alle dimensioni dell'oggetto. Il rettangolo viene disegnato utilizzando i valori originX, originY, width e height dell'oggetto, forniti dal sensore AIVision1. Questo programma traccia visivamente e mette in evidenza l'oggetto rilevato sullo schermo Brain.

In questo esempio, verrà disegnato un rettangolo sul cervello utilizzando le coordinate esatte della sua origine, larghezza e altezza.

ID tag

Il tagID è disponibile solo perAprilTags. Questo è il numero ID per l'specificato.

Tre carte quadrate con AprilTags tracciate da un sistema di visione. Ogni carta è etichettata con un numero ID e i relativi dati di tracciamento. La scheda a sinistra è etichettata ID:0 e mostra le coordinate A:350°, X:110, Y:96, W:41, H:41. La carta centrale, etichettata ID:3, ha le coordinate A:1°, X:187, Y:180, W:57, H:57. La scheda a destra è etichettata ID:9, con coordinate A:3°, X:237, Y:89, W:38, H:38. Ogni carta ha un contorno bianco e il sistema ne monitora la posizione e l'orientamento.

L'identificazione di specifici AprilTags consente una navigazione selettiva. Puoi programmare il tuo robot in modo che si muova verso determinati tag ignorandone altri, utilizzandoli di fatto come segnali per la navigazione automatizzata.

Punto

La proprietà del punteggio viene utilizzata quando si rilevanoclassificazioni AI con il sensore di visione AI.

L'immagine mostra quattro oggetti tracciati da un sistema di visione: due sfere e due anelli. La pallina rossa è etichettata con le coordinate X:122, Y:84, W:67, H:66 e un punteggio del 99%. La palla blu ha X:228, Y:86, W:70, H:68, con un punteggio del 99%. L'anello verde ha coordinate X:109, Y:186, W:98, H:92 e un punteggio del 99%. L'anello rosso è etichettato X:259, Y:187, W:89, H:91, con un punteggio del 99%. Ogni oggetto è evidenziato in bianco, a indicare la precisione del tracciamento.

Il punteggio di affidabilità indica il livello di certezza del sensore di visione AI in merito al suo rilevamento. In questa immagine, l'identificazione delle classificazioni AI di questi quattro oggetti è sicura al 99%. Puoi usare questo punteggio per assicurarti che il tuo robot si concentri solo su rilevamenti altamente affidabili.


Imposta oggetto elemento

Quando un oggetto viene rilevato dal sensore di visione AI, viene inserito in una matrice. Per impostazione predefinita, il sensore di visione AI estrarrà i dati dal primo oggetto nell'array, ovvero dall'oggetto con indice 1. Se il sensore di visione AI ha rilevato un solo oggetto, tale oggetto verrà selezionato per impostazione predefinita.

Tuttavia, quando il sensore di visione AI ha rilevato più oggetti contemporaneamente, sarà necessario utilizzare il bloccoImposta oggetto elemento per specificare da quale oggetto si desidera estrarre i dati.

Un blocco di codifica azzurro. Contiene un comando per impostare l'elemento oggetto per AIVision1 su 1. Questo blocco fa parte di un ambiente di codifica basato su blocchi, solitamente utilizzato per definire su quale oggetto o elemento il sensore AI Vision deve concentrarsi o tracciare. La forma del blocco presenta leggere curve, che si adattano alla natura modulare della piattaforma di codifica visiva.

Quando il sensore di visione AI rileva più oggetti, questi vengono disposti nella matrice dal più grande al più piccolo. Ciò significa che l'oggetto più grande rilevato verrà sempre impostato sull'indice oggetto 1, mentre l'oggetto più piccolo verrà sempre impostato sul numero più alto.

L'interfaccia AI Vision Utility con due cubi blu rilevati sul lato sinistro, ciascuno contrassegnato con le proprie coordinate X e Y e le relative dimensioni. Il sistema è connesso e AprilTags è attivato, mentre la classificazione AI è disattivata. Sulla destra, vengono visualizzate le impostazioni del colore Blu con intervalli di tonalità e saturazione regolabili, impostati rispettivamente su 22 e 0,34. C'è un'opzione per aggiungere o impostare il colore e bloccare il video. Il firmware è aggiornato, versione 1.0.0.b16, e in basso è disponibile un pulsante di chiusura.

In questo esempio sono stati rilevati due oggetti con la firma di colore "Blu". Entrambi verranno inseriti nell'array quando verrà utilizzato il bloccoTake Snapshot.

L'interfaccia AI Vision Utility, che traccia due cubi blu etichettati con i relativi dati X, Y e dimensionali. Il cubo di sinistra ha coordinate X:127, Y:179 e dimensioni W:136, H:123, mentre il cubo di destra ha coordinate X:233, Y:74 e dimensioni W:78, H:87. Il sistema è connesso, AprilTags è attivato e la classificazione AI è disattivata. Le impostazioni del colore blu hanno una gamma di tonalità di 22 e una saturazione di 0,34. Nella parte inferiore vengono visualizzati il pulsante Freeze Video e le informazioni sul firmware (versione 1.0.0.b16).

In questo caso, l'oggetto in primo piano diventerebbe l'oggetto indice 1, poiché è l'oggetto più grande, mentre l'oggetto più piccolo diventerebbe l'oggetto indice 2.


L'oggetto esiste

Prima di estrarre dati da uno snapshot, è importante che il sensore di visione AI abbia rilevato prima eventuali oggetti da quello snapshot. È qui che entra in gioco il bloccoObject Exists.

Esiste un blocco di codifica esagonale azzurro con il testo oggetto AIVision1? Questo blocco fa parte di un ambiente di codifica basato su blocchi, solitamente utilizzato per verificare se un oggetto viene rilevato dal sensore AI Vision etichettato come AIVision1. Il blocco è progettato per adattarsi a una struttura di codifica modulare, con le leggere curve e forme caratteristiche di tali ambienti.

Questo blocco restituirà un valoreVero oFalso a seconda che nell'ultimo snapshot siano stati rilevati oggetti.

Questo blocco dovrebbe essereutilizzato per garantire che si stia tentando di estrarre dati da uno snapshot potenzialmente vuoto.

Una sequenza di codifica basata su blocchi che inizia con when started seguita da un ciclo infinito. All'interno del loop, il sensore AI Vision (AIVision2) scatta un'istantanea per rilevare il colore blu. Se viene rilevato un oggetto con la firma visiva blu, il robot procederà in avanti. Se non viene rilevato alcun oggetto, il robot smetterà di muoversi. I blocchi sono impilati per rappresentare la logica condizionale del programma, in cui la presenza di un oggetto rilevato controlla il movimento del robot.

Ad esempio, in questo caso il robot scatterà costantemente istantanee con il sensore di visione AI. Se identifica un qualsiasi oggetto con la firma di colore "Blu" , proseguirà.


Se un'istantanea non ha la firma di colore "Blu" , il robot smetterà di muoversi.


Conteggio oggetti

Un blocco di codice arrotondato di colore azzurro etichettato conteggio oggetti AIVision1. Questo blocco viene utilizzato in un ambiente di codifica basato su blocchi per recuperare il numero di oggetti rilevati dal sensore AI Vision etichettato come AIVision1. Il blocco si adatta a una struttura modulare, comunemente utilizzata nelle interfacce di programmazione visiva per la robotica o i sistemi di visione.

Utilizzando il blocco Conteggio oggetti potrai vedere quanti oggetti di una specifica Firma colori il sensore di visione AI riesce a vedere nella sua ultima istantanea. 

L'interfaccia di AI Vision Utility con due cubi blu rilevati sulla sinistra. Il sistema è connesso, con AprilTags abilitato e AI Classification disattivata. L'interfaccia visualizza le impostazioni per il rilevamento del colore blu, con la tonalità impostata su 22 e la saturazione su 0,34. Sono presenti pulsanti per bloccare il video e per aggiungere o impostare il colore. Il firmware è indicato come aggiornato, con versione 1.0.0.b16. C'è anche un pulsante per disconnettere la connessione o chiudere l'utilità.

Qui vediamo che il sensore di visione AI ha configurato la firma di colore "Blu" e sta rilevando due oggetti.

Una sequenza di codifica basata su blocchi che inizia con when started, seguita da un ciclo infinito. All'interno del ciclo, il programma scatta un'istantanea utilizzando AIVision2 per rilevare la firma visiva blu. Cancella e reimposta la console prima di verificare se vengono rilevati oggetti blu. Se esiste un oggetto blu, il conteggio degli oggetti viene stampato sulla console. Il programma attende quindi due secondi prima di ripetere il processo. I blocchi rappresentano visivamente un controllo continuo degli oggetti blu, visualizzando i risultati nella console.Un'uscita della console con stampato il numero 2. La console fa parte di un'interfaccia più ampia che probabilmente visualizza i risultati di un programma in esecuzione in un ambiente di codifica basato su blocchi. Nella parte superiore della console sono presenti pulsanti per azioni o controlli aggiuntivi e il programma in esecuzione qui invia dati alla Print Console, che mostra sullo schermo il risultato 2.

In questo codice, il sensore di visione AI acquisisce un'istantanea e stampa "2" sulla console VEXcode, poiché rileva solo due firme di colore "Blu" .


Oggetto

Un menu a discesa per selezionare le proprietà degli oggetti correlati ad AIVision1. L'opzione selezionata è larghezza e il menu elenca altre opzioni tra cui altezza, centroX, centroY, angolo, origineX, origineY, tagID e punteggio. Queste opzioni consentono all'utente di recuperare punti dati specifici dall'oggetto rilevato dal sensore AI Vision, offrendo flessibilità per il tracciamento o la misurazione di vari attributi dell'oggetto.

Il bloccoObject consente di segnalare la proprietà dell'oggetto specificato. Ciò consente di utilizzare tutti i dati disponibili estratti dall'istantanea acquisita più di recente.

Le proprietà degli oggetti che possono essere estratte dagli snapshot acquisiti sono:

  • larghezza
  • altezza
  • centroX
  • centroY
  • angolo
  • origineX
  • origineY
  • ID tag
  • punto

Per maggiori informazioni su queste proprietà, leggere la sezione "Dati ricavati dallo snapshot" di questo articolo.


Rilevato AprilTag è

Un blocco esagonale azzurro di un'interfaccia di codifica. Contiene il comando per verificare se l'AprilTag rilevato da AIVision1 corrisponde al valore 1. Questo blocco viene utilizzato in un ambiente di codifica basato su blocchi ed è progettato per valutare se è presente uno specifico AprilTag. La forma e la struttura gli consentono di adattarsi ad altri blocchi logici, solitamente utilizzati nella programmazione visiva per attività di robotica o di visione artificiale.

Il blocco AprilTag rilevatoè ed è disponibile solo quando è attivata la modalità di rilevamento AprilTag

Questo blocco riporterà Vero o Falso a seconda che l'oggetto specificato sia un determinato AprilTag.

Tre AprilTag tracciati da un sistema di visione. Ogni tag ha un ID e coordinate associate. Il tag a sinistra è etichettato ID:0, con coordinate X:110, Y:96, W:41, H:41. Il tag centrale è etichettato ID:3, con coordinate X:187, Y:180, W:57, H:57. Il tag di destra è etichettato ID:9, con coordinate X:237, Y:89, W:38, H:38.

Quando vengono rilevati più AprilTag in un singolo snapshot, vengono disposti nell'array in base al loro ID identificato, non in base alla dimensione.

In questa immagine vengono rilevati tre AprilTag con ID 0, 3 e 9. Saranno organizzati in ordine crescente in base al loro ID nell'array. L'oggetto all'indice 1 corrisponderebbe all'AprilTag con ID 0, all'indice 2 all'AprilTag con ID 3 e all'indice 3 all'AprilTag con ID 9.

Per maggiori informazioni su cosa sono gli AprilTag e su come abilitarne il rilevamento con l'AI Vision Sensor, leggi questo articolo.


La classificazione AI è

Un blocco esagonale azzurro chiaro proveniente da un ambiente di codifica basato su blocchi. Il blocco contiene il comando AIVision1 La classificazione AI è BlueBall? Questo blocco verifica se il sensore AI Vision (AIVision1) ha classificato l'oggetto rilevato come BlueBall. Il blocco presenta opzioni a discesa che consentono agli utenti di selezionare diversi oggetti o classificazioni AI per scopi di monitoraggio e decisionali in un'interfaccia di programmazione visiva.

La classificazione AIè blocco ed è disponibile solo quando è attivata la modalità di rilevamento della classificazione AI.

 

Questo blocco riporterà Vero o Falso a seconda che l'oggetto specificato sia una determinata classificazione AI.

Le classificazioni AI che possono essere rilevate dal sensore di visione AI variano a seconda del modello utilizzato. Per maggiori informazioni sulle classificazioni AI disponibili e su come abilitarne il rilevamento con il sensore di visione AI, leggi questo articolo.

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

Last Updated: