Control a real DJI Tello drone using hand gestures, computer vision, and machine learning.
YouTube video
git clone https://github.com/nojusbarth/drone-hand-control.git
cd drone-hand-controlpython -m venv .venvpython3 -m venv .venv.\.venv\Scripts\Activate.ps1source .venv/bin/activatepip install -r requirements.txtpython src/__init__.pyStarts the hand tracking pipeline and the simulation environment.
python src/__init__.pyStarts the hand tracking pipeline and connects to a DJI Tello drone.
python src/__init__.py --mode telloThe application will automatically try to connect to the drone. If no connection can be established after three attempts, the program exits.
| Key | Action |
|---|---|
| S | Take off |
| E | Land |
| Q | Exit program and land |
Important: Make sure the gesture detection window has focus when pressing keys.
| Gesture | Action |
|---|---|
| 👍 Thumb Up | Move Up |
| 👎 Thumb Down | Move Down |
| 👈 Thumb Left | Move Left |
| 👉 Thumb Right | Move Right |
| ✊ Fist | Stop |
| ✋ Palm Forward | Move Backward |
| 🤚 Palm Back | Move Forward |
You can train your own gesture classifier:
models/CGCNN_script.py
To add new gestures, you will need your own labeled dataset. Datasets are not included in this repository.
Video Capture
↓
MediaPipe Hands
↓
Landmark Extraction
↓
Gesture Classifier
↓
Temporal Filter
↓
Drone Commands
↓
DJI Tello
- Turn on the drone.
- Connect your computer to the Tello Wi-Fi network.
- Verify that the connection is active.
- Start the application again.
If the connection still fails, restart both the drone and the application.