This repo holds my Reinforcement Learning algorithms and research which are run in OpenAI's gymnasium environments
data
: Storage for reward/loss data from trainingheight_field
: Files and instructions for modified MuJoCo Ant-v5 with hfieldmodels
: Git ignored folder for storing trained modelsmodels_best
: Best models to keepMuJoCo
: My messing around with raw MuJoCo and Isaac Sim. Ignore.reinforcement_learning_playground
: Source codeincomplete_RL
: Incomplete RL algorithmsmy_sim
gym_simulation.py
: My custom Gym environment for Multi Robot Path Planningtest_my_sim.py
: Run tests on my custom sim
research
:attack.py
: Adversarial attackssmsf.py
: State monitoring function for detecting attackstrain_adv.py
: Robust Adversarial RL training
RL_algorithms
: Completed RL algorithmsagent.py
: Main RL agent code, runs epochs, rollouts, and updatescreate_env.py
: Calls for creation of the environment with specific indices for each env typedomain_rand.py
: Domain randomization functionget_action.py
: General function for getting actions from policiesget_params_args.py
: Loads data fromconfig.yaml
and terminal argsglobal_dir.py
: Creates global directoryreplay_buffer.py
: Storing data from rollouts for off-policy algorithmstensorboard_setup.py
: Instantiates tesnsorboardtest_sb.py
: Rough test for stablebaselines3test.py
: RUN THIS FOR TESTINGtrain_multiple.sh
: Shell script for training/testing in batchestrain.py
: RUN THIS FOR TRAININGtraj_data.py
: Storing data from rollouts for on-policy algorithms
tensorboard
: Git ignored folder for storing tensorboard datavideos
: Git ignored folder for storing test videoschanges.md
: Future workconfig.yaml
: Parameters to adjust for training and inferenceenvironment.yaml
: Environment Setup. Not verified.generate_requirements.py
: requirements.txt generator. Does not work right now.- some poetry stuff
README.md
: This is literally you right now...RL_REQS.md
: RL job listings to drool over (please don't take them from me)
conda env create -f environment.yaml
python -m pip install .
- Set parameters of choice in
config.yaml
under REGULAR TRAINING/TESTING training specific parameters python3 train.py
with possible arguments:--rl_alg <rl alg name>
: Run a different choice of RL algorithm from that listed in the config--open_local
: Open tensorboard, if this is not given, default is not open--render
: Render one training env, if this is not given, default is not open--alter_gravity
: Set a gravity multiplicative value for domain randomization--alter_friction
: Set a friction multiplicative value for domain randomization--disturb limit
: Set a disturb force limit for domain randomization--disturb_rate
: Set a random disturb rate for domain randomization. 1 = 100%, 0 = 0%--alter_plot_name
: Set a unique name for this plot in tensorboard, video, and model saving
- Set parameters of choice in
config.yaml
under REGULAR TRAINING/TESTING testing specific parameters python3 test.py
with possible arguments:--alter_gravity
: Set a model to use for testing- Rest same as training
- run
tensorboard --logdir '/home/jblevins32/RL_playground/tensorboard/Ant-v5/SB3_DDPG/no-mods_1'
in terminal - in another terminal, run the training with rl_alg_name set as sb3 model