Codifica con il sensore di visione AI nei blocchi EXP VEXcode

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

Blocco VEXcode EXP Take Snapshot che recita Take a AIVision1 snapshot of COL1. Sono presenti due menu a discesa, uno per selezionare il sensore di visione AI e il secondo per selezionare il codice colore.

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
  • AprileTags

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.

Blocco VEXcode EXP Take Snapshot che recita Take a AIVision2 snapshot of Blue.

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

Diagramma della risoluzione del sensore di visione AI. L'angolo in alto a sinistra è etichettato 0, 0, l'angolo in alto a destra è etichettato 320, 0 e l'angolo in basso a sinistra è etichettato 0, 240. Al centro dello schermo sono indicati 160, 120.

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 EXP per maggiori 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.

Il sensore di visione AI viene mostrato mentre traccia un Buckyball blu. Il Buckyball è circondato da un rettangolo di tracciamento e l'etichetta sopra mostra che ha una larghezza di 80 pixel e un'altezza di 78 pixel. Le frecce rosse evidenziano il rettangolo di tracciamento per mostrarne la larghezza e l'altezza.

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

Il sensore di visione AI è mostrato mentre traccia due cubi blu. I Cubi sono circondati da rettangoli di tracciamento e uno di essi è molto più vicino alla telecamera. Quello più vicino ha una larghezza di 144 e un'altezza di 113, mentre quello più lontano ha una larghezza di 73 e un'altezza di 84.

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.

Progetto VEXcode Blocks in cui il robot si avvicinerà all'oggetto finché la sua larghezza non avrà raggiunto una dimensione specifica prima di fermarsi. Il progetto inizia con un blocco When started e un ciclo Forever. Il resto del progetto si trova all'interno del ciclo Forever. Per prima cosa, prendi uno snapshot AIVision1 di Blue, quindi il resto del progetto è all'interno di un blocco If che legge se l'oggetto AIVision1 esiste? All'interno di questo blocco If c'è un blocco If Else che legge se la larghezza dell'oggetto AIVision1 è inferiore a 250 allora avanza, altrimenti interrompi l'avanzamento.

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

CentroX e Centro Y

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

Il sensore di visione AI viene mostrato mentre traccia un Buckyball blu. Il Buckyball è circondato da un rettangolo di tracciamento e l'etichetta sopra mostra che ha una posizione X di 176 e una posizione Y di 117. Il centro del rettangolo di tracciamento è evidenziato per dimostrare che la posizione è misurata dal centro.

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

Il sensore di visione AI è mostrato mentre traccia due cubi blu. I Cubi sono circondati da rettangoli di tracciamento e uno di essi è molto più vicino alla telecamera. Quello più vicino ha una posizione Y di 184, mentre quello più lontano ha una posizione Y di 70.

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

Progetto VEXcode Blocks in cui il robot si girerà verso un oggetto rilevato finché non si troverà al centro della visuale del sensore di visione AI. Il progetto inizia con un blocco When started e un ciclo Forever. Il resto del progetto si trova all'interno del ciclo Forever. Per prima cosa, prendi uno snapshot AIVision1 di Blue, quindi il resto del progetto è all'interno di un blocco If che legge se l'oggetto AIVision1 esiste? All'interno di questo blocco If c'è un blocco If Else che legge se il centro dell'oggetto AIVision1 X è maggiore di 150 e il centro dell'oggetto AIVision1 X è minore di 170, allora gira a destra, altrimenti fermati.

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

Animazione di un quadrato rosso e di un quadrato verde ruotati insieme per dimostrare i 360 gradi di un valore angolare.

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

Il sensore di visione AI viene mostrato mentre traccia un codice colore verde e poi blu. Il video mostra un cubo verde impilato sopra un cubo blu. Il valore dell'angolo del codice colore è evidenziato e corrisponde a 87 gradi, il che indica che il codice colore è orientato verticalmente.

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

Il sensore di visione AI viene mostrato mentre traccia un codice colore verde e poi blu. Il video mostra un cubo verde accanto a un cubo blu, ma sono posizionati in un'angolazione scomoda rispetto al sensore. Il valore dell'angolo del codice colore è evidenziato e indica 0 gradi, il che indica che l'angolo del codice colore non può essere letto.

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.

Il sensore di visione AI viene mostrato mentre traccia un Buckyball blu. Il Buckyball è circondato da un rettangolo di tracciamento e l'etichetta sopra mostra che ha una posizione X di 176 e una posizione Y di 117. L'angolo superiore sinistro del rettangolo di tracciamento è evidenziato per dimostrare che la posizione di origine viene misurata a partire dal suo angolo superiore sinistro.

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.

Progetto VEXcode Blocks in cui il robot disegnerà sullo schermo un oggetto rilevato sotto forma di rettangolo. Il progetto inizia con un blocco When started e un ciclo Forever. Il resto del progetto si trova all'interno del ciclo Forever. Per prima cosa, prendi uno snapshot AIVision1 di Blue, quindi il resto del progetto è all'interno di un blocco If che legge se l'oggetto AIVision1 esiste? All'interno di questo blocco If c'è un blocco Disegna rettangolo che legge disegna rettangolo AIVision1 oggetto origineX, AIVision1 oggetto origineY, AIVision1 oggetto larghezza, AIVision1 oggetto altezza su 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 AprilTag vengono monitorati dall'AI Vision Utility. Ogni tag viene identificato, localizzato e delineato, indicando il suo tracciamento da parte del sistema. In questo esempio gli ID AprilTag sono 0, 3 e 9.

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'utilità AI Vision sta monitorando quattro oggetti: due BuckyBall e due Ring. Ogni oggetto viene identificato, localizzato e delineato, indicando il suo tracciamento da parte del sistema. L'utilità elenca anche il punteggio di classificazione AI di ciascun oggetto; in questo esempio, ogni punteggio è pari al 99%.

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.

VEXcode EXP Imposta il blocco oggetto elemento che legge Imposta l'oggetto elemento AIVision1 su 1. C'è un menu a discesa per selezionare il sensore di visione AI e un campo di testo per immettere l'indice dell'oggetto.

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.

Il sensore di visione AI è mostrato mentre traccia due cubi blu. I Cubi sono circondati da rettangoli di tracciamento e uno di essi è molto più vicino alla telecamera. Quello più vicino ha una larghezza di 136, quello più lontano ha una larghezza di 78.

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.

Il sensore di visione AI è mostrato mentre traccia due cubi blu. I Cubi sono circondati da rettangoli di tracciamento e uno di essi è molto più vicino alla telecamera. Il cubo più vicino è etichettato con 1, mentre quello più lontano è etichettato con 2.

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 oggetti EXP VEXcode che legge l'oggetto AIVision1? C'è un menu a discesa per selezionare il sensore di visione AI.

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.

Progetto VEXcode Blocks in cui il robot si dirigerà verso un oggetto blu rilevato. Il progetto inizia con un blocco When started e un ciclo Forever. Il resto del progetto si trova all'interno del ciclo Forever. Per prima cosa, prendi uno snapshot AIVision2 di Blue, quindi un blocco If Else che legge se l'oggetto AIVision2 esiste allora procedi, altrimenti interrompi la guida.

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

Blocco di conteggio oggetti VEXcode EXP che legge il conteggio oggetti AIVision1. C'è un menu a discesa per selezionare il sensore di visione AI.

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. 

Il sensore di visione AI viene mostrato mentre traccia due cubi blu. I Cubi sono circondati da rettangoli di tracciamento e uno di essi è molto più vicino alla telecamera.

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

Progetto VEXcode Blocks in cui il robot stamperà il numero di oggetti blu rilevati sulla Print Console. Il progetto inizia con un blocco When started e un ciclo Forever. Il resto del progetto si trova all'interno del ciclo Forever. Per prima cosa, scatta uno snapshot AIVision2 di Blue, cancella tutte le righe sulla Console, quindi imposta il cursore sulla riga successiva sulla Console. Il successivo è un blocco If che legge se l'oggetto AIVision2 esiste, quindi stampa il conteggio degli oggetti AIVision2 sulla console e imposta il cursore sulla riga successiva. All'esterno del blocco If, c'è un blocco Wait impostato per attendere 2 secondi.L'output della Print Console del precedente progetto VEXcode Blocks con un messaggio stampato che riporta 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

Blocco oggetto VEXcode EXP AI Vision che legge la larghezza dell'oggetto AIVision1. È presente un menu a discesa per selezionare il sensore di visione AI e un menu a discesa aperto per selezionare l'attributo dell'oggetto da rilevare. L'elenco delle opzioni riporta larghezza, altezza, centroX, centroY, angolo, origineX, origineY, tagID e punteggio.

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 è

VEXcode EXP Detected AprilTag è un blocco che legge AIVision1 rilevato AprilTag è 1? C'è un menu a discesa per selezionare il sensore di visione AI.

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 vengono monitorati dall'AI Vision Utility. Ogni tag viene identificato, localizzato e delineato, indicando il suo tracciamento da parte del sistema. In questo esempio gli ID AprilTag sono 0, 3 e 9.

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 è

La classificazione AI EXP di VEXcode è un blocco che legge la classificazione AIVision1 AI è BlueBall? C'è un menu a discesa per selezionare il sensore di visione AI e un altro menu a discesa per selezionare l'oggetto di classificazione AI di destinazione.

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: