safe-control-gym  by utiasDSL

Gym environments for learning-based control and RL

created 4 years ago
747 stars

Top 47.4% on sourcepulse

GitHubView on GitHub
Project Summary

This repository provides physics-based CartPole and Quadrotor environments for robotics research, specifically targeting learning-based control and reinforcement learning (RL). It integrates symbolic dynamics via CasADi, enabling the evaluation of symbolic safety constraints and testing control robustness against disturbances.

How It Works

The library leverages PyBullet for physics simulation and CasADi for generating symbolic representations of system dynamics. This dual approach allows for both realistic simulation and the derivation of analytical dynamics crucial for model-based control methods and formal safety verification. Environments include configurable disturbances and safety constraints to challenge and evaluate control algorithms.

Quick Start & Requirements

  • Install via pip: python -m pip install -e .
  • Requires Python 3.10.
  • May require gmp (install via conda install -c anaconda gmp or sudo apt-get install libgmp-dev).
  • Optional: acados for MPC implementations.
  • Official examples are available in the examples/ directory.

Highlighted Details

  • Supports various controllers: PID, LQR, iLQR, MPC, SAC, PPO, DDPG, and safety layers like MPSC, CBF, and RARL.
  • Includes symbolic safety constraints and input/parameter/dynamics disturbances for robust testing.
  • Benchmarked against OpenAI Gym and gym-pybullet-drones, showing competitive speed-ups with enhanced fidelity and safety features.

Maintenance & Community

The project is associated with the University of Toronto's Dynamic Systems Lab / Vector Institute for Artificial Intelligence. Key publications are cited, indicating academic backing.

Licensing & Compatibility

The repository does not explicitly state a license in the provided README. This requires further investigation for commercial use or closed-source integration.

Limitations & Caveats

The README does not specify a license, which is a significant blocker for determining commercial usability. The quadrotor environment is noted as less lightweight than gym-pybullet-drones, though it offers more safety features.

Health Check
Last commit

2 months ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
35 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.