A CMU drone stack built for messy, dynamic airspace
This framework wires together perception, mapping, planning, and control so a UAV can navigate, explore, or inspect in both Gazebo and real PX4 flight.

What it does CERLAB’s framework is a full-stack autonomy suite for unmanned aerial vehicles. It bundles a lightweight Gazebo simulator, 3D mapping, global and local trajectory planners, a tracking controller, and an onboard detector for dynamic obstacles into a set of ROS packages. The stack targets three missions: navigating to a goal while avoiding collisions, exploring unknown environments, and inspecting targets with zig-zag trajectories. Everything is built to run against either a simulated drone or a real PX4-based airframe.
The interesting bit Most academic UAV repositories ship a planner and call it a day; this one ships the entire loop from sensor input to motor command, including a time-optimizer and dynamic-object tracker backed by recent ICRA and RA-L papers. The authors explicitly distinguish between a lightweight simulation branch and a PX4 branch that replicates real-flight behavior, which suggests they actually debugged the sim-to-real gap instead of ignoring it.
Key highlights
- Modular architecture with nine distinct packages, from
uav_simulatorandmap_managertotrajectory_plannerandtracking_controller. - Handles dynamic obstacles, not just static maps, via the
onboard_detectormodule. - Supports both Gazebo/ROS simulation and PX4 hardware-in-the-loop and real flight.
- Published algorithms behind the stack: heuristic-based exploration, optimal time allocation, and RGB-D dynamic-object tracking.
- Targets Ubuntu 18.04/20.04 with ROS Melodic/Noetic.
Caveats
- Requires manually switching the
autonomous_flightsubmodule betweensimulationandpx4branches and rebuilding, which is a friction point the README openly acknowledges. - Real flight demands an external SLAM/VIO system and depth camera; those are inputs, not included modules.
- Locked to ROS1 (Melodic/Noetic); there is no mention of ROS2 or newer Ubuntu releases.
Verdict Robotics researchers and UAV builders who need a proven, end-to-end PX4 autonomy pipeline with dynamic obstacle support should take a close look. If you are looking for a ROS2-native stack or a plug-and-play commercial autopilot, this is not your framework.
Frequently asked
- What is Zhefan-Xu/CERLAB-UAV-Autonomy?
- This framework wires together perception, mapping, planning, and control so a UAV can navigate, explore, or inspect in both Gazebo and real PX4 flight.
- Is CERLAB-UAV-Autonomy open source?
- Yes — Zhefan-Xu/CERLAB-UAV-Autonomy is open source, released under the MIT license.
- What language is CERLAB-UAV-Autonomy written in?
- Zhefan-Xu/CERLAB-UAV-Autonomy is primarily written in C++.
- How popular is CERLAB-UAV-Autonomy?
- Zhefan-Xu/CERLAB-UAV-Autonomy has 851 stars on GitHub.
- Where can I find CERLAB-UAV-Autonomy?
- Zhefan-Xu/CERLAB-UAV-Autonomy is on GitHub at https://github.com/Zhefan-Xu/CERLAB-UAV-Autonomy.