KI-Vision-Sensor#
Einführung#
Der VEX IQ AI Vision Sensor kann Objekte, Farben und AprilTag-IDs erkennen und verfolgen. Dadurch kann der Roboter seine Umgebung analysieren, Objekten folgen und auf Basis der erfassten visuellen Daten reagieren.
Die AI Vision-Beispiele sind für die Verwendung mit einem Basebot konzipiert, der mit einem VEX IQ AI Vision-Sensor ausgestattet ist. In diesen Beispielen ist der Sensor mit dem Namen AIVision1 konfiguriert, der in den Blöcken erscheint.
Nachfolgend finden Sie eine Liste aller Blöcke:
Aktionen – Daten vom VEX IQ AI Vision Sensor für eine ausgewählte Signatur erfassen.
get object data — Erfasst Daten für eine bestimmte Signatur, wie z. B. eine konfigurierte Farbe, ein vorab trainiertes Objekt oder eine AprilTag-ID.
Einstellungen – Wählen Sie das Objekt aus, mit dem Sie interagieren möchten.
set AI Vision object item — Wählt ein bestimmtes Objekt aus der Liste der erkannten Objekte aus.
Werte – Zugriff auf und Nutzung der erfassten Daten.
AI Vision Objekt existiert — Meldet, ob ein Objekt erkannt wurde.
AI Vision Objektanzahl — Gibt die Anzahl der erkannten Objekte an.
AI Vision-Objekteigenschaft — Gibt Details wie die folgenden aus:
AI Vision object is? — Prüft, ob ein erkanntes Objekt einer bestimmten Klassifizierung entspricht.
AI Vision object is AprilTag? — Prüft, ob das erkannte Objekt ein AprilTag ist, das einer bestimmten ID entspricht.
AI Vision object is AprilTag ID? — Prüft, ob eine erkannte AprilTag-ID mit einer bestimmten ID übereinstimmt.
Aktionen#
Objektdaten abrufen#
Der get object data-Stackblock filtert Daten aus dem VEX IQ AI Vision Sensor-Frame zu einer einzigen Signatur – einer gespeicherten Beschreibung von etwas, das der Sensor erkennen kann, wie z. B. ein vorab trainiertes Objekt, eine AprilTag-ID oder eine konfigurierte Farbe oder ein Farbcode.
Farben und Farbcodes müssen zuerst im AI Vision Utility konfiguriert werden, bevor sie mit diesem Block verwendet werden können.
Der Datensatz speichert Objekte, sortiert nach ihrer Breite von groß nach klein, beginnend mit Index 0. Auf die Eigenschaften jedes Objekts kann über den Block AI Vision-Objekteigenschaft zugegriffen werden. Wird kein passendes Objekt gefunden, wird ein leerer Datensatz gemeldet.
hole [SELECT_A_SIG v] Daten von [AIVision1 v]
Parameter |
Beschreibung |
|---|---|
Unterschrift |
Filtert den Datensatz so, dass nur Daten der angegebenen Signatur enthalten sind. Verfügbare Signaturen sind:
|
Hinweis: Damit die Optionen für AprilTag-ID oder KI-Klassifizierung angezeigt werden, muss deren Erkennung im AI Vision Utility aktiviert sein.
Beispiel
wenn gestartet
[Drive forward if an AprilTag ID is detected.]
für immer
hole [AprilTag IDs v] Daten von [AIVision1 v]
wenn <[AIVIsion1 v] Objekt vorhanden?> dann
fahre [vorwärts v] für [10] [mm v] ▶
KI-Klassifizierungen#
Der VEX IQ AI Vision Sensor kann verschiedene Objekte anhand bestimmter KI-Klassifizierungen erkennen. Je nachdem, welches KI-Klassifizierungsmodell bei der Konfiguration des VEX IQ AI Vision Sensors im Gerätefenster ausgewählt wird, werden unterschiedliche Objekte erkannt. Folgende Modelle stehen aktuell zur Verfügung:
Klassenzimmergegenstände
Blauer Ball
GreenBall
RedBall
BlueRing
GreenRing
RedRing
BlueCube
GreenCube
RedCube
VEX IQ Robotics Wettbewerb Mix & Match
Strahl
RedPin
BluePin
OrangePin
VEX IQ Robotics Wettbewerb – Jetzt durchstarten
BlueBeanBag
RedBeanBag
Gelber Bohnensack
Farbsignaturen#
Eine Farbsignatur ist eine einzigartige Farbe, die der VEX IQ AI Vision Sensor erkennen kann. Mithilfe dieser Signaturen kann der Sensor Objekte anhand ihrer Farbe erkennen und verfolgen. Sobald eine Farbsignatur konfiguriert ist, kann der Sensor Objekte mit dieser spezifischen Farbe in seinem Sichtfeld identifizieren.
Farbsignaturen werden im Block Objektdaten abrufen verwendet, um farbige Objekte in Echtzeit zu verarbeiten und zu erkennen. Es können bis zu 7 Farbsignaturen gleichzeitig konfiguriert werden.

Beispiel
wenn gestartet
[Display if any objects matching the RED_BOX signature is detected.]
für immer
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
lösche Zeile [1] auf Bildschirm
[Change the signature to any configured Color Signature.]
hole [RED_BOX v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
drucke [Color detected!] auf Bildschirm ▶
Farbcodes#
Ein Farbcode ist ein strukturiertes Muster, das aus zwei bis vier Farbsignaturen in einer bestimmten Reihenfolge besteht. Mithilfe dieser Codes kann der VEX IQ AI Vision Sensor vordefinierte Farbmuster erkennen.
Farbcodes eignen sich besonders gut zur Identifizierung komplexer Objekte, zur Ausrichtung an Spielelementen oder zur Erstellung eindeutiger Markierungen für die autonome Navigation. Es können bis zu 8 Farbcodes gleichzeitig konfiguriert werden.

Beispiel
wenn gestartet
[Display if any objects matching the RED_BLUE code is detected.]
für immer
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
lösche Zeile [1] auf Bildschirm
[Change the signature to any configured Color Code.]
hole [RED_BLUE v] Daten von [AIVision1 v]
wenn <[AIVIsion1 v] Objekt vorhanden?> dann
drucke [Code detected!] auf Bildschirm ▶
Einstellungen#
Set AI Vision Objektelement#
Der set AI Vision object item-Stackblock legt fest, welches Element im Datensatz verwendet werden soll.
setze [AIVision1 v] Objektelement auf (1)
Parameter |
Beschreibung |
|---|---|
Artikel |
Die Nummer des zu verwendenden Elements im Datensatz. |
Beispiel
wenn gestartet
[Display the largest detected AprilTag ID.]
für immer
hole [AprilTag IDs v] Daten von [AIVision1 v]
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
wenn <[AIVision1 v] Objekt vorhanden?> dann
setze [AIVision1 v] Objektelement auf ([AIVision1 v] Objektanzahl)
drucke ([AIVision1 v] Objekt [tagID v]) auf Bildschirm ▶
Werte#
AI Vision-Objekt existiert#
Der Boolesche Block AI Vision object exists gibt an, ob im Datensatz ein Objekt erkannt wurde.
Wahr — Der Datensatz enthält ein erkanntes Objekt.
Falsch — Der Datensatz enthält keine erkannten Objekte.
<[AIVision1 v] Objekt vorhanden?>
Parameter |
Beschreibung |
|---|---|
Dieser Block hat keine Parameter. |
Beispiel
wenn gestartet
[Drive forward if an object is detected.]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
fahre [vorwärts v] für [10] [mm v] ▶
Objektzählung in KI-Vision#
Der AI Vision Objektzählungsblock gibt die Anzahl der erkannten Objekte im Datensatz als ganze Zahl aus.
([AIVision1 v] Objektanzahl)
Parameter |
Beschreibung |
|---|---|
Dieser Block hat keine Parameter. |
Beispiel
wenn gestartet
[Display the total amount of cubes, rings, and balls.]
für immer
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
hole [KI-Klassifikationen v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
drucke ([AIVision1 v] Objektanzahl) auf Bildschirm ▶
Ende
warte [0.5] Sekunden
Eigenschaften eines AI Vision-Objekts#
Es gibt neun Eigenschaften, die zu jedem Objekt (siehe unten) hinzugefügt werden, das nach der Verwendung des Blocks get object data gespeichert wird.
([AIVision1 v] Objekt [Breite v])
Alle Eigenschaftswerte außer tagID beschreiben Position und Größe des erkannten Objekts im Sichtfeld des VEX IQ AI Vision Sensors zum Zeitpunkt der Verwendung des Blocks Objektdaten abrufen. Diese Werte werden in Pixeln gemessen, basierend auf der Auflösung des Sensors von 320 x 240 Pixeln.
Parameter |
Beschreibung |
|---|---|
Eigentum |
Welche Eigenschaft des erkannten Objekts soll verwendet werden? |
Breite#
Die width-Eigenschaft gibt die Breite des erkannten Objekts in Pixeln als ganze Zahl von 1 bis 320 an.
([AIVision1 v] Objekt [Breite v])
Beispiel
wenn gestartet
[Drive towards an object until its width is larger than 100 pixels.]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [Breite v]) [math_less_than v] [100]> dann
fahre [vorwärts v]
Ende
sonst
Fahren stoppen
Höhe#
Die height-Eigenschaft gibt die Höhe des erkannten Objekts in Pixeln als ganze Zahl von 1 bis 240 an.
([AIVision1 v] Objekt [Höhe v])
Beispiel
wenn gestartet
[Drive towards an object until its height is larger than 100 pixels.]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [Höhe v]) [math_less_than v] [100]> dann
fahre [vorwärts v]
Ende
sonst
Fahren stoppen
centerX#
Die centerX-Eigenschaft gibt die x-Koordinate des Mittelpunkts des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 320 an.
([AIVision1 v] Objekt [centerX v])
Beispiel
wenn gestartet
[Turn slowly until an object is centered in front of the robot.]
setze Drehgeschwindigkeit auf [30] [% v]
drehe [rechts v]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <[140] [math_less_than v] ([AIVision1 v] Objekt [centerX v]) [math_less_than v] [180]> dann
Fahren stoppen
ZentrumY#
Die centerY-Eigenschaft gibt die y-Koordinate des Mittelpunkts des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 240 an.
([AIVision1 v] Objekt [centerY v])
Beispiel
wenn gestartet
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [centerY v]) [math_less_than v] [140]> dann
fahre [vorwärts v]
Ende
sonst
Fahren stoppen
Winkel#
Die angle-Eigenschaft gibt die Ausrichtung des erkannten Farbcodes oder der AprilTag-ID als ganze Zahl in Grad von 0 bis 359 an.
([AIVision1 v] Objekt [Winkel v])
Beispiel
wenn gestartet
[Slide left or right depending on how the Color Code is rotated.]
für immer
hole [RED_BLUE v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <[50] [math_less_than v] ([AIVision1 v] Objekt [Winkel v]) [math_less_than v] [100]> dann
fahre [rechts v]
sonst wenn <[270] [math_less_than v] ([AIVision1 v] Objekt [Winkel v]) [math_less_than v] [330]> dann
fahre [links v]
sonst
Fahren stoppen
Ende
sonst
Fahren stoppen
originX#
Die originX-Eigenschaft gibt die x-Koordinate der oberen linken Ecke des Begrenzungsrahmens des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 320 an.
([AIVision1 v] Objekt [originX v])
Beispiel
wenn gestartet
[Display if an object is to the left or the right.]
für immer
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
hole [KI-Klassifikationen v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [originX v]) [math_less_than v] [160]> dann
drucke [To the left!] auf Bildschirm ▶
sonst
drucke [To the right!] auf Bildschirm ▶
Ende
warte [0.5] Sekunden
UrsprungY#
Die originY-Eigenschaft gibt die y-Koordinate der oberen linken Ecke des Begrenzungsrahmens des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 240 an.
([AIVision1 v] Objekt [originY v])
Beispiel
wenn gestartet
[Display if an object is close or far from the robot.]
für immer
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
hole [KI-Klassifikationen v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [originY v]) [math_less_than v] [80]> dann
drucke [Far!] auf Bildschirm ▶
sonst
drucke [Close!] auf Bildschirm ▶
Ende
warte [0.5] Sekunden
tagID#
Die tagID-Eigenschaft gibt die Identifikationsnummer der erkannten AprilTag-ID als ganze Zahl an.
([AIVision1 v] Objekt [tagID v])
Beispiel
wenn gestartet
[Drive forward when AprilTag ID 0 is detected.]
für immer
hole [AprilTag IDs v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [tagID v]) [math_equal v] [0]> dann
fahre [vorwärts v]
sonst
Fahren stoppen
Ende
warte [0.5] Sekunden
Was ist das AI Vision-Objekt?#
Der Block AI Vision object is? meldet einen booleschen Wert, der angibt, ob ein erkanntes Objekt einer bestimmten Klassifizierung entspricht.
Wahr — Das Element im Datensatz ist das spezifische Objekt.
Falsch – Das Element im Datensatz ist nicht das gesuchte Objekt.
<[AIVision1 v] Objekt ist [BlueBall v]?>
Parameter |
Beschreibung |
|---|---|
Objekt |
Welche KI-Klassifizierung soll das Element vergleichen? |
Beispiel
wenn gestartet
[Display if a Blue Cube is detected.]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision1 v]
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <[AIVision1 v] Objekt ist [BlueCube v]?> dann
drucke [Cube detected!] auf Bildschirm ▶
warte [0.5] Sekunden
Ist das AI Vision-Objekt AprilTag?#
Der Block AI Vision object is AprilTag? meldet einen booleschen Wert, der angibt, ob es sich bei dem erkannten Objekt um einen AprilTag handelt, der einer bestimmten ID entspricht.
True — Das erkannte Objekt ist ein AprilTag mit der angegebenen ID.
Falsch — Das erkannte Objekt ist kein AprilTag mit der angegebenen ID.
<[AIVision1 v] Objekt ist AprilTag [0]?>
Parameter |
Beschreibung |
|---|---|
AprilTag ID |
Die ID-Nummer zum Vergleich mit dem erkannten AprilTag. |
Beispiel
wenn gestartet
[Report if AprilTag 3 is detected.]
für immer
Bildschirm löschen
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
hole [AprilTag IDs v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <[AIVision1 v] Objekt ist AprilTag [3]?> dann
drucke [That is 3!] auf Bildschirm ▶
sonst
drucke [That isn't 3!] auf Bildschirm ▶
Ende
Ende
warte [0.1] Sekunden
Ist das AI Vision-Objekt die AprilTag-ID?#
Der Block AI Vision object is AprilTag ID? meldet einen booleschen Wert, der angibt, ob eine erkannte AprilTag-ID mit einer bestimmten ID übereinstimmt.
Richtig – Die AprilTag-ID ist die Nummer.
Falsch – Die AprilTag-ID ist nicht die Nummer.
<[AIVision1 v] object is AprilTag ID [1] ?>
Parameter |
Beschreibung |
|---|---|
AprilTag-ID-Nummer |
Die Nummer, die mit der ermittelten AprilTag-ID-Nummer verglichen werden soll. |
Beispiel:
wenn gestartet
[Report if AprilTag ID 3 is detected.]
für immer
Bildschirm löschen
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
hole [AprilTag IDs v] Daten von [AIVision1 v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <[AIVision1 v] object is AprilTag ID [3] ?> dann
drucke [That is 3!] auf Bildschirm ▶
sonst
drucke [That isn't 3!] auf Bildschirm ▶
Ende
Ende
warte [0.1] Sekunden