Safety Filter
- 类别: Control › Feedback control
- 标签: safety, safe-control, optimization, learning-based-control, runtime-assurance
一个运行时层,检查来自名义控制器、人或学习策略的每一条指令,并用能够可证明地使系统保持在安全集合内的最接近指令来替换它。
定义
安全滤波器(Safety filter)位于名义控制器与执行器之间。名义控制器可以是手工整定的控制律、规划器、遥操作员或学习得到的策略,它提出一个指令 u_nom。滤波器检查执行该指令能否使系统保持在一组安全状态之内;如果不能,就用一个安全指令替换它,通常是最接近 u_nom 的那个。当提出的指令本身已经安全时,它会原样通过。这种分离使工程师可以在名义控制器中针对性能进行设计,而在一个小巧、可分析的组件中强制保证安全。
常见的构造有几种。控制屏障函数滤波器在每个控制步求解一个小型二次规划:在保证屏障函数不会下降过快的线性约束以及执行器限制下,最小化 ‖u − u_nom‖²。Hamilton-Jacobi 可达性滤波器离线计算出能够维持安全的状态集合,并在状态接近其边界时切换到或混入一个安全控制器。预测安全滤波器使用模型预测控制:它们检查所提出的指令之后能否接上一条在时域内安全的后备轨迹,如果不能就对指令加以修改。面向学习的工作以屏蔽(shield)和安全层(safety layer)等名称使用密切相关的思想。
安全滤波器的好坏取决于它所依赖的模型和状态估计。模型误差、延迟、执行器饱和以及感知误差都可能破坏其保证,因此鲁棒变体会按这些误差的界收紧约束,例如用来应对由学习式感知产生的状态估计。滤波器也可能导致不希望的行为,例如当名义目标位于障碍物后方时,机器人会停在障碍物附近,因为滤波器是局部起作用的,不会重新规划。控制屏障函数条目描述的是证书本身;安全滤波器则是在运行时利用这类证书、可达集或预测性检查来修改指令的架构。
为何重要
学习得到的策略和人类操作员都不带有安全保证,而重新训练它们以确保在所有情况下都安全,很少切实可行。安全滤波器增加了一个可验证的层,无论名义控制器做什么,都能强制执行避碰、关节限位或地理围栏等限制,这使它成为在真实机器人上部署基于学习的控制的一种常见模式。
主要应用
- 在学习得到的或遥操作的控制器周围实现避碰
- 对机械臂强制执行关节、速度和工作空间限制
- 无人机的地理围栏和避障
- 在硬件上进行强化学习时的安全探索
- 共享自主,即对人类指令做最小程度的修正
实际应用
一个团队在有人员活动的实验室里,把一个强化学习策略部署到移动机器人上。他们用一个基于 CBF 的安全滤波器把策略包起来:对于附近的每个障碍物,屏障函数取距离减去一个裕量,一个以控制频率运行的二次规划求出最接近策略输出、同时满足所有屏障约束和机器人速度限制的速度指令。由于障碍物位置来自一个误差界已知的学习式检测器,他们按这个界加大了裕量。测试期间,他们记录滤波器干预的频率和强度,从而看出策略本身在哪些地方需要更多训练。
常见误解
- 安全滤波器能让任何控制器变得安全 — 其保证依赖于模型、状态估计和执行器限制是正确的;这些方面的误差必须有界并被考虑在内
- 安全滤波器可以替代规划 — 它只在局部修改指令,可能使机器人卡住或陷入死锁;要到达目标仍然需要规划器
- 安全滤波器和控制屏障函数是一个意思 — CBF 只是一种证书;滤波器也可以用可达集或预测性的后备轨迹来构建
谁需要了解
- 部署基于学习的控制器的控制工程师
- 移动机器人和无人机的安全工程师
- 研究安全探索的强化学习研究人员
- 遥操作与共享自主的开发者
相关技术
- 二次规划(Quadratic Programming)
- OSQP
- Hamilton-Jacobi 可达性(Hamilton-Jacobi Reachability)
- 预测安全滤波器(Predictive Safety Filter)
- 屏蔽(Shielding)
相关术语
- Control Barrier Function
- Hamilton-Jacobi-Bellman Equation (HJB)
- Model Predictive Control
- Region of attraction
- Obstacle Avoidance
- Reinforcement Learning
相关项目
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
- NeuPAN: Real-time end-to-end planner that maps raw lidar points directly to robot actions
- OpEn (Optimization Engine): Embedded nonconvex optimization solver in Rust for real-time MPC on robots
- ProxSuite: High-performance QP/LP solver for robotics control and optimization