This is the autonomous flight code stack used at KumarRobotics, providing a complete solution for GPS-denied quadcopter autonomy. It has been tested extensively in challenging urban and rural (under forest canopy) environments.
Please refer to our Wiki page for detailed instructions about how to use this code.
Real-world experiments in large-scale autonomous flight with real-time semantic SLAM in forests
Real-world experiments in fast, autonomous, GPS-Denied quadrotor flight
Simulation experiments in fast, autonomous flight in urban and rural environments
An experimental ROS2 Jazzy Jalisco (Ubuntu 24.04) port of this stack lives on the ros2_dev branch. It is built on top of feature/integrate_lidar_3d_planner_default, which adds two capabilities beyond master:
- a 3D optimization-based planner (gcopter-family trajectory optimization integrated into the action planner), and
- support for both LIDAR + VIO and LIDAR-only autonomous flight modalities (the stack can now fly without a visual-inertial frontend when lighting / texture conditions make VIO unreliable).
Every package, launch file, Docker image, and CI workflow on ros2_dev has been adapted for ROS2 Jazzy. This port has not been extensively tested or experimented with and is not the version used to produce any of the results shown in our papers or videos above. It is provided as a starting point for developers who want to use kr_autonomous_flight under ROS2. Several external dependencies pulled via external_*.yaml (kr_trackers_manager, kr_mav_control, faster-lio, mrsl_quadrotor, etc.) are still ROS1-only and must themselves be ported before a full end-to-end build succeeds. See ROS2_MIGRATION_REPORT.md for a detailed per-package breakdown and the list of known follow-ups.
Report issues: Open an issue on Github.
Merge code changes: Open a pull request on Github.
If you use our code in your work, please cite:
@article{mohta2018fast,
title={Fast, autonomous flight in GPS-denied and cluttered environments},
author={Mohta, Kartik and Watterson, Michael and Mulgaonkar, Yash and Liu, Sikang and Qu, Chao and Makineni, Anurag and Saulnier, Kelsey and Sun, Ke and Zhu, Alex and Delmerico, Jeffrey and Thakur, Dinesh and Karydis, Konstantinos and Atanasov, Nikolay and Loianno, Giuseppe and Scaramuzza, Davide and Daniilidis, Kostas and Taylor, Camillo Jose and Kumar, Vijay},
journal={Journal of Field Robotics},
volume={35},
number={1},
pages={101--120},
year={2018}
}
@article{mohta2018experiments,
title={Experiments in fast, autonomous, gps-denied quadrotor flight},
author={Mohta, Kartik and Sun, Ke and Liu, Sikang and Watterson, Michael and Pfrommer, Bernd and Svacha, James and Mulgaonkar, Yash and Taylor, Camillo Jose and Kumar, Vijay},
booktitle={2018 IEEE International Conference on Robotics and Automation (ICRA)},
pages={7832--7839},
year={2018},
organization={IEEE}
}
@article{liu2022large,
title={Large-Scale Autonomous Flight With Real-Time Semantic SLAM Under Dense Forest Canopy},
author={Liu, Xu and Nardari, Guilherme V. and Ojeda, Fernando Cladera and Tao, Yuezhan and Zhou, Alex and Donnelly, Thomas and Qu, Chao and Chen, Steven W. and Romero, Roseli A. F. and Taylor, Camillo J. and Kumar, Vijay},
journal={IEEE Robotics and Automation Letters},
year={2022},
volume={7},
number={2},
pages={5512-5519},
}
This is a multi-year project. We gratefully acknowledge contributions from our current members and lab alumni. The contributors can be found in the papers listed above. In addition, Laura Jarin-Lipschitz, Justin Thomas also contributed to this work. We also thank our funding agencies.
This code is released using the Penn Software Licence.
Please refer to LICENSE.txt for details.

