Repolode
spencerfolk

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. 1

    Install RotorPy from PyPI

    pip install rotorpy
  2. 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