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.

Werte – Zugriff auf und Nutzung der erfassten Daten.

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.

Der Stapelblock „Objektdaten abrufen“.#
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:

  • AprilTag-IDs
  • KI-Klassifizierungen — Die Verfügbarkeit ändert sich je nach dem im AI Vision Utility konfigurierten Modell.
  • NAME — Eine Farbsignatur oder ein Farbcode, wobei NAME der im AI Vision Utility konfigurierte Name ist

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.

Das KI-Vision-Dienstprogramm zeigt einen angeschlossenen Bildsensor, der zwei farbige Objekte erkennt. Links wird ein Live-Kamerabild mit einem blauen Rahmen links und einem roten Rahmen rechts angezeigt, die jeweils von weißen Begrenzungsrahmen umgeben sind. Schwarze Beschriftungen zeigen deren Namen, Koordinaten und Abmessungen an. Rechts befinden sich die Einstellungen für die Farbsignatur mit Schiebereglern für Farbton und Sättigungsbereich für den roten und den blauen Rahmen. Schaltflächen zum Hinzufügen von Farben, zum Einfrieren des Videos, zum Kopieren und zum Speichern des Bildes befinden sich unten, zusammen mit einer Schaltfläche zum Schließen in der unteren rechten Ecke.

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.

Die Benutzeroberfläche des KI-Vision-Dienstprogramms zeigt einen angeschlossenen Bildsensor, der zwei benachbarte Objekte erkennt: einen blauen Kasten links und einen roten Kasten rechts. Diese sind in einem weißen Begrenzungsrahmen mit der Bezeichnung „BlauRot“ zusammengefasst. Die Erkennungsinformationen umfassen Winkel A: 11° , Koordinaten X: 143, Y: 103 , Breite W: 233 und Höhe H: 108 . Im rechten Bereich werden drei Farbsignaturen angezeigt: „Roter Kasten“, „Blauer Kasten“ und „BlauRot“ mit anpassbaren Farbton- und Sättigungsbereichen. Die Signatur „BlauRot“ kombiniert die Signaturen „Blauer Kasten“ und „Roter Kasten“. Unterhalb des Videobildes befinden sich die Schaltflächen „Video einfrieren , „Bild kopieren“, „Bild speichern“ und „Schließen“.

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.

Der Set AI Vision Objekt-Elementstapelblock.#
setze [AIVision1 v] Objektelement auf (1)

Parameter

Beschreibung

Artikel

Die Nummer des zu verwendenden Elements im Datensatz.

Beispiel

Ein Blockstapel beginnt mit einem „Beim Start“-Block, gefolgt von einem Kommentarblock mit dem Text „Zeige die größte erkannte AprilTag-ID an“. Innerhalb einer Endlosschleife erfasst ein „AI Vision-Snapshot“-Block ein Bild der AprilTag-IDs. Ein „Wenn“-Block prüft, ob ein AI Vision-Objekt existiert. Ist dies der Fall, weist ein „AI Vision-Objekt-Element setzen“-Block die Objektanzahl einer Variablen zu, und ein „Ausgabe“-Block gibt die Tag-ID des erkannten Objekts auf dem Bildschirm aus.#
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.

Das AI Vision-Objekt existiert als Boolescher Block.#
<[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.

Der Set AI Vision Objekt-Elementstapelblock.#
([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.

Der AI Vision Objekt-Eigenschaftsberichtsblock.#
([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.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf Breite eingestellt ist.#
([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.

Der AI Vision-Objekt-Eigenschaftsstapelblock, dessen Parameter auf Höhe eingestellt ist.#
([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.

Der AI Vision-Objekt-Eigenschaftenstapelblock mit dem auf centerX eingestellten Parameter.#
([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.

Der AI Vision-Objekt-Eigenschaftenstapelblock mit dem auf centerY gesetzten Parameter.#
([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.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf Winkel eingestellt ist.#
([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.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf originX gesetzt ist.#
([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.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf originY gesetzt ist.#
([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.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf tagID gesetzt ist.#
([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.

Die KI-Vision-KI-Klassifizierung ist ein Objekt-Boolescher Block.#
<[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.

Das AI Vision-Objekt ist ein boolescher Block namens AprilTag.#
<[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.

Die KI-Vision erkannte, dass die AprilTag-ID ein Boolescher Block ist.#
<[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