Back to selected workCase study 09 / 09
AI/MLArchived

Object Following Drone

Computer-vision drone tracking system for DJI Tello, webcam, and Three.js simulation with real-time target tracking, grid-based navigation, smooth velocity control, and PyQt6/OpenCV interfaces.

Private visual archiveObject Following Drone

Engineering detail is available even when the project screens are not public.

EigenSol / Selected workHakamSol

Project brief

Inside the build.

Object Following Drone is a computer-vision and robotics project for tracking a selected object and guiding a drone to follow it in real time.

The system supports a physical DJI Tello drone, webcam testing, and a browser-based Three.js simulation so the tracking and navigation loop can be tested before flight.

Client
HakamSol
Delivery role
Computer Vision Developer | Robotics Developer
Discipline
AI/ML
Project status
Archived

Challenge & response

Turning constraints into a working system.

The challenge

The project needed to connect live video tracking with drone movement while keeping the workflow testable without risking hardware on every iteration.

Tracking also needed to handle selected target boundaries, lost targets, frame-center offsets, depth estimation from bounding-box area, and smooth command output to the drone.

The response

  1. Built a modular Python application where camera input, interface, tracking model, navigator, flight guide, and controller can be swapped through command-line arguments or environment variables.

  2. Implemented DaSiamRPN, multi-model DaSiam, and OpenCV CSRT tracking options that maintain target boundary and center values from live frames.

  3. Added a grid-based navigation layer and smooth Tello controller that converts target offsets into velocity commands with speed caps, update throttling, and timeout-based stopping.

  4. Created a Three.js simulation with a low-poly city, target object, API/WebSocket controls, keyboard controls, and canvas frame streaming for safer development.

Product capabilities

What the delivery makes possible.

Each capability connects a product requirement to something people can use.

01

Runtime component switching

Camera, interface, and model can be selected from `.env` or command-line arguments to run Tello, webcam, or simulator workflows.

02

Real-time target selection

PyQt6 and OpenCV interfaces allow users to choose an object boundary from the video feed and initialize tracking from that selection.

03

Multiple tracking models

Supports DaSiamRPN, a multi-tracker DaSiam variant, and OpenCV CSRT for testing different tracking reliability and performance tradeoffs.

04

Grid-based navigation

The navigator compares the target center and bounding-box area against a safe center zone to calculate left/right, up/down, and forward/back movement intent.

05

Smooth Tello control

DJI Tello movement uses smoothed RC velocity commands, speed caps, minimum update intervals, and timeout-based stops.

06

Three.js simulation

Browser simulation provides a low-poly city, target object, camera controls, WebSocket command handling, and frame streaming before physical flight testing.

System architecture

A connected delivery, not isolated features.

  1. The app starts by selecting camera, interface, and tracking model from command-line arguments or environment variables.

  2. Frames flow from TelloCam, WebCam, or SimCam into the interface and tracking model.

  3. The tracker outputs target boundary and center values, the grid navigator calculates offsets, and the flight guide applies safe-zone movement logic.

  4. The active controller sends commands to the DJI Tello, simulation controller, or dummy controller depending on the selected runtime.

Delivered impact

What changed after the build.

  1. Built a practical object-following architecture that can run against real hardware, webcam input, or simulation.

  2. Separated tracking, navigation, interface, and controller concerns so future models or controllers can be added without rewriting the whole system.

  3. Reduced hardware testing risk by providing a simulation path before using the physical DJI Tello.

Built with

A stack selected for the work.

  • Python
  • OpenCV
  • PyQt6
  • NumPy
  • PyTorch
  • DaSiamRPN
  • OpenCV CSRT Tracker
  • DJI Tello
  • djitellopy
  • WebSockets
  • Three.js
  • JavaScript
  • Node.js
  • http-server
  • GLB Models

Start a conversation

Have a product challenge worth solving?

Tell us what needs to change, what already exists, and where the product needs to go next.

Discuss your project