Welcome to the Aerial Gym Simulator repository. Please refer to our documentation for detailed information on how to get started with the simulator, and how to use it for your research.
The Aerial Gym Simulator is a high-fidelity physics-based simulator for training Micro Aerial Vehicle (MAV) platforms such as multirotors to learn to fly and navigate cluttered environments using learning-based methods. The environments are built upon the underlying NVIDIA Isaac Gym simulator. We offer aerial robot models for standard planar quadrotor platforms, as well as fully-actuated platforms and multirotors with arbitrary configurations. These configurations are supported with low-level and high-level geometric controllers that reside on the GPU and provide parallelization for the simultaneous control of thousands of multirotors.
This is the second release of the simulator and includes a variety of new features and improvements. Task definition and environment configuration allow for fine-grained customization of all the environment entities without having to deal with large monolithic environment files. A custom rendering framework allows obtaining depth, and segmentation images at high speeds and can be used to simulate custom sensors such as LiDARs with varying properties. The simulator is open-source and is released under the BSD-3-Clause License.
Aerial Gym Simulator allows you to train state-based control policies in under a minute:
And train vision-based navigation policies in under an hour:
Equipped with GPU-accelerated and customizable ray-casting based LiDAR and Camera sensors with depth and segmentation capabilities:
- Modular and Extendable Design allowing users to easily create custom environments, robots, sensors, tasks, and controllers, and changing parameters programmatically on-the-go by modifying the Simulation Components.
- Rewritten from the Ground-Up to offer very high control over each of the simulation components and capability to extensively customize the simulator to your needs.
- High-Fidelity Physics Engine leveraging NVIDIA Isaac Gym, which provides a high-fidelity physics engine for simulating multirotor platforms, with the possibility of adding support for custom physics engine backends and rendering pipelines.
- Parallelized Geometric Controllers that reside on the GPU and provide parallelization for the simultaneous control of (hundreds of) thousands of multirotor vehicles.
- Custom Rendering Framework (based on NVIDIA Warp) used to design custom sensors and perform parallelized kernel-based operations.
- Modular and Extendable allowing users to easily create custom environments, robots, sensors, tasks, and controllers.
- RL-based control and navigation policies of your choice can be added for robot learning tasks. Includes scripts to get started with training your own robots..
Important
Support for Isaac Lab and Isaac Sim is currently under development. We anticipate releasing this feature in the near future.
Please refer to the paper detailing the previous version of our simulator to get insights into the motivation and the design principles involved in creating the Aerial Gym Simulator: https://arxiv.org/abs/2305.16510 (link will be updated to reflect the newer version soon!).
The Aerial Gym Simulator is designed to simulate thousands of MAVs simultaneously and comes equipped with both low and high-level controllers that are used on real-world systems. In addition, the new customized ray-casting allows for superfast rendering of the environment for tasks using depth and segmentation from the environment.
The optimized code in this newer version allows training for motor-command policies for robot control in under a minute and vision-based navigation policies in under an hour. Extensive examples are provided to allow users to get started with training their own policies for their custom robots quickly.
When referencing the Aerial Gym Simulator in your research, please cite the following paper
@misc{kulkarni2023aerialgymisaac,
title={Aerial Gym -- Isaac Gym Simulator for Aerial Robots},
author={Mihir Kulkarni and Theodor J. L. Forgaard and Kostas Alexis},
year={2023},
eprint={2305.16510},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2305.16510},
}
If you use the reinforcement learning policy provided alongside this simulator for navigation tasks, please cite the following paper:
@misc{kulkarni2024reinforcementlearningcollisionfreeflight,
title={Reinforcement Learning for Collision-free Flight Exploiting Deep Collision Encoding},
author={Mihir Kulkarni and Kostas Alexis},
year={2024},
eprint={2402.03947},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2402.03947},
}
For your convenience, here are some quick links to the most important sections of the documentation:
- Installation
- Robots and Controllers
- Sensors and Rendering Capabilities
- RL Training
- Simulation Components
- Customization
- FAQs and Troubleshooting
Mihir Kulkarni Email GitHub LinkedIn X (formerly Twitter)
Welf Rehberg Email GitHub LinkedIn
Theodor J. L. Forgaard Email GitHb LinkedIn
Kostas Alexis Email GitHub LinkedIn X (formerly Twitter)
This work is done at the Autonomous Robots Lab, Norwegian University of Science and Technology (NTNU). For more information, visit our Website.
This material was supported by RESNAV (AFOSR Award No. FA8655-21-1-7033) and SPEAR (Horizon Europe Grant Agreement No. 101119774).
This repository utilizes some of the code and helper scripts from https://github.com/leggedrobotics/legged_gym and IsaacGymEnvs.
Please refer to our website or to the Issues section in the GitHub repository for more information.