A simulated PX4 drone searches the scene, measures the rock formations, reads their ArUco markers, picks the tallest, and lands on it, while RTAB-Map builds a live 3D mesh.
TYPE
Simulation · PX4 SITL + Gazebo
SCORE
150/150 incl. extra credit
SLAM
43,283 vertex live 3D mesh
Touchdown: the drone landed on the ArUco pad atop the tall cylinder, mission log confirming completion.The perception pipeline measuring a cylinder live: RGB detection with depth derived dimensions.The mission scene: both rock formations in the lunar style arena before the search begins.
Overview
A full autonomous mission in one flight: take off, circle the scene, detect two cylindrical rock formations with an RGB plus depth pipeline, measure their dimensions, identify the ArUco markers on top, select the tallest, and precision land on it.
Extra credit added RTAB-Map RGB-D SLAM producing a textured 3D mesh of the scene live during the mission.
Design & Build
Mission logic: A state machine drives the flight through circling, visual servoing, hover, marker alignment, and landing.
Perception: OpenCV RGB and depth processing measures each cylinder's height and diameter in flight and reads the ArUco markers for identification.
SLAM bridge: RTAB-Map needed odometry PX4 does not publish the ROS 2 way, so a self written bridge handles NED to ENU conversion, camera timestamp sync, QoS alignment, and TF: six debugging sessions, nine root causes, from 0 valid poses to 78.
Challenges
Reliable marker reads at altitude against simulated lighting.
The PX4 to ROS 2 odometry gap: the entire extra credit hinged on a bridge that took six documented debugging sessions to get right.
Result
3 of 3 trials successful, about 111 seconds per mission on the recorded runs, with landings on the correct, taller formation every time.
A 43,283 vertex, 55,072 polygon textured mesh built live during flight, plus full trial documentation and screencasts.