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.

Arvot — Käytä tallennettuja tietoja.

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ä.

Get-objektin datapino-lohko.#
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:

  • AprilTag IDs
  • AI Classifications — Saatavuus vaihtelee AI Vision Utility -apuohjelmassa määritetyn mallin mukaan.
  • NAME — A Color Signature tai Code, jossa NAME on AI Vision Utility -apuohjelmassa määritetty nimi

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.

AI Vision Utility -apuohjelma, jossa näkyy yhdistetty konenäköanturi, joka havaitsee kaksi värillistä kohdetta. Vasemmalla puolella näkyy reaaliaikainen kamerakuva, jossa on vasemmalla sininen laatikko ja oikealla punainen laatikko, jotka molemmat on rajattu valkoisilla rajaavilla laatikoilla. Mustat otsikot näyttävät laatikoiden nimet, koordinaatit ja mitat. Oikealla puolella on väriasetusasetukset sekä liukusäätimet sekä punaisen että sinisen laatikon sävylle ja kylläisyydelle. Värien lisäämiseen, videon pysäyttämiseen, kopioimiseen ja kuvan tallentamiseen tarkoitetut painikkeet ovat alareunassa, ja oikeassa alakulmassa on sulkemispainike.

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.

AI Vision Utility -käyttöliittymässä näkyy yhdistetty konenäköanturi, joka havaitsee kaksi vierekkäistä kohdetta: vasemmalla sinisen laatikon ja oikealla punaisen laatikon, jotka on ryhmitelty yhteen valkoiseen rajaavaan laatikkoon, jonka nimi on BlueRed. Tunnistustiedot sisältävät kulman (A:11°), koordinaatit (X:143, Y:103), leveyden (W:233) ja korkeuden (H:108). Oikeanpuoleisessa paneelissa on lueteltu kolme väritunnistetta: Red_Box, Blue_Box ja BlueRed, joissa on säädettävät sävy- ja kylläisyysalueet. BlueRed-tunniste yhdistää Blue_Boxin ja Red_Boxin. Videosyötteen alapuolella on painikkeet, joiden nimi on Freeze Video (Pysäytysvideo), Copy Image (Kopioi kuva), Save Image (Tallenna kuva) ja Close (Sulje).

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 tekoälyvision-objektin kohdepino-lohko.#
aseta [AIVision1 v] objektin kohde (1)

Parametrit

Kuvaus

esine

Käytettävän kohteen numero tietojoukossa.

Esimerkki

Lohkopino, joka alkaa when-aloitettu-lohkolla, jota seuraa kommenttilohko, jossa lukee Näytä suurin havaittu AprilTag-tunnus. Forever-silmukan sisällä take a AI Vision snapshot -lohko tallentaa kuvan AprilTag-tunnuksista. if-lohko tarkistaa, onko AI Vision -objektia olemassa. Jos arvo on true, set AI Vision object item -lohko määrittää objektien lukumäärän muuttujalle, ja print-lohko näyttää havaitun objektin tunnisteen tunnuksen näytöllä.#
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.

AI Vision -objekti on olemassa Boolen lohkona.#
<[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.

Aseta tekoälyvision-objektin kohdepino-lohko.#
([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.

AI Vision -objektin ominaisuusraportointilohko.#
([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.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu leveys.#
([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.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu korkeus.#
([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.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu centerX.#
([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.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu centerY.#
([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.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu kulma.#
([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.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu originX.#
([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.

AI Vision -objektin ominaisuuspinolohko, jonka parametriksi on asetettu originY.#
([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.

AI Vision -objektin ominaisuuspinon lohko, jonka parametriksi on asetettu tagID.#
([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.

AI Vision -tekoälyluokitus on objektien Boole-lohko.#
<[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.

AI Vision -objekti on AprilTag Boole-lohko.#
<[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.

AI Visionin havaitsema AprilTag-tunnus on totuusarvoinen lohko.#
<[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