AI-synsensor#

Introduktion#

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.

Nedan följer en lista över tillgängliga block:

Åtgärder – Samla in data från AI-visionssensorn för en vald signatur.

  • ta ögonblicksbild – 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 – Få åtkomst till och använd insamlad data.

Åtgärder#

ta en ögonblicksbild#

Stackblocket ta ögonblicksbild 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.

Stackblocket Ta ögonblicksbild.#
ta en [AIVision1 v]-bild av [SELECT_A_SIG v]

Parameter

Beskrivning

anordning

Vilken AI-visionssensor som ska användas, konfigurerad i fönstret Enheter.

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
ta en [AIVision1 v]-bild av [AprilTag IDs v]
om <[AIVIsion1 v]-objekt finns?> då
kör [framåt v] i [10] [mm v] ▶

AI-klassificeringar#

AI-visionssensorn kan upptäcka olika objekt under vissa AI-klassificeringar. Beroende på vilken AI-klassificeringsmodell som valts när AI-visionssensorn konfigurerades i fönstret Enheter kommer olika objekt att upptäckas. 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

Återanmälan till VEX V5 Robotics-tävling

  • Blåblock

  • Rödblock

VEX V5 Robotics Competition High Insatser

  • Mobilmål

  • RödRing

  • BlåRing

VEX V5 Robotics Tävlingsöverstyrning

  • RödBlåPin

  • BlåGulPin

  • RödGulPin

  • GulPin

  • Kopp

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 kan sensorn identifiera objekt med den specifika färgen i sitt synfält.

Färgsignaturer används i blocket ta snapshot 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.]
ta en [AIVision1 v]-bild av [RED_BOX 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 AI-visionssensorn 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.]
ta en [AIVision1 v]-bild av [RED_BLUE 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

anordning

Vilken AI-visionssensor som ska användas, konfigurerad i fönstret Enheter.

punkt

Numret på objektet i datauppsättningen 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
ta en [AIVision1 v]-bild av [AprilTag IDs 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#

Finns det ett AI Vision-objekt?#

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

anordning

Vilken AI-visionssensor som ska användas, konfigurerad i fönstret Enheter.

Exempel

när startad
[Drive forward if an object is detected.]
för alltid
ta en [AIVision1 v]-bild av [AI-klassificeringar v]
om <[AIVision1 v]-objekt finns?> då
kö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 AI-klassificeringen är ett objektbooleskt block.#
<[AIVision1 v]-objekt är [BlueBall v]?>

Parameter

Beskrivning

anordning

Vilken AI-visionssensor som ska användas, konfigurerad i fönstret Enheter.

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
ta en [AIVision1 v]-bild av [AI-klassificeringar 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

AI Vision-objektet är AprilTag#

Det booleska blocket AI Vision-objektet är AprilTag rapporterar 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 upptäckta 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

anordning

Vilken AI-visionssensor som ska användas, konfigurerad i fönstret Enheter.

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
ta en [AIVision1 v]-bild av [AprilTag IDs 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

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 upptäckte att AprilTag-ID:t är ett booleskt block.#
<[AIVision1 v] object is AprilTag ID [1] ?>

Parametrar

Beskrivning

anordning

Vilken AI-visionssensor som ska användas, konfigurerad i fönstret Enheter.

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
ta en [AIVision1 v]-bild av [AprilTag IDs 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

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

anordning

Vilken AI-visionssensor som ska användas, konfigurerad i fönstret Enheter.

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
ta en [AIVision1 v]-bild av [AI-klassificeringar 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 ta snapshot har använts.

Rapporteringsblocket för AI Vision-objektets egenskap.#
([AIVision1 v]-objekt [bredd v])

Alla egenskapsvärden utom tagID och score beskriver det detekterade objektets position och storlek i AI-visionssensorns vy i det ögonblick då blocket ta snapshot användes. Dessa värden mäts i pixlar, baserat på sensorns upplösning på 320 x 240 pixlar.

Parameter

Beskrivning

anordning

Vilken AI-visionssensor som ska användas, konfigurerad i fönstret Enheter.

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
ta en [AIVision1 v]-bild av [AI-klassificeringar v]
om <[AIVision1 v]-objekt finns?> då
om <([AIVision1 v]-objekt [bredd v]) [math_less_than v] [100]> då
kör [framåt v]
annars
stoppa körning
avsluta

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
ta en [AIVision1 v]-bild av [AI-klassificeringar 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]
annars
stoppa körning
avsluta

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
ta en [AIVision1 v]-bild av [AI-klassificeringar 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
ta en [AIVision1 v]-bild av [AI-klassificeringar v]
om <[AIVision1 v]-objekt finns?> då
om <([AIVision1 v]-objekt [centerY v]) [math_less_than v] [140]> då
kör [framåt v]
annars
stoppa körning
avsluta

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
ta en [AIVision1 v]-bild av [RED_BLUE 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
ta en [AIVision1 v]-bild av [AI-klassificeringar 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
ta en [AIVision1 v]-bild av [AI-klassificeringar 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
ta en [AIVision1 v]-bild av [AprilTag IDs 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

göra#

Egenskapen poäng rapporterar hur säker modellen är på den detekterade AI-klassificeringen som en procentandel från 70 % till 100 %.

En lägre poäng innebär att sensorn är mindre säker på det detekterade objektet, medan en högre poäng innebär att sensorn är mer säker.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på tagID.#
([AIVision1 v]-objekt [poäng v])