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 V5
- Konfigurowanie kodów kolorów za pomocą sygnatury AI Vision w VEXcode V5
Czujnik wizyjny AI potrafi również wykrywać klasyfikacje AI i AprilTagi. Aby dowiedzieć się, jak włączyć te tryby wykrywania, przejdź tutaj:
- Korzystanie z klasyfikacji AI z czujnikiem wizyjnym AI
- Korzystanie z AprilTags z czujnikiem wizyjnym AI
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 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 wizyjnego AI. 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 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.
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);
}