Zhicheng

Robotics, Learning, and Control

0%

安全强化学习

Safe Reinforcement Learning on the Constraint Manifold: Theory and Applications

在线学习的需求:

  • 机器人自适应控制要求策略在部署中持续(适应环境变化或者硬件老化)
  • CMDP的离线训练:训练后直接部署无法解决真实世界的动态不确定性
  • 需要保证在线学习的每一步都是安全的

同时如果在仿真训练时已经满足鲁棒性约束,迁移到现实时更能保证安全

举例:在一个机械臂避障任务中,机械臂末端需要从起点运动到目标点并在途中避开障碍物,其中有安全约束为机械臂与障碍物之间的距离D(q)> d_safe.扰动是关节控制过程中的噪声(如电机误差或外部力干扰)。

  • 当没有扰动(标称情况)
    此时使用ATACOM控制方法:构造约束函数;随后在构造的约束函数切空间生成安全动作,从而严格保证k(q) <= 0

  • 当存在扰动
    扰动模型:控制输入受到噪声影响;定理2可以保证机械臂可能短暂进入不安全区域,但是不会完全碰撞到障碍物

通过一个 机械臂避障 的实例,结合ATACOM算法的设计步骤,说明如何从问题建模到控制器实现的全过程。假设机械臂需在避免碰撞(安全约束)的同时完成末端轨迹跟踪(任务目标)。


  1. 问题建模
    状态与动力学
  • 状态变量:
    ( s = [q, \dot{q}] \in \mathbb{R}^{2n} ),其中 ( q ) 为关节角度,( \dot{q} ) 为角速度。
  • 动力学模型(控制仿射形式):
    [
    \dot{s} = \underbrace{\begin{bmatrix} \dot{q} \ -M(q)^{-1}(C(q,\dot{q})\dot{q} + g(q)) \end{bmatrix}}{f(s)} + \underbrace{\begin{bmatrix} 0 \ M(q)^{-1} \end{bmatrix}}{G(s)} u_s
    ]
    • ( M(q) ):惯性矩阵,( C(q,\dot{q}) ):科氏力矩阵,( g(q) ):重力项。
    • 控制输入 ( u_s \in \mathbb{R}^n ):关节力矩。

安全约束

  • 避障约束(距离函数):
    [
    k(s) = d_{\text{min}} - |p(q) - p_{\text{obs}}| \leq 0
    ]
    • ( p(q) ):机械臂末端位置,( p_{\text{obs}} ):障碍物位置,( d_{\text{min}} ):最小安全距离。
    • 约束函数 ( k(s) ) 需满足 ( C^1 ) 光滑性(可通过距离场平滑化实现)。

  1. ATACOM算法设计步骤
    步骤1:构造约束流形
  • 引入松弛变量 ( \mu \geq 0 ),定义等式约束:
    [
    c(s, \mu) = k(s) + \mu = 0
    ]
  • 约束流形:
    [
    \mathcal{M} = {(s, \mu) \in \mathbb{R}^{2n} \times [0, +\infty) : c(s, \mu) = 0}
    ]
    • 投影性质:若 ( (s, \mu) \in \mathcal{M} ),则 ( s ) 满足原始约束 ( k(s) \leq 0 )。

步骤2:设计松弛变量动力学

  • 动态更新规则(类K函数控制):
    [
    \dot{\mu} = \alpha(\mu) u_\mu, \quad \alpha(\mu) = \mu \quad (\text{例:线性函数})
    ]
    • 控制输入 ( u_\mu \in \mathbb{R} ):调节松弛变量的变化速率。
    • 性质:若初始 ( \mu(0) > 0 ),则 ( \mu(t) > 0 ) 对所有 ( t \geq 0 ) 成立(Lemma 1)。

步骤3:增广系统动力学

  • 联合系统:
    [
    \begin{bmatrix} \dot{s} \ \dot{\mu} \end{bmatrix} = \begin{bmatrix} f(s) \ 0 \end{bmatrix} + \begin{bmatrix} G(s) & 0 \ 0 & \alpha(\mu) \end{bmatrix} \begin{bmatrix} u_s \ u_\mu \end{bmatrix}
    ]
    • 控制矩阵:
      [
      J_u(s, \mu) = \nabla_s c(s, \mu) G(s) = \nabla_q k(s) \cdot J_{\text{arm}}(q) \cdot M(q)^{-1}
      ]
      • ( J_{\text{arm}}(q) ):机械臂末端雅可比矩阵。

步骤4:切空间投影

  • 切空间基 ( B_u ) 计算:
    • 对 ( J_u ) 进行SVD分解,取右奇异向量 ( B_u \in \mathbb{R}^{(n+1) \times n} ) 满足 ( J_u B_u = 0 )。
    • 物理意义:( B_u ) 的列向量张成允许的安全控制方向(即不违反约束的力矩组合)。

步骤5:安全控制器

  • 控制律(公式12):
    [
    \begin{bmatrix} u_s \ u_\mu \end{bmatrix} = \underbrace{-J_u^\dagger \psi}{\text{漂移补偿}} + \underbrace{B_u u}{\text{任务控制}} - \underbrace{\lambda J_u^\dagger c}_{\text{收缩项}}
    ]
    • 参数说明:
      • ( \psi = \nabla_s k(s) \cdot f(s) ):约束对自然动态的敏感度。
      • ( u ):RL策略输出的原始力矩(如跟踪PD控制信号)。
      • ( \lambda > 0 ):收缩速率。

  1. 实例运行流程
  2. 初始化:机械臂位于安全位置 ( s_0 ),松弛变量 ( \mu(0) = \max(-k(s_0), \text{tol}) )。
  3. 在线控制循环:
    • RL策略输出 ( u ):如目标跟踪的PD控制信号。
    • ATACOM修正:
      • 计算 ( J_u ) 和 ( B_u ),投影 ( u ) 到切空间。
      • 若机械臂接近障碍物(( k(s) \to 0 )),收缩项 ( -\lambda J_u^\dagger c ) 主导,产生避障力矩。
    • 执行安全控制 ( u_s )。
  4. 结果:机械臂末端绕开障碍物并收敛到目标轨迹(见下图)。

  1. 关键设计要点
    | 设计环节 | 解决方法 | 实例中的实现 |
    |--------------------|--------------------------------------------------|------------------------------------------|
    | 约束建模 | 距离函数 + 松弛变量 | ( k(s) = d_{\text{min}} - |p - p_{\text{obs}}| ) |
    | 流形切空间计算 | SVD分解控制矩阵 ( J_u ) | 机械臂雅可比矩阵与惯性矩阵耦合 |
    | 安全控制律 | 漂移补偿 + 任务投影 + 收缩项 | 避障力矩自动生成 |
    | 动态松弛变量 | 类K函数控制的 ( \dot{\mu} ) | 保证 ( \mu(t) > 0 ) 避免数值奇点 |

  1. 数学与物理意义对应
  • 切空间投影:将关节力矩限制在“不缩短机械臂与障碍物距离”的方向。
  • 收缩项:类似虚拟排斥力,强度随 ( k(s) ) 接近0而增大。
  • 松弛变量:量化“允许的临时约束违反”,动态调整控制保守性。

几种RL对于约束函数的处理方法

假设约束函数k(s)0k(s) \leq 0, 机械臂与障碍物距离 $ D ( s ) \geq d _ { s a f e }$ 可以表示为 $ k(s) = d_safe - D(s) \leq 0 $

方法对比与切空间的优越性

以下是针对同一个约束函数,不同安全强化学习方法处理方式的对比分析,结合数学形式、实现逻辑和应用场景的详细说明:

  1. 问题设定
    约束函数:
    [ k(s) \leq 0 ]
    (例如:机械臂与障碍物距离 ( D(s) \geq d_{\text{safe}} ) 可表示为 ( k(s) = d_{\text{safe}} - D(s) \leq 0 ))

目标:在强化学习训练和部署中保证 ( k(s) \leq 0 ) 始终成立。

  1. 不同方法对比

(1) 惩罚函数法(Penalty Method)

  • 处理方式:
    在奖励函数中加入惩罚项:
    [
    R_{\text{penalized}} = R_{\text{task}} - \lambda \max(0, k(s))^2
    ]
    • (\lambda) 为惩罚系数,需手动调节。
  • 特点:
    • 数学简单:无需修改策略结构。
    • 安全无保证:训练早期可能严重违反约束(如图1左)。
    • 调参敏感:(\lambda) 过小导致约束失效,过大抑制探索。
  • 适用场景:
    仿真环境预训练,且约束违反无严重后果时。

(2) 安全滤波器(QP-Based Safety Filter)

  • 处理方式:
    在线求解二次规划问题,修正动作 ( u ):
    [
    \begin{aligned}
    \min_{u} \quad & |u - u_{\text{RL}}|^2 \
    \text{s.t.} \quad & \nabla k(s)^T (f(s) + G(s)u) \leq -\alpha k(s)
    \end{aligned}
    ]
    • 通过CBF(Control Barrier Function)保证约束。
  • 特点:
    • 即时安全:每一步动作均满足约束。
    • 计算开销大:实时求解QP问题(毫秒级延迟)。
    • 可行性风险:约束冲突时无解(如机械臂被“卡死”)。
  • 适用场景:
    计算资源充足的实时控制系统(如自动驾驶)。

(3) 备份策略(Backup Policy)

  • 处理方式:
    预设安全策略 ( \pi_{\text{safe}} )(如零速度指令),当 ( k(s) > \epsilon ) 时切换:
    [
    u = \begin{cases}
    u_{\text{RL}} & \text{if } k(s) \leq \epsilon, \
    \pi_{\text{safe}}(s) & \text{otherwise}.
    \end{cases}
    ]
  • 特点:
    • 简单可靠:硬件易实现。
    • 保守性:任务中断频繁(如图1中)。
    • 泛化性差:需为每个任务单独设计 ( \pi_{\text{safe}} )。
  • 适用场景:
    已知明确安全动作的简单系统(如急停按钮)。

(4) 切空间投影(ATACOM,Tangent Space Projection)

  • 处理方式:
    1. 构造约束流形 ( \mathcal{M} = {s \mid k(s) = 0} ) 的切空间 ( T_s\mathcal{M} )。
    2. 将RL动作 ( u ) 投影到切空间:
      [
      u_{\text{safe}} = (I - \nabla k(s) (\nabla k(s)^T \nabla k(s))^{-1} \nabla k(s)^T) u
      ]
    3. 动态调整松弛变量 ( \mu ) 保证渐近收敛(见原文公式12)。
  • 特点:
    • 严格安全:数学保证 ( k(s) \leq 0 )(即使训练中)。
    • 高效:投影计算仅需矩阵乘法(微秒级)。
    • 自适应:无需手动设计安全策略。
  • 适用场景:
    高维复杂系统(如机器人、无人机)的在线安全学习。

对比总结表

方法 数学形式 安全性保证 计算效率 是否需要调参 适用场景
惩罚函数法 修改奖励函数 ❌ 无 ⚡ 最高 ✅ 需调λ 无风险仿真
安全滤波器 在线QP优化 ✅ 严格 🐢 慢 ❌ 无需 高资源实时系统
备份策略 条件策略切换 ⚠️ 保守 ⚡ 快 ✅ 需设计策略 简单硬件系统
切空间投影 几何投影+动态松弛 ✅ 严格 ⚡ 快 ❌ 无需 复杂在线学习
  1. 实例说明(机械臂避障)
  • 惩罚函数法:
    训练早期机械臂碰撞障碍物(( k(s) > 0 )),直到策略学会规避。
  • 安全滤波器:
    每个时间步求解QP,保证 ( D(s) \geq 0.1 ) m,但计算延迟导致控制频率下降。
  • 备份策略:
    机械臂接近障碍物时紧急停止,无法完成任务。
  • 切空间投影:
    机械臂沿障碍物表面切线运动(( D(s) \equiv 0.1 ) m),既安全又完成任务。
  1. 核心差异总结
  2. 安全性的数学基础:
    • 切空间投影和QP滤波器通过微分几何/优化理论严格保证安全。
    • 其他方法依赖启发式设计。
  3. 计算本质:
    • 切空间投影是解析解,QP是数值解,备份策略是规则匹配。
  4. 适用性:
    • 切空间方法唯一同时满足实时性、严格安全和自适应学习的要求。

通过这种对比,可以清晰看出为何ATACOM的切空间方法在复杂安全关键任务中具有显著优势。