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:
- Konfigurowanie sygnatur kolorów za pomocą sygnatury AI Vision w VEXcode EXP
- Konfigurowanie kodów kolorów z sygnaturą AI Vision w VEXcode EXP
Czujnik wizyjny AI potrafi również wykrywać klasyfikacje AI i AprilTagi. Aby dowiedzieć się, jak włączyć te tryby wykrywania, przejdź tutaj:
- Klasyfikacje AI z czujnikiem wizyjnym AI w VEXcode EXP
- AprilTags z czujnikiem wizyjnym AI w VEXcode EXP
Uzyskaj dane wizualne za pomocą czujnika wizyjnego AI
Każde polecenie czujnika AI Vision będzie zaczynać się od nazwy skonfigurowanego czujnika AI Vision. We wszystkich przykładach podanych w tym artykule nazwa użytego czujnika AI Vision będzie wynosić AIVision.
zrób migawkę
Metoda takeSnapshot 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 koloruKod koloru lub
- Tego typu sygnatury wizualne zaczynają się od nazwy czujnika AI Vision, podwójnego podkreślenia, a następnie nazwy sygnatury wizualnej, na przykład:
AIVision1__Blue.
- Tego typu sygnatury wizualne zaczynają się od nazwy czujnika AI Vision, podwójnego podkreślenia, a następnie nazwy sygnatury wizualnej, na przykład:
-
Klasyfikacje AI -
aivision::ALL_AIOBJS -
kwietniaTagi-
aivision::ALL_TAGS
Wykonanie migawki spowoduje utworzenie tablicy wszystkich wykrytych obiektów, które określiłeś. Na przykład, jeśli chcesz wykryć sygnaturę koloru „niebieski” , a czujnik wizyjny AI wykryje 3 różne niebieskie obiekty, dane ze wszystkich trzech zostaną umieszczone w tablicy.
W tym przykładzie wykonano migawkę koloru „niebieskiego” o symboluz czujnika AI Vision o nazwie AIVision1. Wyświetla liczbę obiektów wykrytych w tablicy i przechwytuje nową migawkę co 0,5 sekundy.
while (true) {
// Pobierz migawkę wszystkich obiektów w kolorze niebieskim.
AIVision.takeSnapshot(AIVision1__Blue);
// Sprawdź, czy obiekt został wykryty w migawce przed pobraniem danych.
jeśli (AIVision.objectCount > 0) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print(AIVision1.objectCount);
}
czekaj(5, ms);
}
obiekty
Każdy obiekt ze migawki ma inne właściwości, które można wykorzystać do raportowania informacji o tym obiekcie. Metoda objects umożliwia dostęp do tych właściwości.
Dostępne właściwości są następujące:
- id
- środekX i środekY
- originX i originY
- szerokość
- wysokość
- kąt
- istnieje
- wynik
Aby uzyskać dostęp do właściwości obiektu, należy użyć nazwy czujnika AI Vision, po której następuje metoda obiektu, a na końcu indeks obiektu.
Indeks obiektu wskazuje konkretną właściwość obiektu, którą chcesz pobrać. Po zrobieniu zdjęcia czujnik AI Vision automatycznie sortuje obiekty według rozmiaru. Największemu obiektowi przypisuje się indeks 0, a mniejszym obiektom wyższe numery indeksów.
Na przykład wywołanie szerokości największego obiektu wynosiłoby AIVision1.objects[0].width.
id
Właściwość id jest dostępna tylko dla kwietnia, klasyfikacji AI i
W przypadku AprilTago wartościwłaściwość id reprezentuje wykryty numer identyfikacyjnyAprilTag(s) .
Identyfikacja konkretnych 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 skutecznie wykorzystać je jako drogowskazy do automatycznej nawigacji.
W przypadkuklasyfikacji AIwłaściwość id oznacza konkretny typ wykrytej klasyfikacji AI.
Identyfikacja konkretnych Klasyfikacji AIpozwala robotowi skupić się tylko na określonych obiektach, np. chcieć nawigować tylko w kierunku czerwonej piłki Buckyball, a nie niebieskiej.
Aby uzyskać więcej informacji na temat kwietniaTags i AI Classifications oraz sposobu włączania ich wykrywania w narzędziu AI Vision Utility, zapoznaj się z tymi artykułami.
środekX i środekY
Są to współrzędne środka wykrytego obiektu w pikselach.
Współrzędne CenterX i CenterY ułatwiają nawigację i pozycjonowanie. Czujnik AI Vision ma rozdzielczość 320 x 240 pikseli.
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.
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.
while (true) {
// Pobierz migawkę wszystkich obiektów w kolorze niebieskim.
AIVision.takeSnapshot(AIVision__Blue);
// Sprawdź, czy obiekt został wykryty w migawce przed pobraniem danych.
jeśli (AIVision.objectCount > 0) {
jeśli (AIVision.objects[0].centerX > 150,0 && 170,0 > AIVision.objects[0].centerX) {
Układ napędowy.skręć(w prawo);
} w przeciwnym razie {
Układ napędowy.zatrzymaj();
}
}
czekaj(5, ms);
}
originX i originY
OriginX i OriginY to współrzędne w lewym górnym rogu wykrytego obiektu w pikselach.
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.
szerokość i wysokość
Jest to szerokość lub wysokość wykrytego obiektu w pikselach.
Pomiary szerokości i wysokości pomagają identyfikować różne obiekty. Na przykład Buckyball będzie miał większą wysokość niż Ring.
Szerokość i wysokość wskazują również odległość obiektu od czujnika AI Vision. Mniejsze pomiary zwykle oznaczają, że obiekt jest dalej, podczas gdy większe pomiary sugerują, że jest bliżej.
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.
while (true) {
// Pobierz migawkę wszystkich niebieskich obiektów.
AIVision.takeSnapshot(AIVision1__Blue);
// Sprawdź, czy obiekt został wykryty w migawce przed pobraniem danych.
jeśli (AIVision.objectCount > 0) {
jeśli (AIVision.objects[0].width < 250.0) {
Drivetrain.drive(forward);
} else {
Drivetrain.stop();
}
}
wait(5, msec);
}
kąt
Właściwość kąta jest dostępna tylko dlakodów kolorów iAprilTags.
Oznacza to, czy wykryty kod koloru lub AprilTag jest zorientowany inaczej.
Można sprawdzić, czy robot jest zorientowany inaczej w stosunku do kodu koloru lubAprilTag i na tej podstawie podjąć decyzje nawigacyjne.
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.
wynik
Właściwość wyniku jest używana w przypadku wykryciaklasyfikacji AI za pomocą czujnika wizyjnego AI.
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 w 99% pewna. Za pomocą tego wyniku możesz mieć pewność, że Twój robot skupi się tylko na wykryciach o wysokiej pewności.
istnieje
Właściwość exists służy do wykrywania wykryty w ostatniej wykonanej migawce.
Umożliwia to sprawdzenie, czy w poprzedniej migawce zostały wykryte jakiekolwiek obiekty. Ta właściwość zwróci wartość True, jeśli obiekt istnieje, lub False, jeśli obiekt nie istnieje.
liczba obiektów
Metoda objectCount zwraca liczbę wykrytych obiektów w ostatniej migawce.
W tym przykładzie wykryto dwa obiekty z sygnaturą kolorui kolorem „Niebieski”. Oba zostaną umieszczone w tablicy, gdy użyta zostanie metoda takeSnapshot.
Ten fragment kodu na bieżąco aktualizuje moduł EXP Brain, informując o liczbie wykrytych obiektów. Na podstawie podanego przykładu będzie wielokrotnie wysyłana wartość 2, co oznacza, że wykryto dwa obiekty.
while (true) {
// Pobierz migawkę wszystkich niebieskich obiektów.
AIVision.takeSnapshot(AIVision__Blue);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Sprawdź, czy obiekt został wykryty na migawce przed pobraniem danych.
jeśli (AIVision.objectCount > 0) {
Brain.Screen.print(AIVision1.objectCount);
}
czekaj(5, ms);
}