A framework on NVIDIA Isaac Sim for simulating multirotor drones, with PX4 and ArduPilot autopilot integration and a Python control interface.
spencerfolk/rotorpy
A Python multirotor UAV simulator with lumped-parameter aerodynamics, built for teaching and research in estimation, planning, and control.
- Stars
- 326
- Forks
- 66
- Open issues
- 8
- Last commit
- 2 months ago
What is it?
RotorPy is a Python simulation environment for multirotor UAVs. It models rotary-wing dynamics using lumped-parameter aerodynamic wrenches, so effects such as drag and rotor inflow become significant at higher airspeeds, aggressive maneuvers, or in strong wind. The simulator is designed to be lightweight, with few dependencies, and readable to anyone with basic Python knowledge.
The project includes vehicle parameter files (such as a Crazyflie-style quadrotor), SE(3) and other controllers, trajectory generators, wind profiles, and IMU, mocap and estimator sensor models. A batched environment runs many vehicles in parallel on CPU or GPU, and a Gymnasium-compatible environment supports reinforcement learning. Version 3.0 adds a pinhole camera sensor that renders visual features for vision-based algorithms.
RotorPy is aimed at graduate-level course design, exploratory research, and large-scale data generation for learning-based or Monte Carlo studies. It also offers optional PX4 integration.
Key features
- 01Lumped-parameter aerodynamic wrenches that matter at high airspeed and in wind.
- 02Pip-installable with optional extras for batched, learning, testing and PX4 use.
- 03Batched environment for simulating many vehicles in parallel on CPU or GPU.
- 04Gymnasium environment with configurable control abstractions and custom rewards.
- 05Pinhole camera sensor that renders 3D visual features for vision algorithms.
Use cases
- Teaching UAV dynamics, control, and estimation in graduate courses.
- Testing controllers or estimators under aerodynamic effects and strong wind.
- Training reinforcement learning policies for quadrotor hover or velocity control.
- Generating large simulated datasets for Monte Carlo studies.
Quick start
- 1
Install RotorPy from PyPI
pip install rotorpy - 2
Run the basic usage example from the examples folder
Things to know
- Aerodynamic effects matter mainly at high airspeeds, so hover-only work may not need them.
In collections
Topics
FAQ
- What is rotorpy?
- A Python multirotor UAV simulator with lumped-parameter aerodynamics, built for teaching and research in estimation, planning, and control. RotorPy is a Python simulation environment for multirotor UAVs. It models rotary-wing dynamics using lumped-parameter aerodynamic wrenches, so effects such as drag and rotor inflow become significant at higher airspeeds, aggressive maneuvers, or in strong wind. The simulator is designed to be lightweight, with few dependencies, and readable to anyone with basic Python knowledge.
- Is rotorpy free to use? What license does it have?
- rotorpy is open source under the MIT license. Check the license terms before using it in commercial products.
- Is rotorpy still maintained?
- Updated within 6 months. The last commit to rotorpy was on Sep 7, 2026.
- What can I use rotorpy for?
- Teaching UAV dynamics, control, and estimation in graduate courses. Testing controllers or estimators under aerodynamic effects and strong wind. Training reinforcement learning policies for quadrotor hover or velocity control. Generating large simulated datasets for Monte Carlo studies.
- How do I install rotorpy?
- Install RotorPy from PyPI: pip install rotorpy Run the basic usage example from the examples folder
- Where can I get rotorpy?
- The source code and installation instructions are on GitHub: https://github.com/spencerfolk/rotorpy
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
PyBullet-based Gymnasium environments for training single and multi-agent reinforcement learning controllers for quadcopters.
A Python code collection and textbook of robotics algorithms covering localization, mapping, SLAM, path planning and control.
A lightweight, Python-based robot simulator for navigation, control, and learning, configured through YAML files.
An open-source, GPU-parallelized robot simulation and training framework built on SAPIEN, focused on manipulation skills.
A JAX-based rigid-body physics engine that runs massively parallel, differentiable simulation on accelerators for robotics and RL research.