Controlling a 2D Quadcopter with Rigidbody Physics using Control Theory and Reinforcement Learning
The main game 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.
I added another game mode where the drone follows the mouse to move snow around a snowglobe.
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:
pip install git+https://github.com/AlexandreSajus/2D-Quadcopter-AI.git
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