Skip to content

Latest commit

 

History

History
62 lines (42 loc) · 2.78 KB

README.md

File metadata and controls

62 lines (42 loc) · 2.78 KB

Smart drone

This project leverage from Machine learning/Computer vision and Robotics to make a low-cost Drone smarter(Tello).

Check out the video

Features

  • Control the drone by gestures
  • People tracking
  • People searching
  • Sound feedback
  • Morse commands using the camera
  • Keyboard control
  • Drone path monitoring
  • Drone path planning
  • Video streaming using Webrtc
  • Remote control using websocket
  • HTML 5 joystick control
  • Apple IOS joystick control (check the ios branch)

Install dependencies

We provide the requirements.txt file with the required Python dependencies but OpenCV and FFMPEG is tricky to install, and you should check on the internet how to install those properly

pip install -r requirements.txt

How to run

You don't need to have a drone to play with the project, the project come with a simulated option which will use your comera and you will be able to see the drone moving on the path monitoring window.

If you have the Tello drone, you will need to turn off the mock on the main function call.

The path window has to be focused in order to use the keyboard control

Libraries and packages

  • OpenCV - used to process the images
  • Pygame - used to show the path monitoring, path planning and keyboard event
  • MediaPipe - used to detect the people body
  • simple-pid - used to help with PID controller when moving the drone
  • aiortc - used for the Web Real-Time Communication (WebRTC)
  • ffmpeg - used for video streaming
  • aiohttp - used for the async http server

The gesture module was highly inspired by Tello-openpose


Free Advanced Java Course

I am the author of the Advanced Java for adults course. This course contains advanced and not conventional lessons. In this course, you will learn to think differently from those who have a limited view of software development. I will provoke you to reflect on decisions that you take in your day to day job, which might not be the best ones. This course is for middle to senior developers and we will not teach Java language features but how to lead complex Java projects.

This course's lectures are based on a Trading system, an opensource project hosted on my Github.