Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 23 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ These environments include (and evaluate) symbolic safety constraints and implem
url = {https://arxiv.org/abs/2108.06266}}
```

To reproduce the results in the article, see [branch `ar`](https://github.com/utiasDSL/safe-control-gym/releases/tag/v0.5.0).
To reproduce the results in the article, see [branch `ar`](https://github.com/learnsyslab/safe-control-gym/releases/tag/v0.5.0).

```bibtex
@article{yuan2021safecontrolgym,
Expand All @@ -29,7 +29,7 @@ To reproduce the results in the article, see [branch `ar`](https://github.com/ut
doi={10.1109/LRA.2022.3196132}}
```

To reproduce the results in the article, see [branch `submission`](https://github.com/utiasDSL/safe-control-gym/releases/tag/v0.6.0).
To reproduce the results in the article, see [branch `submission`](https://github.com/learnsyslab/safe-control-gym/releases/tag/v0.6.0).

<!-- ![baselines](./figures/baselines.png) -->

Expand All @@ -38,7 +38,7 @@ To reproduce the results in the article, see [branch `submission`](https://githu
### Clone repo

```bash
git clone https://github.com/utiasDSL/safe-control-gym.git
git clone https://github.com/learnsyslab/safe-control-gym.git
cd safe-control-gym
```

Expand Down Expand Up @@ -94,7 +94,7 @@ Overview of [`safe-control-gym`](https://arxiv.org/abs/2109.06325)'s API:

## Getting Started

Familiarize with APIs and environments with the scripts in [`examples/`](https://github.com/utiasDSL/safe-control-gym/tree/main/examples)
Familiarize with APIs and environments with the scripts in [`examples/`](https://github.com/learnsyslab/safe-control-gym/tree/main/examples)

### 3D Quadrotor Lemniscate Trajectory Tracking with PID

Expand Down Expand Up @@ -148,23 +148,23 @@ python3 no_controller/verbose_api.py \

## List of Implemented Controllers

- [PID](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/pid/pid.py)
- [LQR](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/lqr/lqr.py)
- [iLQR](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/lqr/ilqr.py)
- [Linear MPC](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/mpc/linear_mpc.py)
- [GP-MPC](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/mpc/gp_mpc.py)
- [SAC](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/sac/sac.py)
- [PPO](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/ppo/ppo.py)
- [DDPG](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/ddpg/ddpg.py)
- [Safety Layer](https://github.com/utiasDSL/safe-control-gym/tree/main/safe_control_gym/controllers/safe_explorer)
- [RARL](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/rarl/rarl.py)
- [RAP](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/rarl/rap.py)
- [PID](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/pid/pid.py)
- [LQR](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/lqr/lqr.py)
- [iLQR](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/lqr/ilqr.py)
- [Linear MPC](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/mpc/linear_mpc.py)
- [GP-MPC](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/mpc/gp_mpc.py)
- [SAC](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/sac/sac.py)
- [PPO](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/ppo/ppo.py)
- [DDPG](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/ddpg/ddpg.py)
- [Safety Layer](https://github.com/learnsyslab/safe-control-gym/tree/main/safe_control_gym/controllers/safe_explorer)
- [RARL](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/rarl/rarl.py)
- [RAP](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/rarl/rap.py)

## List of Implemented Safety Filters

- [MPSC](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/safety_filters/mpsc/linear_mpsc.py)
- [CBF](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/safety_filters/cbf/cbf.py)
- [Neural Network CBF](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/safety_filters/cbf/cbf_nn.py)
- [MPSC](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/safety_filters/mpsc/linear_mpsc.py)
- [CBF](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/safety_filters/cbf/cbf.py)
- [Neural Network CBF](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/safety_filters/cbf/cbf_nn.py)

## Performance

Expand Down Expand Up @@ -194,10 +194,10 @@ Note that the Bullet engine frequency reported for `safe-control-gym` is typical

[001]: https://github.com/openai/gym/blob/master/gym/envs/classic_control/cartpole.py
[002]: https://github.com/benelot/pybullet-gym/blob/master/pybulletgym/envs/mujoco/envs/pendulum/inverted_pendulum_env.py
[003]: https://github.com/utiasDSL/gym-pybullet-drones
[003]: https://github.com/learnsyslab/gym-pybullet-drones

[004]: https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/envs/gym_control/cartpole.py
[005]: https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/envs/gym_pybullet_drones/quadrotor.py
[004]: https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/envs/gym_control/cartpole.py
[005]: https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/envs/gym_pybullet_drones/quadrotor.py

## Run Tests and Linting
Tests can be run locally by executing:
Expand All @@ -219,7 +219,7 @@ pre-commit run --all # Run the hooks on all files

## Related Open-source Projects

- [`gym-pybullet-drones`](https://github.com/utiasDSL/gym-pybullet-drones): single and multi-quadrotor environments
- [`gym-pybullet-drones`](https://github.com/learnsyslab/gym-pybullet-drones): single and multi-quadrotor environments
- [`stable-baselines3`](https://github.com/DLR-RM/stable-baselines3): PyTorch reinforcement learning algorithms
- [`bullet3`](https://github.com/bulletphysics/bullet3): multi-physics simulation engine
- [`gym`](https://github.com/openai/gym): OpenAI reinforcement learning toolkit
Expand All @@ -229,4 +229,4 @@ pre-commit run --all # Run the hooks on all files
- [`gym-marl-reconnaissance`](https://github.com/JacopoPan/gym-marl-reconnaissance): multi-agent heterogeneous (UAV/UGV) environments

-----
> University of Toronto's [Dynamic Systems Lab](https://github.com/utiasDSL) / [Vector Institute for Artificial Intelligence](https://github.com/VectorInstitute)
> University of Toronto's [Dynamic Systems Lab](https://github.com/learnsyslab) / [Vector Institute for Artificial Intelligence](https://github.com/VectorInstitute)
22 changes: 11 additions & 11 deletions examples/tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,40 +108,40 @@ Here is one way of setting up your overrides file. Open up `safe-control-gym/exa

| Approach | id | Location |
| -------- | --- | ----------- |
| PID Controller | 'pid' | [PID](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/pid/pid.py) |
| PID Controller | 'pid' | [PID](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/pid/pid.py) |
| Linear Quadratic Regulator | 'lqr' | coming soon |
| Iterative Linear Quadratic Regulator | 'ilqr' | coming soon |

### Reinforcement Learning Baselines

| Approach | id | Location |
| -------- | --- | ----------- |
| Proximal Policy Optimization | 'ppo' | [PPO](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/ppo/ppo.py) |
| Soft-Actor Critic | 'sac' | [SAC](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/sac/sac.py) |
| Proximal Policy Optimization | 'ppo' | [PPO](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/ppo/ppo.py) |
| Soft-Actor Critic | 'sac' | [SAC](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/sac/sac.py) |

### Safe Learning-based Control
| Approach | id | Location |
| -------- | --- | ----------- |
| Model Predictive Control w/ a Gaussian Process Model | 'gp_mpc' | [GP-MPC](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/mpc/gp_mpc.py) |
| Linear Model Predictive Control | 'linear_mpc' | [Linear MPC](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/mpc/linear_mpc.py) |
| Model Predictive Control w/ a Gaussian Process Model | 'gp_mpc' | [GP-MPC](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/mpc/gp_mpc.py) |
| Linear Model Predictive Control | 'linear_mpc' | [Linear MPC](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/mpc/linear_mpc.py) |

### Safe and Robust Reinforcement Learning
| Approach | id | Location |
| -------- | --- | ----------- |
| Robust Adversarial Reinforcement Learning | 'rarl' | [RARL](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/rarl/rarl.py) |
| Robust Adversarial Reinforcement Learning using Adversarial Populations | 'rap' | [RAP](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/controllers/rarl/rap.py) |
| Robust Adversarial Reinforcement Learning | 'rarl' | [RARL](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/rarl/rarl.py) |
| Robust Adversarial Reinforcement Learning using Adversarial Populations | 'rap' | [RAP](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/controllers/rarl/rap.py) |

### Safety Filters
| Approach | id | Location |
| -------- | --- | ----------- |
| Model Predictive Safety Certification | 'linear_mpsc' | [MPSC](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/safety_filters/mpsc/mpsc.py) |
| Control Barrier Functions | 'cbf' | [CBF](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/safety_filter/cbf/cbf.py) |
| Neural Network Control Barrier Functions | 'cbf_nn' | [CBF](https://github.com/utiasDSL/safe-control-gym/blob/main/safe_control_gym/safety_filter/cbf/cbf_nn.py) |
| Model Predictive Safety Certification | 'linear_mpsc' | [MPSC](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/safety_filters/mpsc/mpsc.py) |
| Control Barrier Functions | 'cbf' | [CBF](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/safety_filter/cbf/cbf.py) |
| Neural Network Control Barrier Functions | 'cbf_nn' | [CBF](https://github.com/learnsyslab/safe-control-gym/blob/main/safe_control_gym/safety_filter/cbf/cbf_nn.py) |

#### Safe Exploration
| Approach | id | Location |
| -------- | --- | ----------- |
| Safety Layer | 'safe_explorer_ppo' | [Safety Layer](https://github.com/utiasDSL/safe-control-gym/tree/main/safe_control_gym/controllers/safe_explorer) |
| Safety Layer | 'safe_explorer_ppo' | [Safety Layer](https://github.com/learnsyslab/safe-control-gym/tree/main/safe_control_gym/controllers/safe_explorer) |

## Adding a New Controller
- Create a new folder in `safe-control-gym/controllers` with the name of your controller
Expand Down
2 changes: 1 addition & 1 deletion safe_control_gym/envs/gym_pybullet_drones/quadrotor.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'''1D, 2D, and 3D quadrotor environment using PyBullet physics.

Based on UTIAS Dynamic Systems Lab's gym-pybullet-drones:
* https://github.com/utiasDSL/gym-pybullet-drones
* https://github.com/learnsyslab/gym-pybullet-drones
'''

import math
Expand Down
Loading