AI-vision#
Introduktion#
VEX AIM-kodningsrobotens AI-visionssensor detekterar och spårar 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-visionssensorn har en upplösning på 320×240 pixlar. Origon (0, 0) är placerat i det övre vänstra hörnet, vilket placerar sensorns mittpunkt vid (160, 120), som visas i diagrammet nedan:

Nedan följer en lista över alla block:
Åtgärder — Styr AI Vision-flödet och samla in objektdata.
AI Vision-visare på skärmen — Aktiverar eller inaktiverar AI Vision-flödet i realtid på robotens skärm.
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 — Justera vilka detekterade objekt som ska nås.
ställ in AI Vision-objekt — Väljer ett specifikt objekt från listan över detekterade objekt.
Värden — Returnerar objektets närvaro, klassificering och egenskaper.
har objekt — Kontrollerar om roboten håller ett detekterat objekt.
AI Vision-objekt finns — Rapporterar om ett objekt har upptäckts.
AI Vision-objektet är — Kontrollerar om ett detekterat objekt matchar en specifik klassificering.
AI Vision-objektet är AprilTag ID — Kontrollerar om ett upptäckt AprilTag ID matchar ett specifikt ID.
Antal AI Vision-objekt — Rapporterar antalet upptäckta objekt.
AI Vision-objektegenskap — Rapporterar detaljer som:
Åtgärder#
AI Vision-visare på skärmen#
Blocket AI Vision-visning på skärmen aktiverar eller inaktiverar AI Vision-flödet i realtid på robotens skärm. När det är aktiverat visar skärmen sensordata i realtid, vilket förhindrar att andra bilder eller text visas. För att visa annat innehåll, använd det här blocket för att dölja flödet.
AI Vision [visa v] visning på skärmen
Parametrar |
Beskrivning |
|---|---|
status |
Styr visningen av dataflödet på robotens skärm: visa visar dataflödet, medan dölj tar bort dataflödet från skärmen. |
Exempel
när startad
[View the AI Vision Sensor's feed for five seconds.]
AI Vision [visa v] visning på skärmen
vänta [5] sekunder
AI Vision [dölj v] visning på skärmen
hämta objektdata#
Stackblocket get object data filtrerar data från 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 [sportboll v]-data från AI Vision
Parameter |
Beskrivning |
|---|---|
signatur |
Filtrerar datamängden för att endast inkludera data från den givna signaturen. Tillgängliga signaturer är:
|
Exempel
när startad
[Move forward if a sports ball is detected.]
för alltid
hämta [sportboll v]-data från AI Vision
om <AI Vision-objekt finns?> då
rör [framåt v] i [10] [mm v] ▶
Färgsignaturer#
En färgsignatur är en unik färg som 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 i AI Vision Utility 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.

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 AI Vision
om <AI Vision-objekt finns?> då
skriv ut [Color signature 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. När en färgkod har konfigurerats i AI Vision Utility kan sensorn känna igen fördefinierade färgmönster.
Färgkoder är särskilt användbara för att identifiera komplexa objekt, justera dem mot spelelement eller skapa unika markörer för autonom navigering.

Exempel
när startad
[Display if any objects matching the BlueRed 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 [BlueRed v]-data från AI Vision
om <AI Vision-objekt finns?> då
skriv ut [Color 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 AI Vision-objektpost till (1)
Parametrar |
Beskrivning |
|---|---|
punkt |
Numret på objektet i datasetet som ska användas. |
Exempel
när startad
[Display the width of the smallest detected object.]
för alltid
hämta [allt gods v]-data från AI Vision
rensa rad [1] på skärmen
ställ markör på rad [1] kolumn [1] på skärmen
om <AI Vision-objekt finns?> då
ställ in AI Vision-objektpost till (antal AI Vision-objekt)
skriv ut (AI Vision-objekt [bredd v]) på skärmen ▶
Värden#
har objekt#
Det booleska blocket har objekt rapporterar om roboten för närvarande har ett detekterat objekt mot sin Kicker.
Sant — Roboten har objektet.
Falskt — Roboten har inte objektet.
<har [sportboll v]? :: custom-ai-vision>
Parameter |
Beskrivning |
|---|---|
objekt |
Föremålet att detektera mot robotens spark:
|
Exempel
när startad
[Kick when the robot has a sports ball.]
för alltid
om <har [sportboll v]? :: custom-ai-vision> då
sparka objekt [medium v]
AI Vision-objekt finns#
Det booleska blocket AI Vision-objektet finns rapporterar om ett objekt har upptäckts i datamängden.
Sant — Datasetet innehåller ett detekterat objekt.
Falskt — Inga objekt upptäcktes.
<AI Vision-objekt finns?>
Parametrar |
Beskrivning |
|---|---|
Det här blocket har inga parametrar. |
Exempel
när startad
[Move forward if a sports ball is detected.]
för alltid
hämta [sportboll v]-data från AI Vision
om <AI Vision-objekt finns?> då
rör [framåt v] i [10] [mm v] ▶
AI Vision-objektet är#
Det booleska blocket AI Vision-objektet är rapporterar om ett detekterat objekt matchar en specifik klassificering.
Sant — Objektet i datasetet är det specifika objektet.
Falskt — Objektet i datasetet är inte det specifika objektet.
<AI Vision-objekt är [sportboll v]?>
Parameter |
Beskrivning |
|---|---|
objekt |
Vilket föremål ska man jämföra föremålet med:
|
Exempel
när startad
[Display if a sports ball is detected.]
för alltid
hämta [allt gods v]-data från AI Vision
rensa rad [1] på skärmen
ställ markör på rad [1] kolumn [1] på skärmen
om <AI Vision-objekt finns?> då
om <AI Vision-objekt är [sportboll v]?> då
skriv ut [Sports ball detected!] på skärmen ▶
vänta [0.5] sekunder
AI Vision-objektet är AprilTag-ID#
AI Vision-objektet är AprilTag ID Det booleska blocket rapporterar om ett detekterat AprilTag ID matchar ett specifikt ID.
Sant — AprilTag-ID:t är numret.
Falskt — AprilTag-ID:t är inte numret.
<AI Vision object is AprilTag ID [1] ?>
Parametrar |
Beskrivning |
|---|---|
AprilTag-ID |
Numret som ska jämföras med det upptäckta AprilTag-ID-numret. |
Antal AI Vision-objekt#
Rapportblocket AI Vision-objektantal rapporterar antalet detekterade objekt i datauppsättningen som ett heltal.
antal AI Vision-objekt
Parametrar |
Beskrivning |
|---|---|
Det här blocket har inga parametrar. |
Exempel
när startad
[Display the amount of sports balls and barrels.]
för alltid
rensa rad [1] på skärmen
ställ markör på rad [1] kolumn [1] på skärmen
hämta [allt gods v]-data från AI Vision
om <AI Vision-objekt finns?> då
skriv ut (antal AI Vision-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.
AI Vision-objekt [bredd v]
Alla egenskapsvärden utom tagID beskriver det detekterade objektets position, storlek, orientering eller bäring vid det ögonblick då blocket get object data användes. Dessa värden mäts i pixlar eller grader, 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.
Obs! Pixelvärdena är relativa till sensorns koordinatsystem. Se diagrammet i inledningen som referens.
AI Vision-objekt [bredd v]

Exempel
när startad
[Move towards a blue barrel until its width is larger than 100 pixels.]
för alltid
hämta [blå tunna v]-data från AI Vision
om <AI Vision-objekt finns?> då
om <(AI Vision-objekt [bredd v]) [math_less_than v] [100]> då
rör [framåt v]
avsluta
annars
stoppa all rörelse
höjd#
Egenskapen höjd rapporterar höjden på det detekterade objektet i pixlar som ett heltal från 1 till 240.
Obs! Pixelvärdena är relativa till sensorns koordinatsystem. Se diagrammet i inledningen som referens.
AI Vision-objekt [höjd v]

Exempel
när startad
[Move towards a blue barrel until its height is larger than 100 pixels.]
för alltid
hämta [blå tunna v]-data från AI Vision
om <AI Vision-objekt finns?> då
om <(AI Vision-objekt [höjd v]) [math_less_than v] [100]> då
rör [framåt v]
avsluta
annars
stoppa all rörelse
centerX#
Egenskapen centerX rapporterar x-koordinaten för det detekterade objektets centrum i pixlar som ett heltal från 0 till 320.
Obs! Pixelvärdena är relativa till sensorns koordinatsystem. Se diagrammet i inledningen som referens.
AI Vision-objekt [centerX v]

Exempel
när startad
[Turn slowly until a blue barrel is centered in front of the robot.]
ställ in svänghastighet till [30]%
sväng [höger v]
för alltid
hämta [blå tunna v]-data från AI Vision
om <AI Vision-objekt finns?> då
om <[140] [math_less_than v] (AI Vision-objekt [centerX v]) [math_less_than v] [180]> då
stoppa all rörelse
centerY#
Egenskapen centerY rapporterar y-koordinaten för det detekterade objektets centrum i pixlar som ett heltal från 0 till 240.
Obs! Pixelvärdena är relativa till sensorns koordinatsystem. Se diagrammet i inledningen som referens.
AI Vision-objekt [centerY v]

Exempel
när startad
[Move towards a blue barrel until its center y-coordinate is more than 140 pixels.]
för alltid
hämta [blå tunna v]-data från AI Vision
om <AI Vision-objekt finns?> då
om <(AI Vision-objekt [centerY v]) [math_less_than v] [140]> då
rör [framåt v]
avsluta
annars
stoppa all rörelse
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.
Obs! Pixelvärdena är relativa till sensorns koordinatsystem. Se diagrammet i inledningen som referens.
AI Vision-objekt [originX v]

Exempel
när startad
[Display if an orange barrel 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 [orange tunna v]-data från AI Vision
om <AI Vision-objekt finns?> då
om <(AI Vision-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.
Obs! Pixelvärdena är relativa till sensorns koordinatsystem. Se diagrammet i inledningen som referens.
AI Vision-objekt [originY v]

Exempel
när startad
[Display if an orange barrel 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 [orange tunna v]-data från AI Vision
om <AI Vision-objekt finns?> då
om <(AI Vision-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
rotation#
Egenskapen rotation rapporterar orienteringen för det detekterade AprilTag-ID:t eller färgkoden som ett heltal i grader från 0 till 359.
AI Vision-objekt [rotation 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 AI Vision
om <AI Vision-objekt finns?> då
om <[50] [math_less_than v] (AI Vision-objekt [rotation v]) [math_less_than v] [100]> då
rör [höger v]
annars om <[270] [math_less_than v] (AI Vision-objekt [rotation v]) [math_less_than v] [330]> då
rör [vänster v]
annars
stoppa all rörelse
avsluta
annars
stoppa all rörelse
lager#
Egenskapen bearing rapporterar hur långt ett objekt är till vänster eller höger om AI-visionssensorns vy, uttryckt i grader. Värdet 0 betyder att det är centrerat, positiva värden betyder att objektet är till höger och negativa värden betyder att objektet är till vänster.
när startad
[Keep the blue barrel directly in front of the robot.]
ställ in svänghastighet till [40]%
för alltid
hämta [blå tunna v]-data från AI Vision
om <AI Vision-objekt finns?> då
om <(AI Vision-objekt [bäring v]) [math_greater_than v] [5]> då
sväng [höger v]
annars om <(AI Vision-objekt [bäring v]) [math_less_than v] [-5]> då
sväng [vänster v]
annars
stoppa all rörelse
tagg-ID#
Egenskapen tagID rapporterar identifieringsnumret för det upptäckta AprilTag-ID:t som ett heltal.
AI Vision-objekt [tagID v]
Exempel
när startad
[Move forward when AprilTag ID 0 is detected.]
för alltid
hämta [AprilTag ID 0 v]-data från AI Vision
om <AI Vision-objekt finns?> då
rör [framåt v]
avsluta
stoppa all rörelse