Látomás#

Bevezetés#

A VEX AIR drón két vizuális érzékelővel rendelkezik, amelyek érzékelik és követik az AprilTag azonosítókat. Ezek lehetővé teszik a drón számára, hogy elemezze a környezetét, kövesse a tárgyakat, és a detektált vizuális adatok alapján reagáljon.

Az alábbiakban felsoroljuk az összes elérhető blokkot:

Műveletek – A Vision-hírfolyam vezérlése és objektumadatok rögzítése.

Beállítások – Állítsa be, hogy mely észlelt objektumokhoz férhessen hozzá.

Értékek — Objektum jelenlétének, osztályozásának és tulajdonságainak lekérése.

Műveletek#

objektumadatok lekérése#

Az objektumadatok lekérése veremblokk kiszűri az adatokat a Vision Sensor keretéből. A Vision Sensorok képesek az AprilTag azonosítók észlelésére.

Az adathalmaz a 0 indexszel kezdődően, szélesség szerint a legnagyobbtól a legkisebbig rendezett objektumokat tárolja. Az egyes objektumok tulajdonságai a Vision object property blokk segítségével érhetők el. Ha nem található egyező objektum, akkor üres adathalmazt jelez a rendszer.

A Get objektum adatverem blokkja.#
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából

Paraméter

Leírás

aláírás

Úgy szűri az adathalmazt, hogy csak az adott aláírás adatait tartalmazza. Az elérhető aláírás minden AprilTags.

kamera

A vizuális érzékelő az adatok lekéréséhez, akár előre, akár lefelé.

Példa

amikor elindul
[Climb upward when an AprilTag ID is detected.]
felszállás [300] [mm v] magasságra ▶
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
ha <Vision objektum létezik?> akkor
emelkedés [fel v] irányba [200] [mm v] értékkel ▶

Beállítások#

Látás objektum beállítása#

A Vision objektumelem beállítása veremblokk beállítja, hogy az adathalmaz melyik elemét kell használni.

A Set AI Vision objektum elemverem blokkja.#
Vision objektum elemének beállítása [1] értékre

Paraméterek

Leírás

tétel

Az adathalmazban használandó elem száma.

Példa

amikor elindul
[Display the smallest-appearing AprilTag ID.]
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
konzol törlése
ha <Vision objektum létezik?> akkor
Vision objektum elemének beállítása (Vision objektumok száma) értékre
(Vision objektum [azonosító v]) nyomtatása a konzolon ▶

Értékek#

Látásobjektum létezik#

A Létezik a látás objektum logikai blokkja jelzi, hogy a megadott látásérzékelő jelenleg érzékel-e objektumokat.

  • Igaz – A megadott vizuális érzékelő objektumot érzékel.

  • Hamis – A megadott vizuális érzékelő nem érzékel tárgyat.

Az AI Vision irányítópult blokkjának megjelenítése vagy elrejtése.#
<Vision objektum létezik?>

Paraméter

Leírás

Ennek a blokknak nincsenek paraméterei.

Példa

amikor elindul
[Climb upward when an AprilTag ID is detected.]
felszállás [300] [mm v] magasságra ▶
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
ha <Vision objektum létezik?> akkor
emelkedés [fel v] irányba [200] [mm v] értékkel ▶

A Vision objektum az AprilTag ID.#

A Vision objektum egy AprilTag ID logikai blokk, amely azt jelenti, hogy az AprilTag ID egy adott azonosítószám-e.

  • Igaz — Az AprilTag azonosító a szám.

  • Hamis — Az AprilTag azonosító nem a szám.

Az AI Vision által észlelt AprilTag azonosító logikai blokk.#
<Vision object is AprilTag ID [1]>

Paraméterek

Leírás

AprilTag azonosítószám

Az észlelt AprilTag azonosító számmal összehasonlítandó szám 0 és 37 között.

Példa

amikor elindul
[Display when the target AprilTag ID is detected.]
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
konzol törlése
ha <Vision objektum létezik?> akkor
ha <Vision object is AprilTag ID [21]> akkor
[Target found!] nyomtatása a konzolon ▶
vége

Látóobjektumok száma#

A Vision objektumok száma riporterblokk egész számként jelenti az adathalmazban észlelt objektumok számát.

A Set AI Vision objektum elemverem blokkja.#
(Vision objektumok száma)

Paraméterek

Leírás

Ennek a blokknak nincsenek paraméterei.

Példa

amikor elindul
[Display how many AprilTag IDs are detected.]
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
konzol törlése
(Vision objektumok száma) nyomtatása a konzolon ▶
várakozás [0.2] másodpercig

Látásobjektum tulajdonsága#

Minden objektumhoz több tulajdonság tartozik (lásd alább), melyek a get object data blokk használata után tárolódnak.

Az AI Vision objektumtulajdonság-jelentési blokkja.#
(Vision objektum [szélesség v])

Az id kivételével az összes tulajdonságérték a detektált objektum pozícióját, méretét, tájolását vagy irányát írja le a get object data blokk használata pillanatában. Ezeket az értékeket pixelben vagy fokban mérjük. Minden vizuális érzékelőnek más a felbontása:

  • Előre néző: 640 x 480 pixel

  • Lefelé néző: 640 x 400 pixel

Paraméter

Leírás

ingatlan

Which property of the detected object to use:

szélesség#

A width tulajdonság a detektált objektum szélességét adja meg pixelben, 1 és 640 közötti egész számként.

Az AI Vision objektumtulajdonság-veremblokk, amelynek paramétere szélesség.#
(Vision objektum [szélesség v])

Példa

amikor elindul
[Show if the AprilTag ID appears large or small.]
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
konzol törlése
ha <Vision objektum létezik?> akkor
ha <(Vision objektum [szélesség v]) [math_greater_than v] [100]> akkor
[Large] nyomtatása a konzolon ▶
különben
[Small] nyomtatása a konzolon ▶
vége
vége
várakozás [0.2] másodpercig

magasság#

A height tulajdonság a detektált objektum magasságát adja meg pixelben, 1 és 480 közötti egész számként.

Az AI Vision objektumtulajdonság-veremblokk, amelynek paramétere magasság.#
(Vision objektum [magasság v])

Példa

amikor elindul
[Show if the AprilTag ID appears large or small.]
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
konzol törlése
ha <Vision objektum létezik?> akkor
ha <(Vision objektum [magasság v]) [math_greater_than v] [100]> akkor
[Large] nyomtatása a konzolon ▶
különben
[Small] nyomtatása a konzolon ▶
vége
vége
várakozás [0.2] másodpercig

középX#

A centerX tulajdonság a detektált objektum középpontjának x koordinátáját adja meg pixelben, 1 és 640 közötti egész számként.

Az AI Vision objektumtulajdonság-veremblokk, amelynek paramétere centerX.#
(Vision objektum [középX v])

Példa

amikor elindul
[Show if an AprilTag ID is to the left or the right of the camera.]
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
konzol törlése
ha <Vision objektum létezik?> akkor
ha <(Vision objektum [középX v]) [math_less_than v] [320]> akkor
[To the left] nyomtatása a konzolon ▶
különben
[To the right] nyomtatása a konzolon ▶
vége
vége
várakozás [0.2] másodpercig

közép Y#

A centerY tulajdonság a detektált objektum középpontjának y koordinátáját adja meg pixelekben, 1 és 480 közötti egész számként.

Az AI Vision objektumtulajdonság-veremblokk, amelynek paramétere centerY.#
(Vision objektum [középY v])

Példa

amikor elindul
[Take off and attempt to align the drone with an AprilTag ID on the wall.]
[Adjust the takeoff height to observe different results.]
felszállás [800] [mm v] magasságra ▶
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
ha <Vision objektum létezik?> akkor
ha <(Vision objektum [középY v]) [math_less_than v] [240]> akkor
[Below the target!] nyomtatása a konzolon ▶
különben
[Above the target!] nyomtatása a konzolon ▶
vége
különben
[No target found!] nyomtatása a konzolon ▶

hordozó#

A bearing tulajdonság egy szöget jelez, amely jelzi az objektum drónhoz viszonyított helyzetét. A viselkedés attól függ, hogy melyik vizuális érzékelőt használják.

A 0° érték azt jelzi, hogy az objektum közepe és az érzékelő egy vonalban vannak. A pozitív értékek azt jelentik, hogy az objektum jobbra, míg a negatív értékek azt jelentik, hogy az objektum balra van.

Érzékelő

Visszaküldések

Lefelé

Hány fokban kell a drón elejének elfordulnia, hogy a tárgy közepéhez igazodjon, -180º és 180º között.

Előre

Az objektumnak a vizuális érzékelő közepétől balra vagy jobbra eltolt szöge –180º és 180º között.

Az AI Vision objektumtulajdonság-veremblokk, amelynek paramétere centerY.#
(Vision objektum [irányítási szög v])

Példák

amikor elindul
[Align the front of the drone to an AprilTag ID.]
fordulási sebesség beállítása (15)%
felszállás [500] [mm v] magasságra ▶
örökre
[összes AprilTag v] adatok lekérése a Vision [lefelé v] kamerából
ha <Vision objektum létezik?> akkor
ha <[-20] [math_less_than v] (Vision objektum [irányítási szög v]) [math_less_than v] [20]> akkor
[Hover once sensor is centered on the AprilTag ID.]
lebegés
[siker v] hang lejátszása ▶
különben ha <(Vision objektum [irányítási szög v]) [math_less_than v] [-21]> akkor
fordulás [balra v]
különben
fordulás [jobbra v]

forgás#

A rotation tulajdonság az észlelt AprilTag azonosító tájolását jelenti egész számként, 1 és 359 közötti fokban.

Az AI Vision objektumtulajdonság-veremblokk, amelynek paramétere forgatás.#
(Vision objektum [forgás v])

Példa

amikor elindul
[Turn left or right based on the rotation of an AprilTag ID.]
felszállás [1000] [mm v] magasságra ▶
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
ha <Vision objektum létezik?> akkor
ha <[240] [math_less_than v] (Vision objektum [forgás v]) [math_less_than v] [300]> akkor
fordulás [balra v] irányba [90] fokkal ▶
különben ha <[60] [math_less_than v] (Vision objektum [forgás v]) [math_less_than v] [120]> akkor
fordulás [jobbra v] irányba [90] fokkal ▶
különben
lebegés

eredetX#

Az originX tulajdonság a detektált objektum határolókeretének bal felső sarkának x koordinátáját adja meg pixelekben, 1 és 640 közötti egész számként.

Az AI Vision objektumtulajdonság-veremblokk, amelynek paramétere originX.#
(Vision objektum [kezdőX v])

Példa

amikor elindul
[Draw lines to the AprilTag ID origin from all corners.]
örökre
képernyő törlése
get [all AprilTags v] data from vision [forward v] camera
ha <Vision objektum létezik?> akkor
vonal rajzolása [0] [0] (Vision objektum [kezdőX v]) (Vision objektum [kezdőY v]) a képernyőn
vonal rajzolása [0] [480] (Vision objektum [kezdőX v]) (Vision objektum [kezdőY v]) a képernyőn
vonal rajzolása [640] [0] (Vision objektum [kezdőX v]) (Vision objektum [kezdőY v]) a képernyőn
vonal rajzolása [640] [480] (Vision objektum [kezdőX v]) (Vision objektum [kezdőY v]) a képernyőn
vége
várakozás [0.2] másodpercig

származásY#

Az originY tulajdonság a detektált objektum határolókeretének bal felső sarkának y koordinátáját adja meg pixelekben, 1 és 480 közötti egész számként.

Az AI Vision objektumtulajdonság-veremblokk, amelynek paramétere originY.#
(Vision objektum [kezdőY v])

Példa

amikor elindul
[Draw lines to the AprilTag ID origin from all corners.]
örökre
képernyő törlése
get [all AprilTags v] data from vision [forward v] camera
ha <Vision objektum létezik?> akkor
vonal rajzolása [0] [0] (Vision objektum [kezdőX v]) (Vision objektum [kezdőY v]) a képernyőn
vonal rajzolása [0] [480] (Vision objektum [kezdőX v]) (Vision objektum [kezdőY v]) a képernyőn
vonal rajzolása [640] [0] (Vision objektum [kezdőX v]) (Vision objektum [kezdőY v]) a képernyőn
vonal rajzolása [640] [480] (Vision objektum [kezdőX v]) (Vision objektum [kezdőY v]) a képernyőn
vége
várakozás [0.2] másodpercig

azonosító#

Az id tulajdonság egész számként jelenti az észlelt AprilTag azonosító azonosítószámát.

Az AI Vision objektumtulajdonság-veremblokk, amelynek paramétere tagID.#
(Vision objektum [azonosító v])

Példa

amikor elindul
[Display the detected AprilTag ID.]
örökre
[összes AprilTag v] adatok lekérése a Vision [előre v] kamerából
konzol törlése
ha <Vision objektum létezik?> akkor
(Vision objektum [azonosító v]) nyomtatása a konzolon ▶
vége
várakozás [0.2] másodpercig