Flightmare
Flightmare is a flexible modular quadrotor simulator. Flightmare is composed of two main components: a configurable rendering engine built on Unity and a flexible physics engine for dynamics simulation. Those two components are totally decoupled and can run independently from each other. Flightmare comes with several desirable features: (i) a large multi-modal sensor suite, including an interface to extract the 3D point-cloud of the scene; (ii) an API for reinforcement learning which can simulate hundreds of quadrotors in parallel; and (iii) an integration with a virtual-reality headset for interaction with the simulated environment. Flightmare can be used for various applications, including path-planning, reinforcement learning, visual-inertial odometry, deep learning, human-robot interaction, etc.
The simulator
Flightmare is an open-source simulator for quadrotors. It is composed of two main components: a configurable rendering engine built on Unity and a flexible physics engine for dynamics simulation. In addition, it has OpenAI gym-style python wrapper for reinforcement learning tasks and a flexible interface with stable baselines for solving these tasks with deep RL algorithms. Flightmare provides ROS wrapper to interface with popular ROS packages, such as high_mpc for learning-based mpc, rpg_mpc for advanced quadrotor controller, and rpg_quadrotor_control for hard-ware-in-the-loop simulation.
Software components
flightlib: Flightmare Library
Quadrotor Dynamics
Sensors Simulation
Unity Bridge
Python Wrapper
flightrender: Flightmare Rendering Engine
Photo-realistic 3D Environment
RGB Images, Depth, Segmentation
flightrl: Reinforcement Learning Algorithms and Examples
Deep Reinforcement Learning Algorithms, e.g., PPO
Reinforcement learning examples, e.g., quadrotor control
flightros: ROS Wrapper for Flightmare Library
ROS wrapper
Quadrotor Control example with PID controller, also simulate RGB Camera that can request images from Flightmare Rendering Engine.
Publication
If you use this code in a publication, please cite the following paper PDF:
@article{yunlong2020flightmare,
title={Flightmare: A Flexible Quadrotor Simulator},
author={Song, Yunlong and Naji, Selim and Kaufmann, Elia and Loquercio, Antonio and Scaramuzza, Davide},
booktitle={Conference on Robot Learning (CoRL)},
year={2020}}
}
License
This project is released under the MIT License. Please review the License file for more details.
Acknowledgements
This project is inspired by FlightGoggles, we use some components from FlightGoggles.
The Image Synthesis for Machine Learning from Unity is a core element of Flightmare’s image post-processing.
The demo scene Industrial, which we added in the repository, was created by Dmitrii Kutsenko and is freely available in the asset store. The original asset can be found here.