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.

Värden — Åtkomst till och använd insamlad data.

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

Blocket Hämta objektdatastacken.#
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:

  • AprilTag ID:n
  • AI-klassificeringar — Tillgängligheten ändras beroende på vilken modell som konfigurerats i AI Vision Utility.
  • NAMN — A Färgsignatur eller Färgkod där NAMN är namnet som konfigurerats i AI Vision Utility

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.

AI Vision Utility som visar en ansluten visionssensor som detekterar två färgade objekt. Vänster sida visar en live-kameraström med en blå ruta till vänster och en röd ruta till höger, var och en markerad med vita avgränsningsrutor. Svarta etiketter visar deras respektive namn, koordinater och dimensioner. Höger sida innehåller inställningar för färgsignatur, med skjutreglage för nyans och mättnadsområde för både den röda och blå rutan. Knappar för att lägga till färger, frysa video, kopiera och spara bilden finns längst ner, tillsammans med en stängningsknapp i det nedre högra hörnet.

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.

AI Vision Utility-gränssnittet visar en ansluten visionssensor som detekterar två intilliggande objekt, en blå ruta till vänster och en röd ruta till höger, grupperade i en enda vit avgränsningsruta märkt BlueRed. Detekteringsinformationen inkluderar vinkel (A:11°), koordinater (X:143, Y:103), bredd (B:233) och höjd (H:108). På den högra panelen listas tre färgsignaturer: Red_Box, Blue_Box och BlueRed, med justerbara nyans- och mättnadsområden. BlueRed-signaturen kombinerar Blue_Box och Red_Box. Nedanför videoflödet finns knappar märkta Frys video, Kopiera bild, Spara bild och Stäng.

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.

Objektstackblocket Set AI Vision-objektet.#
ställ in [AIVision1 v]-objektpost till (1)

Parametrar

Beskrivning

punkt

Numret på objektet i datasetet som ska användas.

Exempel

En stapel av block som börjar med ett “when started”-block, följt av ett kommentarblock som läser “Visa det största detekterade AprilTag-ID:t”. Inom en forever-loop tar ett “take a AI Vision snapshot”-block en bild av AprilTag-ID:n. Ett “if”-block kontrollerar om ett AI Vision-objekt finns. Om värdet är sant tilldelar ett “set AI Vision object item”-block objektantalet till en variabel, och ett “print”-block visar tagg-ID:t för det detekterade objektet på skärmen.#
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.

AI Vision-objektet finns i ett booleskt block.#
<[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.

Objektstackblocket Set AI Vision-objektet.#
(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.

Rapporteringsblocket för AI Vision-objektets egenskap.#
([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.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på width.#
([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.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på höjd.#
([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.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på centerX.#
([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.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på centerY.#
([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.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på vinkel.#
([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.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på originX.#
([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.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på originY.#
([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.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på tagID.#
([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.

AI Vision AI-klassificeringen är ett objektbooleskt block.#
<[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.

AI Vision-objektet är ett AprilTag Boolean-block.#
<[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.

AI Vision upptäckte att AprilTag-ID:t är ett booleskt block.#
<[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