Project Icon

safe-control-gym

安全控制与强化学习的物理仿真平台

'safe-control-gym'是一个开源的基于物理的仿真平台,为学习控制和强化学习研究提供CartPole和Quadrotor环境。该平台支持符号化先验动力学,实现多种扰动和约束条件,集成了多种控制器和安全过滤器。研究人员可利用此平台测试控制方法的鲁棒性和泛化能力,探索安全学习和控制领域的创新。

safe-control-gym

基于物理的CartPole和四旋翼Gym环境(使用PyBullet),具有符号化的先验动力学(使用CasADi),用于基于学习的控制以及无模型和基于模型的强化学习(RL)。

这些环境包括(并评估)符号化的安全约束,并实现输入、参数和动力学扰动,以测试控制方法的鲁棒性和泛化能力。[PDF]

问题示意图
@article{brunke2021safe,
         title={机器人中的安全学习:从基于学习的控制到安全强化学习},
         author={Lukas Brunke and Melissa Greeff and Adam W. Hall and Zhaocong Yuan and Siqi Zhou and Jacopo Panerati and Angela P. Schoellig},
         journal = {控制、机器人和自主系统年度评论},
         year={2021},
         url = {https://arxiv.org/abs/2108.06266}}

要复现文章中的结果,请参见分支 ar

@misc{yuan2021safecontrolgym,
      title={safe-control-gym: 安全学习控制和强化学习的统一基准套件},
      author={Zhaocong Yuan and Adam W. Hall and Siqi Zhou and Lukas Brunke and Melissa Greeff and Jacopo Panerati and Angela P. Schoellig},
      year={2021},
      eprint={2109.06325},
      archivePrefix={arXiv},
      primaryClass={cs.RO}}

要复现文章中的结果,请参见分支 submission

在Ubuntu/macOS上安装

克隆仓库

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

(可选)创建 conda 环境

使用conda创建并访问Python 3.10环境

conda create -n safe python=3.10
conda activate safe

安装

安装 safe-control-gym 仓库

python -m pip install --upgrade pip
python -m pip install -e .

注意

你可能需要单独安装 gmp,这是 pycddlib 的依赖项:

conda install -c anaconda gmp

sudo apt-get install libgmp-dev

架构

safe-control-gym API概览:

框图

配置

配置

入门

通过examples/中的脚本熟悉API和环境

使用PID进行3D四旋翼莱姆尼斯卡特轨迹跟踪

cd ./examples/   # 导航到examples文件夹
python3 pid/pid_experiment.py \
    --algo pid \
    --task quadrotor \
    --overrides \
        ./pid/config_overrides/quadrotor_3D/quadrotor_3D_tracking.yaml

systems trajectory

使用LQR进行倒立摆稳定控制

cd ./examples/   # 进入examples文件夹
python3 lqr/lqr_experiment.py \
    --algo lqr \
    --task cartpole \
    --overrides \
        ./lqr/config_overrides/cartpole/cartpole_stabilization.yaml \
        ./lqr/config_overrides/cartpole/lqr_cartpole_stabilization.yaml

使用PPO进行2D四旋翼飞行器轨迹跟踪

cd ./examples/rl/   # 进入RL examples文件夹
python3 rl_experiment.py \
    --algo ppo \
    --task quadrotor \
    --overrides \
        ./config_overrides/quadrotor_2D/quadrotor_2D_track.yaml \
        ./config_overrides/quadrotor_2D/ppo_quadrotor_2D.yaml \
    --kv_overrides \
        algo_config.training=False

详细API示例

cd ./examples/   # 进入examples文件夹
python3 no_controller/verbose_api.py \
    --task cartpole \
    --overrides no_controller/verbose_api.yaml

已实现的控制器列表

已实现的安全过滤器列表

性能

我们将safe-control-gym的样本效率与原始的OpenAI CartpolePyBullet Gym的倒立摆以及gym-pybullet-drones进行比较。我们选择每个项目的默认物理模拟积分步长。我们报告开环、随机动作输入的性能结果。请注意,safe-control-gym报告的Bullet引擎频率通常更加精细,以提高保真度。safe-control-gym四旋翼环境虽然不如gym-pybullet-drones轻量级,但提供了相同数量级的加速和更多的安全特性/符号模型。

环境图形界面控制频率PyBullet频率约束与干扰^加速比^^
Gym cartpole50Hz不适用1.16倍
InvPenPyBulletEnv60Hz60Hz158.29倍
cartpole50Hz50Hz0.85倍
cartpole50Hz1000Hz24.73倍
cartpole50Hz1000Hz22.39倍
gym-pyb-drones48Hz240Hz2.43倍
gym-pyb-drones50Hz1000Hz21.50倍
quadrotor60Hz240Hz0.74倍
quadrotor50Hz1000Hz9.28倍
quadrotor50Hz1000Hz7.62倍

^ 环境是否包含默认的约束和干扰集

^^ 加速比 = 模拟时间 / 实际时钟时间;在2.30GHz四核i7-1068NG7处理器和32GB 3733MHz LPDDR4X内存的设备上测试;无GPU

运行测试和代码检查

可以通过执行以下命令在本地运行测试:

python3 -m pytest ./tests/  # 运行所有测试

可以通过以下命令在本地运行代码检查:

pre-commit install  # 安装pre-commit钩子
pre-commit autoupdate  # 自动更新钩子版本
pre-commit run --all  # 对所有文件运行钩子

参考文献

相关开源项目


多伦多大学动态系统实验室 / Vector人工智能研究所

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号