Visio#

Johdanto#

VEX AIR -droonissa on kaksi näköanturia, jotka tunnistavat ja seuraavat AprilTag-tunnisteita. Näiden avulla drone voi analysoida ympäristöään, seurata kohteita ja reagoida havaittujen visuaalisten tietojen perusteella.

Alla on luettelo kaikista saatavilla olevista lohkoista:

Toiminnot — Hallitse vision syötettä ja kaappaa objektitietoja.

Asetukset — Voit määrittää, mitä havaittuja kohteita käytetään.

Arvot — Hae objektin läsnäolo, luokitus ja ominaisuudet.

Toiminnot#

hae objektitietoja#

Hae objektitiedot -pinolohko suodattaa tietoja näköanturin kehyksestä. Näköanturit pystyvät tunnistamaan AprilTag-tunnukset.

Aineisto tallentaa objektit leveyden mukaan suurimmasta pienimpään järjestettyinä alkaen indeksistä 0. Kunkin objektin ominaisuuksiin pääsee käsiksi Vision object property -lohkon avulla. Jos vastaavia objekteja ei havaita, aineisto raportoidaan tyhjänä.

Get-objektin datapino-lohko.#
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta

Parametri

Kuvaus

allekirjoitus

Suodattaa tietojoukon sisältämään vain annetun allekirjoituksen tiedot. Käytettävissä olevat allekirjoitukset ovat kaikki AprilTagit.

kamera

Näköanturi, josta tiedot noudetaan joko eteenpäin tai alaspäin.

Esimerkki

kun käynnistetään
[Climb upward when an AprilTag ID is detected.]
nouse [300] [mm v] korkeuteen ▶
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
jos <Vision-objekti on olemassa?> niin
nouse [ylös v] [200] [mm v] ▶

Asetukset#

aseta Vision-objekti#

Aseta Vision-objektikohta -pino-lohko määrittää, mitä kohdetta tietojoukossa käytetään.

Aseta tekoälyvision-objektin kohdepino-lohko.#
aseta Vision-objektin kohde [1]

Parametrit

Kuvaus

esine

Käytettävän kohteen numero tietojoukossa.

Esimerkki

kun käynnistetään
[Display the smallest-appearing AprilTag ID.]
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
tyhjennä konsoli
jos <Vision-objekti on olemassa?> niin
aseta Vision-objektin kohde (Vision-objektien määrä)
tulosta (Vision-objekti [id v]) konsolilla ▶

Arvot#

Visio-objekti on olemassa#

Boolen lohko Visio-objekti on olemassa raportoi, havaitseeko määritetty Vision Sensor tällä hetkellä objekteja.

  • Tosi — Määritetty näköanturi havaitsee kohteen.

  • Väärin — Määritetty näköanturi ei havaitse kohdetta.

Näytä tai piilota AI Vision -koontinäytön pino-lohko.#
<Vision-objekti on olemassa?>

Parametri

Kuvaus

Tällä lohkolla ei ole parametreja.

Esimerkki

kun käynnistetään
[Climb upward when an AprilTag ID is detected.]
nouse [300] [mm v] korkeuteen ▶
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
jos <Vision-objekti on olemassa?> niin
nouse [ylös v] [200] [mm v] ▶

Vision-objekti on AprilTag-tunnus#

Vision-objekti on AprilTag ID Boole-lohko raportoi, onko AprilTag ID tietty tunnistenumero.

  • Tosi — AprilTag-tunnus on numero.

  • Väärin — AprilTag-tunnus ei ole oikea numero.

AI Visionin havaitsema AprilTag-tunnus on totuusarvoinen lohko.#
<Vision object is AprilTag ID [1]>

Parametrit

Kuvaus

AprilTag-tunnusnumero

Numero, jota verrataan havaittuun AprilTag-tunnusnumeroon väliltä 0–37.

Esimerkki

kun käynnistetään
[Display when the target AprilTag ID is detected.]
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
tyhjennä konsoli
jos <Vision-objekti on olemassa?> niin
jos <Vision object is AprilTag ID [21]> niin
tulosta [Target found!] konsolilla ▶
Loppu

Näköobjektien määrä#

Vision-kohteiden lukumäärä -raporttilohko raportoi havaittujen kohteiden määrän tietojoukossa kokonaislukuna.

Aseta tekoälyvision-objektin kohdepino-lohko.#
(Vision-objektien määrä)

Parametrit

Kuvaus

Tällä lohkolla ei ole parametreja.

Esimerkki

kun käynnistetään
[Display how many AprilTag IDs are detected.]
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
tyhjennä konsoli
tulosta (Vision-objektien määrä) konsolilla ▶
odota [0.2] sekuntia

Visio-objektin ominaisuus#

Jokaiseen objektiin (alla) sisältyy useita ominaisuuksia, jotka tallennetaan get object data -lohkon käytön jälkeen.

AI Vision -objektin ominaisuusraportointilohko.#
(Vision-objekti [leveys v])

Kaikki ominaisuusarvot paitsi id kuvaavat havaitun kohteen sijainnin, koon, suunnan tai suuntauksen sillä hetkellä, kun get object data -lohkoa käytettiin. Nämä arvot mitataan pikseleinä tai asteina. Jokaisella konenäköanturilla on eri resoluutio:

  • Eteenpäin: 640 x 480 pikseliä

  • Alaspäin: 640 x 400 pikseliä

Parametri

Kuvaus

omaisuus

Which property of the detected object to use:

leveys#

leveys-ominaisuus raportoi havaitun objektin leveyden pikseleinä kokonaislukuna 1–640.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu leveys.#
(Vision-objekti [leveys v])

Esimerkki

kun käynnistetään
[Show if the AprilTag ID appears large or small.]
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
tyhjennä konsoli
jos <Vision-objekti on olemassa?> niin
jos <(Vision-objekti [leveys v]) [math_greater_than v] [100]> niin
tulosta [Large] konsolilla ▶
muuten
tulosta [Small] konsolilla ▶
Loppu
Loppu
odota [0.2] sekuntia

korkeus#

height-ominaisuus raportoi havaitun objektin korkeuden pikseleinä kokonaislukuna 1–480.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu korkeus.#
(Vision-objekti [korkeus v])

Esimerkki

kun käynnistetään
[Show if the AprilTag ID appears large or small.]
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
tyhjennä konsoli
jos <Vision-objekti on olemassa?> niin
jos <(Vision-objekti [korkeus v]) [math_greater_than v] [100]> niin
tulosta [Large] konsolilla ▶
muuten
tulosta [Small] konsolilla ▶
Loppu
Loppu
odota [0.2] sekuntia

keskiosaX#

centerX-ominaisuus raportoi havaitun kohteen keskipisteen x-koordinaatin pikseleinä kokonaislukuna 1–640.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu centerX.#
(Vision-objekti [centerX v])

Esimerkki

kun käynnistetään
[Show if an AprilTag ID is to the left or the right of the camera.]
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
tyhjennä konsoli
jos <Vision-objekti on olemassa?> niin
jos <(Vision-objekti [centerX v]) [math_less_than v] [320]> niin
tulosta [To the left] konsolilla ▶
muuten
tulosta [To the right] konsolilla ▶
Loppu
Loppu
odota [0.2] sekuntia

keski-Y#

centerY-ominaisuus raportoi havaitun objektin keskipisteen y-koordinaatin pikseleinä kokonaislukuna 1–480.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu centerY.#
(Vision-objekti [centerY v])

Esimerkki

kun käynnistetään
[Take off and attempt to align the drone with an AprilTag ID on the wall.]
[Adjust the takeoff height to observe different results.]
nouse [800] [mm v] korkeuteen ▶
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
jos <Vision-objekti on olemassa?> niin
jos <(Vision-objekti [centerY v]) [math_less_than v] [240]> niin
tulosta [Below the target!] konsolilla ▶
muuten
tulosta [Above the target!] konsolilla ▶
Loppu
muuten
tulosta [No target found!] konsolilla ▶

laakeri#

Suunta-ominaisuus raportoi kulman, joka ilmaisee kohteen sijainnin drooniin nähden. Toiminta riippuu käytetystä näköanturista.

Arvo 0° osoittaa, että kohteen keskikohta ja anturi ovat linjassa. Positiiviset arvot tarkoittavat, että kohde on oikealla, kun taas negatiiviset arvot tarkoittavat, että kohde on vasemmalla.

Anturi

Palautukset

Alaspäin

Asteita, jotka dronin etuosan on käännyttävä linjatakseen kohteen keskipisteen kanssa, –180º - 180º.

Eteenpäin

Astetta, jolla kohde on siirtynyt näköanturin keskikohdasta vasemmalle tai oikealle välillä –180º - 180º.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu centerY.#
(Vision-objekti [suuntakulma v])

Esimerkkejä

kun käynnistetään
[Align the front of the drone to an AprilTag ID.]
aseta kääntymisnopeus (15)%
nouse [500] [mm v] korkeuteen ▶
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [alaspäin v] kameralta
jos <Vision-objekti on olemassa?> niin
jos <[-20] [math_less_than v] (Vision-objekti [suuntakulma v]) [math_less_than v] [20]> niin
[Hover once sensor is centered on the AprilTag ID.]
leiju
toista ääni [onnistuminen v] ▶
muuten jos <(Vision-objekti [suuntakulma v]) [math_less_than v] [-21]> niin
käänny [vasemmalle v]
muuten
käänny [oikealle v]

kierto#

rotation-ominaisuus raportoi havaitun AprilTag-tunnuksen suunnan kokonaislukuna asteina välillä 1–359.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu rotaatio.#
(Vision-objekti [kierros v])

Esimerkki

kun käynnistetään
[Turn left or right based on the rotation of an AprilTag ID.]
nouse [1000] [mm v] korkeuteen ▶
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
jos <Vision-objekti on olemassa?> niin
jos <[240] [math_less_than v] (Vision-objekti [kierros v]) [math_less_than v] [300]> niin
käänny [vasemmalle v] [90] astetta ▶
muuten jos <[60] [math_less_than v] (Vision-objekti [kierros v]) [math_less_than v] [120]> niin
käänny [oikealle v] [90] astetta ▶
muuten
leiju

alkuperäX#

originX-ominaisuus raportoi havaitun objektin rajaavan laatikon vasemman yläkulman x-koordinaatin pikseleinä kokonaislukuna 1–640.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu originX.#
(Vision-objekti [originX v])

Esimerkki

kun käynnistetään
[Draw lines to the AprilTag ID origin from all corners.]
ikuisesti
tyhjennä näyttö
get [all AprilTags v] data from vision [forward v] camera
jos <Vision-objekti on olemassa?> niin
piirrä viiva [0] [0] (Vision-objekti [originX v]) (Vision-objekti [originY v]) näytöllä
piirrä viiva [0] [480] (Vision-objekti [originX v]) (Vision-objekti [originY v]) näytöllä
piirrä viiva [640] [0] (Vision-objekti [originX v]) (Vision-objekti [originY v]) näytöllä
piirrä viiva [640] [480] (Vision-objekti [originX v]) (Vision-objekti [originY v]) näytöllä
Loppu
odota [0.2] sekuntia

alkuperäY#

originY-ominaisuus raportoi havaitun objektin rajaavan laatikon vasemman yläkulman y-koordinaatin pikseleinä kokonaislukuna 1–480.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu originY.#
(Vision-objekti [originY v])

Esimerkki

kun käynnistetään
[Draw lines to the AprilTag ID origin from all corners.]
ikuisesti
tyhjennä näyttö
get [all AprilTags v] data from vision [forward v] camera
jos <Vision-objekti on olemassa?> niin
piirrä viiva [0] [0] (Vision-objekti [originX v]) (Vision-objekti [originY v]) näytöllä
piirrä viiva [0] [480] (Vision-objekti [originX v]) (Vision-objekti [originY v]) näytöllä
piirrä viiva [640] [0] (Vision-objekti [originX v]) (Vision-objekti [originY v]) näytöllä
piirrä viiva [640] [480] (Vision-objekti [originX v]) (Vision-objekti [originY v]) näytöllä
Loppu
odota [0.2] sekuntia

tunnus#

id-ominaisuus raportoi havaitun AprilTag-tunnuksen tunnistenumeron kokonaislukuna.

AI Vision -objektin ominaisuuspinon lohko, jonka parametriksi on asetettu tagID.#
(Vision-objekti [id v])

Esimerkki

kun käynnistetään
[Display the detected AprilTag ID.]
ikuisesti
hae [kaikki AprilTagit v] tiedot Vision [eteenpäin v] kameralta
tyhjennä konsoli
jos <Vision-objekti on olemassa?> niin
tulosta (Vision-objekti [id v]) konsolilla ▶
Loppu
odota [0.2] sekuntia