Aby doświadczenie latania dronem było jeszcze przyjemniejsze, można zbudować inteligentny system sterowania dronem, który może być obsługiwany za pomocą gestów naszej twarzy. Jeśli chcemy, aby dron robił zdjęcia konkretnej twarzy i śledził ją, to możemy użyć tego systemu.
W poniższym projekcie użyto drona DJI Tello, który jest zaprogramowany i sterowany za pomocą Pythona i jego SDK. Tak więc komponenty, których tutaj potrzebujesz to tylko dron Tello i komputer PC lub laptop. To wszystko.
Przygotowania wstępne
Ponieważ użyłem systemu operacyjnego Linux, polecenia i instrukcje konfiguracji są oparte na systemie Linux. Możesz uruchomić Linuksa na Windowsie używając VirtualBox, open-source'owego hypervisora, który obsługuje dużą liczbę systemów operacyjnych gościa.
Przede wszystkim należy skonfigurować środowisko Pythona w systemie operacyjnym. Następnie zainstaluj moduły OpenCV, dlib, NumPy i rozpoznawania twarzy Pythona za pomocą następujących poleceń:
sudo pip3 install python-opencv
sudo pip3 install Face_recoginition
sudo pip3 install numpy
Po zainstalowaniu powyższych modułów zainstaluj moduły Pythona, które umożliwiają połączenie z dronem Tello w celu sterowania nim. W tym celu dostępne są różne moduły Pythona, ale tutaj użyte zostały Tello Python do sterowania dronem Tello.
Uwaga: Przed stworzeniem systemu sterowania dronem, sprawdź kilka funkcji i komend, których będziemy używać do sterowania dronem.
Tello Python może łączyć się z dronem Tello, umożliwiając wykonywanie różnych funkcji, takich jak:
- Wystrzelenie drona za pomocą drone.takeoff()
- Przesunięcie drona do przodu na określoną odległość (w cm) za pomocą drone.forward(cm)
- Obrócenie drona o 90 stopni w kierunku zgodnym z ruchem wskazówek zegara za pomocą drone.cw(90)
- Przerzucanie drona do góry, do tyłu, w lewo lub w prawo za pomocą drone.flip('l')
- Tworzenie strumienia na żywo z kamery drona za pomocą drone.streamon()
- Lądowanie drona za pomocą drone.land()
Aby kontrolować wysokość oraz ruch drona w lewo lub prawo, użyj gestów twarzy, ale do startu użyj funkcji automatycznego startu podczas uruchamiania. Aby wylądować dronem i zatrzymać działanie kodu, użyj klawisza klawiatury 'Q'.
Odwołaj się do tego samego kodu do rozpoznawania twarzy, jak podano w kilku innych projektach, np. „Zamek samochodowy w oparciu o rozpoznawanie twarzy”, „Inteligentny robot”, „Smart Door” i wiele innych. Implementując ten kod, możesz sterować dronem za pomocą ruchów twarzy.
Kodowanie
Oprócz włączenia tego samego kodu do rozpoznawania twarzy, zaimportuj biblioteki i moduły drona Tello (wspomniane w sekcji Przygotowania wstępne). Następnie należy utworzyć dwie zmienne, które będą przechowywały współrzędne położenia twarzy, co ułatwi obliczanie ruchów twarzy i nawigację drona. Inicjalizujemy drone.streamon() w kodzie wraz z drone.takeoff().
W pętli while kodu rozpoznawania twarzy dodaj kolejny kod, który analizuje kierunki ruchów twarzy. Sprawdź aktualne położenie twarzy i za pomocą warunku if porównaj obecne położenie twarzy z poprzednim położeniem twarzy. Jeśli nie są one zgodne, oznacza to, że twarz przesunęła się w nowe miejsce. Jeśli nowa lokalizacja ma wartość większą lub mniejszą od poprzedniej, użyj jej do określenia kierunków ruchu twarzy.
Do przesunięcia drona użyj ruchów twarzy w górę, w dół, w lewo lub w prawo. Korzystając z wartości pozycji lewego punktu i górnego punktu, można określić i porównać pozycję twarzy i kierunek ruchu w celu sterowania dronem w tym samym kierunku.
Załóżmy, że poprzednia lewa pozycja = 30 na współrzędnej x, a nowa lewa pozycja = 40 na współrzędnej x. Ponieważ nowa lewa pozycja jest większa niż poprzednia lewa pozycja, należy przesunąć twarz w nowym kierunku, tj. w prawo. To z kolei spowoduje przesunięcie drona w tym samym kierunku. Podobnie dron będzie się poruszał w innych kierunkach w zależności od zmiany współrzędnych.
Testowanie
Włącz drona Tello, a następnie podłącz urządzenie, na którym będziesz uruchamiał powyższy kod. W tym projekcie użyto Raspberry Pi, które jest podłączone do Tello Wi-Fi w celu uruchomienia kodu. Po kilku sekundach połączenie jest nawiązane. Po uruchomieniu kodu pojawia się filmik z twarzą. Przesuwając twarz w obrębie kadru kamery w górę, w dół, w lewo lub w prawo możemy sterować dronem.
Gratulacje! Udało Ci się zbudować drona sterowanego gestami twarzy.