Se till att du har färgsignaturer och färgkoder konfigurerade med din AI-visionssensor så att de kan användas med dina block. För att lära dig mer om hur du konfigurerar dem kan du läsa artiklarna nedan:
- Konfigurera färgsignaturer med AI Vision Signature i VEXcode EXP
- Konfigurera färgkoder med AI Vision Signature i VEXcode EXP
AI-visionssensorn kan även upptäcka AI-klassificeringar och AprilTags. För att lära dig hur du aktiverar dessa detekteringslägen, gå hit:
- AI-klassificeringar med AI-visionssensorn i VEXcode EXP
- AprilTags med AI-visionssensorn i VEXcode EXP
Ta en ögonblicksbild
BlocketTa ögonblicksbild tar en bild av vad AI-visionssensorn ser för närvarande och hämtar data från den ögonblicksbilden som sedan kan användas i ett projekt. När en ögonblicksbild tas måste du ange vilken typ av objekt AI-visionssensorn ska samla in data om:
- Färgsignatur
- Färgkod
- AI-klassificeringar
- AprilTaggar
Att ta en ögonblicksbild skapar en array av alla detekterade objekten som du angav. Om du till exempel ville detektera en "röd"färgsignatur, och AI-visionssensorn detekterade 3 olika röda objekt, skulle data från alla tre läggas in i matrisen.
För mer information om hur man anger mellan olika objekt, gå till avsnittet "Ange objektpost" i den här artikeln.
I det här exemplet kommer den bara att detektera objekt som matchar dess konfigurerade "Blå" Färgsignatur och inget annat.
Data hämtad från en ögonblicksbild
Tänk på att AI-visionssensorn kommer att använda sin senast tagna ögonblicksbild för alla block som kommer efteråt. För att säkerställa att du alltid får den mest aktuella informationen från din AI-visionssensor, ta om din ögonblicksbild varje gång du vill hämta data från den.
Upplösning
Att förstå AI-visionssensorns upplösning är avgörande för korrekt datatolkning. Sensorn har en upplösning på 320x240 pixlar, med det exakta centrumet vid koordinaterna (160, 120).
X-koordinater mindre än 160 motsvarar den vänstra halvan av sensorns synfält, medan de större än 160 representerar den högra halvan. På liknande sätt anger Y-koordinater mindre än 120 den övre halvan av vyn, och de större än 120 representerar den nedre halvan
Gå till Förstå data i AI Vision Utility i VEXcode EXP för mer information om hur objekt mäts med AI Vision Sensor.
Bredd och höjd
Detta är bredden eller höjden på det detekterade objektet i pixlar.
Bredd- och höjdmåtten hjälper till att identifiera olika objekt. Till exempel kommer en Buckyball att ha en större höjd än en ring.
Bredd och höjd anger också ett objekts avstånd från AI-visionssensorn. Mindre mått betyder vanligtvis att objektet är längre bort, medan större mått antyder att det är närmare.
I det här exemplet används objektets bredd för navigering. Roboten kommer att närma sig objektet tills bredden har nått en viss storlek innan den stannar.
CentrumX och Centrum Y
Detta är centrumkoordinaterna för det detekterade objektet i pixlar.
CenterX- och CenterY-koordinater hjälper till med navigering och positionering. AI-visionssensorn har en upplösning på 320 x 240 pixlar.
Du kan se att ett objekt närmare AI-visionssensorn kommer att ha en lägre CenterY-koordinat än ett objekt som är längre bort.
I det här exemplet, eftersom AI-visionssensorns vy är (160, 120), kommer roboten att svänga åt höger tills ett detekterat objekts centrumX-koordinat är större än 150 pixlar, men mindre än 170 pixlar.
Vinkel
Vinkel är en egenskap som endast är tillgänglig förfärgkoder ochAprilTags. Detta representerar om den detekteradeFärgkodeller AprilTag är orienterad annorlunda.
Du kan se om roboten är orienterad annorlunda i förhållande tillFärgkod ellerAprilTag och fatta navigeringsbeslut utifrån det.
Om till exempel en färgkod inte detekteras i rätt vinkel, kanske objektet den representerar inte kan plockas upp ordentligt av roboten.
UrsprungX och UrsprungY
UrsprungX och UrsprungY är koordinaten i det övre vänstra hörnet av det detekterade objektet i pixlar.
OriginX- och OriginY-koordinaterna hjälper till med navigering och positionering. Genom att kombinera denna koordinat med objektets bredd och höjd kan du bestämma storleken på objektets avgränsningsram. Detta kan hjälpa till med att spåra rörliga objekt eller navigera mellan objekt.
I det här exemplet kommer en rektangel att ritas på hjärnan med hjälp av de exakta koordinaterna för dess origo, bredd och höjd.
tagg-ID
TagID är endast tillgängligt förAprilTags. Detta är ID-numret för den angivnaAprilTag.
Att identifiera specifika AprilTags möjliggör selektiv navigering. Du kan programmera din robot att röra sig mot vissa taggar medan den ignorerar andra, och effektivt använda dem som vägvisare för automatiserad navigering.
Göra
Egenskapen poäng används vid detektering avAI-klassificeringar med AI-visionssensorn.
Konfidenspoängen visar hur säker AI-visionssensorn är på sin detektering. I den här bilden är den 99 % säker på att identifiera dessa fyra objekts AI-klassificeringar. Du kan använda den här poängen för att säkerställa att din robot bara fokuserar på mycket säkra detektioner.
Ange objektobjekt
När ett objekt detekteras av AI-visionssensorn placeras det i en array. Som standard hämtar AI-visionssensorn data från det första objektet i arrayen, eller objektet med index 1. Om din AI-visionssensor bara har upptäckt ett objekt, kommer det objektet att väljas som standard.
När din AI-visionssensor har upptäckt flera objekt samtidigt måste du använda blocketAnge objektpost för att ange vilket objekt du vill hämta data från.
När flera objekt detekteras av AI-visionssensorn ordnas de i matrisen från störst till minst. Det betyder att det största detekterade objektet alltid kommer att ställas in på objektindex 1, och det minsta objektet alltid kommer att ställas in på det högsta numret.
I det här exemplet har två objekt detekterats med färgsignaturen "Blå". Båda kommer att placeras i arrayen när blocketTake Snapshot används.
Här skulle objektet längst fram bli objektindex 1, eftersom det är det största objektet, och det minsta objektet skulle bli objektindex 2.
Objektet finns
Innan du hämtar data från en ögonblicksbild är det viktigt kontrollera att AI-visionssensorn har upptäckt alla objekt från den ögonblicksbilden först. Det är här blocketObjektet finns kommer in i bilden.
Detta block returnerar ett värde påTrue ellerFalse för huruvida den senast tagna ögonblicksbilden har några objekt detekterade.
Detta block böralltid användas för att säkerställa att du inte försöker hämta data från en potentiellt tom ögonblicksbild.
Till exempel, här kommer roboten ständigt att ta ögonblicksbilder med AI-visionssensorn. Om den identifierar vilket objekt som med den "blå" färgsignaturen, kommer den att köra framåt.
Om någon ögonblicksbild inte har färgsignaturen "Blå" , kommer roboten att sluta röra sig.
Antal objekt
Genom att använda blocket Objektantal kan du se hur många objekt med en specifik färgssignatur AI-visionssensorn kan se i sin senaste ögonblicksbild.
Här ser vi att AI-visionssensorn har den konfigurerade färgsignaturen "Blå", och detekterar två objekt.
I den här koden skulle AI-visionssensorn ta en ögonblicksbild och skriva ut "2" på VEXcode-konsolen, eftersom den bara detekterar två "blå" färgsignaturer.
Objekt
BlocketObjekt låter dig rapportera egenskapen för ditt angivna objekt. Detta låter dig använda all tillgänglig data som hämtats från den senast tagna ögonblicksbilden.
Objektegenskaper som kan hämtas från tagna ögonblicksbilder är:
- bredd
- höjd
- centerX
- centerY
- vinkel
- ursprungX
- ursprungY
- tagg-ID
- göra
Läs avsnittet "Data hämtad från ögonblicksbild" i den här artikeln för mer information om dessa egenskaper.
Upptäckt AprilTag är
Detected AprilTag är blocket är endast tillgängligt närAprilTag-detekteringsläget är aktiverat.
Detta block kommer att rapportera Sant eller Falskt beroende på om det angivna objektet är en viss AprilTag.
När flera AprilTags detekteras i en enda ögonblicksbild, ordnas de i arrayen baserat på deras identifierade ID, inte efter storlek
I den här bilden detekteras tre AprilTags med ID:na 0, 3 och 9. De kommer att organiseras i stigande ordning efter deras ID i arrayen. Objektet vid index 1 skulle motsvara AprilTag med ID 0, vid index 2 AprilTag med ID 3 och vid index 3 AprilTag med ID 9.
AI-klassificering är
AI-klassificering är blocket är endast tillgängligt närAI-klassificeringsdetekteringsläge är aktiverat.
Detta block kommer att rapportera Sant eller Falskt beroende på om det angivna objektet är en viss AI-klassificering.
Vilka AI-klassificeringar som kan detekteras av AI-visionssensorn varierar beroende på vilken modell du använder. För mer information om vilka AI-klassificeringar som finns tillgängliga och hur du aktiverar deras detektering med AI-visionssensorn, läs den här artikeln.