近年来,基于学习的控制和强化学习在机器人领域取得了显著进展。然而,如何保证这些方法在实际应用中的安全性仍是一个关键挑战。为了更好地评估和比较不同算法的性能和安全性,研究人员开发了safe-control-gym这一统一的基准测试套件。
safe-control-gym是一个开源项目,旨在为安全学习控制和强化学习提供标准化的测试环境。它基于OpenAI Gym的框架,并进行了重要的扩展,以支持更多与安全相关的功能。这个项目由多伦多大学航空航天研究所和多伦多大学机器人研究所的研究人员开发,为控制和强化学习社区提供了一个共同的平台来评估和比较不同的算法。
safe-control-gym具有以下几个主要特性:
支持符号动力学模型:可以指定和查询系统的符号动力学模型,这对于模型预测控制等方法非常重要。
约束条件:可以定义安全约束和性能约束,用于评估控制器的安全性。
扰动注入:可以在控制输入、状态测量和惯性属性中注入模拟扰动,以测试算法的鲁棒性。
统一的API:扩展了OpenAI Gym的API,使其同时支持基于模型和基于数据的控制技术。
多种环境:提供了倒立摆和四旋翼无人机等经典控制系统的仿真环境。
多种任务:支持稳定控制和轨迹跟踪等不同类型的控制任务。
这些特性使safe-control-gym成为一个强大而灵活的工具,可以用于开发和评估各种安全学习控制和强化学习算法。
safe-control-gym的系统架构如下图所示:
该架构主要包括以下几个部分:
环境(Environment):包括倒立摆和四旋翼无人机等物理系统的仿真环境。
任务(Task):定义了具体的控制目标,如稳定控制或轨迹跟踪。
控制器(Controller):实现各种控制算法,如PID、LQR、MPC等。
安全过滤器(Safety Filter):实现各种安全保障机制,如CBF、MPSC等。
配置(Configuration):允许用户灵活配置环境参数、任务设置、控制器参数等。
这种模块化的设计使得用户可以方便地替换和组合不同的组件,以满足特定的研究需求。
safe-control-gym目前支持以下环境和任务:
倒立摆(Cartpole):
四旋翼无人机(Quadrotor):
这些环境都经过精心设计,以反映现实世界中的挑战。例如,四旋翼无人机环境包含了空气阻力、地面效应等真实物理效应。
safe-control-gym实现了多种经典和现代的控制算法,以及安全保障机制:
控制器:
安全过滤器:
这些实现为研究人员提供了丰富的基线算法,可以直接使用或进行进一步的改进。
以下是使用safe-control-gym进行3D四旋翼无人机轨迹跟踪的PID控制示例:
cd ./examples/ # 进入examples文件夹 python3 pid/pid_experiment.py \ --algo pid \ --task quadrotor \ --overrides \ ./pid/config_overrides/quadrotor_3D/quadrotor_3D_tracking.yaml
这个命令将启动一个3D四旋翼无人机的仿真,使用PID控制器进行轨迹跟踪任务。用户可以通过修改配置文件来调整控制器参数、环境设置等。
safe-control-gym在保证功能丰富性的同时,也注重计算效率。以下是与其他类似环境的性能对比:
环境 | GUI | 控制频率 | PyBullet频率 | 约束和扰动 | 加速比 |
---|---|---|---|---|---|
Gym cartpole | 是 | 50Hz | N/A | 否 | 1.16x |
InvPenPyBulletEnv | 否 | 60Hz | 60Hz | 否 | 158.29x |
safe-control-gym cartpole | 否 | 50Hz | 1000Hz | 是 | 22.39x |
gym-pybullet-drones | 否 | 50Hz | 1000Hz | 否 | 21.50x |
safe-control-gym quadrotor | 否 | 50Hz | 1000Hz | 是 | 7.62x |
可以看到,safe-control-gym在提供更多功能的同时,仍然保持了较高的仿真速度。这使得它非常适合进行大规模的算法评估和比较。
safe-control-gym为安全学习控制和强化学习研究提供了一个强大而灵活的基准测试平台。它的主要优势包括:
这个项目不仅为研究人员提供了标准化的测试环境,也为控制和强化学习社区搭建了一个交流的平台。随着安全AI系统在现实世界中的应用日益广泛,safe-control-gym将在推动这一领域的发展中发挥重要作用。
研究人员和开发者可以通过GitHub访问safe-control-gym的源代码,参与项目的开发和改进。未来,我们可以期待看到更多基于safe-control-gym的创新算法和应用出现,进一步推动安全学习控制和强化学习的发展。