About this course
Drone Build & Autonomous Programming Course
This hands-on course focuses on building and programming an autonomous drone, taking you from outdoor GPS navigation to advanced indoor AI vision.
Course Objectives & Journey
-
GPS Flight Phase: Build the hardware foundation and learn mission planning using standard GPS satellite navigation.
-
GPS-Denied & Vision Phase: Tackle the challenge of flying indoors or without satellite signals using onboard cameras and computer vision.
-
Core Challenges Addressed: Learn how a drone estimates its position, recognizes objects, and makes real-time movement decisions for autonomous searching.
Practical Applications
-
Industrial inspection
-
Warehouse inventory management
-
Indoor search and rescue
Core Technologies Used
-
-
Hardware: Custom drone assembly, configuration, and remote control (used for initial testing and safety overrides).
-
PX4: Flight control firmware for stable stabilization.
-
ROS 2 (Robot Operating System): Connects localization with motion planning.
-
OpenCV: Processes camera feeds for real-time object detection and tracking.
-
What Will We Develop?
-
Hardware & Assembly: A quadcopter equipped with PX4, a GPS/GNSS module, a companion computer, and a camera system, assembled and configured by the teams.
-
GPS Flights: Position holding, waypoint missions, Return-to-Launch (RTL), and landing.
-
Software & ROS 2: ROS 2 programs for telemetry, communication with PX4, and autonomous motion command.
-
GPS-Denied Localization (VIO): Combining camera visuals with inertial measurement unit (IMU) data to estimate position and orientation.
-
Image Processing with OpenCV: Algorithms that detect and track several object categories (by color/shape and using a pre-trained model).
-
Autonomous Mission: Covering a search area, confirming found objects, and saving footage and results in a GPS-denied environment.
Practical Course Progress
-
Phase 1 (With GPS): An initial mission is carried out featuring takeoff, waypoints, return, and landing.
-
Phase 2 (Final GPS-Denied Project):
-
The drone takes off and follows a search trajectory using local coordinates (relying on the camera and IMU, without GPS data).
-
It detects 2 to 3 defined object categories and records its findings.
-
The mission concludes with an automatic landing, following preliminary verification in the laboratory and simulation.
-
Price
300.000 ALL / Now 50% Off
Drone Training Program: Weeks 1–8
-
1. GPS and GPS-Denied Autonomy
-
Architecture: PX4, ROS 2, GNSS, camera, IMU, and companion computer.
-
Setup: Lab and batteries; Linux, Python, and Git.
-
Execution: Launching PX4 SITL/Gazebo and a demonstration flight with GPS.
-
Deliverable: System schematic and functional simulator.
-
-
2. Hardware Assembly & Specifications
-
Components: Weight, thrust, and power consumption; matching motors, ESCs, battery, and cameras.
-
Assembly: Building from the kit, including GNSS/compass; electrical connections and polarity checks without propellers.
-
Deliverable: Assembled drone and documented connections.
-
-
3. PX4 & Ground Control Configuration
-
Calibration: Sensors, compass, and radio calibration; GNSS positioning quality.
-
Testing: Motor testing without propellers; flight modes, home point setup, and fail-safe reactions to lost connection/GPS.
-
Deliverable: Platform configured for GPS flight.
-
-
4. GPS Mission (Simulation & Real Flight)
-
Simulation: GPS mission in simulator (takeoff, waypoints, return, and landing); planning in QGroundControl.
-
Outdoor Flight: Supervised real outdoor flight featuring GPS position hold, short mission execution after verification, and log analysis.
-
Deliverable: First autonomous mission executed with GPS.
-
-
5. ROS 2 Fundamentals
-
Concepts: Nodes, topics, messages, and Python publisher/subscriber models.
-
Development: ROS 2 packages, parameters, and launch files; recording and playback with
rosbag. -
Deliverable: A package that reads and logs data.
-
-
6. ROS 2 & PX4 Integration
-
Communication: Connecting ROS 2 and PX4 using
uXRCEDDSandpx4_msgs; telemetry, QoS, and diagnostics. -
Frames: Local/global frames,
tf2, ENU/NED coordinates, and timestamping; integration with GPS positioning. -
Deliverable: Verified telemetry and coordinate frames.
-
-
7. Offboard Control with GPS
-
Implementation: Offboard control from ROS 2 using GPS-supported positioning; local trajectories and simulator testing.
-
Testing: Supervised test of the ROS 2 GPS mission; comparison with QGroundControl missions and error analysis.
-
Deliverable: Team-programmed GPS autonomy.
-
-
8. Vision System Integration
-
Camera Setup: Real camera integration in ROS 2; exposure, frame rate, latency, and image quality.
-
Calibration: Camera/stereo calibration; lens distortion and orientation relative to the drone body.
-
Deliverable: Functional video feed and calibration files.
-
Key Milestones & Notes
-
Checkpoint (End of Week 8): The team has successfully completed the GPS mission, verified ROS 2–PX4 control, and acquired camera feeds.
-
Safety & Documentation: Physical tests are conducted only after technical verification and under appropriate conditions; they are documented separately from simulation results.
-
Programming Approaches:
-
QGroundControl: Used for planning waypoint-based missions.
-
Offboard Mode: ROS 2 sends desired motion commands while PX4 handles stabilization. Local coordinates for Offboard commands can rely on GPS positioning during this phase.
-
Weeks 9–16
-
Overview & Prerequisites
-
Following GPS missions, this phase combines OpenCV with visual localization for autonomous GPS-denied search. Each phase’s configuration is verified before flight.
-
Two Complementary Functions: OpenCV identifies objects; VIO estimates drone movement using the camera and IMU. SLAM adds localization along with map building.
-
Project Scope: The base project uses a known area with suitable lighting, texture, and a clear path; general obstacle avoidance is an optional future extension.
-
-
9. OpenCV Basics & Shape Recognition
-
Session A: OpenCV filtering, color segmentation, contours, and shape recognition.
-
Session B: Detection of selected objects; ArUco markers used as a calibration and pose estimation exercise.
-
Practical Result: Object detector for items with defined visuals.
-
-
10. Advanced Object Detection (Pre-trained Models)
-
Session A: Detection using a pre-trained model via OpenCV DNN (e.g., compatible YOLO).
-
Session B: Video tracking, multi-frame confirmation, and false positive filtering.
-
Practical Result: Detector for 2–3 object categories and performance metrics.
-
-
11. Visual Inertial Odometry (VIO) & SLAM
-
Session A: Visual features, camera motion, IMU, and position error accumulation. Introduction to SLAM.
-
Session B: Executing VIO solutions with recordings and the real camera; camera-IMU calibration and synchronization.
-
Practical Result: Estimated local trajectory without GPS.
-
-
12. VIO Integration with PX4 & EKF2
-
Session A: Sending visual odometry to PX4 and integrating with EKF2; units, frames, and measurement uncertainty.
-
Session B: Preparing the GPS-denied configuration; bench testing without propellers and handling localization loss.
-
Practical Result: PX4 receives and utilizes verified visual positioning.
-
Checkpoint (End of Week 12): Visual localization provides stable positioning in designated tests, and PX4 receives it with correct coordinate frames and timestamps. This is verified prior to physical GPS-denied autonomous flights.
-
-
13. Search Mission Planning
-
Session A: Search planning: area coverage using parallel passes and points in local coordinates.
-
Session B: Mission logic: search, detection, confirmation, logging, and continuation; completion criteria.
-
Practical Result: Search mission integrated with OpenCV.
-
-
14. Integrated Simulation (GPS-Denied)
-
Session A: Integrated simulation without GPS: camera, VIO, detection, and search trajectory.
-
Session B: Testing with varied lighting, missing objects, or VIO/communication interruptions; results analysis.
-
Practical Result: Repeatable autonomous search in the simulator.
-
-
15. Real Drone Integration & Flight
-
Session A: Integration into the real drone; tests without propellers and supervised hovering using visual localization.
-
Session B: Autonomous GPS-denied flights in a restricted area; object search and logging of findings.
-
Practical Result: Physical demonstration and mission data.
-
-
16. Final Optimization & Demonstration
-
Session A: Improving detection and trajectories; repeated testing and documentation.
-
Session B: Final demonstration of autonomous GPS-denied search, presentation, and individual evaluation.
-
Practical Result: Code, configurations, videos, and final report.
-
Equipment and Technical Preparation
-
Platform: Complete quadcopter kit with PX4, GPS/GNSS module with compass, motors, ESCs, spare propellers, power supply, battery, and charger; radio controller for instructor intervention and telemetry link.
-
Perception and Localization: Stereo system with synchronized IMU, compatible with the VIO solution; RGB view for OpenCV, from the same system or an additional camera. Assembly and calibration must cover the search field and motion estimation.
-
Processing: Companion computer running Linux, power supply and cooling, tested simultaneously for VIO and object detection; development and simulation laptops.
-
Laboratory: Tools, multimeter, calibration models, and test objects; open area with good GNSS reception for the first phase and a controlled environment for GPS-denied tests, supervised by a responsible instructor/pilot.
-
Environment: PX4, QGroundControl, ROS 2, Gazebo, OpenCV, Python, Git, and the selected VIO package. The instructor fixes compatible versions of firmware, px4_msgs, camera drivers, VIO, and the detection model; pre-tests the entire system.
Final Project and Evaluation
-
GPS Stage: Mission with takeoff, waypoints, return, and landing; submissions include the plan, configuration, and logs. Evaluation is based on mission completion and trajectory deviation.
-
Final GPS-Denied Project: Objects from 2–3 categories (e.g., bottles, colored boxes, and balls, matching the chosen detector) are placed in a restricted area. The drone takes off, traverses the area, confirms findings, continues searching, and lands automatically. The mission is performed without using GPS.
-
Logging: Category, time, visual feed, and the local position of the drone at the moment of detection. Object position is evaluated when depth measurements and calibrated transformations are available; drone position is saved separately.
-
GPS-Denied Search Criteria:
-
Mission completion in at least 3 out of 5 test runs.
-
Detection of at least 80% of placed objects and no more than one false positive report per test.
-
Metrics measured include localization error/error accumulation against a reference, area coverage, latency, and processing frequency. Zone, lighting, speed, and positioning tolerances are defined prior to testing.
-
-
GPS-Denied Verification: Configuration and logs must show that GPS is not supplying the position estimate. In simulation, it is also checked that the odometry used by the autopilot comes from VIO, while the simulator’s ideal position is used for error measurement. Simulation and real flight results are reported separately; physical tests are conducted only after passing technical verifications.
-
Deliverables and Weighting:
-
10% Assembly/configuration
-
15% GPS mission
-
25% ROS 2–PX4 and visual localization
-
25% OpenCV and search
-
25% Final GPS-denied project, measurements, code, video, and documentation.
-
Also required: calibrations, parameters, and startup guide.
-
Technical References
-
[1] PX4 — ROS 2:
https://docs.px4.io/main/en/ros2/user_guide -
[2] PX4 — Offboard:
https://docs.px4.io/main/en/ros2/offboard_control -
[3] OpenCV — ArUco:
https://docs.opencv.org/4.x/d5/dae/tutorial_aruco_detection.html -
[4] PX4 — Visual Positioning:
https://docs.px4.io/main/en/ros/external_position_estimation -
[6] OpenCV — DNN/YOLO Detection:
https://docs.opencv.org/4.x/da/d9d/tutorial_dnn_yolo.html -
[7] PX4 — Mission Planning and Execution:
https://docs.px4.io/main/en/flying/missions
Python programming knowledge.
The length of this course is 4 months. This course is held in the evenings twice a week from 2.5 hours each session. Course is taught in Albanian or English language. All training materials are distributed online.

