Dirbtinio intelekto regėjimo jutiklis#
Įvadas#
„VEX IQ AI“ regos jutiklis gali aptikti ir sekti objektus, spalvas ir „AprilTag“ ID. Tai leidžia robotui analizuoti aplinką, sekti objektus ir reaguoti pagal aptiktus vaizdinius duomenis.
„AI Vision“ pavyzdžiai skirti naudoti su „Basebot“ su „VEX IQ AI Vision“ jutikliu. Šiuose pavyzdžiuose jutiklis sukonfigūruotas pavadinimu „AIVision1“, kuris rodomas blokuose.
Žemiau pateikiamas visų blokų sąrašas:
Veiksmai – užfiksuoti duomenis iš VEX IQ AI regėjimo jutiklio pasirinktam parašui.
gauti objekto duomenis – fiksuoja konkretaus parašo duomenis, pvz., sukonfigūruotą spalvą, iš anksto apmokytą objektą arba „AprilTag“ ID.
Nustatymai – pasirinkite, su kuriuo objektu sąveikauti.
nustatyti dirbtinio intelekto regėjimo objekto elementą — Pasirenka konkretų objektą iš aptiktų objektų sąrašo.
Vertės – Pasiekite ir naudokite užfiksuotus duomenis.
AI regos objektas egzistuoja – Praneša, ar objektas aptiktas.
AI regėjimo objektų skaičius – pateikia aptiktų objektų skaičių.
AI vizijos objekto ypatybė — Pateikia išsamią informaciją, pvz.:
AI vizijos objektas yra? – tikrina, ar aptiktas objektas atitinka konkrečią klasifikaciją.
Ar „AI Vision“ objektas yra „AprilTag“? – tikrina, ar aptiktas objektas yra „AprilTag“, atitinkantis konkretų ID.
Ar „AI Vision“ objektas yra „AprilTag“ ID? – tikrina, ar aptiktas „AprilTag“ ID atitinka konkretų ID.
Veiksmai#
gauti objekto duomenis#
Blokas „gauti objekto duomenis“ filtruoja duomenis iš „VEX IQ AI“ regėjimo jutiklio kadro iki vieno parašo – išsaugoto aprašymo to, ką jutiklis gali atpažinti, pvz., iš anksto apmokyto objekto, „AprilTag“ ID arba sukonfigūruotos spalvos ar spalvos kodo.
Spalvos ir spalvų kodai pirmiausia turi būti sukonfigūruoti „AI Vision Utility“ programoje, prieš juos naudojant su šiuo bloku.
Duomenų rinkinyje objektai saugomi surūšiuoti nuo didžiausio iki mažiausio pagal plotį, pradedant nuo indekso 0. Kiekvieno objekto savybes galima pasiekti naudojant bloką AI Vision object property. Jei nerandama atitinkančių objektų, pateikiamas tuščias duomenų rinkinys.
gauti [SELECT_A_SIG v] duomenis iš [AIVision1 v]
Parametras |
Aprašymas |
|---|---|
parašas |
Filtruoja duomenų rinkinį, kad būtų įtraukti tik nurodyto parašo duomenys. Galimi parašai:
|
Pastaba: Kad būtų rodomos „AprilTag ID“ arba AI klasifikavimo parinktys, jų aptikimas turi būti įjungtas AI vizijos programoje.
Pavyzdys
kai pradėta
[Drive forward if an AprilTag ID is detected.]
amžinai
gauti [AprilTag IDs v] duomenis iš [AIVision1 v]
jei <[AIVIsion1 v] objektas egzistuoja?> tada
važiuoti [pirmyn v] per [10] [mm v] ▶
DI klasifikacijos#
„VEX IQ AI“ regėjimo jutiklis gali aptikti skirtingus objektus pagal tam tikras AI klasifikacijas. Priklausomai nuo AI klasifikacijos modelio, pasirinkto konfigūruojant „VEX IQ AI“ regėjimo jutiklį įrenginių lange, bus aptikti skirtingi objektai. Šiuo metu galimi modeliai:
Klasės objektai
Mėlynasis kamuolys
Žalias kamuolys
Raudonasis kamuolys
Mėlynasis žiedas
Žalias žiedas
Raudonasis žiedas
Mėlynasis kubas
Žaliasis kubas
Raudonasis kubas
VEX IQ robotikos varžybų maišymas ir derinimas
Spindulys
RedPin
Mėlynasis smeigtukas
OrangePin
VEX IQ robotikos varžybų lygis aukštyn
Mėlynųjų pupelių maišelis
RaudonpupųMaišas
Geltonpupų maišelis
Spalvų parašai#
Spalvos parašas yra unikali spalva, kurią atpažįsta „VEX IQ AI“ regėjimo jutiklis. Šie parašai leidžia jutikliui aptikti ir sekti objektus pagal jų spalvą. Sukonfigūravus spalvos parašą, jutiklis gali atpažinti objektus savo matymo lauke su ta konkrečia spalva.
Spalvų parašai naudojami get object data bloke, kad būtų galima apdoroti ir aptikti spalvotus objektus realiuoju laiku. Vienu metu galima konfigūruoti iki 7 spalvų parašų.

Pavyzdys
kai pradėta
[Display if any objects matching the RED_BOX signature is detected.]
amžinai
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
išvalyti eilutę [1] ekrane
[Change the signature to any configured Color Signature.]
gauti [RED_BOX v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
spausdinti [Color detected!] ekrane ▶
Spalvų kodai#
Spalvų kodas yra struktūrizuotas šablonas, sudarytas iš 2–4 spalvų parašų, išdėstytų tam tikra tvarka. Šie kodai leidžia VEX IQ AI regėjimo jutikliui atpažinti iš anksto nustatytus spalvų šablonus.
Spalvų kodai yra ypač naudingi norint identifikuoti sudėtingus objektus, suderinti juos su žaidimo elementais arba sukurti unikalius žymeklius autonominei navigacijai. Vienu metu galima konfigūruoti iki 8 spalvų kodų.

Pavyzdys
kai pradėta
[Display if any objects matching the RED_BLUE code is detected.]
amžinai
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
išvalyti eilutę [1] ekrane
[Change the signature to any configured Color Code.]
gauti [RED_BLUE v] duomenis iš [AIVision1 v]
jei <[AIVIsion1 v] objektas egzistuoja?> tada
spausdinti [Code detected!] ekrane ▶
Nustatymai#
nustatyti AI vizijos objekto elementą#
Steko blokas nustatyti dirbtinio intelekto regėjimo objekto elementą nustato, kurį duomenų rinkinio elementą naudoti.
nustatyti [AIVision1 v] objekto elementą į (1)
Parametrai |
Aprašymas |
|---|---|
prekė |
Duomenų rinkinyje esančio elemento numeris, kuris bus naudojamas. |
Pavyzdys
kai pradėta
[Display the largest detected AprilTag ID.]
amžinai
gauti [AprilTag IDs v] duomenis iš [AIVision1 v]
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
jei <[AIVision1 v] objektas egzistuoja?> tada
nustatyti [AIVision1 v] objekto elementą į ([AIVision1 v] objektų skaičius)
spausdinti ([AIVision1 v] objektas [tagID v]) ekrane ▶
Vertybės#
Dirbtinio intelekto regėjimo objektas egzistuoja#
Loginis blokas „AI Vision“ objektas egzistuoja praneša, ar duomenų rinkinyje aptiktas koks nors objektas.
Teisinga – duomenų rinkinyje yra aptiktas objektas.
Klaidinga – Duomenų rinkinyje nėra jokių aptiktų objektų.
<[AIVision1 v] objektas egzistuoja?>
Parametrai |
Aprašymas |
|---|---|
Šis blokas neturi parametrų. |
Pavyzdys
kai pradėta
[Drive forward if an object is detected.]
amžinai
gauti [AI klasifikacijos v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
važiuoti [pirmyn v] per [10] [mm v] ▶
AI vizijos objektų skaičius#
AI vizijos objektų skaičiaus reporterio blokas pateikia aptiktų objektų skaičių duomenų rinkinyje kaip sveikąjį skaičių.
([AIVision1 v] objektų skaičius)
Parametrai |
Aprašymas |
|---|---|
Šis blokas neturi parametrų. |
Pavyzdys
kai pradėta
[Display the total amount of cubes, rings, and balls.]
amžinai
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
gauti [AI klasifikacijos v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
spausdinti ([AIVision1 v] objektų skaičius) ekrane ▶
pabaiga
laukti [0.5] sekundžių
AI vizijos objekto ypatybė#
Kiekvienam objektui (parodyta žemiau) priskiriamos devynios savybės, kurios saugomos panaudojus bloką get object data.
([AIVision1 v] objektas [plotis v])
Visos ypatybių reikšmės, išskyrus tagID, apibūdina aptikto objekto padėtį ir dydį „VEX IQ AI“ regos jutiklio rodinyje tuo metu, kai buvo naudojamas blokas gauti objekto duomenis. Šios reikšmės matuojamos pikseliais, remiantis jutiklio 320 x 240 pikselių skiriamąja geba.
Parametras |
Aprašymas |
|---|---|
nuosavybė |
Kurią aptikto objekto savybę naudoti: |
plotis#
Savybė width nurodo aptikto objekto plotį pikseliais kaip sveikąjį skaičių nuo 1 iki 320.
([AIVision1 v] objektas [plotis v])
Pavyzdys
kai pradėta
[Drive towards an object until its width is larger than 100 pixels.]
amžinai
gauti [AI klasifikacijos v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [plotis v]) [math_less_than v] [100]> tada
važiuoti [pirmyn v]
pabaiga
kitu atveju
sustabdyti važiavimą
aukštis#
Savybė aukštis nurodo aptikto objekto aukštį pikseliais kaip sveikąjį skaičių nuo 1 iki 240.
([AIVision1 v] objektas [aukštis v])
Pavyzdys
kai pradėta
[Drive towards an object until its height is larger than 100 pixels.]
amžinai
gauti [AI klasifikacijos v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [aukštis v]) [math_less_than v] [100]> tada
važiuoti [pirmyn v]
pabaiga
kitu atveju
sustabdyti važiavimą
centrasX#
Savybė centerX nurodo aptikto objekto centro x koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 320.
([AIVision1 v] objektas [centrasX v])
Pavyzdys
kai pradėta
[Turn slowly until an object is centered in front of the robot.]
nustatyti sukimosi greitį į [30] [% v]
sukti [dešinėn v]
amžinai
gauti [AI klasifikacijos v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[140] [math_less_than v] ([AIVision1 v] objektas [centrasX v]) [math_less_than v] [180]> tada
sustabdyti važiavimą
centras Y#
Savybė centerY nurodo aptikto objekto centro y koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 240.
([AIVision1 v] objektas [centrasY v])
Pavyzdys
kai pradėta
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
amžinai
gauti [AI klasifikacijos v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [centrasY v]) [math_less_than v] [140]> tada
važiuoti [pirmyn v]
pabaiga
kitu atveju
sustabdyti važiavimą
kampas#
Savybė kampas nurodo aptikto spalvos kodo arba „AprilTag“ ID orientaciją sveikuoju skaičiumi laipsniais nuo 0 iki 359.
([AIVision1 v] objektas [kampas v])
Pavyzdys
kai pradėta
[Slide left or right depending on how the Color Code is rotated.]
amžinai
gauti [RED_BLUE v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[50] [math_less_than v] ([AIVision1 v] objektas [kampas v]) [math_less_than v] [100]> tada
važiuoti [dešinėn v]
kitu atveju jei <[270] [math_less_than v] ([AIVision1 v] objektas [kampas v]) [math_less_than v] [330]> tada
važiuoti [kairėn v]
kitu atveju
sustabdyti važiavimą
pabaiga
kitu atveju
sustabdyti važiavimą
kilmėX#
Savybė originX nurodo aptikto objekto ribojančio langelio viršutinio kairiojo kampo x koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 320.
([AIVision1 v] objektas [pradžiaX v])
Pavyzdys
kai pradėta
[Display if an object is to the left or the right.]
amžinai
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
gauti [AI klasifikacijos v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [pradžiaX v]) [math_less_than v] [160]> tada
spausdinti [To the left!] ekrane ▶
kitu atveju
spausdinti [To the right!] ekrane ▶
pabaiga
laukti [0.5] sekundžių
kilmėY#
Savybė originY nurodo aptikto objekto ribojančio langelio viršutinio kairiojo kampo y koordinatę pikseliais kaip sveikąjį skaičių nuo 0 iki 240.
([AIVision1 v] objektas [pradžiaY v])
Pavyzdys
kai pradėta
[Display if an object is close or far from the robot.]
amžinai
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
gauti [AI klasifikacijos v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [pradžiaY v]) [math_less_than v] [80]> tada
spausdinti [Far!] ekrane ▶
kitu atveju
spausdinti [Close!] ekrane ▶
pabaiga
laukti [0.5] sekundžių
žymos ID#
Ypatybė tagID nurodo aptikto „AprilTag“ ID identifikacinį numerį kaip sveikąjį skaičių.
([AIVision1 v] objektas [tagID v])
Pavyzdys
kai pradėta
[Drive forward when AprilTag ID 0 is detected.]
amžinai
gauti [AprilTag IDs v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <([AIVision1 v] objektas [tagID v]) [math_equal v] [0]> tada
važiuoti [pirmyn v]
kitu atveju
sustabdyti važiavimą
pabaiga
laukti [0.5] sekundžių
Ar yra AI vizijos objektas?#
Blokas Ar tai AI vizijos objektas? pateikia loginę reikšmę, nurodančią, ar aptiktas objektas atitinka konkrečią klasifikaciją.
Tiesa – duomenų rinkinio elementas yra konkretus objektas.
Netiesa – duomenų rinkinio elementas nėra konkretus objektas.
<[AIVision1 v] objektas yra [BlueBall v]?>
Parametras |
Aprašymas |
|---|---|
objektas |
Su kuria DI klasifikacija palyginti elementą. |
Pavyzdys
kai pradėta
[Display if a Blue Cube is detected.]
amžinai
gauti [AI klasifikacijos v] duomenis iš [AIVision1 v]
išvalyti eilutę [1] ekrane
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[AIVision1 v] objektas yra [BlueCube v]?> tada
spausdinti [Cube detected!] ekrane ▶
laukti [0.5] sekundžių
Ar „AI Vision“ objektas yra „AprilTag“?#
Blokas Ar „AI Vision“ objektas yra „AprilTag?“ pateikia loginę reikšmę, nurodančią, ar aptiktas objektas yra „AprilTag“, atitinkantis konkretų ID.
Tiesa – aptiktas objektas yra „AprilTag“ su nurodytu ID.
Netiesa – aptiktas objektas nėra „AprilTag“ su nurodytu ID.
<[AIVision1 v] objektas yra AprilTag [0]?>
Parametras |
Aprašymas |
|---|---|
AprilTag ID |
ID numeris, kurį reikia palyginti su aptiktu „AprilTag“. |
Pavyzdys
kai pradėta
[Report if AprilTag 3 is detected.]
amžinai
išvalyti ekraną
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
gauti [AprilTag IDs v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[AIVision1 v] objektas yra AprilTag [3]?> tada
spausdinti [That is 3!] ekrane ▶
kitu atveju
spausdinti [That isn't 3!] ekrane ▶
pabaiga
pabaiga
laukti [0.1] sekundžių
Ar „AI Vision“ objektas yra „AprilTag“ ID?#
Blokas Ar „AI Vision“ objektas yra „AprilTag ID?“ pateikia loginę reikšmę, nurodančią, ar aptiktas „AprilTag“ ID atitinka konkretų ID.
Tiesa – „AprilTag“ ID yra skaičius.
Netiesa – „AprilTag“ ID nėra skaičius.
<[AIVision1 v] object is AprilTag ID [1] ?>
Parametrai |
Aprašymas |
|---|---|
AprilTag ID numeris |
Skaičius, kurį reikia palyginti su aptiktu „AprilTag“ ID numeriu. |
Pavyzdys:
kai pradėta
[Report if AprilTag ID 3 is detected.]
amžinai
išvalyti ekraną
nustatyti žymeklį į eilutę [1] stulpelį [1] ekrane
gauti [AprilTag IDs v] duomenis iš [AIVision1 v]
jei <[AIVision1 v] objektas egzistuoja?> tada
jei <[AIVision1 v] object is AprilTag ID [3] ?> tada
spausdinti [That is 3!] ekrane ▶
kitu atveju
spausdinti [That isn't 3!] ekrane ▶
pabaiga
pabaiga
laukti [0.1] sekundžių