Skip to content
Published on

机器人安全与对齐 — 如何信任强大的机器人

分享
Authors

引言

上一篇文章里,我们看了机器人是如何感知世界的。然而,看得清楚和行动安全是两回事。机器人拥有物理实体,会在真实世界中施加力。软件的 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 可验证性:复杂的学习策略灵活,但难以验证;简单的规则容易验证,但又过于僵硬。

正确答案因场景而异。在医院里穿梭于病人身边的机器人,与在隔离工厂里高速运动的机器人,两者的平衡点完全不同。好的设计,会如实评估用途与风险,并据此选择合适的平衡。

把基于规则和基于学习这两种方式的安全特性放在一起比较,这种平衡关系会更加清晰。

维度基于规则的机器人基于学习的机器人
可预测性高(规则固定)低(依赖数据)
验证难易度相对容易困难(容易黑盒化)
适应新场景弱(规则之外就失效)可能很强(具泛化能力)
安全保证方式验证规则本身用安全层·监控包裹
失败形态显式·可预见细微·可能出乎意料

这张表给出的教训是:可以获取学习型机器人的灵活性,但安全保证要交给简单、可验证的那一层来承担。也就是说,不要要求同一个部件同时既「聪明」又「安全」,把角色分开才更现实。

结语

信任一台强大的机器人,并不意味着相信它绝不犯错,而是相信它被设计成即便犯错,也会朝着安全的方向失败。物理安全装置、有约束的学习、可验证的安全层、面对分布偏移时的谦逊、与人之间的相互理解,以及对对齐问题持续不断的追问——当这些层一层层叠加起来时,信任才会产生。

机器人未来只会变得更有能力。让这份能力配得上同等的审慎,才是把机器人安全地带入我们生活的道路。下一篇文章,我们将探讨机器人通过观看人类视频来学习的另一种有趣方式。

参考资料