Quadcopter AI Save

Controlling a Rigidbody Quadcopter using Control Theory and Reinforcement Learning

Project README

Quadcopter AI

Controlling a 2D Quadcopter with Rigidbody Physics using Control Theory and Reinforcement Learning

Main Game

The main environment consists of controlling the drone to hit as many balloons within a time limit against AI drones.

The currently implemented algorithms are:

  • Human: Control of the propellers with the arrow keys
  • PID: Controller in control theory that uses the error between the drone position and the target position to output propellers thrusts
  • SAC: Reinforcement Learning agent that trained itself on multiple episodes of the game, by testing different actions and learning from the rewards it gets.

An explanation of the environment and its agent is explained in this paper.

I also made a devlog about this project here:

Youtube Devlog

I added another game where the drone follows the mouse to move snow around a snowglobe.

Snowglobe

Usage

The games are available to try as a Python package.

Make sure you have Python installed on your computer. Then, in a terminal, run the following commands:

1. Force Downgrade pip

python -m pip install pip==21

2. Install the package with pip in your terminal:

pip install git+https://github.com/AlexandreSajus/Quadcopter-AI.git

3. Run the game:

If you want to run the balloon game:

python -m quadai
  • Control your drone by tapping the arrow keys
  • Reach as many balloons as you can within the time limit

If you want to run the snowglobe game:

python -m quadai snowglobe
  • Control the drone using your mouse
  • The drone's airflow will move the snow around
Open Source Agenda is not affiliated with "Quadcopter AI" Project. README Source: AlexandreSajus/Quadcopter-AI
Stars
147
Open Issues
0
Last Commit
7 months ago
License

Open Source Agenda Badge

Open Source Agenda Rating