Senzor pro vidění s umělou inteligencí#
Zavedení#
Vizuální senzor VEX IQ AI dokáže detekovat a sledovat objekty, barvy a identifikátory AprilTag. To umožňuje robotovi analyzovat své okolí, sledovat objekty a reagovat na základě detekovaných vizuálních dat.
Příklady AI Vision jsou navrženy pro použití s Basebotem vybaveným senzorem VEX IQ AI Vision. V těchto příkladech je senzor konfigurován s názvem AIVision1, který se objevuje v blocích.
Níže je uveden seznam všech bloků:
Akce – Zachycení dat ze senzoru VEX IQ AI Vision pro vybraný podpis.
get object data — Zachytí data pro konkrétní podpis, například nakonfigurovanou barvu, předtrénovaný objekt nebo ID AprilTag.
Nastavení – Vyberte, se kterým objektem chcete interagovat.
set AI Vision object item — Vybere konkrétní objekt ze seznamu detekovaných objektů.
Hodnoty – Přístup k zaznamenaným datům a jejich použití.
Objekt AI Vision existuje — Hlásí, zda byl detekován objekt.
Počet objektů AI Vision — Uvádí počet detekovaných objektů.
Vlastnost objektu AI Vision — Hlásí podrobnosti, jako například:
Objekt AI Vision je? — Zkontroluje, zda detekovaný objekt odpovídá určité klasifikaci.
Objekt AI Vision je AprilTag? — Zkontroluje, zda detekovaný objekt je AprilTag odpovídající specifickému ID.
Objekt AI Vision má ID AprilTag? — Zkontroluje, zda detekované ID AprilTag odpovídá specifickému ID.
Akce#
získat data objektu#
Blok zásobníku get object data filtruje data z rámce senzoru VEX IQ AI Vision do jediného podpisu – uloženého popisu něčeho, co senzor dokáže rozpoznat, například předtrénovaného objektu, ID AprilTag nebo nakonfigurované barvy či barevného kódu.
Barvy a barevné kódy je nutné nejprve nakonfigurovat v nástroji AI Vision Utility, než je lze použít s tímto blokem.
Datová sada ukládá objekty seřazené od největší po nejmenší podle šířky, počínaje indexem 0. Vlastnosti každého objektu lze zobrazit pomocí bloku AI Vision object property. Pokud nejsou detekovány žádné odpovídající objekty, je hlášena prázdná datová sada.
získat data [SELECT_A_SIG v] z [AIVision1 v]
Parametr |
Popis |
|---|---|
podpis |
Filtruje datovou sadu tak, aby obsahovala pouze data daného podpisu. Dostupné podpisy jsou:
|
Poznámka: Aby se zobrazily možnosti ID značky AprilTag nebo klasifikace pomocí umělé inteligence, musí být v nástroji AI Vision Utility povolena jejich detekce.
Příklad
při spuštění
[Drive forward if an AprilTag ID is detected.]
navždy
získat data [AprilTag IDs v] z [AIVision1 v]
pokud <objekt [AIVIsion1 v] existuje?> pak
jet [dopředu v] na [10] [mm v] ▶
Klasifikace umělé inteligence#
Kamerový senzor VEX IQ AI dokáže detekovat různé objekty v rámci určitých klasifikací AI. V závislosti na modelu klasifikace AI vybraném při konfiguraci kamerového senzoru VEX IQ AI v okně Zařízení budou detekovány různé objekty. Aktuálně dostupné modely jsou:
Předměty ve třídě
BlueBall
GreenBall
RedBall
BlueRing
GreenRing
RedRing
BlueCube
GreenCube
RedCube
Soutěž robotů VEX IQ v mixování a zápasech
Paprsek
RedPin
BluePin
OranžovýPin
VEX IQ Robotics Competition Level Up
BlueBeanBag
RedFazolovýPytel
Žlutý fazolový vak
Barevné podpisy#
Barevná signatura je jedinečná barva, kterou dokáže senzor VEX IQ AI Vision Sensor rozpoznat. Tato signatura umožňuje senzoru detekovat a sledovat objekty na základě jejich barvy. Jakmile je barevná signatura nakonfigurována, senzor dokáže identifikovat objekty s danou barvou ve svém zorném poli.
Barevné signatury se používají v bloku get object data ke zpracování a detekci barevných objektů v reálném čase. Lze nakonfigurovat až 7 barevných signatur najednou.

Příklad
při spuštění
[Display if any objects matching the RED_BOX signature is detected.]
navždy
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
vymazat řádek [1] na obrazovce
[Change the signature to any configured Color Signature.]
získat data [RED_BOX v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
tisk [Color detected!] na obrazovce ▶
Barevné kódy#
Barevný kód je strukturovaný vzor složený ze 2 až 4 barevných podpisů uspořádaných v určitém pořadí. Tyto kódy umožňují kamerovému senzoru VEX IQ AI rozpoznávat předdefinované barevné vzory.
Barevné kódy jsou obzvláště užitečné pro identifikaci složitých objektů, zarovnání s herními prvky nebo vytváření jedinečných značek pro autonomní navigaci. Lze nakonfigurovat až 8 barevných kódů najednou.

Příklad
při spuštění
[Display if any objects matching the RED_BLUE code is detected.]
navždy
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
vymazat řádek [1] na obrazovce
[Change the signature to any configured Color Code.]
získat data [RED_BLUE v] z [AIVision1 v]
pokud <objekt [AIVIsion1 v] existuje?> pak
tisk [Code detected!] na obrazovce ▶
Nastavení#
nastavit položku objektu AI Vision#
Blok zásobníku set AI Vision object item nastavuje, která položka v datové sadě se má použít.
nastavit položku objektu [AIVision1 v] na (1)
Parametry |
Popis |
|---|---|
položka |
Číslo položky v datové sadě, která se má použít. |
Příklad
při spuštění
[Display the largest detected AprilTag ID.]
navždy
získat data [AprilTag IDs v] z [AIVision1 v]
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
pokud <objekt [AIVision1 v] existuje?> pak
nastavit položku objektu [AIVision1 v] na (počet objektů [AIVision1 v])
tisk (objekt [AIVision1 v] [tagID v]) na obrazovce ▶
Hodnoty#
Objekt AI Vision existuje#
Logický blok Objekt AI Vision existuje hlásí, zda je v datové sadě detekován nějaký objekt.
True – Datová sada obsahuje detekovaný objekt.
Nepravda – Datová sada neobsahuje žádné detekované objekty.
<objekt [AIVision1 v] existuje?>
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění
[Drive forward if an object is detected.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
jet [dopředu v] na [10] [mm v] ▶
Počet objektů AI Vision#
Blok reportéru AI Vision object count hlásí počet detekovaných objektů v datové sadě jako celé číslo.
(počet objektů [AIVision1 v])
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění
[Display the total amount of cubes, rings, and balls.]
navždy
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
tisk (počet objektů [AIVision1 v]) na obrazovce ▶
konec
čekat [0.5] sekund
Vlastnost objektu AI Vision#
Každý objekt (zobrazený níže) ukládá po použití bloku get object data devět vlastností, které jsou součástí každého objektu (zobrazeného níže).
(objekt [AIVision1 v] [šířka v])
Všechny hodnoty vlastnosti kromě tagID popisují polohu a velikost detekovaného objektu v zobrazení senzoru VEX IQ AI Vision v okamžiku použití bloku get object data. Tyto hodnoty se měří v pixelech na základě rozlišení senzoru 320 x 240 pixelů.
Parametr |
Popis |
|---|---|
vlastnictví |
Kterou vlastnost detekovaného objektu použít: |
šířka#
Vlastnost width udává šířku detekovaného objektu v pixelech jako celé číslo od 1 do 320.
(objekt [AIVision1 v] [šířka v])
Příklad
při spuštění
[Drive towards an object until its width is larger than 100 pixels.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [šířka v]) [math_less_than v] [100]> pak
jet [dopředu v]
konec
jinak
zastavit jízdu
výška#
Vlastnost height udává výšku detekovaného objektu v pixelech jako celé číslo od 1 do 240.
(objekt [AIVision1 v] [výška v])
Příklad
při spuštění
[Drive towards an object until its height is larger than 100 pixels.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [výška v]) [math_less_than v] [100]> pak
jet [dopředu v]
konec
jinak
zastavit jízdu
centrumX#
Vlastnost centerX udává souřadnici x středu detekovaného objektu v pixelech jako celé číslo od 0 do 320.
(objekt [AIVision1 v] [středX v])
Příklad
při spuštění
[Turn slowly until an object is centered in front of the robot.]
nastavit rychlost otáčení na [30] [% v]
otočit [vpravo v]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <[140] [math_less_than v] (objekt [AIVision1 v] [středX v]) [math_less_than v] [180]> pak
zastavit jízdu
centrumY#
Vlastnost centerY udává souřadnici y středu detekovaného objektu v pixelech jako celé číslo od 0 do 240.
(objekt [AIVision1 v] [středY v])
Příklad
při spuštění
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [středY v]) [math_less_than v] [140]> pak
jet [dopředu v]
konec
jinak
zastavit jízdu
úhel#
Vlastnost angle udává orientaci detekovaného barevného kódu nebo ID AprilTag jako celé číslo ve stupních od 0 do 359.
(objekt [AIVision1 v] [úhel v])
Příklad
při spuštění
[Slide left or right depending on how the Color Code is rotated.]
navždy
získat data [RED_BLUE v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <[50] [math_less_than v] (objekt [AIVision1 v] [úhel v]) [math_less_than v] [100]> pak
jet [vpravo v]
jinak pokud <[270] [math_less_than v] (objekt [AIVision1 v] [úhel v]) [math_less_than v] [330]> pak
jet [vlevo v]
jinak
zastavit jízdu
konec
jinak
zastavit jízdu
původX#
Vlastnost originX udává souřadnici x levého horního rohu ohraničovacího rámečku detekovaného objektu v pixelech jako celé číslo od 0 do 320.
(objekt [AIVision1 v] [počátekX v])
Příklad
při spuštění
[Display if an object is to the left or the right.]
navždy
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [počátekX v]) [math_less_than v] [160]> pak
tisk [To the left!] na obrazovce ▶
jinak
tisk [To the right!] na obrazovce ▶
konec
čekat [0.5] sekund
původY#
Vlastnost originY udává souřadnici y levého horního rohu ohraničovacího rámečku detekovaného objektu v pixelech jako celé číslo od 0 do 240.
(objekt [AIVision1 v] [počátekY v])
Příklad
při spuštění
[Display if an object is close or far from the robot.]
navždy
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AI klasifikace v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [počátekY v]) [math_less_than v] [80]> pak
tisk [Far!] na obrazovce ▶
jinak
tisk [Close!] na obrazovce ▶
konec
čekat [0.5] sekund
ID značky#
Vlastnost tagID uvádí identifikační číslo detekovaného ID AprilTag jako celé číslo.
(objekt [AIVision1 v] [tagID v])
Příklad
při spuštění
[Drive forward when AprilTag ID 0 is detected.]
navždy
získat data [AprilTag IDs v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <(objekt [AIVision1 v] [tagID v]) [math_equal v] [0]> pak
jet [dopředu v]
jinak
zastavit jízdu
konec
čekat [0.5] sekund
Je objekt AI Vision?#
Blok Objekt AI Vision je? hlásí booleovskou hodnotu, která označuje, zda detekovaný objekt odpovídá určité klasifikaci.
True – Položka v datové sadě je daný objekt.
False – Položka v datové sadě není daným konkrétním objektem.
<objekt [AIVision1 v] je [BlueBall v]?>
Parametr |
Popis |
|---|---|
objekt |
S jakou klasifikací AI se má položka porovnat. |
Příklad
při spuštění
[Display if a Blue Cube is detected.]
navždy
získat data [AI klasifikace v] z [AIVision1 v]
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
pokud <objekt [AIVision1 v] existuje?> pak
pokud <objekt [AIVision1 v] je [BlueCube v]?> pak
tisk [Cube detected!] na obrazovce ▶
čekat [0.5] sekund
Objekt AI Vision je AprilTag?#
Blok Je objekt AI Vision AprilTag? hlásí booleovskou hodnotu označující, zda detekovaný objekt je AprilTag, který odpovídá specifickému ID.
True — Detekovaný objekt je AprilTag s daným ID.
False — Detekovaný objekt není AprilTag s daným ID.
<objekt [AIVision1 v] je AprilTag [0]?>
Parametr |
Popis |
|---|---|
ID značky AprilTag |
Číslo ID, které se má porovnat s detekovanou hodnotou AprilTag. |
Příklad
při spuštění
[Report if AprilTag 3 is detected.]
navždy
vymazat obrazovku
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AprilTag IDs v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <objekt [AIVision1 v] je AprilTag [3]?> pak
tisk [That is 3!] na obrazovce ▶
jinak
tisk [That isn't 3!] na obrazovce ▶
konec
konec
čekat [0.1] sekund
Objekt AI Vision má ID AprilTag?#
Blok Objekt AI Vision je ID AprilTag? hlásí booleovskou hodnotu, která označuje, zda detekované ID AprilTag odpovídá specifickému ID.
True – ID AprilTag je číslo.
False – ID AprilTag není číslo.
<[AIVision1 v] object is AprilTag ID [1] ?>
Parametry |
Popis |
|---|---|
ID značky AprilTag |
Číslo, které se má porovnat se zjištěným identifikačním číslem AprilTag. |
Příklad:
při spuštění
[Report if AprilTag ID 3 is detected.]
navždy
vymazat obrazovku
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [AprilTag IDs v] z [AIVision1 v]
pokud <objekt [AIVision1 v] existuje?> pak
pokud <[AIVision1 v] object is AprilTag ID [3] ?> pak
tisk [That is 3!] na obrazovce ▶
jinak
tisk [That isn't 3!] na obrazovce ▶
konec
konec
čekat [0.1] sekund