Skip to content

This repository contains all the software resources for my final year project (Implementation of hand gesture control in a drone for topographic mapping with photogrammetry). The project implements hand gesture commands for drone control and also enable mapping with an Onboard ESP32 cam, the drone and camera receive commands from a laptop.

Notifications You must be signed in to change notification settings

Badaszz/Hand_gesture_controlled_drone_for_topographic_mapping

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✋🛸 Hand Gesture-Controlled Drone for Topographic Mapping

This project implements a gesture-controlled drone system capable of performing automated topographic mapping. Using hand landmarks detected via computer vision, the drone is guided through commands like takeoff, land, direction control, yaw, and a custom RTH-triggered photogrammetry mode.

It supports both MSP (MultiWii Serial Protocol) and MAVLink implementations. It also has a module for dronekit implementation, but it doesnt have an app for it, that would come later


🧠 System Architecture

System Architecture


📁 Project Structure

gesture-drone-mapper/
├── esp32cam/                  # Firmware (.ino) + control module for ESP32-CAM
├── drone_control/            # Drone control modules (MSP & MAVLink)
├── hand_gesture/             # Gesture detection & GUI apps
├── gesture_commands/         # gesture definitions
├── gifs/                     # Demo GIFs for simulation & real flight
├── docs/                     # Architecture images, docs, future assets

🚀 Features

  • 🔍 Real-time hand gesture recognition using MediaPipe
  • 🧭 Full drone control: pitch, roll, yaw, thrust
  • 📷 ESP32-CAM image capture module
  • 📡 Supports both MSP (via serial or WebSocket) and MAVLink (via UDP)
  • 🗺️ Triggered topographic mapping using RTH and START/STOP image capture
  • 🎮 Tkinter-based GUI for control & visualization

🕹️ Apps

1. DroneAppMSP

python hand_gesture/DroneAppMSP_Final.py

2. DroneAppMAVLINK

python hand_gesture/DroneAppMAVLINK_Final.py

🧰 Requirements

  • Python 3.8+
  • OpenCV
  • MediaPipe
  • tkinter
  • pyserial (for MSP)
  • pymavlink / dronekit (for MAVLink)
  • WebSocket-client
  • Your ESP32-CAM must be flashed and networked

🛠️ How to Package as .exe

🔹 Using PyInstaller (terminal method)

pip install pyinstaller
pyinstaller --onefile hand_gesture/DroneAppMAVLINK_Final.py

For GUI mode (no terminal):

pyinstaller --onefile --noconsole hand_gesture/DroneAppMAVLINK_Final.py

🔹 Using auto-py-to-exe (GUI)

pip install auto-py-to-exe
auto-py-to-exe

Select:

  • Script: hand_gesture/DroneAppMAVLINK_Final.py
  • Onefile + Window Based
  • Add any icons or resources as needed

📜 Acknowledgements


🧑‍💻 Maintainer

Yusuf Solomon
🧠 Mechatronics | 🤖 Robotics | 📡 IoT | 🛠️ Embedded Systems
🔗 LinkedIn


📌 Future Plans

  • Add voice control alongside gesture interface
  • Port to Android
  • Live video streaming from ESP32-CAM into the app

⭐️ If you found this useful, please star the repo!

About

This repository contains all the software resources for my final year project (Implementation of hand gesture control in a drone for topographic mapping with photogrammetry). The project implements hand gesture commands for drone control and also enable mapping with an Onboard ESP32 cam, the drone and camera receive commands from a laptop.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published