Drones

This module introduced Crazyflie drones, Aerostack2, and Gazebo for autonomous flight control and simulation. The Crazyflie is a small, lightweight drone with open-source firmware and detailed dynamics models — ideal for academic research and simulation. Aerostack2 is a modular ROS2-based framework simplifying drone autonomy development, while Gazebo provided the physics-based simulation environment.


🧭 Coursework 1: Path Planning & Obstacle Avoidance

Task:
Design a system for a drone to visit all given waypoints efficiently while avoiding obstacles defined in a YAML configuration file.

Approach:
I explored several path-planning algorithms — Breadth-First Search, Depth-First Search, Dijkstra, and A* — and selected Dijkstra’s Algorithm for its balance of accuracy and computational efficiency. Obstacle avoidance was implemented using a buffered collision zone: the drone checked for potential collisions and inserted temporary waypoints to detour around obstacles.

Video Demonstration:


🐝 Coursework 2: Swarm Coordination & Dynamic Navigation

Task:
Control a swarm of 1–5 drones through a series of navigation challenges, including formation flying, obstacle courses, and dynamic environments.

Stages:

  1. Formation flight: Circle, line, star, and orbiting patterns.
  2. Window navigation: Passing through multiple windows of varying sizes.
  3. Forest traversal: Navigating around fixed obstacles (tree structures).
  4. Dynamic obstacles: Real-time updates of moving objects via YAML input.

Approach:
Two control architectures were explored:

Both methods had trade-offs — centralized offered efficient coordination, while decentralized excelled in adaptability.

Video Demonstration:


🔧 Key Takeaways