AI-visiesensor#

Invoering#

De VEX IQ AI Vision Sensor kan objecten, kleuren en AprilTag ID’s detecteren en volgen. Hierdoor kan de robot zijn omgeving analyseren, objecten volgen en reageren op basis van de gedetecteerde visuele gegevens.

De AI Vision-voorbeelden zijn ontworpen voor gebruik met een Basebot die is uitgerust met een VEX IQ AI Vision-sensor. In deze voorbeelden is de sensor geconfigureerd met de naam AIVision1, die in de blokken wordt weergegeven.

Hieronder vindt u een lijst van alle blokken:

Acties — Gegevens vastleggen van de VEX IQ AI Vision Sensor voor een geselecteerd signatuur.

  • get object data — Legt gegevens vast voor een specifieke signatuur, zoals een geconfigureerde kleur, een vooraf getraind object of een AprilTag ID.

Instellingen — Kies met welk object u wilt interageren.

Waarden — Toegang tot en gebruik van de vastgelegde gegevens.

Acties#

objectgegevens ophalen#

Het stackblok get object data filtert gegevens uit het frame van de VEX IQ AI Vision Sensor tot één enkele signatuur: een opgeslagen beschrijving van iets dat de sensor kan herkennen, zoals een vooraf getraind object, een AprilTag ID of een geconfigureerde kleur of kleurcode.

Kleuren en kleurcodes moeten eerst worden geconfigureerd in de AI Vision Utility voordat ze met dit blok kunnen worden gebruikt.

De dataset bevat objecten die van groot naar klein zijn gesorteerd op breedte, beginnend bij index 0. De eigenschappen van elk object kunnen worden opgevraagd via het blok AI Vision object property. Er wordt een lege dataset gerapporteerd als er geen overeenkomende objecten worden gevonden.

Het Get object data stack-blok.#
haal [SELECT_A_SIG v] gegevens op van [AIVision1 v]

Parameter

Beschrijving

handtekening

Filtert de dataset zodat alleen gegevens met de opgegeven signatuur worden opgenomen. Beschikbare signaturen zijn:

  • AprilTag ID’s
  • AI-classificaties — Beschikbaarheid verandert afhankelijk van het model dat is geconfigureerd in de AI Vision Utility.
  • NAAM — Een Kleursignatuur of Kleurcode waarbij NAAM de naam is die is geconfigureerd in de AI Vision Utility

Let op: Om de opties AprilTag ID of AI-classificatie te laten verschijnen, moet de detectie ervan zijn ingeschakeld in het AI Vision-hulpprogramma.

Voorbeeld

wanneer gestart
[Drive forward if an AprilTag ID is detected.]
altijd
haal [AprilTag IDs v] gegevens op van [AIVision1 v]
als <[AIVIsion1 v] object bestaat?> dan
rijd [vooruit v] voor [10] [mm v] ▶

AI-classificaties#

De VEX IQ AI Vision Sensor kan verschillende objecten detecteren op basis van bepaalde AI-classificaties. Afhankelijk van het AI-classificatiemodel dat is geselecteerd bij het configureren van de VEX IQ AI Vision Sensor in het venster Apparaten, worden verschillende objecten gedetecteerd. De momenteel beschikbare modellen zijn:

Lesmateriaal

  • BlueBall

  • GreenBall

  • Rode Bal

  • Blauwe Ring

  • Groene Ring

  • Rode Ring

  • BlueCube

  • Groene Kubus

  • RedCube

VEX IQ Robotics Competitie Mix & Match

  • Straal

  • RedPin

  • BluePin

  • Oranje Speld

VEX IQ Robotics Competitie Niveau omhoog

  • Blauwe zitzak

  • Rode zitzak

  • Gele zitzak

Kleursignaturen#

Een kleursignatuur is een unieke kleur die de VEX IQ AI Vision Sensor kan herkennen. Deze signaturen stellen de sensor in staat objecten te detecteren en te volgen op basis van hun kleur. Zodra een kleursignatuur is geconfigureerd, kan de sensor objecten met die specifieke kleur in zijn gezichtsveld identificeren.

Kleursignaturen worden in het get object data blok gebruikt om gekleurde objecten in realtime te verwerken en te detecteren. Er kunnen maximaal 7 kleursignaturen tegelijk worden geconfigureerd.

De AI Vision Utility toont een aangesloten beeldsensor die twee gekleurde objecten detecteert. Aan de linkerkant wordt een live camerabeeld weergegeven met een blauw kader links en een rood kader rechts, beide omlijnd met witte kaders. Zwarte labels tonen hun respectievelijke namen, coördinaten en afmetingen. Aan de rechterkant bevinden zich instellingen voor de kleursignatuur, met schuifregelaars voor de tint en verzadiging van zowel het rode als het blauwe kader. Onderaan bevinden zich knoppen voor het toevoegen van kleuren, het pauzeren van de video, het kopiëren en opslaan van de afbeelding, samen met een sluitknop in de rechterbenedenhoek.

Voorbeeld

wanneer gestart
[Display if any objects matching the RED_BOX signature is detected.]
altijd
stel cursor in op rij [1] kolom [1] op scherm
wis rij [1] op scherm
[Change the signature to any configured Color Signature.]
haal [RED_BOX v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
druk [Color detected!] af op scherm ▶

Kleurcodes#

Een kleurcode is een gestructureerd patroon dat bestaat uit 2 tot 4 kleursignaturen die in een specifieke volgorde zijn gerangschikt. Deze codes stellen de VEX IQ AI Vision Sensor in staat om vooraf gedefinieerde kleurpatronen te herkennen.

Kleurcodes zijn bijzonder handig voor het identificeren van complexe objecten, het afstemmen op spelelementen of het creëren van unieke markeringen voor autonome navigatie. Er kunnen maximaal 8 kleurcodes tegelijk worden geconfigureerd.

De interface van AI Vision Utility toont een aangesloten beeldsensor die twee naast elkaar gelegen objecten detecteert: een blauwe doos aan de linkerkant en een rode doos aan de rechterkant. Deze objecten zijn samen gegroepeerd in één wit kader met het label BlauwRood. De detectiegegevens omvatten de hoek (A:11°), coördinaten (X:143, Y:103), breedte (W:233) en hoogte (H:108). In het rechterpaneel worden drie kleursignaturen weergegeven: Rood_Doos, Blauw_Doos en BlauwRood, met instelbare tint- en verzadigingsbereiken. De BlauwRood-signatuur combineert de Blauw_Doos en de Rood_Doos. Onder de videostream bevinden zich knoppen met de labels Video bevriezen, Afbeelding kopiëren, Afbeelding opslaan en Sluiten.

Voorbeeld

wanneer gestart
[Display if any objects matching the RED_BLUE code is detected.]
altijd
stel cursor in op rij [1] kolom [1] op scherm
wis rij [1] op scherm
[Change the signature to any configured Color Code.]
haal [RED_BLUE v] gegevens op van [AIVision1 v]
als <[AIVIsion1 v] object bestaat?> dan
druk [Code detected!] af op scherm ▶

Instellingen#

stel AI Vision-objectitem in#

Het stackblok set AI Vision object item bepaalt welk item in de dataset gebruikt moet worden.

Het Set AI Vision object item stack block.#
stel [AIVision1 v] object-item in op (1)

Parameters

Beschrijving

item

Het nummer van het item in de dataset dat gebruikt moet worden.

Voorbeeld

Een stapel blokken die begint met een ‘wanneer gestart’-blok, gevolgd door een commentaarblok met de tekst ‘Toon de grootste gedetecteerde AprilTag ID’. Binnen een oneindige lus legt een ‘maak een AI Vision-snapshot’-blok een afbeelding vast van de AprilTag ID’s. Een ‘als’-blok controleert of een AI Vision-object bestaat. Zo ja, dan wijst een ‘stel AI Vision-objectitem in’-blok het aantal objecten toe aan een variabele, en een ‘print’-blok toont de tag-ID van het gedetecteerde object op het scherm.#
wanneer gestart
[Display the largest detected AprilTag ID.]
altijd
haal [AprilTag IDs v] gegevens op van [AIVision1 v]
wis rij [1] op scherm
stel cursor in op rij [1] kolom [1] op scherm
als <[AIVision1 v] object bestaat?> dan
stel [AIVision1 v] object-item in op ([AIVision1 v] object aantal)
druk ([AIVision1 v] object [tagID v]) af op scherm ▶

Waarden#

Het AI Vision-object bestaat#

Het Booleaanse blok AI Vision object exists geeft aan of er een object in de dataset is gedetecteerd.

  • Waar — De dataset bevat een gedetecteerd object.

  • Onjuist — De dataset bevat geen gedetecteerde objecten.

Het AI Vision-object bestaat in een Booleaanse blok.#
<[AIVision1 v] object bestaat?>

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart
[Drive forward if an object is detected.]
altijd
haal [AI-classificaties v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
rijd [vooruit v] voor [10] [mm v] ▶

AI Vision object count#

Het AI Vision object count reporterblok rapporteert het aantal gedetecteerde objecten in de dataset als een geheel getal.

Het Set AI Vision object item stack block.#
([AIVision1 v] object aantal)

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart
[Display the total amount of cubes, rings, and balls.]
altijd
wis rij [1] op scherm
stel cursor in op rij [1] kolom [1] op scherm
haal [AI-classificaties v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
druk ([AIVision1 v] object aantal) af op scherm ▶
einde
wacht [0.5] seconden

AI Vision-objecteigenschap#

Er zijn negen eigenschappen die bij elk object worden meegeleverd (zie hieronder) en die worden opgeslagen nadat het get object data blok is gebruikt.

Het objecteigenschapsrapportageblok van AI Vision.#
([AIVision1 v] object [breedte v])

Alle eigenschapswaarden, behalve tagID, beschrijven de positie en grootte van het gedetecteerde object in het gezichtsveld van de VEX IQ AI Vision Sensor op het moment dat het blok objectgegevens ophalen werd gebruikt. Deze waarden worden gemeten in pixels, gebaseerd op de resolutie van 320 bij 240 pixels van de sensor.

Parameter

Beschrijving

eigendom

Welke eigenschap van het gedetecteerde object te gebruiken:

breedte#

De eigenschap width geeft de breedte van het gedetecteerde object in pixels weer als een geheel getal van 1 tot 320.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op breedte.#
([AIVision1 v] object [breedte v])

Voorbeeld

wanneer gestart
[Drive towards an object until its width is larger than 100 pixels.]
altijd
haal [AI-classificaties v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <([AIVision1 v] object [breedte v]) [math_less_than v] [100]> dan
rijd [vooruit v]
einde
anders
stop rijden

hoogte#

De eigenschap hoogte geeft de hoogte van het gedetecteerde object in pixels weer als een geheel getal van 1 tot 240.

Het eigenschappenblok van het AI Vision-object met de parameter ‘height’ ingesteld.#
([AIVision1 v] object [hoogte v])

Voorbeeld

wanneer gestart
[Drive towards an object until its height is larger than 100 pixels.]
altijd
haal [AI-classificaties v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <([AIVision1 v] object [hoogte v]) [math_less_than v] [100]> dan
rijd [vooruit v]
einde
anders
stop rijden

centrumX#

De eigenschap centerX geeft de x-coördinaat van het middelpunt van het gedetecteerde object in pixels weer als een geheel getal van 0 tot 320.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op centerX.#
([AIVision1 v] object [centerX v])

Voorbeeld

wanneer gestart
[Turn slowly until an object is centered in front of the robot.]
stel draaisnelheid in op [30] [% v]
draai [rechts v]
altijd
haal [AI-classificaties v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <[140] [math_less_than v] ([AIVision1 v] object [centerX v]) [math_less_than v] [180]> dan
stop rijden

centrumY#

De eigenschap centerY geeft de y-coördinaat van het middelpunt van het gedetecteerde object in pixels weer als een geheel getal van 0 tot 240.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op centerY.#
([AIVision1 v] object [centerY v])

Voorbeeld

wanneer gestart
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
altijd
haal [AI-classificaties v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <([AIVision1 v] object [centerY v]) [math_less_than v] [140]> dan
rijd [vooruit v]
einde
anders
stop rijden

hoek#

De eigenschap hoek geeft de oriëntatie van de gedetecteerde kleurcode of AprilTag-ID weer als een geheel getal in graden van 0 tot 359.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op ‘angle’.#
([AIVision1 v] object [hoek v])

Voorbeeld

wanneer gestart
[Slide left or right depending on how the Color Code is rotated.]
altijd
haal [RED_BLUE v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <[50] [math_less_than v] ([AIVision1 v] object [hoek v]) [math_less_than v] [100]> dan
rijd [rechts v]
anders als <[270] [math_less_than v] ([AIVision1 v] object [hoek v]) [math_less_than v] [330]> dan
rijd [links v]
anders
stop rijden
einde
anders
stop rijden

oorsprongX#

De eigenschap originX geeft de x-coördinaat van de linkerbovenhoek van het begrenzingskader van het gedetecteerde object weer in pixels als een geheel getal van 0 tot 320.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op originX.#
([AIVision1 v] object [originX v])

Voorbeeld

wanneer gestart
[Display if an object is to the left or the right.]
altijd
wis rij [1] op scherm
stel cursor in op rij [1] kolom [1] op scherm
haal [AI-classificaties v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <([AIVision1 v] object [originX v]) [math_less_than v] [160]> dan
druk [To the left!] af op scherm ▶
anders
druk [To the right!] af op scherm ▶
einde
wacht [0.5] seconden

oorsprong#

De eigenschap originY geeft de y-coördinaat van de linkerbovenhoek van het begrenzingskader van het gedetecteerde object weer in pixels als een geheel getal van 0 tot 240.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op originY.#
([AIVision1 v] object [originY v])

Voorbeeld

wanneer gestart
[Display if an object is close or far from the robot.]
altijd
wis rij [1] op scherm
stel cursor in op rij [1] kolom [1] op scherm
haal [AI-classificaties v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <([AIVision1 v] object [originY v]) [math_less_than v] [80]> dan
druk [Far!] af op scherm ▶
anders
druk [Close!] af op scherm ▶
einde
wacht [0.5] seconden

tagID#

De eigenschap tagID geeft het identificatienummer van de gedetecteerde AprilTag ID weer als een geheel getal.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op tagID.#
([AIVision1 v] object [tagID v])

Voorbeeld

wanneer gestart
[Drive forward when AprilTag ID 0 is detected.]
altijd
haal [AprilTag IDs v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <([AIVision1 v] object [tagID v]) [math_equal v] [0]> dan
rijd [vooruit v]
anders
stop rijden
einde
wacht [0.5] seconden

Wat is het AI Vision-object?#

Het blok AI Vision object is? geeft een Booleaanse waarde terug die aangeeft of een gedetecteerd object overeenkomt met een specifieke classificatie.

  • Klopt — Het item in de dataset is het specifieke object.

  • Onjuist — Het item in de dataset is niet het specifieke object.

De AI Vision AI Classification is een object Boolean-blok.#
<[AIVision1 v] object is [BlueBall v]?>

Parameter

Beschrijving

voorwerp

Met welke AI-classificatie het item vergeleken moet worden.

Voorbeeld

wanneer gestart
[Display if a Blue Cube is detected.]
altijd
haal [AI-classificaties v] gegevens op van [AIVision1 v]
wis rij [1] op scherm
stel cursor in op rij [1] kolom [1] op scherm
als <[AIVision1 v] object bestaat?> dan
als <[AIVision1 v] object is [BlueCube v]?> dan
druk [Cube detected!] af op scherm ▶
wacht [0.5] seconden

Is het AI Vision-object AprilTag?#

Het blok AI Vision object is AprilTag? geeft een Booleaanse waarde terug die aangeeft of het gedetecteerde object een AprilTag is die overeenkomt met een specifieke ID.

  • Klopt — Het gedetecteerde object is een AprilTag met de opgegeven ID.

  • Onjuist — Het gedetecteerde object is geen AprilTag met de opgegeven ID.

Het AI Vision-object is een Booleaanse blok genaamd AprilTag.#
<[AIVision1 v] object is AprilTag [0]?>

Parameter

Beschrijving

AprilTag ID

Het ID-nummer ter vergelijking met de gedetecteerde AprilTag.

Voorbeeld

wanneer gestart
[Report if AprilTag 3 is detected.]
altijd
wis scherm
stel cursor in op rij [1] kolom [1] op scherm
haal [AprilTag IDs v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <[AIVision1 v] object is AprilTag [3]?> dan
druk [That is 3!] af op scherm ▶
anders
druk [That isn't 3!] af op scherm ▶
einde
einde
wacht [0.1] seconden

Is het AI Vision-object de AprilTag ID?#

Het blok AI Vision object is AprilTag ID? geeft een Booleaanse waarde weer die aangeeft of een gedetecteerde AprilTag ID overeenkomt met een specifieke ID.

  • Klopt — De AprilTag ID is het nummer.

  • Onjuist — De AprilTag ID is niet het nummer.

De AI Vision heeft vastgesteld dat de AprilTag ID een Booleaanse waarde is.#
<[AIVision1 v] object is AprilTag ID [1] ?>

Parameters

Beschrijving

AprilTag ID-nummer

Het nummer dat vergeleken moet worden met het gedetecteerde AprilTag ID-nummer.

Voorbeeld:

wanneer gestart
[Report if AprilTag ID 3 is detected.]
altijd
wis scherm
stel cursor in op rij [1] kolom [1] op scherm
haal [AprilTag IDs v] gegevens op van [AIVision1 v]
als <[AIVision1 v] object bestaat?> dan
als <[AIVision1 v] object is AprilTag ID [3] ?> dan
druk [That is 3!] af op scherm ▶
anders
druk [That isn't 3!] af op scherm ▶
einde
einde
wacht [0.1] seconden