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 calculate inputs
- DQN: 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.
I have published the project as a game on itch.io here: https://alexandresajus.itch.io/2d-quadcopter
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 balloon
- Control your drone using the arrow keys
- The drone is very sensitive so tap the keys slowly
- 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