AI-synsensor#
Introduktion#
VEX IQ AI-visionssensorn kan upptäcka och spåra objekt, färger och AprilTag-ID:n. Detta gör att roboten kan analysera sin omgivning, följa objekt och reagera baserat på detekterad visuell data.
AI Vision-exemplen är utformade för användning med en Basebot utrustad med en VEX IQ AI Vision-sensor. I dessa exempel är sensorn konfigurerad med namnet AIVision1, vilket visas i blocken.
Nedan följer en lista över alla block:
Åtgärder — Samla in data från VEX IQ AI-visionssensorn för en vald signatur.
hämta objektdata — Samlar in data för en specifik signatur, till exempel en konfigurerad färg, ett förtränat objekt eller ett AprilTag-ID.
Inställningar — Välj vilket objekt du vill interagera med.
ställ in AI Vision-objekt — Väljer ett specifikt objekt från listan över detekterade objekt.
Värden — Åtkomst till och använd insamlad data.
AI Vision-objekt finns — Rapporterar om ett objekt har upptäckts.
Antal AI Vision-objekt — Rapporterar antalet upptäckta objekt.
AI Vision-objektegenskap — Rapporterar detaljer som:
AI Vision-objektet är? — Kontrollerar om ett detekterat objekt matchar en specifik klassificering.
Är AI Vision-objektet AprilTag? — Kontrollerar om det upptäckta objektet är ett AprilTag som matchar ett specifikt ID.
Är AI Vision-objektet AprilTag-ID? — Kontrollerar om ett upptäckt AprilTag-ID matchar ett specifikt ID.
Åtgärder#
hämta objektdata#
Stackblocket get object data filtrerar data från VEX IQ AI Vision Sensor-ramen till en enda signatur – en sparad beskrivning av något som sensorn kan känna igen, till exempel ett förtränat objekt, ett AprilTag-ID eller en konfigurerad färg eller färgkod.
Färger och färgkoder måste först konfigureras i AI Vision Utility innan de kan användas med det här blocket.
Datasetet lagrar objekt sorterade från störst till minst efter bredd, med början vid index 0. Varje objekts egenskaper kan nås med hjälp av blocket AI Vision object property. En tom dataset rapporteras om inga matchande objekt upptäcks.
hämta [SELECT_A_SIG v]-data från [AIVision1 v]
Parameter |
Beskrivning |
|---|---|
signatur |
Filtrerar datamängden så att den endast inkluderar data från den givna signaturen. Tillgängliga signaturer är:
|
Obs! För att alternativen för AprilTag ID eller AI-klassificering ska visas måste deras identifiering vara aktiverad i AI Vision Utility.
Exempel
när startad
[Drive forward if an AprilTag ID is detected.]
för alltid
hämta [AprilTag IDs v]-data från [AIVision1 v]
om <[AIVIsion1 v]-objekt finns?> då
kör [framåt v] i [10] [mm v] ▶
AI-klassificeringar#
VEX IQ AI Vision Sensor kan detektera olika objekt under vissa AI-klassificeringar. Beroende på vilken AI-klassificeringsmodell som valts när VEX IQ AI Vision Sensor konfigurerades i fönstret Enheter, kommer olika objekt att detekteras. De för närvarande tillgängliga modellerna är:
Klassrumsföremål
Blåboll
Grönboll
Rödboll
BlåRing
GrönRing
RödRing
Blåkub
GreenCube
Rödkub
VEX IQ Robotics-tävling Mix & Match
Balk
RödPin
BlåPin
OrangePin
VEX IQ Robotics-tävling – Nivå upp
BlåBönpåse
RödBönpåse
GulBönpåse
Färgsignaturer#
En färgsignatur är en unik färg som VEX IQ AI-visionssensorn kan känna igen. Dessa signaturer gör det möjligt för sensorn att upptäcka och spåra objekt baserat på deras färg. När en färgsignatur har konfigurerats kan sensorn identifiera objekt med den specifika färgen i sitt synfält.
Färgsignaturer används i blocket get object data för att bearbeta och detektera färgade objekt i realtid. Upp till 7 färgsignaturer kan konfigureras åt gången.

Exempel
när startad
[Display if any objects matching the RED_BOX signature is detected.]
för alltid
ställ markör på rad [1] kolumn [1] på skärmen
rensa rad [1] på skärmen
[Change the signature to any configured Color Signature.]
hämta [RED_BOX v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
skriv ut [Color detected!] på skärmen ▶
Färgkoder#
En färgkod är ett strukturerat mönster som består av 2 till 4 färgsignaturer arrangerade i en specifik ordning. Dessa koder gör det möjligt för VEX IQ AI Vision Sensor att känna igen fördefinierade färgmönster.
Färgkoder är särskilt användbara för att identifiera komplexa objekt, justera dem med spelelement eller skapa unika markörer för autonom navigering. Upp till 8 färgkoder kan konfigureras åt gången.

Exempel
när startad
[Display if any objects matching the RED_BLUE code is detected.]
för alltid
ställ markör på rad [1] kolumn [1] på skärmen
rensa rad [1] på skärmen
[Change the signature to any configured Color Code.]
hämta [RED_BLUE v]-data från [AIVision1 v]
om <[AIVIsion1 v]-objekt finns?> då
skriv ut [Code detected!] på skärmen ▶
Inställningar#
ange AI Vision-objekt#
Stackblocket set AI Vision object item anger vilket objekt i datamängden som ska användas.
ställ in [AIVision1 v]-objektpost till (1)
Parametrar |
Beskrivning |
|---|---|
punkt |
Numret på objektet i datasetet som ska användas. |
Exempel
när startad
[Display the largest detected AprilTag ID.]
för alltid
hämta [AprilTag IDs v]-data från [AIVision1 v]
rensa rad [1] på skärmen
ställ markör på rad [1] kolumn [1] på skärmen
om <[AIVision1 v]-objekt finns?> då
ställ in [AIVision1 v]-objektpost till (antal [AIVision1 v]-objekt)
skriv ut ([AIVision1 v]-objekt [tagID v]) på skärmen ▶
Värden#
AI Vision-objekt finns#
Det booleska blocket AI Vision-objektet finns rapporterar om något objekt har upptäckts i datamängden.
Sant — Datasetet innehåller ett detekterat objekt.
Falskt — Datasetet innehåller inga upptäckta objekt.
<[AIVision1 v]-objekt finns?>
Parametrar |
Beskrivning |
|---|---|
Det här blocket har inga parametrar. |
Exempel
när startad
[Drive forward if an object is detected.]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
kör [framåt v] i [10] [mm v] ▶
Antal AI Vision-objekt#
Rapportblocket AI Vision-objektantal rapporterar antalet detekterade objekt i datauppsättningen som ett heltal.
(antal [AIVision1 v]-objekt)
Parametrar |
Beskrivning |
|---|---|
Det här blocket har inga parametrar. |
Exempel
när startad
[Display the total amount of cubes, rings, and balls.]
för alltid
rensa rad [1] på skärmen
ställ markör på rad [1] kolumn [1] på skärmen
hämta [AI-klassificeringar v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
skriv ut (antal [AIVision1 v]-objekt) på skärmen ▶
avsluta
vänta [0.5] sekunder
AI Vision-objektets egenskap#
Det finns nio egenskaper som ingår i varje objekt (visas nedan) som lagras efter att blocket get object data har använts.
([AIVision1 v]-objekt [bredd v])
Alla egenskapsvärden utom tagID beskriver det detekterade objektets position och storlek i VEX IQ AI Vision Sensors vy i det ögonblick då blocket get object data användes. Dessa värden mäts i pixlar, baserat på sensorns upplösning på 320 x 240 pixlar.
Parameter |
Beskrivning |
|---|---|
egendom |
Vilken egenskap för det detekterade objektet som ska användas: |
bredd#
Egenskapen width rapporterar bredden på det detekterade objektet i pixlar som ett heltal från 1 till 320.
([AIVision1 v]-objekt [bredd v])
Exempel
när startad
[Drive towards an object until its width is larger than 100 pixels.]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <([AIVision1 v]-objekt [bredd v]) [math_less_than v] [100]> då
kör [framåt v]
avsluta
annars
stoppa körning
höjd#
Egenskapen höjd rapporterar höjden på det detekterade objektet i pixlar som ett heltal från 1 till 240.
([AIVision1 v]-objekt [höjd v])
Exempel
när startad
[Drive towards an object until its height is larger than 100 pixels.]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <([AIVision1 v]-objekt [höjd v]) [math_less_than v] [100]> då
kör [framåt v]
avsluta
annars
stoppa körning
centerX#
Egenskapen centerX rapporterar x-koordinaten för det detekterade objektets centrum i pixlar som ett heltal från 0 till 320.
([AIVision1 v]-objekt [centerX v])
Exempel
när startad
[Turn slowly until an object is centered in front of the robot.]
ställ in svänghastighet till [30] [% v]
sväng [höger v]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <[140] [math_less_than v] ([AIVision1 v]-objekt [centerX v]) [math_less_than v] [180]> då
stoppa körning
centerY#
Egenskapen centerY rapporterar y-koordinaten för det detekterade objektets centrum i pixlar som ett heltal från 0 till 240.
([AIVision1 v]-objekt [centerY v])
Exempel
när startad
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <([AIVision1 v]-objekt [centerY v]) [math_less_than v] [140]> då
kör [framåt v]
avsluta
annars
stoppa körning
vinkel#
Egenskapen vinkel rapporterar orienteringen för den detekterade färgkoden eller AprilTag-ID:t som ett heltal i grader från 0 till 359.
([AIVision1 v]-objekt [vinkel v])
Exempel
när startad
[Slide left or right depending on how the Color Code is rotated.]
för alltid
hämta [RED_BLUE v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <[50] [math_less_than v] ([AIVision1 v]-objekt [vinkel v]) [math_less_than v] [100]> då
kör [höger v]
annars om <[270] [math_less_than v] ([AIVision1 v]-objekt [vinkel v]) [math_less_than v] [330]> då
kör [vänster v]
annars
stoppa körning
avsluta
annars
stoppa körning
ursprungX#
Egenskapen originX rapporterar x-koordinaten för det övre vänstra hörnet av det detekterade objektets avgränsningsram i pixlar som ett heltal från 0 till 320.
([AIVision1 v]-objekt [originX v])
Exempel
när startad
[Display if an object is to the left or the right.]
för alltid
rensa rad [1] på skärmen
ställ markör på rad [1] kolumn [1] på skärmen
hämta [AI-klassificeringar v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <([AIVision1 v]-objekt [originX v]) [math_less_than v] [160]> då
skriv ut [To the left!] på skärmen ▶
annars
skriv ut [To the right!] på skärmen ▶
avsluta
vänta [0.5] sekunder
ursprungY#
Egenskapen originY rapporterar y-koordinaten för det övre vänstra hörnet av det detekterade objektets avgränsningsram i pixlar som ett heltal från 0 till 240.
([AIVision1 v]-objekt [originY v])
Exempel
när startad
[Display if an object is close or far from the robot.]
för alltid
rensa rad [1] på skärmen
ställ markör på rad [1] kolumn [1] på skärmen
hämta [AI-klassificeringar v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <([AIVision1 v]-objekt [originY v]) [math_less_than v] [80]> då
skriv ut [Far!] på skärmen ▶
annars
skriv ut [Close!] på skärmen ▶
avsluta
vänta [0.5] sekunder
tagg-ID#
Egenskapen tagID rapporterar identifieringsnumret för det upptäckta AprilTag-ID:t som ett heltal.
([AIVision1 v]-objekt [tagID v])
Exempel
när startad
[Drive forward when AprilTag ID 0 is detected.]
för alltid
hämta [AprilTag IDs v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <([AIVision1 v]-objekt [tagID v]) [math_equal v] [0]> då
kör [framåt v]
annars
stoppa körning
avsluta
vänta [0.5] sekunder
Vad är AI Vision-objektet?#
Blocket AI Vision-objektet är? rapporterar ett booleskt värde som anger om ett detekterat objekt matchar en specifik klassificering.
Sant — Objektet i datamängden är det specifika objektet.
Falskt — Objektet i datamängden är inte det specifika objektet.
<[AIVision1 v]-objekt är [BlueBall v]?>
Parameter |
Beskrivning |
|---|---|
objekt |
Vilken AI-klassificering som ska jämföras med objektet. |
Exempel
när startad
[Display if a Blue Cube is detected.]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision1 v]
rensa rad [1] på skärmen
ställ markör på rad [1] kolumn [1] på skärmen
om <[AIVision1 v]-objekt finns?> då
om <[AIVision1 v]-objekt är [BlueCube v]?> då
skriv ut [Cube detected!] på skärmen ▶
vänta [0.5] sekunder
Är AI Vision-objektet AprilTag?#
Blocket AI Vision-objektet är AprilTag? rapporterar ett booleskt värde som anger om det detekterade objektet är ett AprilTag som matchar ett specifikt ID.
Sant — Det detekterade objektet är en AprilTag med det angivna ID:t.
Falskt — Det detekterade objektet är inte en AprilTag med det angivna ID:t.
<[AIVision1 v]-objekt är AprilTag [0]?>
Parameter |
Beskrivning |
|---|---|
AprilTag-ID |
ID-numret som ska jämföras med den upptäckta AprilTag. |
Exempel
när startad
[Report if AprilTag 3 is detected.]
för alltid
rensa skärm
ställ markör på rad [1] kolumn [1] på skärmen
hämta [AprilTag IDs v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <[AIVision1 v]-objekt är AprilTag [3]?> då
skriv ut [That is 3!] på skärmen ▶
annars
skriv ut [That isn't 3!] på skärmen ▶
avsluta
avsluta
vänta [0.1] sekunder
Är AI Vision-objektet AprilTag-ID?#
Blocket AI Vision-objektet är AprilTag ID? rapporterar ett booleskt värde som anger om ett detekterat AprilTag-ID matchar ett specifikt ID.
Sant — AprilTag-ID:t är numret.
Falskt — AprilTag-ID:t är inte numret.
<[AIVision1 v] object is AprilTag ID [1] ?>
Parametrar |
Beskrivning |
|---|---|
AprilTag ID-nummer |
Numret som ska jämföras med det upptäckta AprilTag-ID-numret. |
Exempel:
när startad
[Report if AprilTag ID 3 is detected.]
för alltid
rensa skärm
ställ markör på rad [1] kolumn [1] på skärmen
hämta [AprilTag IDs v]-data från [AIVision1 v]
om <[AIVision1 v]-objekt finns?> då
om <[AIVision1 v] object is AprilTag ID [3] ?> då
skriv ut [That is 3!] på skärmen ▶
annars
skriv ut [That isn't 3!] på skärmen ▶
avsluta
avsluta
vänta [0.1] sekunder