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_simgym_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.yamland 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.yamlpython -m pip install .
- Set parameters of choice in
config.yamlunder REGULAR TRAINING/TESTING training specific parameters python3 train.pywith 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.yamlunder REGULAR TRAINING/TESTING testing specific parameters python3 test.pywith 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