Frontier-based autonomous mapping of a GNSS-denied cave with a PX4/Gazebo quadrotor — RGB-D SLAM, external-vision EKF2 fusion, and reactive lidar avoidance.
$cat case-study.md
Summary
Apr 2026 - May 2026 | Arizona State University
Built a full simulation stack for autonomous mapping of an unknown cave where GNSS and compass are unavailable. A PX4/Gazebo quadrotor with RGB-D sensing, 2D lidar, and a front spotlight estimates its own motion visually, explores toward map frontiers, avoids walls reactively, and returns home — all without a global position source.
What I built
A PX4/Gazebo cave drone equipped with an RGB-D camera, 2D lidar, IMU, and a front spotlight for the dark environment.
A GNSS-denied PX4 estimator setup: EKF2 configured for external vision, taking position and heading from onboard perception instead of GPS.
A ROS-to-PX4 odometry bridge converting RTAB-Map RGB-D odometry into PX4 VehicleOdometry, including the ENU/FLU → NED/FRD coordinate-frame handling.
A ROS 2 autonomy node handling takeoff, cave entry, frontier exploration, sampled local path selection, reactive lidar avoidance, return behavior, and RViz marker visualization.
CSV logging of pose, battery, coverage area, travel distance, and RTAB-Map feature counts for run-to-run comparison.
System
Simulated cave entrance (Gazebo) used for the exploration runs.The quadrotor navigating the cave with its front spotlight on.Occupancy grid produced during frontier-based exploration.Resulting RTAB-Map point cloud of the explored cave.
~2,900 lines of original Python, anchored by a 2,400+ line offboard autonomy state machine.
Drafted an IEEE-format report covering the system architecture and the GNSS-denied estimator design.
Honest scope: this is a course-project demonstration. Known limitations remain in local-planner robustness and obstacle avoidance — captured in a research roadmap toward a publishable contribution.