摘要:面向"在满足安全约束的前提下控制机器人"的纵深路线,从 Lyapunov 稳定性到 CBF-QP、再到 Safe RL,最后落到真机上的分层安全部署(急停 / 安全状态机 / 跌倒减损 / 上机流程),按 Stage 0–4 串通;本路线是 运动控制主路线 的一条分支。
flowchart LR
S0["<b>Stage 0</b><br/>数学基础<br/><em>Lyapunov 稳定性</em>"]
S1["<b>Stage 1</b><br/>CLF / CBF 基础<br/><em>CBF-QP 实现</em>"]
S2["<b>Stage 2</b><br/>嵌入 WBC / MPC<br/><em>Safety Filter</em>"]
S3["<b>Stage 3</b><br/>Safe RL<br/><em>CMDP / Lagrangian</em>"]
S4["<b>Stage 4</b><br/>真机安全部署<br/><em>分层安全壳 / 安全 FSM</em>"]
S0 --> S1 --> S2 --> S3 --> S4
classDef stage fill:#142a3a,stroke:#e67e22,stroke-width:2px,color:#fff
class S0,S1,S2,S3,S4 stage
- 目标读者是有控制理论基础、想加入安全保证的工程师或研究者
- 需要有基础线性代数和微分方程直觉;RL 基础有助于后期阶段
- 每个阶段有前置知识、核心问题、推荐做什么、学完输出什么
和主路线的关系:
- 安全控制可以作为 WBC / MPC 的安全约束层,也可以作为 RL 的奖励整形层
- 如果你做主路线 L4 时希望加上安全保证,看本路线
- 如果你做 RL 时希望策略可证明地不越界,看本路线 Stage 3
- 如果你要把策略搬上真机、担心摔机 / 失控 / 故障伤人,看本路线 Stage 4(也可先读,作为上机前的安全底线)
- 线性代数(矩阵、特征值)
- 微分方程基础(稳定性直觉)
- 一点凸优化基础(QP 是什么)
- Lyapunov 稳定性是什么意思
- 为什么 Lyapunov 函数能证明系统收敛
- Lyapunov 稳定性形式化
- Khalil, Nonlinear Systems — Chapter 4(稳定性定义)
- 选一个一阶或二阶简单系统,手写一个 Lyapunov 函数并验证导数负半定
- 对照 Khalil Nonlinear Systems Chapter 4,把稳定性定义和自己的证明对上
- 能手工验证一个简单系统的 Lyapunov 稳定性
- 理解正定函数和负半定导数的含义
- CLF 和 CBF 分别解决什么问题(收敛 vs. 安全边界)
- 两者如何联合放入 QP 优化
- Control Lyapunov Function
- Control Barrier Function
- CLF vs CBF 对比
- Ames et al., Control Barrier Function based Quadratic Programs (2017)
- 用 Python + CVXPY 实现一个 CBF-QP,保证 2D 小车不越过边界
- 能解释 CLF 和 CBF 的数学定义和功能区别
- 能写出 CBF-QP 的标准形式
- 如何把 CLF 和 CBF 约束嵌入 WBC 的 QP 层
- Safety filter 和 MPC safety constraint 有什么区别
- Safety Filter
- Whole-Body Control
- Query:CLF+CBF 在 WBC/MPC 中联合使用
- Zeng et al., Safety-Critical Model Predictive Control (2021)
- 在一个简单 locomotion 环境中加入 CBF safety filter,观察对步态的影响
- 能描述 safety filter 的工作方式
- 能识别 WBC 中哪些约束层可以加 CLF/CBF 项
- Constrained MDP(CMDP)和标准 MDP 的区别
- 如何用 Lagrangian 方法或 barrier 方法训练安全策略
- Safe RL
- CMDP 形式化
- 安全的真机 RL 微调
- Garcia & Fernandez, A Comprehensive Survey on Safe RL (2015)
- Reinforcement Learning
- 用 Safety Gym(OpenAI)或 safe-control-gym 跑一个 constrained RL 实验
- 能解释 CMDP 的形式化定义
- 能对比 model-based 安全保证 vs. model-free 安全奖励塑形的优劣
- Stage 2 的 safety filter 与 Stage 3 的 Safe RL(知道算法层能管什么)
- 有一台可上机的策略(RL / WBC 均可),读过 Sim2Real 基本概念
- 为什么 CBF / Safe RL 的保证不够:模型误差、驱动器报错、总线超时、估计发散都在算法假设之外——安全必须独立于策略,分布在算法 / 控制板 / 驱动 / 机械多层
- 硬故障时切到什么安全态:确定性 FSM(看门狗、总线超时 → 阻尼 / 无力矩 / 冻结),以及「无力矩 = 摔倒」的 fail-passive gap
- 急停怎样才不摔:先判断当前状态是否还「可停」,再选停止策略或阻尼防摔
- 跌倒不可避免时如何减损;上机前如何逐级验证(SIL → HIL → 吊架 → 渐进测试)
- Sim2Real 闭环误差分层工程 — §6「分层安全:独立于策略」
- Sim2Real 工程 Checklist — 阶段 4「真机初次部署」:吊绳 / 急停 / 力矩上限 / 站立先行
- 机器人安全状态机 与 wbc_fsm(Passive / Loco / WBC 模式切换实例)
- Fail-Passive Gap — ISO 13849 断电即安全 vs 双足主动平衡;外部链可评 PL,机侧反应链评不了
- Safe-Stop — 急停建模为 reach-avoid,双 stoppability 估计一致才停,否则 damping fallback
- ResSafe / SafeWBC — 学习型 / CBF 型安全层接在策略或 WBC 输出之后
- SafeFall 与 Balance Recovery — 摔倒预测 + 减损策略,平时 dormant
- Hardware-in-the-Loop / 人形测试流程 L0–L5 — 上机前的逐级验证
- SLowRL — 真机微调期用 Recovery 安全滤波限制探索(衔接 Stage 3)
- 模型版本管理与 OTA — 仅 Passive / Safe 态允许换权重
- RL 策略真机调试 Playbook
- 在仿真里给自己的控制栈加一个
Init → Passive → Active → Fault → Safe状态机,注入总线超时、deadline miss、IMU 失效,检查每种故障在一个控制周期内进入安全态、且不会自动弹回 Active - 按 Sim2Real Checklist 阶段 4 的顺序做一次上机:吊架保护 + 硬件急停 + 力矩上限 → 站立 ≥ 30 s → 原地踏步 → 极慢速直走
- 对一台人形,写清楚「Safe 态到底是什么」:无力矩 / 阻尼站立 / 跪倒脚本,并说明它在哪些状态下会导致摔倒
- 一张本机的分层安全表:每层(机械 / 驱动 / 控制板 / 算法)的故障源 → 检测 → 安全动作
- 能解释 safety filter(约束正常控制)与安全 FSM(处理硬故障)的分工,以及 fail-passive gap 为什么是人形认证的缺口
- 一份可复用的上机前 checklist
| 阶段 | 核心问题 | 知识页入口 |
|---|---|---|
| Stage 0 | Lyapunov 稳定性 | Lyapunov 稳定性 |
| Stage 1 | CLF / CBF 与 CBF-QP | Control Barrier Function |
| Stage 2 | 嵌入 WBC / MPC | Safety Filter |
| Stage 3 | Safe RL / CMDP | Safe RL |
| Stage 4 | 真机分层安全 / 安全 FSM / 急停 | 机器人安全状态机 |
- 完整成长路线参考:主路线:运动控制 → 物理智能全栈成长路线
- 相关纵深路线(按主题邻近,完整目录见 路线总览):
- 关联知识页:
- Lyapunov 稳定性
- Control Lyapunov Function
- Control Barrier Function
- CLF vs CBF 对比
- Ames et al., Control Barrier Function based Quadratic Programs (2017)
- Khalil, Nonlinear Systems
- Sim2Real 闭环误差分层工程、Sim2Real 工程 Checklist
- 机器人安全状态机、Fail-Passive Gap(arXiv:2608.02809)、Safe-Stop(arXiv:2609.02358)