Vizija#

Įvadas#

„VEX AIR“ dronas turi du regėjimo jutiklius, kurie aptinka ir seka „AprilTag“ ID. Jie leidžia dronui analizuoti aplinką, sekti objektus ir reaguoti pagal aptiktus vaizdinius duomenis.

Žemiau pateikiamas visų galimų blokų sąrašas:

Veiksmai – valdyti regėjimo srautą ir fiksuoti objekto duomenis.

Nustatymai – koreguokite, prie kurių aptiktų objektų galima prisijungti.

Reikšmės – gauti objekto buvimą, klasifikaciją ir savybes.

Veiksmai#

gauti objekto duomenis#

Blokas „gauti objekto duomenis“ filtruoja duomenis iš regėjimo jutiklio kadro. Regėjimo jutikliai gali aptikti „AprilTag“ ID.

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ą Vision object property. Jei nerandama atitinkančių objektų, pateikiamas tuščias duomenų rinkinys.

„Gauti objekto duomenų steką“ blokas.#
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros

Parametras

Aprašymas

parašas

Filtruoja duomenų rinkinį, kad būtų įtraukti tik nurodyto parašo duomenys. Galimas parašas yra visi „AprilTags“.

kamera

Regėjimo jutiklis, skirtas duomenims gauti į priekį arba žemyn.

Pavyzdys

kai pradėta
[Climb upward when an AprilTag ID is detected.]
pakilti iki [300] [mm v] ▶
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
jei <Vision objektas egzistuoja?> tada
kilti [aukštyn v] per [200] [mm v] ▶

Nustatymai#

nustatyti „Vision“ objekto elementą#

Steko blokas nustatyti „Vision“ objekto elementą nustato, kurį duomenų rinkinio elementą naudoti.

Objekto „Set AI Vision“ elementų krūvos blokas.#
nustatyti Vision objekto elementą į [1]

Parametrai

Aprašymas

prekė

Duomenų rinkinyje esančio elemento numeris, kuris bus naudojamas.

Pavyzdys

kai pradėta
[Display the smallest-appearing AprilTag ID.]
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
išvalyti konsolę
jei <Vision objektas egzistuoja?> tada
nustatyti Vision objekto elementą į (Vision objektų skaičius)
spausdinti (Vision objektas [id v]) konsolėje ▶

Vertybės#

Regėjimo objektas egzistuoja#

Loginis blokas Vision objektas egzistuoja praneša, ar nurodytas regėjimo jutiklis šiuo metu aptinka kokių nors objektų.

  • Teisinga – nurodytas regėjimo jutiklis aptinka objektą.

  • Klaidinga – Nurodytas regėjimo jutiklis neaptinka objekto.

Rodyti arba slėpti DI vizijos prietaisų skydelio bloką.#
<Vision objektas egzistuoja?>

Parametras

Aprašymas

Šis blokas neturi parametrų.

Pavyzdys

kai pradėta
[Climb upward when an AprilTag ID is detected.]
pakilti iki [300] [mm v] ▶
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
jei <Vision objektas egzistuoja?> tada
kilti [aukštyn v] per [200] [mm v] ▶

Vizijos objektas yra „AprilTag“ ID#

Vision objektas yra „AprilTag ID“. Loginis blokas praneša, ar „AprilTag ID“ yra konkretus ID numeris.

  • Teisinga – „AprilTag“ ID yra skaičius.

  • Klaidinga – „AprilTag“ ID nėra skaičius.

„AI Vision“ aptiktas „AprilTag“ ID yra loginis blokas.#
<Vision object is AprilTag ID [1]>

Parametrai

Aprašymas

AprilTag ID numeris

Skaičius, kurį reikia palyginti su aptiktu „AprilTag“ ID numeriu nuo 0 iki 37.

Pavyzdys

kai pradėta
[Display when the target AprilTag ID is detected.]
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
išvalyti konsolę
jei <Vision objektas egzistuoja?> tada
jei <Vision object is AprilTag ID [21]> tada
spausdinti [Target found!] konsolėje ▶
pabaiga

Regėjimo objektų skaičius#

Vizijos objektų skaičiaus reporterio blokas pateikia aptiktų objektų skaičių duomenų rinkinyje kaip sveikąjį skaičių.

Objekto „Set AI Vision“ elementų krūvos blokas.#
(Vision objektų skaičius)

Parametrai

Aprašymas

Šis blokas neturi parametrų.

Pavyzdys

kai pradėta
[Display how many AprilTag IDs are detected.]
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
išvalyti konsolę
spausdinti (Vision objektų skaičius) konsolėje ▶
laukti [0.2] sekundžių

Regėjimo objekto savybė#

Kiekvienam objektui (parodyta žemiau) priskiriamos kelios savybės, kurios saugomos panaudojus bloką get object data.

„AI Vision“ objekto ypatybių reporterio blokas.#
(Vision objektas [plotis v])

Visos ypatybių reikšmės, išskyrus id, apibūdina aptikto objekto padėtį, dydį, orientaciją arba kryptį tuo metu, kai buvo panaudotas blokas get object data. Šios reikšmės matuojamos pikseliais arba laipsniais. Kiekvienas regėjimo jutiklis turi skirtingą skiriamąją gebą:

  • Į priekį nukreipta: 640 x 480 pikselių

  • Nukreipta žemyn: 640 x 400 pikselių

Parametras

Aprašymas

nuosavybė

Which property of the detected object to use:

plotis#

Savybė plotis nurodo aptikto objekto plotį pikseliais kaip sveikąjį skaičių nuo 1 iki 640.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip plotis.#
(Vision objektas [plotis v])

Pavyzdys

kai pradėta
[Show if the AprilTag ID appears large or small.]
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
išvalyti konsolę
jei <Vision objektas egzistuoja?> tada
jei <(Vision objektas [plotis v]) [math_greater_than v] [100]> tada
spausdinti [Large] konsolėje ▶
kitu atveju
spausdinti [Small] konsolėje ▶
pabaiga
pabaiga
laukti [0.2] sekundžių

aukštis#

Savybė aukštis nurodo aptikto objekto aukštį pikseliais kaip sveikąjį skaičių nuo 1 iki 480.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip aukštis.#
(Vision objektas [aukštis v])

Pavyzdys

kai pradėta
[Show if the AprilTag ID appears large or small.]
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
išvalyti konsolę
jei <Vision objektas egzistuoja?> tada
jei <(Vision objektas [aukštis v]) [math_greater_than v] [100]> tada
spausdinti [Large] konsolėje ▶
kitu atveju
spausdinti [Small] konsolėje ▶
pabaiga
pabaiga
laukti [0.2] sekundžių

centrasX#

Savybė centerX nurodo aptikto objekto centro x koordinatę pikseliais kaip sveikąjį skaičių nuo 1 iki 640.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip centerX.#
(Vision objektas [centrasX v])

Pavyzdys

kai pradėta
[Show if an AprilTag ID is to the left or the right of the camera.]
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
išvalyti konsolę
jei <Vision objektas egzistuoja?> tada
jei <(Vision objektas [centrasX v]) [math_less_than v] [320]> tada
spausdinti [To the left] konsolėje ▶
kitu atveju
spausdinti [To the right] konsolėje ▶
pabaiga
pabaiga
laukti [0.2] sekundžių

centras Y#

Savybė centerY nurodo aptikto objekto centro y koordinatę pikseliais kaip sveikąjį skaičių nuo 1 iki 480.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip centerY.#
(Vision objektas [centrasY v])

Pavyzdys

kai pradėta
[Take off and attempt to align the drone with an AprilTag ID on the wall.]
[Adjust the takeoff height to observe different results.]
pakilti iki [800] [mm v] ▶
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
jei <Vision objektas egzistuoja?> tada
jei <(Vision objektas [centrasY v]) [math_less_than v] [240]> tada
spausdinti [Below the target!] konsolėje ▶
kitu atveju
spausdinti [Above the target!] konsolėje ▶
pabaiga
kitu atveju
spausdinti [No target found!] konsolėje ▶

guolis#

Savybė pealing nurodo kampą, rodantį objekto padėtį drono atžvilgiu. Elgsena priklauso nuo to, kuris regėjimo jutiklis naudojamas.

0° reikšmė rodo, kad objekto centras ir jutiklis yra sulygiuoti. Teigiamos reikšmės reiškia, kad objektas yra dešinėje, o neigiamos reikšmės – kad objektas yra kairėje.

Jutiklis

Grąžinimai

Žemyn

Laipsnių, kuriais drono priekis turi pasisukti, kad sulygiuotų su objekto centru, nuo –180º iki 180º.

Pirmyn

Laipsniai, kiek objektas yra paslinktas į kairę arba į dešinę nuo regėjimo jutiklio centro nuo –180º iki 180º.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip centerY.#
(Vision objektas [kryptis v])

Pavyzdžiai

kai pradėta
[Align the front of the drone to an AprilTag ID.]
nustatyti sukimosi greitį į (15)%
pakilti iki [500] [mm v] ▶
amžinai
gauti [visi AprilTag v] duomenis iš Vision [žemyn v] kameros
jei <Vision objektas egzistuoja?> tada
jei <[-20] [math_less_than v] (Vision objektas [kryptis v]) [math_less_than v] [20]> tada
[Hover once sensor is centered on the AprilTag ID.]
sklandyti
groti garsą [sėkmė v] ▶
kitu atveju jei <(Vision objektas [kryptis v]) [math_less_than v] [-21]> tada
sukti [kairėn v]
kitu atveju
sukti [dešinėn v]

rotacija#

Savybė rotation praneša aptikto „AprilTag“ ID orientaciją kaip sveikąjį skaičių laipsniais nuo 1 iki 359.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip sukimas.#
(Vision objektas [pasukimas v])

Pavyzdys

kai pradėta
[Turn left or right based on the rotation of an AprilTag ID.]
pakilti iki [1000] [mm v] ▶
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
jei <Vision objektas egzistuoja?> tada
jei <[240] [math_less_than v] (Vision objektas [pasukimas v]) [math_less_than v] [300]> tada
sukti [kairėn v] per [90] laipsnių ▶
kitu atveju jei <[60] [math_less_than v] (Vision objektas [pasukimas v]) [math_less_than v] [120]> tada
sukti [dešinėn v] per [90] laipsnių ▶
kitu atveju
sklandyti

kilmėX#

Savybė originX nurodo aptikto objekto ribojančio langelio viršutinio kairiojo kampo x koordinatę pikseliais kaip sveikąjį skaičių nuo 1 iki 640.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip originX.#
(Vision objektas [pradžiaX v])

Pavyzdys

kai pradėta
[Draw lines to the AprilTag ID origin from all corners.]
amžinai
išvalyti ekraną
get [all AprilTags v] data from vision [forward v] camera
jei <Vision objektas egzistuoja?> tada
piešti liniją [0] [0] (Vision objektas [pradžiaX v]) (Vision objektas [pradžiaY v]) ekrane
piešti liniją [0] [480] (Vision objektas [pradžiaX v]) (Vision objektas [pradžiaY v]) ekrane
piešti liniją [640] [0] (Vision objektas [pradžiaX v]) (Vision objektas [pradžiaY v]) ekrane
piešti liniją [640] [480] (Vision objektas [pradžiaX v]) (Vision objektas [pradžiaY v]) ekrane
pabaiga
laukti [0.2] 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 1 iki 480.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip originY.#
(Vision objektas [pradžiaY v])

Pavyzdys

kai pradėta
[Draw lines to the AprilTag ID origin from all corners.]
amžinai
išvalyti ekraną
get [all AprilTags v] data from vision [forward v] camera
jei <Vision objektas egzistuoja?> tada
piešti liniją [0] [0] (Vision objektas [pradžiaX v]) (Vision objektas [pradžiaY v]) ekrane
piešti liniją [0] [480] (Vision objektas [pradžiaX v]) (Vision objektas [pradžiaY v]) ekrane
piešti liniją [640] [0] (Vision objektas [pradžiaX v]) (Vision objektas [pradžiaY v]) ekrane
piešti liniją [640] [480] (Vision objektas [pradžiaX v]) (Vision objektas [pradžiaY v]) ekrane
pabaiga
laukti [0.2] sekundžių

id#

Ypatybė id nurodo aptikto „AprilTag“ ID identifikacinį numerį kaip sveikąjį skaičių.

„AI Vision“ objekto ypatybių bloko blokas, kurio parametras nustatytas kaip tagID.#
(Vision objektas [id v])

Pavyzdys

kai pradėta
[Display the detected AprilTag ID.]
amžinai
gauti [visi AprilTag v] duomenis iš Vision [pirmyn v] kameros
išvalyti konsolę
jei <Vision objektas egzistuoja?> tada
spausdinti (Vision objektas [id v]) konsolėje ▶
pabaiga
laukti [0.2] sekundžių