Skip to content

Repository containing the code for the paper "Safe Model-Based Reinforcement Learning using Robust Control Barrier Functions". Specifically, an implementation of SAC + Robust Control Barrier Functions (RCBFs) for safe reinforcement learning in two custom environments

License

Notifications You must be signed in to change notification settings

tayalmanan28/Safe_Reinforcement_Learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Safe Reinforcement Learning


Overview

Repository containing the code for the paper "Safe Model-Based Reinforcement Learning using Robust Control Barrier Functions". Specifically, an implementation of SAC + Robust Control Barrier Functions (RCBFs) for safe reinforcement learning in two custom environments.

While exploring, an RL agent can take actions that lead the system to unsafe states. Here, we use a differentiable RCBF safety layer that minimially alters (in the least-squares sense) the actions taken by the RL agent to ensure the safety of the agent.

Usage

Following are the list of commands to compile & run the codes for the various implementations mentioned above:

To install Anaconda follow the instructions in the following webpage:
https://www.digitalocean.com/community/tutorials/how-to-install-the-anaconda-python-distribution-on-ubuntu-20-04-quickstart

Create a conda environment for the Safe RL:

conda create --name safe_rl  

Switch to the newly create environment:

conda activate safe_rl  

Then, clone the repository on your system:

git clone https://github.com/tayalmanan28/Safe_Reinforcement_Learning.git

Install the following required packages:

pip install -r requirements.txt

Running the Experiments

The environment used in this experiment is Unicycle. Unicycle involves a unicycle robot tasked with reaching a desired location while avoiding obstacles

Training:

  • Training the proposed approach:
python3 main.py --gamma_b 20 --max_episodes 200 --cuda --updates_per_step 2 --batch_size 512 --model_based

Testing

  • To test:
python3 main.py --mode test --resume output/Unicycle-run{1}

where {1} is the experiment number.

  • To Visualize
python3 main.py --mode test --resume output/Unicycle-run{1} --visualize

LICENSE

The code is licenced under the MIT license and free to use by anyone without any restrictions.


Created with ❤️ by Manan Tayal

About

Repository containing the code for the paper "Safe Model-Based Reinforcement Learning using Robust Control Barrier Functions". Specifically, an implementation of SAC + Robust Control Barrier Functions (RCBFs) for safe reinforcement learning in two custom environments

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages