Autonomous Terrain Surveying Drone
← All projects

Course Work

Autonomous Terrain Surveying Drone

ROS2 C++ Simulation Drone Autonomous Path Planning Kalman Filter

Overview

An autonomous drone designed for terrain surveying, with onboard path planning and sensor integration.

Details

Programming for Mechatronic Systems (Autumn 2025) · Distinction (82)

An autonomous drone built entirely in C++ using ROS2 Humble with strict OOP principles and full Doxygen documentation. The drone surveys terrain by maintaining a constant 2m altitude above the relative surface and building a gradient map of the environment below.

Key Features

  • Sonar sensor for terrain mapping and altitude control
  • 2D LiDAR for obstacle detection and avoidance
  • Asymmetric PI controller allowing altitude to always be 2m above relative terrain
  • Gradient map produced using the finite difference method
  • 1D Kalman filter for smoothing gradient values when revisiting cells
  • Live gridmap area updates based on flight path for coverage optimisation
  • Waypoint visualisation rendered during flight
  • Shell scripts to automate rosbag recording
  • Unit tests using Google Test Framework with real rosbag data
  • Multi-drone threading for parallel operation

Doxygen documentation is pre-built in the repository, see the README for launching the index.

Repository: Terrain Surveying Drone