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