Zorg ervoor dat u kleurhandtekeningen en kleurcodes hebt geconfigureerd met uw AI Vision Sensor, zodat deze met uw blokken kunnen worden gebruikt. Voor meer informatie over hoe u deze kunt configureren, kunt u de onderstaande artikelen lezen:
- Kleurhandtekeningen configureren met de AI Vision Signature in VEXcode V5
- Kleurcodes configureren met de AI Vision Signature in VEXcode V5
De AI Vision Sensor kan ook AI-classificaties en AprilTags detecteren. Voor meer informatie over het inschakelen van deze detectiemodi klikt u hier:
- AI-classificaties met de AI Vision Sensor in VEXcode V5
- AprilTags met de AI Vision Sensor in VEXcode V5
Maak snapshot
Met het blokTake Snapshot wordt een foto gemaakt van wat de AI Vision Sensor op dat moment ziet en worden er gegevens uit die momentopname gehaald die vervolgens in een project kunnen worden gebruikt. Wanneer u een momentopname maakt, moet u opgeven van welk type object de AI Vision Sensor gegevens moet verzamelen:
- Kleur handtekening
- Kleurcode
- AI-classificaties
- aprilTags
Wanneer u een momentopname maakt, wordt er een matrix gemaakt van alle gedetecteerde objecten die u hebt opgegeven. Als u bijvoorbeeld een "rode"kleursignatuurwilt detecteren en de AI Vision Sensor detecteert 3 verschillende rode objecten, worden de gegevens van alle drie in de matrix geplaatst.
Ga naar de sectie "Objectitem instellen" in dit artikel voor meer informatie over het opgeven van verschillende objecten.
In dit voorbeeld worden alleen objecten gedetecteerd die overeenkomen met de geconfigureerde kleurhandtekening “Blauw” en niets anders.
Gegevens uit een momentopname
Houd er rekening mee dat de AI Vision Sensor de laatst gemaakte momentopname gebruikt voor alle blokken die daarna komen. Om er zeker van te zijn dat u altijd de meest actuele informatie van uw AI Vision Sensor ontvangt, maakt u elke keer dat u er gegevens uit wilt halen, een nieuwe momentopname.
Oplossing
Voor een nauwkeurige interpretatie van gegevens is het van cruciaal belang dat u de resolutie van de AI Vision Sensor begrijpt. De sensor heeft een resolutie van 320x240 pixels, met het exacte middelpunt op de coördinaten (160, 120).
X-coördinaten kleiner dan 160 komen overeen met de linkerhelft van het gezichtsveld van de sensor, terwijl X-coördinaten groter dan 160 overeenkomen met de rechterhelft. Op dezelfde manier geven Y-coördinaten kleiner dan 120 de bovenste helft van de weergave aan, en Y-coördinaten groter dan 120 de onderste helft.
Ga naar De gegevens in het AI Vision Utility in VEXcode V5 begrijpen voor meer informatie over hoe objecten worden gemeten met de AI Vision Sensor.
Breedte en hoogte
Dit is de breedte of hoogte van het gedetecteerde object in pixels.
De breedte- en hoogtematen helpen bij het identificeren van verschillende objecten. Een Buckyball is bijvoorbeeld hoger dan een Ring.
De breedte en hoogte geven ook de afstand van een object tot de AI Vision Sensor aan. Kleinere metingen betekenen meestal dat het object verder weg is, terwijl grotere metingen aangeven dat het dichterbij is.
In dit voorbeeld wordt de breedte van het object gebruikt voor navigatie. De robot nadert het object totdat de breedte een bepaalde grootte heeft bereikt, waarna hij stopt.
CenterX en Center Y
Dit zijn de middelpuntcoördinaten van het gedetecteerde object in pixels.
CenterX- en CenterY-coördinaten helpen bij navigatie en positionering. De AI Vision Sensor heeft een resolutie van 320 x 240 pixels.
Zoals u ziet, heeft een object dat zich dichter bij de AI Vision Sensor bevindt, een lagere CenterY-coördinaat dan een object dat zich verder weg bevindt.
In dit voorbeeld draait de robot naar rechts, omdat het middelpunt van het gezichtsveld van de AI Vision Sensor (160, 120) is, totdat de centerX-coördinaat van een gedetecteerd object groter is dan 150 pixels, maar kleiner dan 170 pixels.
Hoek
Hoek is een eigenschap die alleen beschikbaar is voorkleurcodes enAprilTags. Dit geeft aan of de gedetecteerdeKleurcodeof AprilTag anders is georiënteerd.
U kunt zien of de robot anders is georiënteerd ten opzichte van dekleurcode ofAprilTag en op basis daarvan navigatiebeslissingen nemen.
Als bijvoorbeeld eenkleurcode niet onder de juiste hoek wordt gedetecteerd, kan het zijn dat het object dat het vertegenwoordigt, niet goed door de robot kan worden opgepakt.
OriginX en OriginY
OriginX en OriginY zijn de coördinaten in de linkerbovenhoek van het gedetecteerde object in pixels.
OriginX- en OriginY-coördinaten helpen bij navigatie en positionering. Door deze coördinaat te combineren met de breedte en hoogte van het object, kunt u de grootte van de omsluitende doos van het object bepalen. Dit kan helpen bij het volgen van bewegende objecten of bij het navigeren tussen objecten.
In dit voorbeeld wordt een rechthoek op de Brain getekend met behulp van de exacte coördinaten van de oorsprong, breedte en hoogte.
tag-ID
De tagID is alleen beschikbaar voorAprilTags. Dit is het ID-nummer voor de opgegevenAprilTag.
Door specifieke AprilTags te identificeren, is selectieve navigatie mogelijk. U kunt uw robot programmeren om naar bepaalde tags te rijden en andere te negeren. Zo kunt u de tags gebruiken als wegwijzers voor automatische navigatie.
Score
De score-eigenschap wordt gebruikt bij het detecteren vanAI-classificaties met de AI Vision-sensor.
De betrouwbaarheidsscore geeft aan hoe zeker de AI Vision Sensor is van de detectie. In deze afbeelding is 99% zekerheid aanwezig dat de AI-classificaties van deze vier objecten worden geïdentificeerd. Met deze score kunt u ervoor zorgen dat uw robot zich alleen richt op detecties die zeer betrouwbaar zijn.
Objectitem instellen
Wanneer de AI Vision Sensor een object detecteert, wordt het in een array geplaatst. Standaard haalt de AI Vision Sensor gegevens op uit het eerste object in de matrix of uit het object met index 1. Als uw AI Vision Sensor slechts één object heeft gedetecteerd, wordt dat object standaard geselecteerd.
Wanneer uw AI Vision Sensor echter meerdere objecten tegelijk heeft gedetecteerd, moet u het blokSet Object Item gebruiken om op te geven van welk object u gegevens wilt ophalen.
Wanneer de AI Vision Sensor meerdere objecten detecteert, worden deze in de matrix gerangschikt van groot naar klein. Dat betekent dat het grootste gedetecteerde object altijd op objectindex 1 wordt ingesteld en het kleinste object altijd op het hoogste nummer.
In dit voorbeeld zijn twee objecten gedetecteerd met de kleursignatuur, "Blauw". Ze worden beide in de array geplaatst wanneer het blokTake Snapshot wordt gebruikt.
In dit geval zou het object op de voorgrond objectindex 1 krijgen, omdat dit het grootste object is. Het kleinste object zou objectindex 2 krijgen.
Object bestaat
Voordat u gegevens uit een momentopname haalt, is het belangrijk omte of de AI Vision Sensor eerst objecten uit die momentopname heeft gedetecteerd. Hier komt het blokObject Exists in het spel.
Dit blok retourneert de waardeTrue ofFalse als er objecten zijn gedetecteerd in de laatst genomen momentopname.
Dit blok moetworden gebruikt om ervoor te dat u niet probeert gegevens te halen uit een mogelijk lege momentopname.
Zo maakt de robot bijvoorbeeld voortdurend snapshots met de AI Vision Sensor. Als hij object met de “Blauwe” kleurensignatuuridentificeert, zal hij vooruit rijden.
Als een momentopname niet de “Blauwe” -kleursignatuurheeft, stopt de robot met bewegen.
Aantal objecten
Door het blok Objectaantal te gebruiken, kunt u zien hoeveel objecten van een specifieke kleurensignatuur de AI Vision Sensor kan zien in de laatste momentopname.
Hier zien we dat de AI Vision Sensor de geconfigureerde kleursignatuur "Blauw" heeft en twee objecten detecteert.
In deze code zou de AI Vision Sensor een momentopname maken en “2” afdrukken op de VEXcode-console, omdat deze slechts twee “Blauwe” -kleurhandtekeningendetecteert.
Voorwerp
Met het blokObject kunt u de eigenschap van het door u opgegeven object rapporteren. Hiermee kunt u alle beschikbare gegevens uit de meest recent gemaakte momentopname gebruiken.
Objecteigenschappen die uit gemaakte momentopnamen kunnen worden gehaald, zijn:
- breedte
- hoogte
- centrumX
- centrumY
- hoek
- oorsprongX
- oorsprongY
- tag-ID
- score
Lees het gedeelte 'Gegevens uit momentopname' van dit artikel voor meer informatie over deze eigenschappen.
Gedetecteerd AprilTag is
Het blokgedetecteerde AprilTag is is alleen beschikbaar wanneer deAprilTag-detectiemodus is ingeschakeld.
Dit blok rapporteert True of False, afhankelijk van of het opgegeven object een bepaalde AprilTag is.
Wanneer er meerdere AprilTags in één momentopname worden gedetecteerd, worden ze in de matrix gerangschikt op basis van hun geïdentificeerde ID, niet op grootte.
In deze afbeelding worden drie AprilTags gedetecteerd met ID's 0, 3 en 9. Ze worden in oplopende volgorde van hun ID in de matrix georganiseerd. Het object op index 1 zou overeenkomen met de AprilTag met ID 0, op index 2 met de AprilTag met ID 3 en op index 3 met de AprilTag met ID 9.
AI-classificatie is
DeAI-classificatie is blok is alleen beschikbaar wanneer deAI-classificatiedetectiemodus is ingeschakeld.
Dit blok rapporteert True of False, afhankelijk van of het opgegeven object een bepaalde AI-classificatie is.
Welke AI-classificaties door de AI Vision Sensor kunnen worden gedetecteerd, hangt af van het model dat u gebruikt. Lees dit artikel voor meer informatie over welke AI-classificaties beschikbaar zijn en hoe u detectie ervan kunt inschakelen met de AI Vision Sensor.