# KumarRobotics Autonomy Stack  is now open source!

**URL:** <https://discourse.openrobotics.org/t/kumarrobotics-autonomy-stack-is-now-open-source/24442>\
**Category:** ROS General\
**Tags:** melodic, noetic\
**Created:** [February 23, 2022, 7:18am UTC](https://discourse.openrobotics.org/t/kumarrobotics-autonomy-stack-is-now-open-source/24442 "2022-02-23T07:18:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![fclad](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/fclad/32/12742_2.png) [@fclad](https://discourse.openrobotics.org/u/fclad)\
**Post date:** [February 23, 2022, 7:18am UTC](https://discourse.openrobotics.org/t/kumarrobotics-autonomy-stack-is-now-open-source/24442/1 "2022-02-23T07:18:54Z")

</div>

![falcon4-compressed](https://us1.discourse-cdn.com/flex022/uploads/ros/original/2X/6/66d7878237bbea575cd2aa2720a0c7caa0594826.jpeg)

Hi everyone!

We open-sourced today the autonomy stack for quadrotors we use in the Vijay Kumar Lab at the University of Pennsylvania. Check out the code at [GitHub - KumarRobotics/kr\_autonomous\_flight: KR (KumarRobotics) autonomous flight system for GPS-denied quadrotors](https://github.com/KumarRobotics/kr_autonomous_flight).

We use this stack in our quadrotors for fully autonomous flight in GPS-denied conditions. The stack is _battle-tested_: the initial revisions were developed for the FLA program, and we recently used it for long under-canopy flights in forest-like environments: [https://www.youtube.com/watch?v=Ad3ANMX8gd4](https://www.youtube.com/watch?v=Ad3ANMX8gd4).

Our code is composed of the following modules:

- **Estimation:** we run Stereo-MSCKF ([GitHub - KumarRobotics/msckf\_vio: Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight](https://github.com/KumarRobotics/msckf_vio)) using the Open Vision Computer 3 ([GitHub - osrf/ovc: the Open Vision Computer](https://github.com/osrf/ovc)), an Open Robotics project. This is a killer combination! The VIO is stable in very challenging conditions (when features are not static, or we have fast changes in exposure). We use multicam\_calibration ([GitHub - KumarRobotics/multicam\_calibration](https://github.com/KumarRobotics/multicam_calibration)) and Kalibr ([GitHub - ethz-asl/kalibr: The Kalibr visual-inertial calibration toolbox](https://github.com/ethz-asl/kalibr)) for camera calibration.

- **Mapping and Planning:** we implemented both a global mapper and a local mapper. We use a 3D Lidar for this. We plan the trajectory in the local map using motion primitives ([GitHub - KumarRobotics/mpl\_ros: A ROS wrapper for trajectory planning based on motion primitives](https://github.com/KumarRobotics/mpl_ros)) and the global trajectory using JPS ([GitHub - KumarRobotics/jps3d: A C++ implementation of Jump Point Search on both 2D and 3D maps](https://github.com/KumarRobotics/jps3d)). This combination allows for smooth and aggressive flights as all our local paths are dynamically feasible for our quad.

- **Controller:** we rely on a geometric controller presented in kr\_mav\_control for the position control loop to calculate the desired orientation and thrust for the robot. We also released this piece of software recently [GitHub - KumarRobotics/kr\_mav\_control: Code for quadrotor control](https://github.com/KumarRobotics/kr_mav_control)! A Pixhawk 4 running PX4 is used for the attitude control loop to calculate the low-level commands.

- **Simulation:** our code can run in Gazebo (disabling the perception modules). We went to a great extent to make the code simple to run!

**Note on hardware:** we run the whole stack onboard our Falcon 4 platform. The Falcon 4 features the following sensor stack: NUC 10 with i7-10710U processor, OVC 3 with VN100-T IMU, Ouster OS1-64 Lidar, Pixhawk 4, ZED-F9P (used for ground truth when we have GPS). The autonomy stack can be adapted to use different sensors. It has a 30-min flight time with sensors and the onboard computer running.

Any comments, questions, and feedback are greatly appreciated! And yes, we are planning to move to ROS2 😉

---

<div class="post-metadata">

**Author:** ![ggrigor](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/ggrigor/32/11645_2.png) [@ggrigor](https://discourse.openrobotics.org/u/ggrigor)\
**Post date:** [February 25, 2022, 12:05am UTC](https://discourse.openrobotics.org/t/kumarrobotics-autonomy-stack-is-now-open-source/24442/2 "2022-02-25T00:05:03Z")

</div>

Really interesting work here.

> [@fclad](#):
>
> We open-sourced today the autonomy stack for quadrotors we use in the Vijay Kumar Lab at the University of Pennsylvania.

The license for the code does not seem to be open source.

Are there plans to change the license to an open source license to remove the academic / research restriction, and limitations on modifications and distribution?

Thanks.

---

<div class="post-metadata">

**Author:** ![fclad](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/fclad/32/12742_2.png) [@fclad](https://discourse.openrobotics.org/u/fclad)\
**Post date:** [February 26, 2022, 2:23am UTC](https://discourse.openrobotics.org/t/kumarrobotics-autonomy-stack-is-now-open-source/24442/3 "2022-02-26T02:23:26Z")

</div>

Hi ggrigor,

Thanks for the feedback! As we are part of a research institution, we are limited on the choices of licenses we can use. While we understand that this is not a traditional open source license, you are free to use the code in your platforms and modify it. Contacting the university is required for commercial use.

I will bring up your comments to the licensing team at the university!

---

<div class="post-metadata">

**Author:** ![fclad](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/fclad/32/12742_2.png) [@fclad](https://discourse.openrobotics.org/u/fclad)\
**Post date:** [March 11, 2022, 10:08pm UTC](https://discourse.openrobotics.org/t/kumarrobotics-autonomy-stack-is-now-open-source/24442/4 "2022-03-11T22:08:28Z")

</div>

Hi,

We were able to modify the license and remove some of the restrictions that were in place in the previous one. You may check the diff here:

[https://github.com/KumarRobotics/kr\_autonomous\_flight/pull/137/files](https://github.com/KumarRobotics/kr_autonomous_flight/pull/137/files)

These modifications enable non-commercial use and distribution of the code. Happy to get feedback on this!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex022/uploads/ros/original/3X/b/6/b607ee3cc8e908b1b613bd74a683d749fea635a1.svg) [@system](https://discourse.openrobotics.org/u/system)\
**Post date:** [April 10, 2022, 10:09pm UTC](https://discourse.openrobotics.org/t/kumarrobotics-autonomy-stack-is-now-open-source/24442/5 "2022-04-10T22:09:12Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
