Tekoälynäköanturi#
Johdanto#
VEX IQ AI -näköanturi pystyy havaitsemaan ja seuraamaan esineitä, värejä ja AprilTag-tunnuksia. Näin robotti voi analysoida ympäristöään, seurata esineitä ja reagoida havaittujen visuaalisten tietojen perusteella.
Tekoälynäköesimerkit on suunniteltu käytettäväksi VEX IQ AI Vision -sensorilla varustetun Basebotin kanssa. Näissä esimerkeissä sensori on konfiguroitu nimellä AIVision1, joka näkyy lohkoissa.
Alla on luettelo kaikista lohkoista:
Toiminnot — Kerää tietoja VEX IQ AI -näköanturista valitulle allekirjoitukselle.
hae objektitiedot — Tallentaa tietyn allekirjoituksen tiedot, kuten määritetyn värin, esikoulutetun objektin tai AprilTag-tunnuksen.
Asetukset — Valitse, minkä objektin kanssa haluat olla vuorovaikutuksessa.
aseta tekoälynäön objekti — Valitsee tietyn objektin havaittujen objektien luettelosta.
Arvot — Käytä tallennettuja tietoja.
AI Vision -objekti on olemassa — Ilmoittaa, onko objekti havaittu.
AI Vision -kohteiden määrä — Ilmoittaa havaittujen kohteiden määrän.
AI Vision -objektin ominaisuus — Raportoi tietoja, kuten:
AI Vision -objekti on? — Tarkistaa, vastaako havaittu objekti tiettyä luokitusta.
Onko AI Vision -objekti AprilTag? — Tarkistaa, onko havaittu objekti tiettyä tunnusta vastaava AprilTag.
Onko tekoälynäköobjekti AprilTag-tunnus? — Tarkistaa, vastaako havaittu AprilTag-tunnus tiettyä tunnusta.
Toiminnot#
hae objektitietoja#
Hae objektidataa -pino-lohko suodattaa VEX IQ AI Vision Sensor -kehyksen tiedot yhdeksi allekirjoitukseksi – tallennetuksi kuvaukseksi jostakin, jonka anturi pystyy tunnistamaan, kuten esikoulutetusta objektista, AprilTag-tunnuksesta tai määritetystä väristä tai värikoodista.
Värit ja värikoodit on ensin määritettävä AI Vision -apuohjelmassa, ennen kuin niitä voidaan käyttää tämän lohkon kanssa.
Aineisto tallentaa objektit leveyden mukaan suurimmasta pienimpään järjestettyinä alkaen indeksistä 0. Kunkin objektin ominaisuuksiin pääsee käsiksi AI Vision object property -lohkon avulla. Jos vastaavia objekteja ei havaita, aineisto raportoidaan tyhjänä.
hae [SELECT_A_SIG v] tiedot [AIVision1 v]-sensorilta
Parametri |
Kuvaus |
|---|---|
allekirjoitus |
Suodattaa tietojoukon sisältämään vain annetun allekirjoituksen tiedot. Käytettävissä olevat allekirjoitukset ovat:
|
Huomautus: Jotta AprilTag ID- tai AI-luokitteluvaihtoehdot näkyisivät, niiden tunnistus on otettava käyttöön AI Vision -apuohjelmassa.
Esimerkki
kun käynnistetään
[Drive forward if an AprilTag ID is detected.]
ikuisesti
hae [AprilTag IDs v] tiedot [AIVision1 v]-sensorilta
jos <[AIVIsion1 v] objekti on olemassa?> niin
aja [eteenpäin v] [10] [mm v] ▶
Tekoälyluokitukset#
VEX IQ AI -näköanturi pystyy havaitsemaan erilaisia kohteita tiettyjen tekoälyluokitusten mukaisesti. Laitteet-ikkunassa VEX IQ AI -näköanturia määritettäessä valitun tekoälyluokitusmallin mukaan kohteet havaitaan. Tällä hetkellä saatavilla olevat mallit ovat:
Luokkahuoneen esineet
Sininen pallo
Vihreä pallo
Punainen pallo
Sininen rengas
GreenRing
Punainen rengas
Sininen Kuutio
GreenCube
Punainen kuutio
VEX IQ -robotiikkakilpailun sekoita ja yhdistä
Palkki
RedPin
BluePin
OrangePin
VEX IQ -robotiikkakilpailun taso nousee
SininenPapuPussi
PunainenPapupussi
KeltainenPapupussi
Väriallekirjoitukset#
Väritunniste on ainutlaatuinen väri, jonka VEX IQ AI -näköanturi tunnistaa. Näiden tunnisteiden avulla anturi voi havaita ja seurata kohteita niiden värin perusteella. Kun väritunniste on määritetty, anturi voi tunnistaa kyseisen väriset kohteet näkökentässään.
Väritunnisteita käytetään get object data -lohkossa värillisten objektien reaaliaikaiseen käsittelyyn ja havaitsemiseen. Kerrallaan voidaan konfiguroida jopa seitsemän väritunnistetta.

Esimerkki
kun käynnistetään
[Display if any objects matching the RED_BOX signature is detected.]
ikuisesti
aseta kursori riville [1] sarakkeeseen [1] näytöllä
tyhjennä rivi [1] näytöltä
[Change the signature to any configured Color Signature.]
hae [RED_BOX v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
tulosta [Color detected!] näytöllä ▶
Värikoodit#
Värikoodi on jäsennelty kuvio, joka koostuu 2–4 tietyssä järjestyksessä olevasta väritunnuksesta. Näiden koodien avulla VEX IQ AI -näköanturi tunnistaa ennalta määritetyt värikuviot.
Värikoodit ovat erityisen hyödyllisiä monimutkaisten objektien tunnistamisessa, pelielementteihin kohdistamisessa tai ainutlaatuisten merkkien luomisessa autonomista navigointia varten. Kerrallaan voidaan määrittää jopa 8 värikoodia.

Esimerkki
kun käynnistetään
[Display if any objects matching the RED_BLUE code is detected.]
ikuisesti
aseta kursori riville [1] sarakkeeseen [1] näytöllä
tyhjennä rivi [1] näytöltä
[Change the signature to any configured Color Code.]
hae [RED_BLUE v] tiedot [AIVision1 v]-sensorilta
jos <[AIVIsion1 v] objekti on olemassa?> niin
tulosta [Code detected!] näytöllä ▶
Asetukset#
aseta tekoälynäön objektikohta#
Aseta tekoälynäköobjektin kohde -pino-lohko määrittää, mitä kohdetta tietojoukosta käytetään.
aseta [AIVision1 v] objektin kohde (1)
Parametrit |
Kuvaus |
|---|---|
esine |
Käytettävän kohteen numero tietojoukossa. |
Esimerkki
kun käynnistetään
[Display the largest detected AprilTag ID.]
ikuisesti
hae [AprilTag IDs v] tiedot [AIVision1 v]-sensorilta
tyhjennä rivi [1] näytöltä
aseta kursori riville [1] sarakkeeseen [1] näytöllä
jos <[AIVision1 v] objekti on olemassa?> niin
aseta [AIVision1 v] objektin kohde ([AIVision1 v] objektien määrä)
tulosta ([AIVision1 v] objekti [tagID v]) näytöllä ▶
Arvot#
AI Vision -objekti on olemassa#
Boolen lohko AI Vision -objekti on olemassa raportoi, havaitaanko datajoukossa objektia.
Tosi — Aineisto sisältää havaitun objektin.
Epätosi — Aineisto ei sisällä havaittuja objekteja.
<[AIVision1 v] objekti on olemassa?>
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään
[Drive forward if an object is detected.]
ikuisesti
hae [AI-luokitukset v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
aja [eteenpäin v] [10] [mm v] ▶
AI Vision -objektien määrä#
AI Vision -objektien lukumäärä -raporttilohko raportoi havaittujen objektien lukumäärän tietojoukossa kokonaislukuna.
([AIVision1 v] objektien määrä)
Parametrit |
Kuvaus |
|---|---|
Tällä lohkolla ei ole parametreja. |
Esimerkki
kun käynnistetään
[Display the total amount of cubes, rings, and balls.]
ikuisesti
tyhjennä rivi [1] näytöltä
aseta kursori riville [1] sarakkeeseen [1] näytöllä
hae [AI-luokitukset v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
tulosta ([AIVision1 v] objektien määrä) näytöllä ▶
Loppu
odota [0.5] sekuntia
AI Vision -objektin ominaisuus#
Jokaiseen get object data -lohkon käytön jälkeen tallennettuun objektiin (alla) sisältyy yhdeksän ominaisuutta.
([AIVision1 v] objekti [leveys v])
Kaikki ominaisuusarvot paitsi tagID kuvaavat havaitun kohteen sijainnin ja koon VEX IQ AI -näköanturin näkymässä sillä hetkellä, kun hae objektitiedot -lohkoa käytettiin. Nämä arvot mitataan pikseleinä anturin 320 x 240 pikselin resoluution perusteella.
Parametri |
Kuvaus |
|---|---|
omaisuus |
Mitä havaitun objektin ominaisuutta käytetään: |
leveys#
leveys-ominaisuus raportoi havaitun objektin leveyden pikseleinä kokonaislukuna 1–320.
([AIVision1 v] objekti [leveys v])
Esimerkki
kun käynnistetään
[Drive towards an object until its width is larger than 100 pixels.]
ikuisesti
hae [AI-luokitukset v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <([AIVision1 v] objekti [leveys v]) [math_less_than v] [100]> niin
aja [eteenpäin v]
Loppu
muuten
pysäytä ajaminen
korkeus#
height-ominaisuus raportoi havaitun objektin korkeuden pikseleinä kokonaislukuna 1–240.
([AIVision1 v] objekti [korkeus v])
Esimerkki
kun käynnistetään
[Drive towards an object until its height is larger than 100 pixels.]
ikuisesti
hae [AI-luokitukset v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <([AIVision1 v] objekti [korkeus v]) [math_less_than v] [100]> niin
aja [eteenpäin v]
Loppu
muuten
pysäytä ajaminen
keskiosaX#
centerX-ominaisuus raportoi havaitun objektin keskipisteen x-koordinaatin pikseleinä kokonaislukuna väliltä 0–320.
([AIVision1 v] objekti [centerX v])
Esimerkki
kun käynnistetään
[Turn slowly until an object is centered in front of the robot.]
aseta kääntymisnopeus [30] [% v]
käänny [oikealle v]
ikuisesti
hae [AI-luokitukset v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <[140] [math_less_than v] ([AIVision1 v] objekti [centerX v]) [math_less_than v] [180]> niin
pysäytä ajaminen
keski-Y#
centerY-ominaisuus raportoi havaitun objektin keskipisteen y-koordinaatin pikseleinä kokonaislukuna väliltä 0–240.
([AIVision1 v] objekti [centerY v])
Esimerkki
kun käynnistetään
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
ikuisesti
hae [AI-luokitukset v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <([AIVision1 v] objekti [centerY v]) [math_less_than v] [140]> niin
aja [eteenpäin v]
Loppu
muuten
pysäytä ajaminen
kulma#
Kulma-ominaisuus raportoi havaitun värikoodin tai AprilTag-tunnuksen suunnan kokonaislukuna asteina välillä 0–359.
([AIVision1 v] objekti [kulma v])
Esimerkki
kun käynnistetään
[Slide left or right depending on how the Color Code is rotated.]
ikuisesti
hae [RED_BLUE v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <[50] [math_less_than v] ([AIVision1 v] objekti [kulma v]) [math_less_than v] [100]> niin
aja [oikealle v]
muuten jos <[270] [math_less_than v] ([AIVision1 v] objekti [kulma v]) [math_less_than v] [330]> niin
aja [vasemmalle v]
muuten
pysäytä ajaminen
Loppu
muuten
pysäytä ajaminen
alkuperäX#
originX-ominaisuus raportoi havaitun objektin rajaavan laatikon vasemman yläkulman x-koordinaatin pikseleinä kokonaislukuna väliltä 0–320.
([AIVision1 v] objekti [originX v])
Esimerkki
kun käynnistetään
[Display if an object is to the left or the right.]
ikuisesti
tyhjennä rivi [1] näytöltä
aseta kursori riville [1] sarakkeeseen [1] näytöllä
hae [AI-luokitukset v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <([AIVision1 v] objekti [originX v]) [math_less_than v] [160]> niin
tulosta [To the left!] näytöllä ▶
muuten
tulosta [To the right!] näytöllä ▶
Loppu
odota [0.5] sekuntia
alkuperäY#
originY-ominaisuus raportoi havaitun objektin rajaavan laatikon vasemman yläkulman y-koordinaatin pikseleinä kokonaislukuna väliltä 0–240.
([AIVision1 v] objekti [originY v])
Esimerkki
kun käynnistetään
[Display if an object is close or far from the robot.]
ikuisesti
tyhjennä rivi [1] näytöltä
aseta kursori riville [1] sarakkeeseen [1] näytöllä
hae [AI-luokitukset v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <([AIVision1 v] objekti [originY v]) [math_less_than v] [80]> niin
tulosta [Far!] näytöllä ▶
muuten
tulosta [Close!] näytöllä ▶
Loppu
odota [0.5] sekuntia
tunnisteen tunnus#
tagID-ominaisuus raportoi havaitun AprilTag-tunnuksen tunnistenumeron kokonaislukuna.
([AIVision1 v] objekti [tagID v])
Esimerkki
kun käynnistetään
[Drive forward when AprilTag ID 0 is detected.]
ikuisesti
hae [AprilTag IDs v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <([AIVision1 v] objekti [tagID v]) [math_equal v] [0]> niin
aja [eteenpäin v]
muuten
pysäytä ajaminen
Loppu
odota [0.5] sekuntia
Onko tekoälyn visio-objekti?#
AI Vision -objekti on? -lohko raportoi totuusarvon, joka ilmaisee, vastaako havaittu objekti tiettyä luokitusta.
Tosi — Tietojoukon kohde on kyseinen objekti.
Epätosi — Tietojoukon kohde ei ole kyseinen objekti.
<[AIVision1 v] objekti on [BlueBall v]?>
Parametri |
Kuvaus |
|---|---|
esine |
Mihin tekoälyn luokitukseen kohdetta verrataan. |
Esimerkki
kun käynnistetään
[Display if a Blue Cube is detected.]
ikuisesti
hae [AI-luokitukset v] tiedot [AIVision1 v]-sensorilta
tyhjennä rivi [1] näytöltä
aseta kursori riville [1] sarakkeeseen [1] näytöllä
jos <[AIVision1 v] objekti on olemassa?> niin
jos <[AIVision1 v] objekti on [BlueCube v]?> niin
tulosta [Cube detected!] näytöllä ▶
odota [0.5] sekuntia
Onko tekoälyvision-objekti AprilTag?#
AI Vision -objekti on AprilTag? -lohko raportoi totuusarvon, joka ilmaisee, onko havaittu objekti AprilTag, joka vastaa tiettyä tunnusta.
True — Havaittu objekti on annettua tunnusta käyttävä AprilTag-tunniste.
Epätosi — Havaittu objekti ei ole annetun tunnuksen mukainen AprilTag.
<[AIVision1 v] objekti on AprilTag [0]?>
Parametri |
Kuvaus |
|---|---|
AprilTag-tunnus |
Tunnusnumero, jota verrataan havaittuun AprilTagiin. |
Esimerkki
kun käynnistetään
[Report if AprilTag 3 is detected.]
ikuisesti
tyhjennä näyttö
aseta kursori riville [1] sarakkeeseen [1] näytöllä
hae [AprilTag IDs v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <[AIVision1 v] objekti on AprilTag [3]?> niin
tulosta [That is 3!] näytöllä ▶
muuten
tulosta [That isn't 3!] näytöllä ▶
Loppu
Loppu
odota [0.1] sekuntia
Onko AI Vision -objekti AprilTag-tunnus?#
AI Vision -objekti on AprilTag-tunnus? -lohko raportoi totuusarvon, joka ilmaisee, vastaako havaittu AprilTag-tunnus tiettyä tunnusta.
Tosi — AprilTag-tunnus on numero.
Epätosi — AprilTag-tunnus ei ole oikea numero.
<[AIVision1 v] object is AprilTag ID [1] ?>
Parametrit |
Kuvaus |
|---|---|
AprilTag-tunnusnumero |
Numero, jota verrataan havaittuun AprilTag-tunnusnumeroon. |
Esimerkki:
kun käynnistetään
[Report if AprilTag ID 3 is detected.]
ikuisesti
tyhjennä näyttö
aseta kursori riville [1] sarakkeeseen [1] näytöllä
hae [AprilTag IDs v] tiedot [AIVision1 v]-sensorilta
jos <[AIVision1 v] objekti on olemassa?> niin
jos <[AIVision1 v] object is AprilTag ID [3] ?> niin
tulosta [That is 3!] näytöllä ▶
muuten
tulosta [That isn't 3!] näytöllä ▶
Loppu
Loppu
odota [0.1] sekuntia