This repository contains the materials necessary for the ending Hackathon for the 2020 RL@XHEC course.
The goal is for the students to define the rewards and train&tweak the agent to achieve the best score possible.
How-to use it:
- Clone this repository :
git clone https://gitlab.com/the_insighters/x-hec/hackathon-rlxhec.git
- Enter the repo folder
cd hackathon-rlxhec
- (Optional if already done) : install poetry
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
- Install the libraries :
poetry install
- You can now run main.py using poetry:
poetry run python main.py
- Modify main.py to tweak the agent and reward.
- Good luck !
To-do list
- Transform the Rocker lander from https://github.com/EmbersArc/gym_rocketLander/blob/master/gym/envs/box2d/rocket_lander.py into an exploitable environment.
- Customize the environment for the reward function to be definable from main.py
- Create a nice training&testing interface
- Add a save Agent functionnality
- Solve the task with PPO)
- Add video recording (instead of just being able to watch the episode at the time it is done)
- Add a cue when the task is "solved"
- Add landed and landed full to available variables
- Add difficulty levels (done but not very useful, maybe a score system will be beter)
- Add score
- Add variables description
- Tweak the difficulty for a nice experience
- Test the exercise with different people to measure difficulty and time to beat
Architecture:
- main.py : This is where the student will define reward function and agent and will be able to train and see the results
- utils.py : Scripts to help the students. non directly related to RL.
- gym_rocketLander (submodule) : Custom gym environment for SpaceX Rocket Lander (original work from EmbersArc modified to tweak difficulty)
- requirements.txt : Specifies the needed libraries
- .gitignore : Specifies which files to ignore when commiting.
- data (folder): stores the data needed for the plots and agent. It is of no use for the user
- figs (folder): stores the graphs (rewards over the episodes)
- vids (folder): stores the vids of the agent's execution for each batch
Variable explanation
Disclaimer: The environment is based on https://github.com/EmbersArc/gym_rocketLander