A person tracking implementation for Tello drone based on DJITelloPy and YOLO11n, tested with RoboMaster Tello Talent (RMTT).
tello_track
├── apps/ # Main application directory
│ ├── key_control.py # Keyboard control main program
│ ├── joy_control.py # Joystick control main program
│ ├── seg_track.py # YOLOv11n-seg tracking
│ └── pose_track.py # YOLOv11n-pose tracking
├── examples/ # DJITelloPy example code
├── modules/ # Functional modules directory
│ ├── __init__.py
│ ├── drone_manager.py # Drone logic control
│ ├── input_handler.py # Input handling
│ ├── tracking_controller.py # Automatic tracking control
│ ├── ui_renderer.py # Video display and UI rendering
│ └── vision_processor.py # YOLO vision detection
├── utils/ # Testing tools directory
│ └── joy_test.py # Joystick input test
└── weights/ # YOLO weight models
The project is primarily built with Python. It is recommended to use miniconda or miniforge for Python environment management.
First, clone the source repository:
git clone https://github.com/FallThrive/tello_trackEnter the project directory and install dependencies directly from environment.yml:
conda env create -f environment.ymlAlternatively, you can manually install dependencies:
-
Create and activate a conda environment with Python>=3.8, for example:
conda create -n tello_track python=3.12 conda activate tello_track
-
Install
djitellopyandpygame(can also useuvafterconda install uv):pip install djitellopy pygame
-
Check driver installation and supported CUDA version (for NVIDIA drivers):
nvidia-smi
-
Install from PyTorch repository a version compatible with your driver (PyTorch>=1.8 required), for example:
pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu128 -
Install
ultralytics:pip install ultralytics
- Test
DJITelloPyexample code and refactor into object-oriented design - Add joystick control module
- Deploy
YOLOfor object detection with PID for tracking- Implement tracking using
segmodel - Implement tracking using
posemodel - Manual-automatic function integration
- Implement tracking using
- Replace PID control with reinforcement learning