Vize umělé inteligence#
Zavedení#
Senzor obrazu s umělou inteligencí kódovacího robota VEX AIM detekuje a sleduje 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.
Snímač AI Vision má rozlišení 320×240 pixelů. Počátek (0, 0) se nachází v levém horním rohu, střed snímače je v bodě (160, 120), jak je znázorněno na obrázku níže:

Níže je uveden seznam všech bloků:
Akce – Ovládání AI Vision a zachycení dat o objektech.
Prohlížeč AI Vision na obrazovce – Povolí nebo zakáže živý obraz AI Vision na obrazovce robota.
get object data — Zachytí data pro konkrétní podpis, například nakonfigurovanou barvu, předtrénovaný objekt nebo ID AprilTag.
Nastavení – Upravte, ke kterým detekovaným objektům se má přistupovat.
set AI Vision object item — Vybere konkrétní objekt ze seznamu detekovaných objektů.
Hodnoty – Vrací přítomnost, klasifikaci a vlastnosti objektu.
has object — Zkontroluje, zda robot drží detekovaný objekt.
Objekt AI Vision existuje — Hlásí, zda byl detekován objekt.
Objekt AI Vision je — Zkontroluje, zda detekovaný objekt odpovídá určité klasifikaci.
Objekt AI Vision je AprilTag ID — Zkontroluje, zda detekované AprilTag ID odpovídá specifickému ID.
Počet objektů AI Vision — Uvádí počet detekovaných objektů.
Vlastnost objektu AI Vision — Hlásí podrobnosti, jako například:
Akce#
Prohlížeč AI Vision na obrazovce#
Blok Prohlížeč AI Vision na obrazovce povoluje nebo zakazuje živý obraz AI Vision na obrazovce robota. Je-li povolen, obrazovka zobrazuje data ze senzorů v reálném čase a zabraňuje zobrazení jiných obrázků nebo textu. Chcete-li zobrazit jiný obsah, použijte tento blok ke skrytí obrazu.
AI Vision [zobrazit v] prohlížeč na obrazovce
Parametry |
Popis |
|---|---|
postavení |
Řídí zobrazení datového kanálu na obrazovce robota: show zobrazí datový kanál, zatímco hide jej z obrazovky odstraní. |
Příklad
při spuštění
[View the AI Vision Sensor's feed for five seconds.]
AI Vision [zobrazit v] prohlížeč na obrazovce
čekat [5] sekund
AI Vision [skrýt v] prohlížeč na obrazovce
získat data objektu#
Blok zásobníku get object data filtruje data z rámce AI Vision Sensor 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 [sportovní míč v] z AI Vision
Parametr |
Popis |
|---|---|
podpis |
Filtruje datovou sadu tak, aby zahrnovala pouze data daného podpisu. Dostupné podpisy jsou:
|
Příklad
při spuštění
[Move forward if a sports ball is detected.]
navždy
získat data [sportovní míč v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pohybovat [dopředu v] na [10] [mm v] ▶
Barevné podpisy#
Barevný podpis je jedinečná barva, kterou dokáže senzor AI Vision rozpoznat. Díky těmto podpisům může senzor detekovat a sledovat objekty na základě jejich barvy. Jakmile je barevný podpis nakonfigurován v nástroji AI Vision Utility, 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.

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 AI Vision
pokud <objekt AI Vision existuje?> pak
tisk [Color signature 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í. Jakmile je barevný kód nakonfigurován v nástroji AI Vision Utility, senzor dokáže 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.

Příklad
při spuštění
[Display if any objects matching the BlueRed 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 [BlueRed v] z AI Vision
pokud <objekt AI Vision existuje?> pak
tisk [Color 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 AI Vision 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 width of the smallest detected object.]
navždy
získat data [veškerý náklad v] z AI Vision
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
pokud <objekt AI Vision existuje?> pak
nastavit položku objektu AI Vision na (počet objektů AI Vision)
tisk (objekt AI Vision [šířka v]) na obrazovce ▶
Hodnoty#
má objekt#
Logický blok has object hlásí, zda má robot aktuálně detekovaný objekt oproti svému Kickeru.
Pravda – Robot má objekt.
Nepravda — Robot objekt nemá.
<má [sportovní míč v] ? :: custom-ai-vision>
Parametr |
Popis |
|---|---|
objekt |
Předmět, který má být detekován oproti robotickému kopáči:
|
Příklad
při spuštění
[Kick when the robot has a sports ball.]
navždy
pokud <má [sportovní míč v] ? :: custom-ai-vision> pak
kopnout objekt [střední v]
Objekt AI Vision existuje#
Logický blok Objekt AI Vision existuje hlásí, zda je v datové sadě detekován objekt.
True – Datová sada obsahuje detekovaný objekt.
Nepravda – Nebyly detekovány žádné objekty.
<objekt AI Vision existuje?>
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění
[Move forward if a sports ball is detected.]
navždy
získat data [sportovní míč v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pohybovat [dopředu v] na [10] [mm v] ▶
Objekt AI Vision je#
Booleovský blok Objekt AI Vision hlásí, zda detekovaný objekt odpovídá určité klasifikaci.
True – Položka v datové sadě je daný objekt.
Nepravda – Položka v datové sadě není daným konkrétním objektem.
<objekt AI Vision je [sportovní míč v]?>
Parametr |
Popis |
|---|---|
objekt |
Ke kterému předmětu porovnat položku:
|
Příklad
při spuštění
[Display if a sports ball is detected.]
navždy
získat data [veškerý náklad v] z AI Vision
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
pokud <objekt AI Vision existuje?> pak
pokud <objekt AI Vision je [sportovní míč v]?> pak
tisk [Sports ball detected!] na obrazovce ▶
čekat [0.5] sekund
Objekt AI Vision má ID AprilTag.#
Booleovský blok Objekt AI Vision je AprilTag ID a hlásí, zda detekované AprilTag ID odpovídá specifickému ID.
True – ID AprilTag je číslo.
Nepravda – ID AprilTag není číslo.
<AI Vision 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. |
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ů AI Vision
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění
[Display the amount of sports balls and barrels.]
navždy
vymazat řádek [1] na obrazovce
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
získat data [veškerý náklad v] z AI Vision
pokud <objekt AI Vision existuje?> pak
tisk (počet objektů AI Vision) 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 AI Vision [šířka v]
Všechny hodnoty vlastnosti kromě tagID popisují polohu, velikost, orientaci nebo azimut detekovaného objektu v okamžiku použití bloku get object data. Tyto hodnoty se měří v pixelech nebo stupních 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.
Poznámka: Hodnoty pixelů jsou relativní vzhledem k souřadnicovému systému senzoru. Viz diagram v úvodu pro referenci.
objekt AI Vision [šířka v]

Příklad
při spuštění
[Move towards a blue barrel until its width is larger than 100 pixels.]
navždy
získat data [modrý barel v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pokud <(objekt AI Vision [šířka v]) [math_less_than v] [100]> pak
pohybovat [dopředu v]
konec
jinak
zastavit veškerý pohyb
výška#
Vlastnost height udává výšku detekovaného objektu v pixelech jako celé číslo od 1 do 240.
Poznámka: Hodnoty pixelů jsou relativní vzhledem k souřadnicovému systému senzoru. Viz diagram v úvodu pro referenci.
objekt AI Vision [výška v]

Příklad
při spuštění
[Move towards a blue barrel until its height is larger than 100 pixels.]
navždy
získat data [modrý barel v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pokud <(objekt AI Vision [výška v]) [math_less_than v] [100]> pak
pohybovat [dopředu v]
konec
jinak
zastavit veškerý pohyb
centrumX#
Vlastnost centerX udává souřadnici x středu detekovaného objektu v pixelech jako celé číslo od 0 do 320.
Poznámka: Hodnoty pixelů jsou relativní vzhledem k souřadnicovému systému senzoru. Viz diagram v úvodu pro referenci.
objekt AI Vision [středX v]

Příklad
při spuštění
[Turn slowly until a blue barrel is centered in front of the robot.]
nastavit rychlost otáčení na [30]%
otočit [vpravo v]
navždy
získat data [modrý barel v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pokud <[140] [math_less_than v] (objekt AI Vision [středX v]) [math_less_than v] [180]> pak
zastavit veškerý pohyb
centrumY#
Vlastnost centerY udává souřadnici y středu detekovaného objektu v pixelech jako celé číslo od 0 do 240.
Poznámka: Hodnoty pixelů jsou relativní vzhledem k souřadnicovému systému senzoru. Viz diagram v úvodu pro referenci.
objekt AI Vision [středY v]

Příklad
při spuštění
[Move towards a blue barrel until its center y-coordinate is more than 140 pixels.]
navždy
získat data [modrý barel v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pokud <(objekt AI Vision [středY v]) [math_less_than v] [140]> pak
pohybovat [dopředu v]
konec
jinak
zastavit veškerý pohyb
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.
Poznámka: Hodnoty pixelů jsou relativní vzhledem k souřadnicovému systému senzoru. Viz diagram v úvodu pro referenci.
objekt AI Vision [počátekX v]

Příklad
při spuštění
[Display if an orange barrel 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 [oranžový barel v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pokud <(objekt AI Vision [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.
Poznámka: Hodnoty pixelů jsou relativní vzhledem k souřadnicovému systému senzoru. Viz diagram v úvodu pro referenci.
objekt AI Vision [počátekY v]

Příklad
při spuštění
[Display if an orange barrel 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 [oranžový barel v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pokud <(objekt AI Vision [počátekY v]) [math_less_than v] [80]> pak
tisk [Far!] na obrazovce ▶
jinak
tisk [Close!] na obrazovce ▶
konec
čekat [0.5] sekund
otáčení#
Vlastnost rotation uvádí orientaci detekovaného ID značky AprilTag nebo barevného kódu jako celé číslo ve stupních od 0 do 359.
objekt AI Vision [rotace 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 AI Vision
pokud <objekt AI Vision existuje?> pak
pokud <[50] [math_less_than v] (objekt AI Vision [rotace v]) [math_less_than v] [100]> pak
pohybovat [vpravo v]
jinak pokud <[270] [math_less_than v] (objekt AI Vision [rotace v]) [math_less_than v] [330]> pak
pohybovat [vlevo v]
jinak
zastavit veškerý pohyb
konec
jinak
zastavit veškerý pohyb
ložisko#
Vlastnost bearing udává, jak daleko se objekt nachází vlevo nebo vpravo od středu pohledu senzoru AI Vision ve stupních. Hodnota 0 znamená, že je objekt vycentrován, kladné hodnoty znamenají, že je objekt vpravo, a záporné hodnoty znamenají, že je objekt vlevo.
při spuštění
[Keep the blue barrel directly in front of the robot.]
nastavit rychlost otáčení na [40]%
navždy
získat data [modrý barel v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pokud <(objekt AI Vision [azimut v]) [math_greater_than v] [5]> pak
otočit [vpravo v]
jinak pokud <(objekt AI Vision [azimut v]) [math_less_than v] [-5]> pak
otočit [vlevo v]
jinak
zastavit veškerý pohyb
ID značky#
Vlastnost tagID uvádí identifikační číslo detekovaného ID AprilTag jako celé číslo.
objekt AI Vision [tagID v]
Příklad
při spuštění
[Move forward when AprilTag ID 0 is detected.]
navždy
získat data [AprilTag ID 0 v] z AI Vision
pokud <objekt AI Vision existuje?> pak
pohybovat [dopředu v]
konec
zastavit veškerý pohyb