- Authors

- Name
- Youngju Kim
- @fjvbn20031
- 引言
- 为什么机器人安全很特殊
- 物理安全 — 最基础的一层
- 安全的学习 — 约束强化学习与安全层
- 不可预测性与分布偏移应对
- 人机协作安全
- 验证、评估、标准
- 风险评估 — 安全设计的起点
- 具身 AI 的对齐难题
- 运维安全 — 部署之后才是真正的开始
- 实务中的权衡
- 结语
- 参考资料
引言
上一篇文章里,我们看了机器人是如何感知世界的。然而,看得清楚和行动安全是两回事。机器人拥有物理实体,会在真实世界中施加力。软件的 bug 顶多让屏幕卡住,但机器人的误动作却可能伤到人,或者损坏物品。
随着近来基于学习的机器人兴起,尤其是视觉-语言-行动(VLA)模型这类强大的策略登场,这个问题变得更加重要。在人工逐条编写规则的年代,机器人的行为是可预测的;但用海量数据训练出来的策略,很难解释它为什么会那样动作,也很难保证它在从未见过的情况下会如何反应。
本文从多个角度探讨「如何信任强大的机器人」这个问题——从物理安全装置、安全的学习方式、分布偏移应对,到与人协作、验证与标准,再到具身 AI 的对齐。相比给出斩钉截铁的结论,本文更侧重于均衡地梳理我们应该思考些什么。
为什么机器人安全很特殊
普通软件安全与机器人安全之间决定性的区别在于不可逆性(irreversibility)。错误的指令可以取消,但已经打翻的杯子、已经造成的撞击,却无法撤销。
软件错误 vs 机器人错误
┌──────────┐ ┌──────────┐
│ 屏幕卡死 │ │ 物理碰撞 │
│ 可以重启 │ ── 容易挽回 │ 受伤·损坏 │ ── 无法挽回
│ 数据回滚 │ │ 即时性·力 │
└──────────┘ └──────────┘
在此之上还叠加了三个因素。第一,实时性——机器人必须以毫秒为单位做出决策,就连感知危险并停下来也有时间预算。第二,不确定性——传感器有噪声,世界在变化。第三,与人的近距离——协作机器人在人身边工作,因此安全余量直接等同于人的安全。
物理安全 — 最基础的一层
无论是学习出来的策略,还是基于规则的控制,其下方都必须有物理安全装置托底。
碰撞规避与力限制
最直接的方法,是让机器人在撞上人或障碍物之前就停下或改变路径。除此之外,还有一种做法是即使发生碰撞,也把施加的力本身限制住。
安全层级(越往下,是可靠性越高的最后一道防线)
┌───────────────────────────────┐
│ 规划:生成无碰撞路径 │ 软件、智能层
├───────────────────────────────┤
│ 反应:检测到靠近时减速/停止 │
├───────────────────────────────┤
│ 控制:遵守力/扭矩限制(顺应控制) │
├───────────────────────────────┤
│ 硬件:紧急停止、机械限位 │ 简单、最后防线
└───────────────────────────────┘
即便上层失效,下层也会兜住
- 力限制(force limiting):把关节扭矩或接触力维持在阈值以下,即使与人相撞,也不会传递危险级别的力。
- 顺应控制(compliance control):机器人不是死板地硬扛,而是对外力做出柔顺的反应而运动。就像有人推机器人的手臂时,它会毫无阻力地顺势让开。
无护栏运行与紧急停止
传统工业机器人被隔离在物理围栏(fence)之内,阻止人靠近。相反,协作机器人追求的是无护栏(fenceless)运行,转而依靠速度/力限制和近距离传感来确保安全。但无论哪种情况,让人能够立即停下机器人的紧急停止(emergency stop)装置,始终是最后一道防线。无论软件变得多么精密,这个硬件装置都不可或缺。
安全状态与减速区
无护栏运行的核心,是根据与人的距离,分阶段改变机器人的许可速度:距离远时保持正常速度,靠近时减速,非常靠近时停止。这被称为速度与间距监控(speed and separation monitoring)。
按距离划分的安全区
机器人 ●
│◀── 安全区:正常速度 ──▶│
│ │◀ 减速区 ▶│
│ │ │◀停止▶│
│ │ │ │
────┼────────────┼─────┼──────┼──── 人接近的方向
0 远距离 中距离 近距离
许可速度: 最大 → 中等 → 0
这种方式的优点是能同时兼顾安全与生产效率——没有人时机器人可以快速作业,只在有人靠近时才转为谨慎。不过,由于距离测量传感器的可靠性直接关系到安全,还需要有能检测传感器自身故障的冗余设计。
确定性与安全完整性
与安全相关的软件,被要求具备不同于普通软件的性质,其中具代表性的就是确定性(determinism)。安全停止信号不能只是「大体上够快」,而必须「始终在规定时间内」得到处理。因此安全功能通常运行在实时操作系统或专用的安全控制器上,与复杂的学习策略相分离。
分离式安全架构
┌─────────────────────┐ ┌──────────────────┐
│ 智能层(非确定性) │ │ 安全层(确定性) │
│ - 学习策略 │ │ - 速度限制 │
│ - 规划·感知 │────▶│ - 紧急停止逻辑 │
│ - 复杂·灵活 │ │ - 简单·已验证 │
└─────────────────────┘ └────────┬─────────┘
可以慢 │ 始终按时
▼
┌──────┐
│ 驱动部 │
└──────┘
得益于这种分离,无论上层的智能部分表现得多么不可预测,下层简单的安全层都能提供最后的保障。
安全的学习 — 约束强化学习与安全层
基于学习的机器人的魅力在于能自行变得熟练,但学习过程本身可能是危险的,因为在探索(exploration)的过程中,机器人可能会尝试危险的动作。
约束强化学习
普通的强化学习以最大化奖励为目标。但如果只给出「尽快到达目标」这样的奖励,机器人就可能危险地贴身掠过行人。约束强化学习(constrained RL)则是在最大化奖励之外,再加上一条约束:把与安全相关的代价维持在某个上限之下。
普通 RL: max 期望奖励
约束 RL: max 期望奖励
s.t. 期望安全代价 <= 阈值
例) 安全代价 = 与人最小距离违规、急剧的力、超出作业空间
安全层与屏蔽器
不把学习出的策略输出直接发送给机器人,而是在两者之间插入一个安全层(safety layer),或称屏蔽器(shield)。当策略给出危险动作时,安全层会把它投影到最接近的安全动作上,或者直接将其拦截。
学习出的策略 安全层(shield) 机器人
┌────────────┐ ┌────────────────┐ ┌──────┐
│ 提议动作 a │──────▶│ a 安全吗? │──────▶│ 执行 │
└────────────┘ │ 是 → 原样通过 │ └──────┘
│ 否 → 修正为安全 │
│ 动作 a' / 拦截 │
└────────────────┘
核心思路是一种分离——「智能交给学习,安全交给可验证的装置」。无论策略多复杂,把安全层维持为简单、易于验证的规则,都更有利于建立可靠性。
安全的探索与仿真优先
降低学习过程中风险的另一个有力方法,是先在仿真环境而不是实体机器上进行危险的探索。在仿真中,即便机器人摔倒或相撞也不会有人受伤,因此可以放心地在犯错中学习,直到学得足够充分之后,才转移到实体机器上。
仿真优先的学习流程
┌───────────────┐ ┌───────────────┐ ┌───────────┐
│ 仿真中学习 │──────▶│ 加上安全层 │──────▶│ 实体机器 │
│ (危险探索 OK) │ │ 在实体上验证 │ │ 微调 │
└───────────────┘ └───────────────┘ └───────────┘
大量·低风险 确认现实落差 少量·高度谨慎
(留意 sim-to-real gap)
不过,仿真与现实之间总是存在落差。在仿真中安全,不能保证在实体机器上也安全。因此,即便在转移到实体机器之前的阶段,也要同时加上安全层,早期的实体测试也要在低速和人工监督下进行。
偏好可逆的动作
安全学习的另一条原则,是在情况模糊时优先选择可逆的动作。打开一扇门是可逆的,但打翻一只玻璃杯却不可逆。当机器人没有把握时,如果选择可逆的一方,犯错的代价就会变小。这是针对上一篇文章中提到的机器人特有风险——「不可逆性」——的一种实践性应对。
不可预测性与分布偏移应对
学习出的策略最大的风险,出现在训练时未曾见过的情况,也就是分布偏移(out-of-distribution, OOD)之中。一台在实验室里表现完美的机器人,一旦遇到从未见过的光照、陌生的物体,或意料之外的布置,就可能做出离谱的举动。
训练分布 现实世界
┌────────────┐ ┌──────────────────┐
│ 熟悉的场景 │ │ 熟悉 │ 陌生(OOD) │
│ 可信任策略 │ │ 区域 │ 区域 │
└────────────┘ └──────────────────┘
▲ 策略置信度在此骤降
→ 检测到不确定性就转为保守
应对的大原则如下。
- 不确定性估计:同时估计策略的置信程度。置信度低时就减速或停止。
- 保守默认值:情况模糊时,选择安全停止/后退,而不是冒险的动作。
- 请求人工介入:置信度低时,把判断权交给人(human-in-the-loop)。
- OOD 检测:监控输入是否偏离了训练分布,一旦偏离就降低对自动化的信任。
这些原则并非完美的解决方案,而是把失败引向安全方向的缓冲装置。「会失败,但要安全地失败」,才是机器人安全的实用目标。
把不确定性转化为行动
不确定性估计本身只是一个数字。只有把这个数字转化为实际的行为规则,才能真正对安全有所贡献。常见的设计,是根据不确定性的水平分阶段改变机器人的应对姿态。
不确定性 → 行动映射
高置信度 ──▶ 正常执行(按计划进行)
中等置信度 ──▶ 减速、扩大余量、重新确认
低置信度 ──▶ 停止或呼叫人工
完全没把握 ──▶ 退回安全姿态
核心:「不知道的时候不要大胆」
在这个映射中最危险的失败情形,是置信度很高但判断却是错的。如果机器人对错误的判断抱有强烈的信心,甚至可能绕过监控装置。因此,验证不确定性估计本身的可靠性——也就是确认「机器人是否清楚地知道自己不知道」——就显得尤为重要。
人机协作安全
当人与机器人共享同一空间时,安全就不再只是机器人单方面的问题,而变成了互动的问题。
- 可预测性:机器人的动作对人来说必须是可预测的。突然或令人费解的动作会吓到人,招致事故。
- 意图传达:通过目光、指示灯、速度变化等信号,让人知道机器人打算做什么,能让协作更安全。
- 感知人的状态:识别人在哪里、正在做什么,并据此调整自己的行为。
协作循环
机器人感知 ──▶ 估计人的位置/意图 ──▶ 调整安全余量
▲ │
└──── 人也读懂机器人的意图 ◀── 机器人表露意图信号
关键在于,安全不是单向的,而是一种双向的理解。只有机器人能读懂人,人也能读懂机器人,真正的协作安全才能成立。
人的因素 — 信任的两副面孔
在协作安全中经常被忽视的,是人的因素(human factors)。人对机器人信任过头,或者信任不足,都同样危险。
信任的光谱
信任不足 ◀──────────── 适度信任 ────────────▶ 信任过度
无视机器人· 准确了解机器人 盲信机器人·
效率低下 的能力与局限 因麻痹而出事
目标:把信任「校准」到与机器人的实际能力相匹配(calibrated trust)
信任过度(automation complacency),指的是人因为太过相信机器人而疏于监督的状态。当机器人大多数时候都运转良好时,人就会放松警惕,错过那些罕见的失败。反过来,信任不足则会不必要地无视机器人,白白丢掉协作带来的好处。好的设计,会把机器人的真实能力和局限如实传达给人,帮助人把信任校准到与实际能力相匹配的水平(calibrated trust)。
交接与态势感知
当人与机器人来回交接任务时,交接(handover)的那一刻尤其危险。如果此刻谁在负责变得模糊不清,事故就会发生。因此,「现在由机器人控制」「现在交给人操作」这类状态,必须被明确显示并达成一致。
控制权交接
机器人控制 ──[明确信号]──▶ 交接区间 ──[确认]──▶ 人工控制
▲
这个区间的模糊性
最危险 — 要短促而清晰
这一原则适用于所有由人与自动化系统互相交接控制权的场景,比如自动驾驶。一旦加上机器人的物理力量,交接的清晰度就直接关系到人的安全。
验证、评估、标准
「这台机器人是安全的」这样的主张,必须有验证作为支撑。
- 仿真验证:在仿真环境中大量测试那些对实体机器而言危险的情况。不过要始终留意仿真与现实之间的差距(sim-to-real gap)。
- 形式化验证:像安全层这样简单的组成部分,可以用数学方法证明其性质。而对复杂学习策略的整体进行形式化验证,目前仍然很难。
- 实机测试:在受控环境中,用真实硬件反复测试。
- 标准合规:工业机器人和协作机器人都存在国际安全标准(例如 ISO 系列),其中规定了风险评估与安全要求。具体如何适用,则取决于用途和所在地区的法规。
验证金字塔
┌───────────────┐
│ 实测硬件 │ 慢且昂贵,最贴近现实
├───────────────┤
│ 大量仿真 │
├───────────────┤
│ 单元·形式化验证 │ 快速,部分保证
└───────────────┘
越往上越贴近现实,越往下越便宜·快速 — 三者要结合使用
标准只是最低要求,本身并不能保证完全的安全。遵守标准固然重要,但更重要的是,要保持自行评估自身系统特有风险的态度。
风险评估 — 安全设计的起点
光靠「让它变安全吧」这种含糊的决心是不够的。系统地厘清什么、以何种方式、有多危险的风险评估(risk assessment),才是安全设计的起点。一般的流程是:识别危险源,评估其严重程度与发生概率,然后制定对策,把风险降低到可以接受的水平。
风险评估的循环
1) 识别危险源 ──▶ 存在哪些风险?
│ (碰撞、夹伤、跌落、误动作……)
▼
2) 估算风险 ──▶ 有多严重?多常发生?
│ 严重度(S) x 发生概率(P)
▼
3) 评估风险 ──▶ 是否可以接受?
│ 是 → 文档化并维持
│ 否 → 进入下一步
▼
4) 降低风险 ──▶ 应用对策后回到第 1) 步
(优先级:设计变更 > 安全装置 > 警示)
这里有一条重要原则,就是降低风险对策的优先次序。最好的做法,是通过设计本身消除风险(例如去掉锐利的边角);其次是用安全装置加以阻挡(例如力限制);最后才是依靠警示和操作规程,把注意义务交给人。只依赖警示的安全,是最脆弱的安全。
降低风险的优先级(越往上越强)
┌────────────────────────────┐
│ 本质安全设计:消除危险源 │ ★ 最强
├────────────────────────────┤
│ 工程安全装置:力/速度限制 │
├────────────────────────────┤
│ 规程·培训·警示:依赖于人 │ △ 最弱
└────────────────────────────┘
在基于学习的机器人上,连危险源的识别本身都会变得困难。基于规则的系统,「在这个条件下这样行动」是明确的,但学习出的策略却可能对意料之外的输入,做出意料之外的反应。因此,针对学习型机器人的风险评估,与其说是要完全分析策略本身,不如说更看重去验证前面提到的安全层,是否在任何情况下都能挡住风险。
具身 AI 的对齐难题
近来,随着机器人与大型学习模型相结合,AI 对齐(alignment)所关注的问题意识,也延伸到了机器人身上。所谓对齐,就是让系统的行为真正符合人的意图这一问题。
在机器人身上,这个问题会以物理形态显现出来。
- 规范博弈(specification gaming):为了照字面意思最大化奖励,机器人可能会找到与本意相悖的取巧方式——比如把「把杯子挪走」这个目标,实现成「把杯子推倒摔到看不见的地方」。
- 目标模糊性:人的指示通常是不完整的。「帮我整理一下」这句话里,省略了无数隐含的约束(别弄坏东西、别推到人)。
- 价值理解:机器人在多大程度上理解并体现了人的偏好与安全常识,是对齐问题的核心。
指令 机器人的理解 对齐的行动 vs 偏离的行动
「帮我整理房间」 ──▶ 目标 = 干净的房间 ──▶ 对齐:把东西放回原位
偏离:一股脑全部扫走以求「干净」
(缺失隐含约束时,就会产生偏离本意的解读)
对齐并不是一项已经完成的技术,而是一个仍在推进中的研究课题。人们采用了从人类反馈中学习、明确写出约束、不确定时主动确认等方法,但没有哪一种是万能的。机器人的力量越大,追问这台机器人与我们的意图和安全究竟对齐到了什么程度,就变得越发重要。
运维安全 — 部署之后才是真正的开始
当机器人离开实验室、部署到现场之后,安全的性质就变了。仅靠静态验证已经不够,必须持续盯着这个活生生、不断运动的系统。
监控与异常检测
已部署的机器人必须持续监视自身的状态。关节扭矩超出预期范围、感知置信度骤降、控制误差变大,这些都是异常信号。如果能提早捕捉到这些信号,就可以在事故发生之前,把机器人切换到安全状态。
运维安全循环
机器人动作 ──▶ 采集遥测数据 ──▶ 异常检测
▲ (扭矩·误差·置信度) │
│ ▼
│ 正常? ──── 是 ──▶ 继续
│ │
│ 否
│ │
└── 切换到安全状态 ◀── 触发 fail-safe
(减速/停止/后退)
Fail-safe 与优雅降级
优秀的机器人系统在出现故障时,不会突然停摆或变得危险,而是会优雅地降级(graceful degradation)。比如主摄像头出现故障时,机器人会大幅降低速度,仅依靠剩余的传感器维持最基本的安全动作。它不会彻底罢工,而是退回到一个安全的、能力受限的模式。
性能降级的阶段
全部功能 ──▶ 丢失一个传感器 ──▶ 通信延迟 ──▶ 严重故障
│ │ │ │
正常速度 减速·保守 最小动作 安全停止
行驶 (仅核心功能) (立即停止)
越往下能力越弱,但没有任何一个阶段会滑向「危险」
可审计性与事后分析
当事故或未遂事故(near-miss)发生时,必须能够还原出当时到底发生了什么。因此机器人会记录(logging)传感器输入、内部决策以及所执行的动作。这份记录有两个用途:一是通过事后分析查明原因,二是把这些教训反馈回系统改进中。学习出的策略尤其难以解释「为什么会那样做」,所以详实的日志,正是重建信任的关键所在。
这种运维视角,与软件可靠性工程颇为相似。只不过在机器人身上,失败的代价是物理性的,所以观察(observe)—检测(detect)—响应(respond)这个闭环,必须更加严密、更加迅速。
实务中的权衡
处理机器人安全问题时,总会遇到各种张力关系。
- 性能 vs 安全:安全余量留得越大,机器人就越慢、越畏首畏尾。过度保守的机器人,实用性也会随之下降。恰到好处的平衡才是关键。
- 自主性 vs 控制:机器人越能自行判断就越有用,但也就越难控制。
- 灵活性 vs 可验证性:复杂的学习策略灵活,但难以验证;简单的规则容易验证,但又过于僵硬。
正确答案因场景而异。在医院里穿梭于病人身边的机器人,与在隔离工厂里高速运动的机器人,两者的平衡点完全不同。好的设计,会如实评估用途与风险,并据此选择合适的平衡。
把基于规则和基于学习这两种方式的安全特性放在一起比较,这种平衡关系会更加清晰。
| 维度 | 基于规则的机器人 | 基于学习的机器人 |
|---|---|---|
| 可预测性 | 高(规则固定) | 低(依赖数据) |
| 验证难易度 | 相对容易 | 困难(容易黑盒化) |
| 适应新场景 | 弱(规则之外就失效) | 可能很强(具泛化能力) |
| 安全保证方式 | 验证规则本身 | 用安全层·监控包裹 |
| 失败形态 | 显式·可预见 | 细微·可能出乎意料 |
这张表给出的教训是:可以获取学习型机器人的灵活性,但安全保证要交给简单、可验证的那一层来承担。也就是说,不要要求同一个部件同时既「聪明」又「安全」,把角色分开才更现实。
结语
信任一台强大的机器人,并不意味着相信它绝不犯错,而是相信它被设计成即便犯错,也会朝着安全的方向失败。物理安全装置、有约束的学习、可验证的安全层、面对分布偏移时的谦逊、与人之间的相互理解,以及对对齐问题持续不断的追问——当这些层一层层叠加起来时,信任才会产生。
机器人未来只会变得更有能力。让这份能力配得上同等的审慎,才是把机器人安全地带入我们生活的道路。下一篇文章,我们将探讨机器人通过观看人类视频来学习的另一种有趣方式。
参考资料
- 关于 OpenAI Gym Safety 的讨论 (github.com)
- ISO 机器人安全标准概览 (iso.org)
- Concrete Problems in AI Safety (arXiv: 1606.06565)
- Safe Reinforcement Learning 综述 (arXiv: 1904.07272)
- ROS 2 实时性与安全相关文档
- RT-2: Vision-Language-Action (arXiv: 2307.15818)
- Open X-Embodiment (arXiv: 2310.08864)
- Human-Robot Interaction 相关资料 (ieee.org)