人形机器人安全系统怎么搭:从限力、感知冗余到失效保护的实作指南

先说结论:人形机器人安全不是“加一个急停按钮”就结束,而是要把限力、限速、感知冗余、任务降级、失效保护和现场验证当成一整套系统来搭。对多数动手做 humanoid 的团队来说,最关键的工程判断不是“机器人能不能做这个动作”,而是“它一旦看错、踩滑、通信抖动、关节过热或人突然靠近时,会怎么收场”。

这篇文章不讲空泛的安全口号,而是按实作思路来拆:如果你想做一台会移动、会伸手、可能在人体附近工作的 humanoid,第一版安全系统应该先把哪些边界守住,哪些能力暂时不要贪,怎么验证,哪里最容易翻车。

这篇适合谁

  • 你在做 humanoid 原型机,已经开始进入站立、行走、抓取、遥操作或人机协作阶段。
  • 你发现“功能能跑通”之后,真正难的是怎么让系统在异常情况下别伤人、别伤机、别把测试现场变成赌博。
  • 你在犹豫安全到底该先做碰撞检测、力控、急停,还是先做权限隔离、行为边界和降级策略。

先纠正几个很常见的误区

误区 1:安全就是避免碰撞

碰撞当然重要,但真正麻烦的是非理想接触和异常行为。比如手臂没撞人,却把人逼到墙角;机器人没摔倒,却在负载变化时突然抽动;导航没撞上人,却停在对方通道中央让现场更危险。这些都属于安全问题。

误区 2:先把功能做出来,安全以后补

这在 humanoid 上通常会出大问题。因为很多功能设计一旦默认“随便动都行”,后面再补安全边界,会发现任务接口、控制链路、日志、驱动保护和状态机全要重写。安全最好从第一版架构就预留位置,不然代价会越来越高。

误区 3:有急停就够了

急停只是最后一道保险,不是日常控制策略。真正能减少事故的,往往是平时那一层层更早触发的保护,比如速度上限、力矩约束、接近人体时自动降速、接触异常时降级、通信超时后进入已知安全姿态。

误区 4:安全会让机器人没法用

做得差的安全系统会让机器人一惊一乍,动不动就全停。做得好的安全系统不是把机器人“关死”,而是让它在不确定条件下仍然保持可预测、可解释、可回退。这恰恰更利于长期调试和真实部署。

先定一个现实目标:第一版安全系统要解决什么

对早期 humanoid 项目,安全系统不需要一上来覆盖所有法规和复杂场景,但至少要解决下面四件事:

  • 机器人在正常工作时,不会轻易输出明显越界的速度、力矩和接触力。
  • 当感知、控制、执行器或通信出现异常时,系统能进入已知的降级状态,而不是行为失控。
  • 人在靠近、介入、示教或接管时,机器人会切换到更保守、更可解释的行为模式。
  • 每一次危险边缘事件都能留下日志,让你知道为什么触发、触发前发生了什么、下次如何避免。

如果这四件事还没做到,就别急着讨论更高级的人机协作能力,因为你连失败时怎么收都还没设计清楚。

关键实现判断:把安全拆成 5 层,而不是押宝一个模块

比较稳妥的做法,是把 humanoid 的安全系统拆成 5 个互相配合的层次。

1. 机械与电气边界层

这是最底层,也是最不能省的一层。包括关节硬限位、驱动器电流限制、保险丝或断电保护、紧急断使能、关键线束固定、防夹手结构、容易碰撞区域的软包覆等。它解决的是“软件来不及救时,硬件还能兜底多少”。

2. 实时控制保护层

这一层通常直接贴着执行器和低层控制回路,负责速度、加速度、力矩、温度、电流、通信超时、姿态倾覆阈值等约束。它的特点是反应快、规则简单、优先级高,宁愿保守也不要犹豫。

3. 行为约束层

这是很多团队最容易漏掉的一层。比如某些模式下禁止大步转身、禁止头部高度以上挥臂、禁止高负载时快速后撤、接近人体时只允许低速末端动作。它解决的是“动作本身虽然可执行,但不适合这个场景”。

4. 人机交互与接管层

当人在旁边观察、示教、扶持或准备遥操作接管时,机器人需要清楚表达自己当前是什么模式,是否在跟随、是否在受限、是否可接管、谁有最高权限。这层做不好,明明机器人没撞人,现场也会因为误解而出风险。

5. 验证与追责层

包括事件日志、触发原因、黑匣子数据、测试记录、风险清单、回归测试。很多安全问题第一次未必能完全避免,但如果你连复盘证据都没有,那同类问题几乎一定会反复出现。

工程上最值钱的判断是:不要把安全理解成一个“安全节点”或“一段代码”,而要当成跨机械、电气、控制、任务管理和测试流程的系统工程。

分步实践指南:第一版 humanoid 安全系统怎么搭

第 1 步,先画出“危险动作清单”

别从抽象原则开始,先列出这台机器人真实可能做出的危险动作:

  • 站立失稳向前栽倒
  • 手臂回摆打到旁人
  • 夹持失败后物体掉落
  • 脚底打滑导致横向甩动
  • 遥操作延迟下动作超调
  • 通信中断后仍保持上一次速度命令

这个清单决定你后面该优先做哪些保护。没有具体危险动作清单,安全设计很容易沦为空话。

第 2 步,给每类危险动作设置“最先能拦住它的边界”

例如:

  • 对挥臂风险,先用工作空间限制和速度上限,不要等碰撞检测兜底。
  • 对跌倒风险,先做姿态阈值、支撑状态检查和提前跪地/下蹲,而不是只靠最终断电。
  • 对接触风险,先做力矩估计和接触后自动降速,而不是默认“手碰到东西再说”。

原则很简单,越早发现、越早约束,代价越低。把所有问题都留给最后一级急停,现场体验会非常差。

第 3 步,把模式切换做清楚

实机里通常至少要分出几种模式:

  • 上电自检 / 空载校准
  • 受限调试模式
  • 正常自主模式
  • 人近距离协作模式
  • 遥操作接管模式
  • 故障降级模式

每个模式对应不同的速度、力矩、接触和动作权限。很多事故不是因为控制器失效,而是因为机器人本来该在“受限调试模式”,结果却按“正常自主模式”的边界在动。

第 4 步,把人体附近动作默认做保守

如果你没有很强的人体检测和状态估计能力,就不要假装自己已经具备复杂协作能力。更现实的做法是:

  • 人体进入近距离区域后,自动降低关节速度和末端速度。
  • 只允许小范围、可预测的末端动作,不做大幅摆动。
  • 优先用开掌、低力、低速的交互方式,而不是高刚度抓取。
  • 允许现场人员一键切换到冻结或柔顺模式。

这不酷,但非常有效。多数早期团队的安全提升,往往不是来自更聪明的识别模型,而是来自更诚实的动作边界。

第 5 步,异常处理要有“降级路线”

不要把异常处理设计成“正常运行”和“彻底停机”这两个极端。更实用的做法是给系统准备一条降级路线,例如:

  1. 轻微异常,先限制速度和力矩。
  2. 异常持续,撤销当前任务,回到安全姿态。
  3. 状态继续恶化,切换为高阻尼或柔顺保护模式。
  4. 确认高风险后,再执行急停或断使能。

这种分级处理能显著减少误触发造成的调试中断,也更适合真实环境里的灰色状态。

第 6 步,把“看得见的安全状态”做出来

现场的人需要知道机器人现在处于什么状态。至少建议有:

  • 模式指示,比如调试、自主、受限、故障。
  • 最近一次保护触发原因。
  • 是否允许接管、是否允许重新使能。
  • 关键风险项是否超限,比如温度、姿态、接触异常。

如果只有开发者看得懂终端日志,而测试人员和操作者都看不出来机器人正在变危险,那你的安全系统其实还没真正上线。

第 7 步,把验证顺序排对

安全验证不要一上来就做“人在旁边的整机演示”。更合理的顺序通常是:

  1. 单关节和单模组保护测试
  2. 静态站立和手臂空载动作保护测试
  3. 低速整机联动测试
  4. 假人或隔离区域中的接触测试
  5. 有限人类参与、可随时接管的演练

你需要的是逐步放开边界,而不是一开始就让现场成为“真实世界压力测试”。

最容易翻车的地方 / 常见失败模式

1. 只做了单点阈值,没有考虑组合异常

比如单独看温度没超、单独看姿态没超、单独看电流也没超,但三者同时处于边缘状态时,系统已经明显不稳定。Humanoid 很多风险来自多因素叠加,不是单个指标爆表。

2. 保护规则太多,但互相打架

一个节点想减速,另一个节点还在追踪原任务;上层状态机要求撤回,下层控制器却仍在保持末端位置。结果看起来像“机器人抽风”,本质上是保护逻辑没有统一优先级。

3. 人体检测做得不够稳,却把动作权限开得太大

如果人体位置估计不稳定、遮挡很多、延迟也大,就不应该允许高速度、高惯量的大范围动作。能力和边界必须匹配,不然只是在赌模型今天别失手。

4. 日志不够,导致每次都像第一次出事

没有保护触发前后 5 到 10 秒的状态记录,你很难知道究竟是感知错、控制超、接触误判还是执行器降额。这样团队就会反复靠猜修问题,效率很差,也很危险。

5. 忽略“过度信任”本身也是风险

如果机器人外形看起来很稳、动作也很顺,人会自然靠近,甚至默认它能理解更多情况。可一旦底层能力还没到位,这种过度信任就会把风险放大。所以安全不仅是机器人别做错,也包括不要让人误判它有多可靠。

怎么验证这套安全系统是不是真的有用

别只看“今天没出事故”,那不算验证。更靠谱的是做针对性的失败注入和回归测试:

  • 人为制造传感器延迟或丢包,确认系统会不会进入受限模式。
  • 模拟轻微外力扰动,验证机器人是先保平衡还是硬追任务。
  • 在不同地面摩擦条件下测试减速、停步和接触撤回逻辑。
  • 给关节温度或电流设置保守阈值,看系统能否平滑降级而不是突然瘫掉。
  • 重复做同一组保护触发测试,确认第 20 次和第 2 次表现一致。

对 humanoid 来说,安全系统最重要的指标之一不是“多聪明”,而是触发结果可重复。同样的异常,每次都能以差不多的方式被处理,现场人才会真正敢用。

下一步怎么做

  1. 先列一份你这台机器人最真实的 10 个危险动作,再按优先级排序。
  2. 为前 3 个高风险动作补上最早可触发的限制机制,而不是只补急停。
  3. 把模式、权限、降级路线和保护日志串起来,至少做到每次触发都能复盘。
  4. 在隔离环境里做系统化失败注入,别直接拿真人当测试夹具。

如果你把人形机器人安全理解成“让系统在出错时仍然有边界、有秩序、有回退路径”,很多设计选择会立刻变清楚。安全不是功能之后的附属品,而是决定这台机器能不能被长期调试、被现场信任、被逐步放权的底层条件。

延伸阅读方向

  • 继续细拆的话,下一篇最值得展开的是限力控制与接触检测如何落到具体关节和末端执行器上。
  • 如果你的项目已经进入行走阶段,建议把安全系统和状态估计、步态切换、跌倒恢复一起联动考虑。
  • 如果你在做遥操作或示教,优先补“权限切换”和“通信异常降级”,这两项通常比更炫的交互形式更重要。

Share this article

Send it to someone following humanoid robotics, embodied AI, or deployment trends.