This project aims to develop a UAV system that can autonomously land on a moving platform using computer vision and control systems. The focus is on enhancing UAV technology by enabling drones to land on moving platforms with precision, which has applications in logistics, military, and rescue missions.
- Introduction
- Screenshots and Videos
- Background and Motivation
- Objectives
- Key Components
- Camera Calibration
- Pose Estimation
- ArUco Markers
- PID Control System
- Workflow
- Results
- Limitations
- Future Work
- Installation
- Usage
- Contributing
- License
- Contributors
Traditional UAV landing methods are limited and not suitable for dynamic environments. This project addresses this need for precision, with applications in logistics, military, and rescue missions.
WhatsApp.Video.2024-07-16.at.11.34.35.PM.mp4
My.Video-1.1.mp4
- Develop a vision-based system
- Implement PID control
- Ensure real-time data processing
- Integrate systems
- Conduct field testing
- DJI Tello Drone: Chosen for its lightweight design, programmability, and onboard camera and sensors.
- Programming Language: Python
- IDE: Visual Studio Code (VSCode)
- Functions: Real-time image processing and control algorithm implementation
- GUI Features: Live feed from the camera, manual control buttons, autonomous landing buttons, feedback on altitude, temperature, and height.
Camera calibration ensures accurate distance and angle measurements. This is crucial for determining the drone's position and orientation relative to the landing platform.
My.Video-1.1.mp4
Pose estimation determines the position and orientation of the drone relative to the landing platform. It uses the camera matrix and distortion coefficients obtained from camera calibration.
ArUco markers are used for accurate pose estimation and object tracking. They are square-shaped patterns with a unique identifier, high detectability, and are easy to use.
- Ease of Use: Easy to print and deploy.
- Open-Source Libraries: Available libraries like OpenCV's ArUco module simplify development.
- Accuracy: Provide reliable pose estimation essential for precise UAV landings.
- Lighting Conditions: Detection accuracy can be affected by extreme lighting.
- Distance and Size: Detection range is limited by camera resolution and marker size.
The PID control system is a feedback control mechanism that includes Proportional, Integral, and Derivative components. It is essential for real-time adjustments and precise landings.
- Maintain Stability: Continuous adjustments to UAV's flight parameters.
- Track the Moving Platform: Adjusts flight path based on pose information from the vision system.
- Achieve Precision Landings: Fine-tuning of PID parameters for precise and smooth landings.
- Initialization
- Data Reception and Processing
- Decision Execution
- Feedback Analysis
The system was tested in an indoor environment using the DJI Tello UAV, showing an excellent level of accuracy and precision.
- Computational Power: Insufficient for real-time processing.
- Data Transmission: Latency between the UAV and ground station.
- Algorithm Optimization: Improve computational efficiency.
- Alternative Sensors: Explore LIDAR or infrared sensors.
- AI Integration: Incorporate machine learning and deep learning for increased autonomy and flexibility.
- Clone the repository:
git clone https://github.com/yourusername/autonomous-uav-landing.git
- Navigate to the project directory:
cd autonomous-uav-landing
- Install the required Python packages:
pip install -r requirements.txt
- Ensure the DJI Tello Drone is powered on and connected to your Wi-Fi network.
- Run the main script to start the autonomous landing system:
python main.py
- Use the GUI to monitor the live feed and control the UAV.
Contributions are welcome! Please fork the repository and submit a pull request with your changes. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License. See the LICENSE file for details.
- Mohammad Kashif
- Nabeel Ahmad
- Muneer Ahmad
If you have any questions, suggestions, or feedback, please feel free to reach out to us:
Email: [email protected]
We appreciate your support and hope you enjoy using Our UAV Project!