spencerfolk/rotorpy

A multirotor simulator with aerodynamics for education and research.

What it solves

RotorPy provides a lightweight, Python-based simulation environment for multirotors (UAVs) that focuses on realistic aerodynamic wrenches. It allows researchers and students to test estimation, planning, and control algorithms in conditions where aerodynamics and strong winds significantly impact vehicle dynamics, which are often ignored in simpler simulators.

How it works

The simulator uses lumped parameter representations of aerodynamics to model how airflows and winds affect a drone's movement. It includes a core simulation engine that integrates vehicle dynamics, controllers, trajectories, and sensors. It also features a fast, non-photorealistic pinhole camera sensor for testing vision-based policies and visual odometry.

Who it’s for

It is designed for educators and researchers in aerial robotics, specifically those developing control and estimation algorithms or using deep learning and reinforcement learning to train UAV policies.

Highlights

  • Aerodynamic Modeling: Simulates realistic aerodynamic effects and wind profiles to challenge control algorithms.
  • Batched Simulations: Supports parallelized environments on CPU or GPU to generate large datasets quickly for deep learning.
  • RL Integration: Includes a custom Gymnasium environment (QuadrotorEnv) for reinforcement learning training.
  • Vision Sensor: Features a PinholeCamera that projects 3D world features into images for visual servoing and vision algorithms.
  • Extensible Architecture: Provides templates for users to easily add their own controllers, trajectories, and wind fields.

Related

  • Project
  • Project
  • Project
  • Project