Czujnik wizyjny AI#
Wstęp#
Czujnik wizyjny AI VEX IQ może wykrywać i śledzić obiekty, kolory oraz identyfikatory AprilTag. Dzięki temu robot może analizować otoczenie, śledzić obiekty i reagować na podstawie wykrytych danych wizualnych.
Przykłady AI Vision są przeznaczone do użytku z Basebotem wyposażonym w czujnik AI Vision VEX IQ. W tych przykładach czujnik jest skonfigurowany pod nazwą AIVision1, która pojawia się w blokach.
Poniżej znajduje się lista wszystkich bloków:
Akcje — przechwytywanie danych z czujnika wizyjnego AI VEX IQ dla wybranego podpisu.
pobierz dane obiektu — Przechwytuje dane dla określonego podpisu, takiego jak skonfigurowany kolor, wstępnie wyszkolony obiekt lub identyfikator AprilTag.
Ustawienia — Wybierz obiekt, z którym chcesz wejść w interakcję.
ustaw obiekt AI Vision — Wybiera określony obiekt z listy wykrytych obiektów.
Wartości — dostęp do przechwyconych danych i korzystanie z nich.
Obiekt AI Vision istnieje — Raportuje, czy obiekt został wykryty.
Liczba obiektów AI Vision — Raportuje liczbę wykrytych obiektów.
Właściwość obiektu AI Vision — Raportuje szczegóły, takie jak:
Obiekt AI Vision to? — Sprawdza, czy wykryty obiekt pasuje do określonej klasyfikacji.
Obiekt AI Vision to AprilTag? — Sprawdza, czy wykryty obiekt jest obiektem AprilTag pasującym do określonego identyfikatora.
Obiekt AI Vision ma identyfikator AprilTag? — sprawdza, czy wykryte identyfikatory AprilTag pasują do określonych identyfikatorów.
Akcje#
pobierz dane obiektu#
Blok stosu pobierz dane obiektu filtruje dane z ramki czujnika wizyjnego VEX IQ AI do pojedynczego podpisu — zapisanego opisu czegoś, co czujnik może rozpoznać, na przykład wstępnie wyszkolonego obiektu, identyfikatora AprilTag lub skonfigurowanego koloru lub kodu koloru.
Aby móc używać kolorów i kodów kolorów z tym blokiem, należy je najpierw skonfigurować w narzędziu AI Vision Utility.
Zbiór danych przechowuje obiekty uporządkowane od największego do najmniejszego według szerokości, zaczynając od indeksu 0. Dostęp do właściwości każdego obiektu można uzyskać za pomocą bloku właściwość obiektu AI Vision. Jeśli nie wykryto żadnych pasujących obiektów, zgłaszany jest pusty zbiór danych.
pobierz dane [SELECT_A_SIG v] z [AIVision1 v]
Parametr |
Opis |
|---|---|
podpis |
Filtruje zbiór danych, aby zawierał tylko dane o podanym podpisie. Dostępne są następujące podpisy:
|
Uwaga: Aby opcje AprilTag ID lub klasyfikacji AI były widoczne, ich wykrywanie musi być włączone w narzędziu AI Vision Utility.
Przykład
gdy uruchomiony
[Drive forward if an AprilTag ID is detected.]
zawsze
pobierz dane [AprilTag IDs v] z [AIVision1 v]
jeśli <obiekt [AIVIsion1 v] istnieje?> to
jedź [do przodu v] przez [10] [mm v] ▶
Klasyfikacje AI#
Czujnik wizyjny AI VEX IQ może wykrywać różne obiekty w ramach określonych klasyfikacji AI. W zależności od modelu klasyfikacji AI wybranego podczas konfiguracji czujnika wizyjnego AI VEX IQ w oknie Urządzenia, wykrywane będą różne obiekty. Obecnie dostępne modele to:
Obiekty klasowe
BlueBall
GreenBall
Czerwona Piłka
Niebieski pierścień
Zielony Pierścień
Czerwony Pierścień
BlueCube
GreenCube
RedCube
Konkurs robotyki VEX IQ Mix & Match
Belka
RedPin
BluePin
Pomarańczowa Pin
Wzrost poziomu konkursu robotyki VEX IQ
Niebieska Torba Fasoli
Czerwona Torba Fasoli
Żółta Worek Fasoli
Sygnatury kolorów#
Sygnatura koloru to unikalny kolor, który rozpoznaje czujnik wizyjny VEX IQ AI. Sygnatury te pozwalają czujnikowi wykrywać i śledzić obiekty na podstawie ich koloru. Po skonfigurowaniu Sygnatury koloru czujnik może identyfikować obiekty o tym konkretnym kolorze w swoim polu widzenia.
Sygnatury kolorów są używane w bloku pobierz dane obiektu do przetwarzania i wykrywania kolorowych obiektów w czasie rzeczywistym. Jednocześnie można skonfigurować do 7 sygnatur kolorów.

Przykład
gdy uruchomiony
[Display if any objects matching the RED_BOX signature is detected.]
zawsze
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
wyczyść wiersz [1] na ekranie
[Change the signature to any configured Color Signature.]
pobierz dane [RED_BOX v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
wydrukuj [Color detected!] na ekranie ▶
Kody kolorów#
Kod koloru to uporządkowany wzór składający się z 2 do 4 sygnatur kolorów ułożonych w określonej kolejności. Kody te pozwalają czujnikowi wizyjnemu VEX IQ AI rozpoznawać predefiniowane wzorce kolorów.
Kody kolorów są szczególnie przydatne do identyfikacji złożonych obiektów, dopasowania do elementów gry lub tworzenia unikalnych znaczników do autonomicznej nawigacji. Jednocześnie można skonfigurować do 8 kodów kolorów.

Przykład
gdy uruchomiony
[Display if any objects matching the RED_BLUE code is detected.]
zawsze
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
wyczyść wiersz [1] na ekranie
[Change the signature to any configured Color Code.]
pobierz dane [RED_BLUE v] z [AIVision1 v]
jeśli <obiekt [AIVIsion1 v] istnieje?> to
wydrukuj [Code detected!] na ekranie ▶
Ustawienia#
ustaw obiekt AI Vision#
Blok stosu ustaw element obiektu AI Vision ustawia, który element w zestawie danych ma zostać użyty.
ustaw element obiektu [AIVision1 v] na (1)
Parametry |
Opis |
|---|---|
przedmiot |
Numer elementu w zestawie danych, który ma zostać użyty. |
Przykład
gdy uruchomiony
[Display the largest detected AprilTag ID.]
zawsze
pobierz dane [AprilTag IDs v] z [AIVision1 v]
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
jeśli <obiekt [AIVision1 v] istnieje?> to
ustaw element obiektu [AIVision1 v] na (liczba obiektów [AIVision1 v])
wydrukuj (obiekt [AIVision1 v] [tagID v]) na ekranie ▶
Wartości#
Obiekt AI Vision istnieje#
Blok logiczny Obiekt AI Vision istnieje informuje, czy w zestawie danych wykryto jakikolwiek obiekt.
Prawda — Zestaw danych zawiera wykryty obiekt.
Fałsz — Zestaw danych nie zawiera żadnych wykrytych obiektów.
<obiekt [AIVision1 v] istnieje?>
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
gdy uruchomiony
[Drive forward if an object is detected.]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jedź [do przodu v] przez [10] [mm v] ▶
Liczba obiektów AI Vision#
Blok reportera AI Vision object count raportuje liczbę wykrytych obiektów w zestawie danych jako liczbę całkowitą.
(liczba obiektów [AIVision1 v])
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
gdy uruchomiony
[Display the total amount of cubes, rings, and balls.]
zawsze
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
pobierz dane [Klasyfikacje AI v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
wydrukuj (liczba obiektów [AIVision1 v]) na ekranie ▶
koniec
czekaj [0.5] sekund
Właściwość obiektu AI Vision#
Każdy obiekt (pokazany poniżej) zawiera dziewięć właściwości, które są przechowywane po użyciu bloku get object data.
(obiekt [AIVision1 v] [szerokość v])
Wszystkie wartości właściwości, z wyjątkiem tagID, opisują położenie i rozmiar wykrytego obiektu w polu widzenia czujnika wizyjnego VEX IQ AI w momencie użycia bloku get object data. Wartości te są mierzone w pikselach, w oparciu o rozdzielczość czujnika 320 na 240 pikseli.
Parametr |
Opis |
|---|---|
nieruchomość |
Którą właściwość wykrytego obiektu użyć: |
szerokość#
Właściwość szerokość raportuje szerokość wykrytego obiektu w pikselach jako liczbę całkowitą od 1 do 320.
(obiekt [AIVision1 v] [szerokość v])
Przykład
gdy uruchomiony
[Drive towards an object until its width is larger than 100 pixels.]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [szerokość v]) [math_less_than v] [100]> to
jedź [do przodu v]
koniec
w przeciwnym razie
zatrzymaj jazdę
wysokość#
Właściwość height raportuje wysokość wykrytego obiektu w pikselach jako liczbę całkowitą od 1 do 240.
(obiekt [AIVision1 v] [wysokość v])
Przykład
gdy uruchomiony
[Drive towards an object until its height is larger than 100 pixels.]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [wysokość v]) [math_less_than v] [100]> to
jedź [do przodu v]
koniec
w przeciwnym razie
zatrzymaj jazdę
środekX#
Właściwość centerX raportuje współrzędną x środka wykrytego obiektu w pikselach jako liczbę całkowitą od 0 do 320.
(obiekt [AIVision1 v] [centerX v])
Przykład
gdy uruchomiony
[Turn slowly until an object is centered in front of the robot.]
ustaw prędkość obrotu na [30] [% v]
skręć [w prawo v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <[140] [math_less_than v] (obiekt [AIVision1 v] [centerX v]) [math_less_than v] [180]> to
zatrzymaj jazdę
środek Y#
Właściwość centerY raportuje współrzędną y środka wykrytego obiektu w pikselach jako liczbę całkowitą od 0 do 240.
(obiekt [AIVision1 v] [centerY v])
Przykład
gdy uruchomiony
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [centerY v]) [math_less_than v] [140]> to
jedź [do przodu v]
koniec
w przeciwnym razie
zatrzymaj jazdę
kąt#
Właściwość angle raportuje orientację wykrytego kodu koloru lub identyfikatora AprilTag jako liczbę całkowitą w stopniach od 0 do 359.
(obiekt [AIVision1 v] [kąt v])
Przykład
gdy uruchomiony
[Slide left or right depending on how the Color Code is rotated.]
zawsze
pobierz dane [RED_BLUE v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <[50] [math_less_than v] (obiekt [AIVision1 v] [kąt v]) [math_less_than v] [100]> to
jedź [w prawo v]
w przeciwnym razie jeśli <[270] [math_less_than v] (obiekt [AIVision1 v] [kąt v]) [math_less_than v] [330]> to
jedź [w lewo v]
w przeciwnym razie
zatrzymaj jazdę
koniec
w przeciwnym razie
zatrzymaj jazdę
pochodzenieX#
Właściwość originX raportuje współrzędną x lewego górnego rogu pola ograniczającego wykryty obiekt w pikselach jako liczbę całkowitą od 0 do 320.
(obiekt [AIVision1 v] [originX v])
Przykład
gdy uruchomiony
[Display if an object is to the left or the right.]
zawsze
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
pobierz dane [Klasyfikacje AI v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [originX v]) [math_less_than v] [160]> to
wydrukuj [To the left!] na ekranie ▶
w przeciwnym razie
wydrukuj [To the right!] na ekranie ▶
koniec
czekaj [0.5] sekund
pochodzenieY#
Właściwość originY raportuje współrzędną y lewego górnego rogu pola ograniczającego wykryty obiekt w pikselach jako liczbę całkowitą od 0 do 240.
(obiekt [AIVision1 v] [originY v])
Przykład
gdy uruchomiony
[Display if an object is close or far from the robot.]
zawsze
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
pobierz dane [Klasyfikacje AI v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [originY v]) [math_less_than v] [80]> to
wydrukuj [Far!] na ekranie ▶
w przeciwnym razie
wydrukuj [Close!] na ekranie ▶
koniec
czekaj [0.5] sekund
identyfikator tagu#
Właściwość tagID raportuje numer identyfikacyjny wykrytego identyfikatora AprilTag jako liczbę całkowitą.
(obiekt [AIVision1 v] [tagID v])
Przykład
gdy uruchomiony
[Drive forward when AprilTag ID 0 is detected.]
zawsze
pobierz dane [AprilTag IDs v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [tagID v]) [math_equal v] [0]> to
jedź [do przodu v]
w przeciwnym razie
zatrzymaj jazdę
koniec
czekaj [0.5] sekund
Czym jest obiekt AI Vision?#
Blok Obiekt AI Vision to? raportuje wartość logiczną wskazującą, czy wykryty obiekt pasuje do określonej klasyfikacji.
Prawda — elementem w zestawie danych jest konkretny obiekt.
Fałsz — element w zestawie danych nie jest konkretnym obiektem.
<obiekt [AIVision1 v] to [BlueBall v]?>
Parametr |
Opis |
|---|---|
obiekt |
Do której klasyfikacji AI porównać element. |
Przykład
gdy uruchomiony
[Display if a Blue Cube is detected.]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision1 v]
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <obiekt [AIVision1 v] to [BlueCube v]?> to
wydrukuj [Cube detected!] na ekranie ▶
czekaj [0.5] sekund
Obiekt AI Vision to AprilTag?#
Blok Obiekt AI Vision to AprilTag? raportuje wartość logiczną wskazującą, czy wykryty obiekt jest obiektem AprilTag pasującym do określonego identyfikatora.
Prawda — wykryty obiekt to AprilTag o podanym identyfikatorze.
Fałsz — wykryty obiekt nie jest obiektem AprilTag o podanym identyfikatorze.
<obiekt [AIVision1 v] to AprilTag [0]?>
Parametr |
Opis |
|---|---|
Identyfikator AprilTag |
Numer ID do porównania z wykrytym AprilTag. |
Przykład
gdy uruchomiony
[Report if AprilTag 3 is detected.]
zawsze
wyczyść ekran
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
pobierz dane [AprilTag IDs v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <obiekt [AIVision1 v] to AprilTag [3]?> to
wydrukuj [That is 3!] na ekranie ▶
w przeciwnym razie
wydrukuj [That isn't 3!] na ekranie ▶
koniec
koniec
czekaj [0.1] sekund
Obiekt AI Vision ma identyfikator AprilTag?#
Blok Obiekt AI Vision to AprilTag ID? raportuje wartość logiczną wskazującą, czy wykryty identyfikator AprilTag pasuje do określonego identyfikatora.
Prawda — identyfikator AprilTag jest liczbą.
Fałsz — identyfikator AprilTag nie jest liczbą.
<[AIVision1 v] object is AprilTag ID [1] ?>
Parametry |
Opis |
|---|---|
Numer identyfikacyjny AprilTag |
Liczba do porównania z wykrytym numerem ID AprilTag. |
Przykład:
gdy uruchomiony
[Report if AprilTag ID 3 is detected.]
zawsze
wyczyść ekran
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
pobierz dane [AprilTag IDs v] z [AIVision1 v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <[AIVision1 v] object is AprilTag ID [3] ?> to
wydrukuj [That is 3!] na ekranie ▶
w przeciwnym razie
wydrukuj [That isn't 3!] na ekranie ▶
koniec
koniec
czekaj [0.1] sekund