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.
set AI Vision object item — Selecteert een specifiek object uit de lijst met gedetecteerde objecten.
Waarden — Toegang tot en gebruik van de vastgelegde gegevens.
AI Vision-object bestaat — Rapporteert of een object is gedetecteerd.
AI Vision object count — Rapporteert het aantal gedetecteerde objecten.
AI Vision objecteigenschap — Rapporteert details zoals:
AI Vision object is? — Controleert of een gedetecteerd object overeenkomt met een specifieke classificatie.
AI Vision object is AprilTag? — Controleert of het gedetecteerde object een AprilTag is die overeenkomt met een specifieke ID.
AI Vision object is AprilTag ID? — Controleert of een gedetecteerde AprilTag ID overeenkomt met een specifieke ID.
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.
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:
|
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.

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.

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.
stel [AIVision1 v] object-item in op (1)
Parameters |
Beschrijving |
|---|---|
item |
Het nummer van het item in de dataset dat gebruikt moet worden. |
Voorbeeld
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.
<[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.
([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.
([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.
([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.
([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.
([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.
([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.
([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.
([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.
([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.
([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.
<[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.
<[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.
<[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