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.
iegūt objekta datus — Iegūst datus AprilTag ID.
Iestatījumi — pielāgojiet, kuriem noteiktajiem objektiem tiek piekļūts.
iestatīt redzes objekta elementu — Atlasa konkrētu objektu no atrasto objektu saraksta.
Vērtības — izgūt objekta klātbūtni, klasifikāciju un īpašības.
Redzes objekts pastāv — Ziņo, vai objekts ir atklāts.
Vision objekts ir AprilTag ID — Pārbauda, vai noteiktais AprilTag ID atbilst konkrētam ID.
Redzes objektu skaits — Ziņo par atklāto objektu skaitu.
Vision objekta īpašība — Izgūst informāciju, piemēram:
centerX un centerY — Centra pozīcijas koordinātas sensora skatā.
pearling — Objekta leņķis attiecībā pret priekšējo redzes sensoru vai grādi, kas nepieciešami, lai drons būtu pavērsts pret objektu.
rotācija — Objekta orientācija.
originX un originY — Augšējā kreisā stūra pozīcijas koordinātas sensora skatā.
id — AprilTag ID identifikācijas numurs.
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.
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.
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.
<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.
<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.
(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.
(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.
(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.
(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.
(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.
(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º. |
(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.
(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.
(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.
(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.
(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