Vīzija#

Ievads#

VEX AIR dronam ir divi redzes sensori, kas nosaka un izseko AprilTag ID. Tie ļauj dronam analizēt apkārtni, sekot objektiem un reaģēt, pamatojoties uz noteiktajiem vizuālajiem datiem.

Zemāk ir visu pieejamo bloku saraksts:

Darbības — kontrolējiet redzes plūsmu un tveriet objektu datus.

Iestatījumi — pielāgojiet, kuriem noteiktajiem objektiem tiek piekļūts.

Vērtības — izgūt objekta klātbūtni, klasifikāciju un īpašības.

Darbības#

iegūt objekta datus#

Steka bloks iegūt objekta datus filtrē datus no redzes sensora rāmja. Redzes sensori var noteikt AprilTag ID.

Datu kopā objekti tiek glabāti sakārtoti no lielākā līdz mazākajam pēc platuma, sākot ar indeksu 0. Katra objekta īpašībām var piekļūt, izmantojot bloku Vision object property. Ja netiek atrasti atbilstoši objekti, tiek ziņots par tukšu datu kopu.

Objekta datu steka bloks “Iegūt”.#
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras

Parametrs

Apraksts

paraksts

Filtrē datu kopu, lai tajā iekļautu tikai dotā paraksta datus. Pieejamais paraksts ir visi AprilTags.

kamera

Redzes sensors datu izgūšanai, vai nu uz priekšu, vai uz leju.

Piemērs

kad sākts
[Climb upward when an AprilTag ID is detected.]
pacelties uz [300] [mm v] ▶
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
ja <Vision objekts pastāv?> tad
kāpt [augšup v] par [200] [mm v] ▶

Iestatījumi#

iestatīt Redzes objekta elementu#

Steka bloks iestatīt Vision objekta elementu nosaka, kuru elementu datu kopā izmantot.

Objekta “Iestatīt mākslīgā intelekta redzi” elementu steka bloks.#
iestatīt Vision objekta vienumu uz [1]

Parametri

Apraksts

prece

Izmantojamā datu kopas elementa numurs.

Piemērs

kad sākts
[Display the smallest-appearing AprilTag ID.]
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
notīrīt konsoli
ja <Vision objekts pastāv?> tad
iestatīt Vision objekta vienumu uz (Vision objektu skaits)
drukāt (Vision objekts [id v]) konsolē ▶

Vērtības#

Redzes objekts pastāv#

Būla bloks Redzes objekts pastāv ziņo, vai norādītais Redzes sensors pašlaik atrod kādus objektus.

  • Patiess — Norādītais redzes sensors nosaka objektu.

  • Aplams — Norādītais redzes sensors neuztver objektu.

AI Vision informācijas paneļa bloka klāsta rādīšana vai paslēpšana.#
<Vision objekts pastāv?>

Parametrs

Apraksts

Šim blokam nav parametru.

Piemērs

kad sākts
[Climb upward when an AprilTag ID is detected.]
pacelties uz [300] [mm v] ▶
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
ja <Vision objekts pastāv?> tad
kāpt [augšup v] par [200] [mm v] ▶

Vision objekts ir AprilTag ID#

Vision objekts ir AprilTag ID Būla bloks ziņo, vai AprilTag ID ir konkrēts ID numurs.

  • Patiess — AprilTag ID ir skaitlis.

  • Aplami — AprilTag ID nav skaitlis.

AI Vision noteiktais AprilTag ID ir Būla bloks.#
<Vision object is AprilTag ID [1]>

Parametri

Apraksts

AprilTag ID numurs

Skaitlis, kas jāsalīdzina ar noteikto AprilTag ID numuru no 0 līdz 37.

Piemērs

kad sākts
[Display when the target AprilTag ID is detected.]
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
notīrīt konsoli
ja <Vision objekts pastāv?> tad
ja <Vision object is AprilTag ID [21]> tad
drukāt [Target found!] konsolē ▶
beigas

Redzes objektu skaits#

Redzes objektu skaita ziņotāja bloks ziņo par datu kopā noteikto objektu skaitu kā veselu skaitli.

Objekta “Iestatīt mākslīgā intelekta redzi” elementu steka bloks.#
(Vision objektu skaits)

Parametri

Apraksts

Šim blokam nav parametru.

Piemērs

kad sākts
[Display how many AprilTag IDs are detected.]
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
notīrīt konsoli
drukāt (Vision objektu skaits) konsolē ▶
gaidīt [0.2] sekundes

Redzes objekta īpašība#

Pēc get object data bloka izmantošanas katrā objektā ir iekļautas vairākas īpašības (parādītas zemāk), kas tiek saglabātas.

AI Vision objekta īpašību ziņotāja bloks.#
(Vision objekts [platums v])

Visas rekvizītu vērtības, izņemot id, apraksta noteiktā objekta pozīciju, izmēru, orientāciju vai virzienu brīdī, kad tika izmantots bloks get object data. Šīs vērtības tiek mērītas pikseļos vai grādos. Katram redzes sensoram ir atšķirīga izšķirtspēja:

  • Uz priekšu vērsts: 640 x 480 pikseļi

  • Uz leju vērsts: 640 x 400 pikseļi

Parametrs

Apraksts

īpašums

Which property of the detected object to use:

platums#

Īpašība width norāda noteiktā objekta platumu pikseļos kā veselu skaitli no 1 līdz 640.

AI Vision objekta īpašību steka bloks ar parametru, kas iestatīts uz platumu.#
(Vision objekts [platums v])

Piemērs

kad sākts
[Show if the AprilTag ID appears large or small.]
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
notīrīt konsoli
ja <Vision objekts pastāv?> tad
ja <(Vision objekts [platums v]) [math_greater_than v] [100]> tad
drukāt [Large] konsolē ▶
citādi
drukāt [Small] konsolē ▶
beigas
beigas
gaidīt [0.2] sekundes

augstums#

Īpašība augstums norāda noteiktā objekta augstumu pikseļos kā veselu skaitli no 1 līdz 480.

AI Vision objekta īpašību steka bloks ar parametru, kas iestatīts uz augstumu.#
(Vision objekts [augstums v])

Piemērs

kad sākts
[Show if the AprilTag ID appears large or small.]
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
notīrīt konsoli
ja <Vision objekts pastāv?> tad
ja <(Vision objekts [augstums v]) [math_greater_than v] [100]> tad
drukāt [Large] konsolē ▶
citādi
drukāt [Small] konsolē ▶
beigas
beigas
gaidīt [0.2] sekundes

centrsX#

Īpašība centerX norāda noteiktā objekta centra x koordinātu pikseļos kā veselu skaitli no 1 līdz 640.

AI Vision objekta īpašību steka bloks ar parametru, kas iestatīts uz centerX.#
(Vision objekts [centerX v])

Piemērs

kad sākts
[Show if an AprilTag ID is to the left or the right of the camera.]
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
notīrīt konsoli
ja <Vision objekts pastāv?> tad
ja <(Vision objekts [centerX v]) [math_less_than v] [320]> tad
drukāt [To the left] konsolē ▶
citādi
drukāt [To the right] konsolē ▶
beigas
beigas
gaidīt [0.2] sekundes

centrsY#

Īpašība centerY norāda noteiktā objekta centra y koordinātu pikseļos kā veselu skaitli no 1 līdz 480.

AI Vision objekta īpašību steka bloks ar parametru, kas iestatīts uz centerY.#
(Vision objekts [centerY v])

Piemērs

kad sākts
[Take off and attempt to align the drone with an AprilTag ID on the wall.]
[Adjust the takeoff height to observe different results.]
pacelties uz [800] [mm v] ▶
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
ja <Vision objekts pastāv?> tad
ja <(Vision objekts [centerY v]) [math_less_than v] [240]> tad
drukāt [Below the target!] konsolē ▶
citādi
drukāt [Above the target!] konsolē ▶
beigas
citādi
drukāt [No target found!] konsolē ▶

gultnis#

Īpašība peļņa ziņo par leņķi, kas norāda objekta pozīciju attiecībā pret dronu. Šī darbība ir atkarīga no izmantotā redzes sensora.

Vērtība 0° norāda, ka objekta centrs un sensors ir izlīdzināti. Pozitīvas vērtības nozīmē, ka objekts atrodas pa labi, bet negatīvas vērtības nozīmē, ka objekts atrodas pa kreisi.

Sensors

Atgriešana

Lejup

Grādi, par kuriem drona priekšpusei jāpagriežas, lai tā izlīdzinātos ar objekta centru, no –180º līdz 180º.

Uz priekšu

Grādi, par kuriem objekts ir nobīdīts pa kreisi vai pa labi no redzes sensora centra no –180º līdz 180º.

AI Vision objekta īpašību steka bloks ar parametru, kas iestatīts uz centerY.#
(Vision objekts [azimuts v])

Piemēri

kad sākts
[Align the front of the drone to an AprilTag ID.]
iestatīt pagrieziena ātrumu uz (15)%
pacelties uz [500] [mm v] ▶
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz leju v] kameras
ja <Vision objekts pastāv?> tad
ja <[-20] [math_less_than v] (Vision objekts [azimuts v]) [math_less_than v] [20]> tad
[Hover once sensor is centered on the AprilTag ID.]
lidot stacionāri
atskaņot skaņu [veiksmīgi v] ▶
citādi ja <(Vision objekts [azimuts v]) [math_less_than v] [-21]> tad
griezties [pa kreisi v]
citādi
griezties [pa labi v]

rotācija#

Īpašība rotācija ziņo par noteiktā AprilTag ID orientāciju kā veselu skaitli grādos no 1 līdz 359.

AI Vision objekta īpašību steka bloks ar parametru, kas iestatīts uz rotāciju.#
(Vision objekts [rotācija v])

Piemērs

kad sākts
[Turn left or right based on the rotation of an AprilTag ID.]
pacelties uz [1000] [mm v] ▶
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
ja <Vision objekts pastāv?> tad
ja <[240] [math_less_than v] (Vision objekts [rotācija v]) [math_less_than v] [300]> tad
griezties [pa kreisi v] par [90] grādiem ▶
citādi ja <[60] [math_less_than v] (Vision objekts [rotācija v]) [math_less_than v] [120]> tad
griezties [pa labi v] par [90] grādiem ▶
citādi
lidot stacionāri

izcelsmeX#

Īpašība originX norāda noteiktā objekta ierobežojošā lodziņa augšējā kreisā stūra x koordinātu pikseļos kā veselu skaitli no 1 līdz 640.

AI Vision objekta īpašību steka bloks ar parametru, kas iestatīts uz originX.#
(Vision objekts [originX v])

Piemērs

kad sākts
[Draw lines to the AprilTag ID origin from all corners.]
mūžīgi
notīrīt ekrānu
get [all AprilTags v] data from vision [forward v] camera
ja <Vision objekts pastāv?> tad
zīmēt līniju [0] [0] (Vision objekts [originX v]) (Vision objekts [originY v]) ekrānā
zīmēt līniju [0] [480] (Vision objekts [originX v]) (Vision objekts [originY v]) ekrānā
zīmēt līniju [640] [0] (Vision objekts [originX v]) (Vision objekts [originY v]) ekrānā
zīmēt līniju [640] [480] (Vision objekts [originX v]) (Vision objekts [originY v]) ekrānā
beigas
gaidīt [0.2] sekundes

izcelsmeY#

Īpašība originY norāda noteiktā objekta ierobežojošā lodziņa augšējā kreisā stūra y koordinātu pikseļos kā veselu skaitli no 1 līdz 480.

AI Vision objekta īpašību steka bloks ar parametru, kas iestatīts uz originY.#
(Vision objekts [originY v])

Piemērs

kad sākts
[Draw lines to the AprilTag ID origin from all corners.]
mūžīgi
notīrīt ekrānu
get [all AprilTags v] data from vision [forward v] camera
ja <Vision objekts pastāv?> tad
zīmēt līniju [0] [0] (Vision objekts [originX v]) (Vision objekts [originY v]) ekrānā
zīmēt līniju [0] [480] (Vision objekts [originX v]) (Vision objekts [originY v]) ekrānā
zīmēt līniju [640] [0] (Vision objekts [originX v]) (Vision objekts [originY v]) ekrānā
zīmēt līniju [640] [480] (Vision objekts [originX v]) (Vision objekts [originY v]) ekrānā
beigas
gaidīt [0.2] sekundes

id#

Īpašums id ziņo par noteiktā AprilTag ID identifikācijas numuru kā veselu skaitli.

AI Vision objekta īpašību steka bloks ar parametru, kas iestatīts uz tagID.#
(Vision objekts [id v])

Piemērs

kad sākts
[Display the detected AprilTag ID.]
mūžīgi
iegūt [visi AprilTags v] datus no Vision [uz priekšu v] kameras
notīrīt konsoli
ja <Vision objekts pastāv?> tad
drukāt (Vision objekts [id v]) konsolē ▶
beigas
gaidīt [0.2] sekundes