Kodowanie z wykorzystaniem czujnika wizyjnego AI w blokach VEXcode V5

Upewnij się, że w swoim czujniku AI Vision masz skonfigurowane Sygnatur kolorów i Kody kolorów , aby można było ich używać z klockami. Aby dowiedzieć się więcej na temat ich konfiguracji, przeczytaj poniższe artykuły:

Czujnik wizyjny AI potrafi również wykrywać klasyfikacje AI i AprilTagi. Aby dowiedzieć się, jak włączyć te tryby wykrywania, przejdź tutaj:

Aby dowiedzieć się więcej na temat poszczególnych bloków i sposobu ich używania w VEXcode, przejdź do witryny API.


Zrób migawkę

Blok zawierający polecenie wykonuje migawkę z dwoma opcjami rozwijanymi: jedną oznaczoną jako AIVision1 i drugą oznaczoną jako COL1. Blok ten ma za zadanie wykonać migawkę z czujnika AI Vision i odwołać się do określonego obiektu lub koloru ze wskazanych zmiennych w środowisku kodowania wizualnego. Kształt bloku ma delikatne wygięcia na końcach, typowe dla interfejsów kodowania opartych na blokach.

BlokTake Snapshot wykonuje zdjęcie tego, co aktualnie widzi czujnik AI Vision i pobiera z tej migawki dane, które można następnie wykorzystać w projekcie. Podczas wykonywania migawki należy określić typ obiektu, o którym czujnik AI Vision ma zbierać dane:

  • Podpis kolorystyczny
  • Kod kolorów
  • Klasyfikacje AI
  • KwiecieńTagi

Wykonanie migawki spowoduje utworzenie tablicy wszystkich wykrytych obiektów, które określiłeś. Na przykład, jeśli chcesz wykryć sygnaturę koloru „czerwonego”, a czujnik wizyjny AI wykrył 3 różne czerwone obiekty, dane ze wszystkich trzech zostaną umieszczone w tablicy.

Aby uzyskać więcej informacji na temat określania pozycji pomiędzy różnymi obiektami, przejdź do sekcji „Ustawianie elementu obiektu” w tym artykule.

Jasnoniebieski blok kodowy z poleceniem wykonania migawki obiektu lub koloru. Dostępne są dwie opcje rozwijane: jedna oznaczona jako AIVision2, a druga jako Niebieski. Blok jest przeznaczony do stosowania w środowisku kodowania blokowego, w którym przechwytuje migawkę z czujnika AI Vision i śledzi obiekt lub kolor zdefiniowany jako niebieski. Blok ma delikatne krzywizny, typowe dla interfejsów kodowania wykorzystujących bloki modułowe.

W tym przykładzie wykryte zostaną wyłącznie obiekty odpowiadające skonfigurowanemu „Niebieskiemu” sygnaturze koloru i żadne inne.

Dane pobrane ze migawki

Należy pamiętać, że czujnik AI Vision użyje ostatniej zrobionej migawki dla wszystkich kolejnych bloków. Aby mieć pewność, że zawsze otrzymujesz najbardziej aktualne informacje z czujnika AI Vision, wykonuj migawkę za każdym razem, gdy chcesz pobrać z niej dane. 

Rezolucja

Zrozumienie rozdzielczości czujnika AI Vision jest kluczowe dla dokładnej interpretacji danych. Rozdzielczość czujnika wynosi 320x240 pikseli, a dokładny środek znajduje się na współrzędnych (160, 120).

Współrzędne X mniejsze niż 160 odpowiadają lewej połowie pola widzenia czujnika, natomiast większe niż 160 – prawej połowie. Podobnie współrzędne Y mniejsze od 120 oznaczają górną połowę widoku, a te większe od 120 – dolną połowę.

Aby uzyskać więcej informacji na temat pomiaru obiektów za pomocą czujnika AI Vision, przejdź do sekcji Zrozumienie danych w narzędziu AI Vision w programie VEXcode V5.

Szerokość i wysokość

Jest to szerokość lub wysokość wykrytego obiektu w pikselach.

Na zdjęciu widoczna jest niebieska piłka Buckyball otoczona białym kwadratowym konturem. W lewym górnym rogu znajduje się etykieta wskazująca, że jest to obiekt niebieski o współrzędnych X:176, Y:117 i wymiarach W:80, H:78. Czerwone strzałki podkreślają szerokość i wysokość obiektu.

Pomiary szerokości i wysokości pomagają identyfikować różne obiekty. Na przykład Buckyball będzie miał większą wysokość niż Ring.

Dwa niebieskie obiekty w kształcie sześcianu śledzone przez system rozpoznawania obrazu. Górny sześcian ma biały obrys z etykietą wskazującą jego pozycję jako X:215, Y:70 i wymiary W:73, H:84. Dolny sześcian ma podobny biały kontur, na etykiecie widnieje X:188, Y:184 i wymiary W:144, H:113. Na każdym sześcianie znajduje się biały krzyż, który prawdopodobnie wskazuje punkt centralny śledzenia. Etykiety zawierają informacje o pomiarach i śledzeniu danych dla każdego obiektu.

Szerokość i wysokość wskazują również odległość obiektu od czujnika wizyjnego AI. Mniejsze pomiary zwykle oznaczają, że obiekt jest dalej, podczas gdy większe pomiary sugerują, że jest bliżej.

Program rozpoczyna się od bloku po uruchomieniu, po którym następuje pętla nieskończona. Wewnątrz pętli program wykonuje migawkę za pomocą czujnika AI Vision (AIVision1) w celu wykrycia niebieskiego obiektu. Jeżeli obiekt istnieje, program sprawdza, czy szerokość obiektu jest mniejsza niż 250 pikseli. Jeżeli odpowiedź brzmi „prawda”, robot jedzie do przodu; w przeciwnym razie zatrzymuje się. Bloki są ułożone jeden na drugim, co obrazuje przepływ programu w modułowym środowisku kodowania.

W tym przykładzie szerokość obiektu jest wykorzystywana do nawigacji. Robot będzie zbliżał się do obiektu, aż osiągnie on określoną szerokość, po czym się zatrzyma.

CenterX i Center Y

Są to współrzędne środka wykrytego obiektu w pikselach.

Niebieski Buckyball śledzony przez system komputerowego przetwarzania obrazu. Obiekt jest otoczony białym kwadratem, a wewnątrz niego znajduje się mniejszy czerwony kwadrat otaczający w środku biały krzyż. W lewym górnym rogu zdjęcia znajduje się etykieta informująca, że obiekt jest niebieski, ma współrzędne X:176, Y:117 i wymiary W:80, H:78.

Współrzędne CenterX i CenterY ułatwiają nawigację i pozycjonowanie. Czujnik AI Vision ma rozdzielczość 320 x 240 pikseli.

Dwa niebieskie obiekty w kształcie sześcianu śledzone przez system wizyjny. Górny obiekt oznaczony jest współrzędnymi X:215, Y:70 i wymiarami W:73, H:84, białym konturem i białym krzyżem w środku. Dolny obiekt oznaczony jest współrzędnymi X:188, Y:184 i wymiarami W:144, H:113. Obiekt ten jest również obramowany na biało i ma w środku biały krzyż.

Można zauważyć, że obiekt znajdujący się bliżej czujnika AI Vision będzie miał niższą współrzędną CenterY niż obiekt znajdujący się dalej.

Sekwencja kodowania oparta na blokach, rozpoczynająca się od momentu rozpoczęcia, po której następuje pętla nieskończona. Wewnątrz pętli program wykonuje migawkę za pomocą AIVision1 w celu wykrycia niebieskiego obiektu. Jeśli obiekt istnieje, program obraca się, aż obiekt znajdzie się na środku pola widzenia czujnika AI Vision. Obiekt uważa się za wyśrodkowany, jeżeli wartość centerX wynosi od 150 do 170. Jeżeli obiekt nie znajduje się w środku, robot skręca w prawo; w przeciwnym razie zatrzymuje się. Bloki pokazują przepływ i logikę programu wizualnego.

W tym przykładzie, ponieważ środek pola widzenia czujnika AI Vision wynosi (160, 120), robot skręci w prawo, dopóki współrzędna środka X wykrytego obiektu nie będzie większa niż 150 pikseli, ale mniejsza niż 170 pikseli.

Kąt

Kąt jest właściwością dostępną wyłącznie dla kodów kolorów iAprilTags. Oznacza to, czy wykryty kod kolorulub AprilTag jest zorientowany inaczej.

Stos dwóch sześcianów, jeden zielony na górze, a drugi niebieski na dole, śledzony przez system wizyjny. Oba sześciany są otoczone białym konturem, a na środku zielonego sześcianu znajduje się biały krzyż. Etykieta na dole obrazu wyświetla Green_Blue A:87°, wskazując wykryte kolory i pomiar kąta. Poniżej podano współrzędne X:117, Y:186, o wymiarach W:137, H:172, oznaczających położenie i rozmiar ułożonych w stos sześcianów w ramce.

Można sprawdzić, czy robot jest zorientowany inaczej w stosunku do kodu koloru lubAprilTag i na tej podstawie podjąć decyzje nawigacyjne.

Dwa sześciany, jeden zielony i jeden niebieski, umieszczone obok siebie i śledzone przez system wizyjny. Oba sześciany są otoczone białym konturem, a w środku znajduje się biały krzyż. Etykieta w lewym górnym rogu wskazuje Green_Blue A:0°, odnosząc się do wykrytych kolorów i pomiaru kąta. Poniżej podano współrzędne X:150, Y:102, o wymiarach W:179, H:109, które określają położenie i rozmiar kostek w ramce.

Na przykład, jeśli kod koloru nie zostanie wykryty pod odpowiednim kątem, robot może nie być w stanie prawidłowo podnieść obiektu, który on przedstawia.

OriginX i OriginY

OriginX i OriginY to współrzędne w lewym górnym rogu wykrytego obiektu w pikselach.

Niebieski Buckyball śledzony przez system wizyjny. Obiekt jest otoczony białym konturem, a w jego środku znajduje się biały krzyż. Etykieta w lewym górnym rogu wskazuje, że obiekt ma kolor niebieski, a także współrzędne X:176, Y:117 i wymiary W:80, H:78. Mały czerwony kwadrat podświetla lewy górny róg obiektu.

Współrzędne OriginX i OriginY ułatwiają nawigację i pozycjonowanie. Łącząc tę współrzędną z szerokością i wysokością obiektu, można określić rozmiar pola ograniczającego obiekt. Może to pomóc w śledzeniu ruchomych obiektów lub nawigowaniu pomiędzy obiektami.

Sekwencja kodowania oparta na blokach rozpoczynająca się od momentu rozpoczęcia, po której następuje pętla nieskończona. Wewnątrz pętli program wykonuje migawkę za pomocą AIVision1 w celu wykrycia niebieskiego obiektu. Jeśli obiekt istnieje, program narysuje prostokąt na ekranie Brain w oparciu o położenie i rozmiar obiektu. Prostokąt jest rysowany przy użyciu wartości originX, originY, szerokości i wysokości obiektu, które są dostarczane przez czujnik AIVision1. Program ten śledzi i podświetla wykryty obiekt na ekranie mózgu.

W tym przykładzie prostokąt zostanie narysowany w mózgu przy użyciu dokładnych współrzędnych jego początku, szerokości i wysokości.

identyfikator tagu

TagID jest dostępny tylko dla AprilTags. To jest numer ID dla określonegoAprilTag.

Trzy kwadratowe karty z AprilTags śledzone przez system wizyjny. Każda karta jest oznaczona numerem identyfikacyjnym i powiązanymi danymi śledzenia. Karta po lewej stronie ma etykietę ID:0 i przedstawia współrzędne A:350°, X:110, Y:96, W:41, H:41. Środkowa karta oznaczona ID:3 ma współrzędne A:1°, X:187, Y:180, W:57, H:57. Karta po prawej stronie ma etykietę ID:9 i współrzędne A:3°, X:237, Y:89, W:38, H:38. Każda karta ma biały kontur, a system śledzi ich położenie i orientację.

Zidentyfikowanie konkretnego AprilTags umożliwia selektywną nawigację. Możesz zaprogramować robota tak, aby poruszał się w kierunku określonych znaczników, ignorując inne. W ten sposób możesz wykorzystać je jako drogowskazy do automatycznej nawigacji.

Wynik

Właściwość wyniku jest używana w przypadku wykryciaklasyfikacji AI przez czujnik wizyjny AI.

Na zdjęciu widać cztery obiekty śledzone przez system wizyjny: dwie kule i dwa pierścienie. Czerwona piłka ma współrzędne X:122, Y:84, W:67, H:66 i wynik 99%. Niebieska kula ma X:228, Y:86, W:70, H:68 i wynik 99%. Zielony pierścień ma współrzędne X:109, Y:186, W:98, H:92 i wynik 99%. Czerwony pierścień jest oznaczony X:259, Y:187, W:89, H:91 i ma wynik 99%. Każdy obiekt jest obramowany na biało, co wskazuje na dokładność śledzenia.

Wynik pewności wskazuje, jak pewny jest czujnik AI Vision, że wykryje błąd. Na tym obrazku identyfikacja klasyfikacji AI tych czterech obiektów jest na poziomie 99% pewna. Za pomocą tego wyniku możesz mieć pewność, że Twój robot skupi się tylko na wykryciach o wysokiej pewności.


Ustaw element obiektu

Gdy czujnik wizyjny AI wykryje obiekt, jest on umieszczany w tablicy. Domyślnie czujnik AI Vision pobiera dane z pierwszego obiektu w tablicy lub obiektu o indeksie 1. Jeśli czujnik AI Vision wykrył tylko jeden obiekt, to obiekt ten zostanie wybrany domyślnie.

Jeśli jednak czujnik AI Vision wykrył wiele obiektów jednocześnie, należy użyć blokuUstaw element obiektu , aby określić, z którego obiektu mają zostać pobrane dane.

Jasnoniebieski blok kodujący. Zawiera polecenie ustawiające element obiektu dla AIVision1 na 1. Blok ten jest częścią środowiska kodowania opartego na blokach, zwykle używanego do definiowania obiektu lub elementu, na którym powinien skupić się lub który powinien śledzić czujnik AI Vision. Kształt bloku ma delikatne krzywizny, wpisując się w modułową naturę platformy do kodowania wizualnego.

Gdy czujnik wizyjny AI wykryje wiele obiektów, są one układane w szeregu od największego do najmniejszego. Oznacza to, że największy wykryty obiekt będzie zawsze ustawiany na indeks obiektu 1, a najmniejszy obiekt będzie zawsze ustawiany na najwyższy numer.

Interfejs narzędzia AI Vision Utility z dwoma niebieskimi sześcianami wykrytymi po lewej stronie, na każdym z nich oznaczono współrzędne X i Y oraz wymiary. System jest podłączony, AprilTags jest włączony, a klasyfikacja AI jest wyłączona. Po prawej stronie wyświetlane są ustawienia koloru niebieskiego z regulowanymi zakresami odcienia i nasycenia, ustawionymi odpowiednio na 22 i 0,34. Dostępna jest opcja dodawania lub ustawiania kolorów i zamrożenia wideo. Oprogramowanie układowe jest aktualne i ma wersję 1.0.0.b16. Na dole znajduje się przycisk zamknięcia.

W tym przykładzie wykryto dwa obiekty z sygnaturą kolorui kolorem „Niebieski”. Oba zostaną umieszczone w tablicy, gdy użyty zostanie blokTake Snapshot.

Interfejs narzędzia AI Vision Utility śledzący dwa niebieskie sześciany oznaczone danymi X, Y i wymiarami. Lewy sześcian ma współrzędne X:127, Y:179 i wymiary W:136, H:123, natomiast prawy sześcian ma współrzędne X:233, Y:74 i wymiary W:78, H:87. System jest podłączony, AprilTags jest włączony, a klasyfikacja AI jest wyłączona. Ustawienia koloru niebieskiego obejmują zakres odcienia 22 i nasycenie 0,34. Na dole wyświetlany jest przycisk Freeze Video oraz informacje o oprogramowaniu układowym (wersja 1.0.0.b16).

Tutaj obiekt z przodu otrzymałby indeks obiektu 1, ponieważ jest największym obiektem, a najmniejszy obiekt otrzymałby indeks obiektu 2.


Obiekt istnieje

Przed pobraniem jakichkolwiek danych ze migawki sprawdzić, czy czujnik AI Vision wykrył jakiekolwiek obiekty na tej migawce. Tutaj wchodzi w grę blokObject Exists.

Czy istnieje jasnoniebieski sześciokątny blok kodujący z obiektem tekstowym AIVision1? Blok ten jest częścią środowiska kodowania opartego na blokach, zwykle używanego do sprawdzania, czy obiekt został wykryty przez czujnik AI Vision oznaczony jako AIVision1. Blok zaprojektowano tak, aby pasował do modułowej struktury kodowania, a delikatne krzywizny i kształty są charakterystyczne dla tego typu środowisk.

Ten blok zwróci wartośćPrawda lubFałsz w zależności od tego, czy w ostatniej wykonanej migawce wykryto jakiekolwiek obiekty.

Ten blok powinienzawsze być używany, aby mieć pewność, że nie próbujesz pobrać żadnych danych z potencjalnie pustej migawki.

Sekwencja kodowania oparta na blokach, rozpoczynająca się słowem „kiedy rozpoczęto”, po którym następuje pętla nieskończona. Wewnątrz pętli czujnik AI Vision (AIVision2) wykonuje migawkę w celu wykrycia koloru niebieskiego. Jeśli robot wykryje obiekt z niebieskim znakiem wizualnym, pojedzie do przodu. Jeżeli nie zostanie wykryty żaden obiekt, robot zatrzyma się. Bloki są ułożone w stos, co ma przedstawiać logikę warunkową programu, w którym obecność wykrytego obiektu kontroluje ruch robota.

Na przykład robot będzie stale robił zdjęcia za pomocą czujnika wizyjnego AI. Jeżeli zidentyfikuje dowolny obiekt z sygnaturą koloru „niebieskiego” , pojedzie dalej.


Jeżeli na jakimkolwiek zdjęciu nie będzie znajdował się podpis koloru „niebieskiego” , robot przestanie się poruszać.


Liczba obiektów

Jasnoniebieski, zaokrąglony blok kodujący oznaczony jako liczba obiektów AIVision1. Blok ten jest używany w środowisku kodowania blokowego w celu pobrania liczby obiektów wykrytych przez czujnik AI Vision oznaczonych jako AIVision1. Blok mieści się w strukturze modułowej, powszechnie stosowanej w interfejsach programowania wizualnego dla robotyki lub systemów wizyjnych.

Użycie bloku Object count pozwoli Ci zobaczyć, ile obiektów o konkretnym kolorowym podpisie czujnik wizyjny AI Vision może wykryć w swoim ostatnim migawce. 

Interfejs narzędzia AI Vision Utility z dwoma wykrytymi niebieskimi sześcianami po lewej stronie. System jest połączony, AprilTags jest włączony, a klasyfikacja AI jest wyłączona. Interfejs wyświetla ustawienia wykrywania koloru niebieskiego, z odcieniem ustawionym na 22 i nasyceniem na 0,34. Dostępne są przyciski umożliwiające zamrożenie filmu oraz dodanie lub ustawienie koloru. Oprogramowanie sprzętowe jest oznaczone jako aktualne, wersja 1.0.0.b16. Znajduje się tam również przycisk umożliwiający rozłączenie połączenia lub zamknięcie narzędzia.

Tutaj widzimy, że czujnik AI Vision ma skonfigurowany podpis koloru , „Niebieski” i wykrywa dwa obiekty.

Sekwencja kodowania oparta na blokach, zaczynająca się od momentu rozpoczęcia, po której następuje pętla nieskończona. Wewnątrz pętli program wykonuje migawkę za pomocą AIVision2 w celu wykrycia niebieskiego znaku wizualnego. Czyści i resetuje konsolę przed sprawdzeniem, czy wykryto jakieś niebieskie obiekty. Jeśli niebieski obiekt istnieje, liczba obiektów jest wyświetlana na konsoli. Następnie program czeka dwie sekundy, zanim powtórzy proces. Bloki wizualnie reprezentują ciągłą kontrolę obecności niebieskich obiektów, a wyniki są wyświetlane w konsoli.Wyjście konsoli z wydrukowaną liczbą 2. Konsola jest częścią większego interfejsu, który prawdopodobnie wyświetla wyniki programu uruchomionego w środowisku kodowania blokowego. W górnej części konsoli znajdują się przyciski umożliwiające wykonywanie dodatkowych czynności lub sterowanie, a uruchomiony tutaj program przesyła dane do konsoli drukowania, która wyświetla na ekranie wynik 2.

W tym kodzie czujnik AI Vision wykonałby migawkę i wyświetlił „2” na konsoli VEXcode, ponieważ wykrywa tylko dwa sygnatury koloru „niebieskiego” .


Obiekt

Menu rozwijane umożliwiające wybór właściwości obiektu związanego z AIVision1. Wybraną opcją jest szerokość, a w menu wyświetlane są inne opcje, takie jak wysokość, środek X, środek Y, kąt, początek X, początek Y, identyfikator tagu i wynik. Opcje te umożliwiają użytkownikowi pobieranie określonych punktów danych z obiektu wykrytego przez czujnik AI Vision, zapewniając elastyczność śledzenia lub pomiaru różnych atrybutów obiektu.

BlokObiekt umożliwia zgłoszenie właściwości wskazanego obiektu. Dzięki temu możesz wykorzystać dowolne dostępne dane pobrane z ostatnio wykonanej migawki.

Właściwości obiektu, które można wyodrębnić z wykonanych migawek, to:

  • szerokość
  • wysokość
  • środekX
  • środek Y
  • kąt
  • pochodzenieX
  • pochodzenieY
  • identyfikator tagu
  • wynik

Aby uzyskać więcej informacji na temat tych właściwości, przeczytaj sekcję „Dane pobrane ze migawki” w tym artykule.


Wykryto AprilTag to

Jasnoniebieski sześciokątny blok z interfejsu kodującego. Zawiera polecenie sprawdzające, czy wykryty przez AIVision1 tag AprilTag jest zgodny z wartością 1. Blok ten jest używany w środowisku kodowania blokowego i ma na celu sprawdzenie, czy konkretny znacznik AprilTag jest obecny. Kształt i struktura pozwalają na dopasowanie go do innych bloków logicznych, zwykle stosowanych w programowaniu wizualnym dla robotyki lub zadań związanych z widzeniem sztucznej inteligencji.

BlokWykryto AprilTag to jest dostępny tylko wtedy, gdy włączony jest tryb wykrywania AprilTag

Ten blok będzie raportował wartość Prawda lub Fałsz w zależności od tego, czy określony obiekt jest konkretnym AprilTag.

Trzy AprilTagi śledzone przez system wizyjny. Każdy tag ma identyfikator i powiązane współrzędne. Lewy znacznik ma etykietę ID:0 i współrzędne X:110, Y:96, W:41, H:41. Środkowy znacznik ma etykietę ID:3 i współrzędne X:187, Y:180, W:57, H:57. Prawy znacznik ma etykietę ID:9 i współrzędne X:237, Y:89, W:38, H:38.

Jeśli w pojedynczej migawce zostanie wykrytych wiele tagów AprilTag, zostaną one uporządkowane w tablicy na podstawie zidentyfikowanego identyfikatora, a nie rozmiaru.

Na tym obrazku wykryto trzy AprilTagi o identyfikatorach 0, 3 i 9. Będą one uporządkowane rosnąco według ich identyfikatorów w tablicy. Obiekt o indeksie 1 odpowiadałby AprilTag o ID 0, o indeksie 2 – AprilTag o ID 3, a o indeksie 3 – AprilTag o ID 9.

Aby uzyskać więcej informacji na temat tego, czym są AprilTags i jak włączyć ich wykrywanie za pomocą czujnika AI Vision, przeczytaj ten artykuł.


Klasyfikacja AI to

Jasnoniebieski sześciokątny blok pochodzący ze środowiska kodowania blokowego. Blok zawiera polecenie AIVision1. Klasyfikacja AI to BlueBall? Ten blok sprawdza, czy czujnik AI Vision (AIVision1) sklasyfikował wykryty obiekt jako BlueBall. Blok zawiera opcje rozwijane, umożliwiające użytkownikom wybór różnych obiektów lub klasyfikacji sztucznej inteligencji w celu śledzenia ich i podejmowania decyzji w wizualnym interfejsie programistycznym.

KlasyfikacjaAI to blok dostępny tylko wtedy, gdy włączony jest tryb wykrywania klasyfikacjiAI.

 

Ten blok będzie raportował wartość Prawda lub Fałsz w zależności od tego, czy określony obiekt należy do określonej klasyfikacji sztucznej inteligencji.

Klasyfikacje sztucznej inteligencji (AI) wykrywane przez czujnik wizyjny AI różnią się w zależności od używanego modelu. Aby uzyskać więcej informacji na temat dostępnych klasyfikacji AI i sposobu włączania ich wykrywania za pomocą czujnika wizyjnego AI, przeczytaj ten artykuł.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: