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.
hae objektitiedot — Tallentaa tiedot AprilTag-ID-tunnuksille.
Asetukset — Voit määrittää, mitä havaittuja kohteita käytetään.
aseta Vision-objekti — Valitsee tietyn objektin havaittujen objektien luettelosta.
Arvot — Hae objektin läsnäolo, luokitus ja ominaisuudet.
Vision-objekti on olemassa — Ilmoittaa, onko objekti havaittu.
Vision-objekti on AprilTag-tunnus — Tarkistaa, vastaako havaittu AprilTag-tunnus tiettyä tunnusta.
Näkökohteiden määrä — Ilmoittaa havaittujen kohteiden määrän.
Vision-objektin ominaisuus — Hakee tietoja, kuten:
centerX & centerY — Keskipisteen koordinaatit anturin näkymässä.
suunta — Kohteen kulma suhteessa etunäköanturiin tai asteet, jotka tarvitaan, jotta drone kääntyy kohdetta kohti.
kierto — Kohteen suunta.
originX & originY — Vasemman yläkulman sijaintikoordinaatit anturin näkymässä.
id — AprilTag-tunnuksen tunnistenumero.
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ä.
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 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.
<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.
<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.
(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.
(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.
(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.
(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.
(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.
(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º. |
(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.
(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.
(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.
(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.
(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