safe-control-gym
PyBullet CartPole and Quadrotor environments—with CasADi symbolic a priori dynamics—for learning-based control and RL
File Explorer
- push.yml
- cartpole_config.yaml
- cbf_config.yaml
- cbf_nn_config.yaml
- ppo_config.yaml
- sac_config.yaml
- cbf_nn_ppo_model_cartpole.pt
- cbf_nn_sac_model_cartpole.pt
- ppo_model_cartpole.pt
- sac_model_cartpole.pt
- cbf_experiment.py
- cbf_experiment.sh
- cartpole_stab.yaml
- gp_mpc_cartpole_150.yaml
- gp_mpc_cartpole_hpo.yaml
- optimized_hyperparameters.yaml
- cartpole_stab.yaml
- optimized_hyperparameters.yaml
- ppo_cartpole.yaml
- ppo_cartpole_hpo.yaml
- optimized_hyperparameters.yaml
- sac_cartpole.yaml
- sac_cartpole_hpo.yaml
- hpo_experiment.py
- cartpole_stab.yaml
- cartpole_track.yaml
- ilqr_cartpole_stab.yaml
- ilqr_cartpole_track.yaml
- lqr_cartpole_stab.yaml
- lqr_cartpole_track.yaml
- ilqr_quadrotor_2D_stab.yaml
- ilqr_quadrotor_2D_track.yaml
- lqr_quadrotor_2D_stab.yaml
- lqr_quadrotor_2D_track.yaml
- quadrotor_2D_stab.yaml
- quadrotor_2D_track.yaml
- ilqr_quadrotor_3D_stab.yaml
- ilqr_quadrotor_3D_track.yaml
- lqr_quadrotor_3D_stab.yaml
- lqr_quadrotor_3D_track.yaml
- quadrotor_3D_stab.yaml
- quadrotor_3D_track.yaml
- lqr_experiment.py
- lqr_experiment.sh
- cartpole_stab.yaml
- cartpole_track.yaml
- linear_mpc_cartpole_stab.yaml
- linear_mpc_cartpole_track.yaml
- mpc_acados_cartpole_stab.yaml
- mpc_acados_cartpole_track.yaml
- mpc_cartpole_stab.yaml
- mpc_cartpole_track.yaml
- linear_mpc_quadrotor_2D_stab.yaml
- linear_mpc_quadrotor_2D_track.yaml
- mpc_acados_quadrotor_2D_stab.yaml
- mpc_acados_quadrotor_2D_track.yaml
- mpc_quadrotor_2D_stab.yaml
- mpc_quadrotor_2D_track.yaml
- quadrotor_2D_stab.yaml
- quadrotor_2D_track.yaml
- linear_mpc_quadrotor_3D_stab.yaml
- linear_mpc_quadrotor_3D_track.yaml
- mpc_acados_quadrotor_3D_stab.yaml
- mpc_acados_quadrotor_3D_track.yaml
- mpc_quadrotor_3D_stab.yaml
- mpc_quadrotor_3D_track.yaml
- quadrotor_3D_stab.yaml
- quadrotor_3D_track.yaml
- mpc_experiment.py
- mpc_experiment.sh
- cartpole_stab.yaml
- cartpole_track.yaml
- linear_mpsc_cartpole.yaml
- lqr_cartpole.yaml
- ppo_cartpole.yaml
- sac_cartpole.yaml
- linear_mpsc_quadrotor_2D.yaml
- lqr_quadrotor_2D.yaml
- pid_quadrotor_2D.yaml
- ppo_quadrotor_2D.yaml
- quadrotor_2D_stab.yaml
- quadrotor_2D_track.yaml
- sac_quadrotor_2D.yaml
- linear_mpsc_quadrotor_3D.yaml
- pid_quadrotor_3D.yaml
- quadrotor_3D_stab.yaml
- linear_mpsc_cartpole.pkl
- linear_mpsc_quadrotor_2D.pkl
- ppo_model_cartpole_stab.pt
- ppo_model_cartpole_track.pt
- ppo_model_quadrotor_2D_stab.pt
- ppo_model_quadrotor_2D_track.pt
- sac_model_cartpole_stab.pt
- sac_model_cartpole_track.pt
- sac_model_quadrotor_2D_stab.pt
- sac_model_quadrotor_2D_track.pt
- mpsc_experiment.py
- mpsc_experiment.sh
- train_rl_model.sh
- verbose_api.py
- verbose_api.yaml
- quadrotor_2D_stab.yaml
- quadrotor_2D_track.yaml
- quadrotor_3D_stab.yaml
- quadrotor_3D_track.yaml
- pid.yaml
- pid_experiment.py
- pid_experiment.sh
- cartpole_stab.yaml
- cartpole_track.yaml
- ppo_cartpole.yaml
- sac_cartpole.yaml
- safe_explorer_ppo_cartpole.yaml
- safe_explorer_ppo_cartpole_pretrain.yaml
- ppo_quadrotor_2D.yaml
- quadrotor_2D_stab.yaml
- quadrotor_2D_track.yaml
- sac_quadrotor_2D.yaml
- safe_explorer_ppo_quadrotor_2D.yaml
- safe_explorer_ppo_quadrotor_2D_pretrain.yaml
- ppo_quadrotor_3D.yaml
- quadrotor_3D_stab.yaml
- quadrotor_3D_track.yaml
- sac_quadrotor_3D.yaml
- safe_explorer_ppo_quadrotor_3D.yaml
- safe_explorer_ppo_quadrotor_3D_pretrain.yaml
- ppo_model_cartpole_stab.pt
- ppo_model_cartpole_track.pt
- ppo_model_quadrotor_2D_stab.pt
- ppo_model_quadrotor_2D_track.pt
- ppo_model_quadrotor_3D_stab.pt
- ppo_model_quadrotor_3D_track.pt
- sac_model_cartpole_stab.pt
- sac_model_cartpole_track.pt
- sac_model_quadrotor_2D_stab.pt
- sac_model_quadrotor_2D_track.pt
- sac_model_quadrotor_3D_stab.pt
- sac_model_quadrotor_3D_track.pt
- safe_explorer_ppo_model_cartpole_stab.pt
- safe_explorer_ppo_model_cartpole_track.pt
- safe_explorer_ppo_model_quadrotor_2D_stab.pt
- safe_explorer_ppo_model_quadrotor_2D_track.pt
- safe_explorer_ppo_model_quadrotor_3D_stab.pt
- safe_explorer_ppo_model_quadrotor_3D_track.pt
- safe_explorer_ppo_pretrain_cartpole_stab.pt
- safe_explorer_ppo_pretrain_cartpole_track.pt
- safe_explorer_ppo_pretrain_quadrotor_2D_stab.pt
- safe_explorer_ppo_pretrain_quadrotor_2D_track.pt
- safe_explorer_ppo_pretrain_quadrotor_3D_stab.pt
- safe_explorer_ppo_pretrain_quadrotor_3D_track.pt
- rl_experiment.py
- rl_experiment.sh
- train_rl_model.sh
- tutorial.md
- baselines.png
- block.png
- config.png
- figure8.gif
- prints.png
- problem_illustration.jpg
- systems.png
- __init__.py
- ddpg.py
- ddpg.yaml
- ddpg_utils.py
- __init__.py
- ilqr.py
- ilqr.yaml
- lqr.py
- lqr.yaml
- lqr_utils.py
- __init__.py
- gp_mpc.py
- gp_mpc.yaml
- gp_utils.py
- linear_mpc.py
- linear_mpc.yaml
- mpc.py
- mpc.yaml
- mpc_acados.py
- mpc_acados.yaml
- mpc_utils.py
- __init__.py
- pid.py
- pid.yaml
- __init__.py
- ppo.py
- ppo.yaml
- ppo_utils.py
- __init__.py
- rap.py
- rap.yaml
- rarl.py
- rarl.yaml
- rarl_utils.py
- __init__.py
- sac.py
- sac.yaml
- sac_utils.py
- __init__.py
- safe_explorer_utils.py
- safe_ppo.py
- safe_ppo.yaml
- safe_ppo_utils.py
- __init__.py
- base_controller.py
- __init__.py
- dummy_vec_env.py
- subproc_vec_env.py
- vec_env.py
- vec_env_utils.py
- __init__.py
- record_episode_statistics.py
- cartpole_template.urdf
- __init__.py
- cartpole.py
- cartpole.yaml
- cf2.dae
- cf2x.urdf
- gate.obj
- gate.urdf
- sphere.urdf
- __init__.py
- base_aviary.py
- quadrotor.py
- quadrotor.yaml
- quadrotor_utils.py
- __init__.py
- benchmark_env.py
- constraints.py
- disturbances.py
- __init__.py
- base_experiment.py
- train_rl_controller.py
- __init__.py
- database.py
- hpo.py
- hpo_sampler.py
- README.md
- __init__.py
- performance_metrics.py
- __init__.py
- distributions.py
- neural_networks.py
- normalization.py
- random_processes.py
- schedule.py
- symbolic_systems.py
- transformations.py
- __init__.py
- cbf.py
- cbf.yaml
- cbf_nn.py
- cbf_nn.yaml
- cbf_utils.py
- abstract_cost.py
- one_step_cost.py
- __init__.py
- linear_mpsc.py
- mpsc.py
- mpsc.yaml
- mpsc_utils.py
- __init__.py
- base_safety_filter.py
- __init__.py
- configuration.py
- logging.py
- plotting.py
- registration.py
- utils.py
- __init__.py
- test_cbf.py
- test_lqr.py
- test_mpc.py
- test_mpsc.py
- test_no_controller.py
- test_pid.py
- test_rl.py
- test_hpo.py
- test_hpo_database.py
- test_train.py
- test_build.py
- .gitignore
- .pre-commit-config.yaml
- CITATION.cff
- LICENSE
- pyproject.toml
- README.md
- setup.py
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Command Glossary
Commands referenced in this DOCs, explained below.
conda activate
View Details ▼
conda activate
Activate a conda environment.
See also: `conda deactivate`.
conda activate myenv
Activate an existing environment named `myenv`:
conda activate {{path/to/myenv}}
Activate an existing environment located at custom path:
conda activate --stack myenv
Stack `myenv` environment on top of a previous environment making libraries/commands/variables from both accessible:
conda create
View Details ▼
conda create
Create new conda environments.
conda create {{[-y|--yes]}} {{[-n|--name]}} py39 python=3.9 "numpy>=1.11" scipy
Create a new environment named `py39`, install Python 3.9, NumPy v1.11 or above in it, and the latest stable version of SciPy. Say yes to all confirmations:
conda create {{[-n|--name]}} myenv --file {{file1.yml}} --file {{file2.yml}}
Create a new environment named `myenv` and install packages listed in files:
conda create {{[-p|--prefix]}} {{path/to/myenv}}
Create a new environment at a custom path (i.e. prefix):
conda install
View Details ▼
conda install
Install packages into an existing conda environment.
conda install {{package1 package2 ...}}
Install one or more package into the currently active conda environment:
conda install {{[-c|--channel]}} conda-forge {{package}}
Install a single package into the currently active conda environment using channel conda-forge:
conda install {{[-c|--channel]}} conda-forge --override-channels {{package}}
Install a single package into the currently active conda environment using channel conda-forge and ignoring other channels:
conda
View Details ▼
conda
Package, dependency, and environment management for any programming language.
Some subcommands such as `create` have their own usage documentation.
See also: `mamba`.
conda create {{[-n|--name]}} {{environment_name}} {{python=3.9 matplotlib}}
Create a new environment, installing named packages into it:
conda info {{[-e|--envs]}}
List all environments:
conda activate {{environment_name}}
Activate an environment:
git clone
View Details ▼
git clone
Clone an existing repository.
git clone {{remote_repository_location}} {{path/to/directory}}
Clone an existing repository into a new directory (the default directory is the repository name):
git clone --recursive {{remote_repository_location}}
Clone an existing repository and its submodules:
git clone {{[-n|--no-checkout]}} {{remote_repository_location}}
Clone only the `.git` directory of an existing repository:
pre-commit
View Details ▼
pre-commit
Create Git hooks that run before commits.
pre-commit install
Install pre-commit into your Git hooks:
pre-commit run
Run pre-commit hooks on all staged files:
pre-commit run --all-files
Run pre-commit hooks on all files, staged or unstaged:
python
View Details ▼
python
Python language interpreter.
python
Start a REPL (interactive shell):
python {{path/to/file.py}}
Execute a specific Python file:
python -i {{path/to/file.py}}
Execute a specific Python file and start a REPL:
python3
View Details ▼
python3
This command is an alias of `python`.
tldr python
View documentation for the original command:
apt-get
View Details ▼
apt-get
Debian and Ubuntu package management utility.
Search for packages using `apt-cache`.
It is recommended to use `apt` when used interactively in Ubuntu versions 16.04 and later.
sudo apt-get update
Update the list of available packages and versions (it's recommended to run this before other `apt-get` commands):
sudo apt-get install {{package}}
Install a package, or update it to the latest available version:
sudo apt-get remove {{package}}
Remove a package:
