AI-visiesensor#

Invoering#

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

Hieronder vindt u een lijst met beschikbare blokken:

Acties – Leg gegevens vast van de AI-beeldsensor voor een geselecteerd kenmerk.

  • snapshot maken – 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#

maak een momentopname#

Het stackblok snapshot maken filtert gegevens uit het frame van de 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 stapelblok voor het maken van momentopnamen.#
maak een [AIVision1 v] momentopname van [SELECT_A_SIG v]

Parameter

Beschrijving

apparaat

Welke AI-visiesensor te gebruiken, geconfigureerd in het venster Apparaten.

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 geconfigureerd in de AI Vision Utility.
  • NAAM – Een kleur 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
maak een [AIVision1 v] momentopname van [AprilTag IDs v]
als <[AIVIsion1 v] object bestaat?> dan
rijd [vooruit v] voor [10] [mm v] ▶

AI-classificaties#

De 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 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 V5 Robotics Competition Push Back

  • BlueBlock

  • RedBlock

VEX V5 Robotica Competitie met hoge inzet

  • Mobiel Doel

  • Rode Ring

  • Blauwe Ring

VEX V5 Robotics Competition Override

  • RoodBlauwSpeld

  • BlauwGelePin

  • RoodGelePin

  • Gele Speld

  • Beker

Kleursignaturen#

Een kleursignatuur is een unieke kleur die de AI-visiesensor 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 snapshot maken 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.]
maak een [AIVision1 v] momentopname van [RED_BOX 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 AI-beeldsensor 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.]
maak een [AIVision1 v] momentopname van [RED_BLUE 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

apparaat

Welke AI-visiesensor te gebruiken, geconfigureerd in het venster Apparaten.

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
maak een [AIVision1 v] momentopname van [AprilTag IDs 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#

Bestaat het AI Vision-object?#

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

apparaat

Welke AI-visiesensor te gebruiken, geconfigureerd in het venster Apparaten.

Voorbeeld

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

Het AI Vision-object is#

Het AI Vision-object is een Booleaanse code die aangeeft of een gedetecteerd object overeenkomt met een specifieke classificatie.

  • Waar – 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

apparaat

Welke AI-visiesensor te gebruiken, geconfigureerd in het venster Apparaten.

voorwerp

Met welke AI-classificatie het item vergeleken moet worden.

Voorbeeld

wanneer gestart
[Display if a Blue Cube is detected.]
altijd
maak een [AIVision1 v] momentopname van [AI-classificaties 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

Het AI Vision-object is AprilTag.#

Het Booleaanse blok AI Vision object is AprilTag geeft aan of het gedetecteerde object een AprilTag is die overeenkomt met een specifieke ID.

  • Waar – 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

apparaat

Welke AI-visiesensor te gebruiken, geconfigureerd in het venster Apparaten.

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
maak een [AIVision1 v] momentopname van [AprilTag IDs 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

Het AI Vision-object is het AprilTag-ID.#

Het Booleaanse blok AI Vision object is AprilTag ID geeft aan 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

apparaat

Welke AI-visiesensor te gebruiken, geconfigureerd in het venster Apparaten.

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
maak een [AIVision1 v] momentopname van [AprilTag IDs 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

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

apparaat

Welke AI-visiesensor te gebruiken, geconfigureerd in het venster Apparaten.

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
maak een [AIVision1 v] momentopname van [AI-classificaties 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 snapshot maken blok is gebruikt.

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

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

Parameter

Beschrijving

apparaat

Welke AI-visiesensor te gebruiken, geconfigureerd in het venster Apparaten.

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
maak een [AIVision1 v] momentopname van [AI-classificaties v]
als <[AIVision1 v] object bestaat?> dan
als <([AIVision1 v] object [breedte v]) [math_less_than v] [100]> dan
rijd [vooruit v]
anders
stop rijden
einde

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
maak een [AIVision1 v] momentopname van [AI-classificaties v]
als <[AIVision1 v] object bestaat?> dan
als <([AIVision1 v] object [hoogte v]) [math_less_than v] [100]> dan
rijd [vooruit v]
anders
stop rijden
einde

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
maak een [AIVision1 v] momentopname van [AI-classificaties 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
maak een [AIVision1 v] momentopname van [AI-classificaties v]
als <[AIVision1 v] object bestaat?> dan
als <([AIVision1 v] object [centerY v]) [math_less_than v] [140]> dan
rijd [vooruit v]
anders
stop rijden
einde

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
maak een [AIVision1 v] momentopname van [RED_BLUE 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
maak een [AIVision1 v] momentopname van [AI-classificaties 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
maak een [AIVision1 v] momentopname van [AI-classificaties 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
maak een [AIVision1 v] momentopname van [AprilTag IDs 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

score#

De eigenschap score geeft aan hoe zeker het model is van de gedetecteerde AI-classificatie, uitgedrukt als een percentage van 70% tot 100%.

Een lagere score betekent dat de sensor minder zeker is van het gedetecteerde object, terwijl een hogere score betekent dat de sensor meer zeker is.

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