4. 碰撞检测基本概念

在协作机器人安全力控领域,很多工程问题并不是出在算法本身,而是出在术语混用上。有人把“碰到”叫碰撞,有人把“压住”也叫碰撞;有人把“检测到异常”当成“识别出对象”。一旦概念边界不清,阈值设定、响应策略、测试验收都会出现偏差。本节先把四个高频术语——接触、碰撞、挤压、冲击——放在同一条物理时间轴上辨析,再说明检测与识别在目标、输入、输出和评价指标上的本质区别。

一、四个术语的物理本质:从“力—位移—时间”看差异

协作机器人末端与环境的作用,可以用三个基本量描述:接触力 F、相对位移 Δx、作用时间 Δt。四个术语正是这三个量不同组合下的状态命名。

  • 接触(Contact):末端与物体表面建立力学连接,但力值通常处于正常作业区间,位移可控、时间持续。它是中性状态,不等于危险。例如装配时探针轻触工件,力约 2~5 N,属于正常接触。
  • 碰撞(Collision):运动中的机器人末端或关节与障碍物发生非预期接触,核心特征是“非预期”和“相对速度较高”。碰撞可能瞬间发生,也可能持续,但一定偏离了原任务轨迹。
  • 挤压(Squeeze / Pinch):人体或物体被夹在机器人运动部件与固定面之间,力持续增加且无法通过自身运动脱离。挤压的危险性在于“持续加载”,即使力值不高,长时间作用也会造成伤害。
  • 冲击(Impact):碰撞的极端形式,特点是作用时间极短(毫秒级)、峰值力极高。冲击力由动量变化率决定,F ≈ m·Δv/Δt,因此高速小质量末端也能产生破坏性峰值。
记忆口诀:接触看力值,碰撞看预期,挤压看持续,冲击看峰值。四者不是互斥关系,而是一次事件在不同阶段可能依次呈现的状态。
力—时间曲线:四种状态的物理特征 时间 t 力 F 接触:低力、可控 碰撞:非预期尖峰 冲击:毫秒级峰值 挤压:持续加载 检测 Detection 输入:力/电流/关节位置 输出:有/无异常 + 时刻 指标:漏检率、响应延迟 识别 Identification 输入:检测结果 + 特征 输出:类型/位置/严重度 指标:分类准确率、定位误差 例:区分“碰人”还是“碰夹具” 先检测,后识别

二、检测与识别:目标不同,方法不同

很多初学者把“检测”和“识别”当成同义词,这是安全功能设计中的常见误区。二者的根本区别在于回答的问题不同。

对比维度 检测(Detection) 识别(Identification)
核心问题 有没有发生异常? 发生了什么类型的异常?
典型输入 关节电流、力矩、编码器位置 检测结果 + 力曲线特征、频谱、接触位置
典型输出 布尔标志 + 触发时刻 类别标签 + 置信度 + 位置/严重度
常用方法 阈值法、动量观测器、残差比较 特征工程 + 分类器、模板匹配、机器学习
关键指标 漏检率、误报率、响应延迟 分类准确率、定位误差、泛化能力
安全等级 通常直接关联急停/回退 通常用于策略选择与恢复决策

从工程实现看,检测是识别的前置条件:没有可靠的检测,识别就无从谈起;但检测做得好,识别未必准确。例如机器人碰到人,检测模块能在 10 ms 内触发停止,但识别模块需要进一步判断是“手臂接触”还是“末端夹爪挤压”,才能决定是立即释放还是缓慢回退。

三、典型场景:一次碰撞事件的完整链路

以协作机器人搬运工件时撞到操作人员为例,事件链路如下:

  1. 接触建立:末端与人体表面接触,力从 0 上升到约 15 N,此时属于正常接触范围,尚未触发安全响应。
  2. 碰撞检测:动量观测器发现实际力矩与模型预测力矩残差超过阈值 τ_res > 8 N·m,在 8 ms 内判定“发生非预期碰撞”。
  3. 冲击评估:系统读取峰值力与作用时间,若 F_peak > 140 N 且 Δt < 5 ms,则归类为冲击,立即执行急停。
  4. 挤压判断:若机器人未停止且力持续上升超过 300 ms,判定为挤压风险,切换为反向退让策略。
  5. 碰撞识别:结合接触位置、力方向、末端速度,分类为“人体接触—手臂—中度风险”,并记录日志用于后续复盘。
在 ISO/TS 15066 的语境下,接触力阈值与挤压力阈值是分开规定的:准静态接触允许力通常高于瞬态冲击允许力,因为人体对短时冲击的耐受与对持续挤压的耐受机制不同。工程中不能用一个阈值覆盖所有状态。

四、常见误区与复盘要点

  • 误区一:把接触当碰撞。正常装配接触力被误判为碰撞,导致频繁误停机。应结合任务阶段与力变化率区分。
  • 误区二:只做检测不做识别。系统能停但不知道停得对不对,恢复策略只能“一刀切”,影响节拍与安全。
  • 误区三:用冲击阈值判断挤压。挤压是持续加载,峰值可能不高,但持续时间长,必须引入时间积分或持续力判据。
  • 误区四:忽略检测延迟。检测延迟直接决定冲击峰值能否被及时截断,是安全链中最关键的参数之一。
# 典型检测—识别参数配置片段(示意)
detection:
  residual_threshold: 8.0      # N·m,碰撞检测残差阈值
  response_time_ms: 8           # 检测响应延迟
identification:
  impact_peak_force: 140        # N,冲击峰值判据
  impact_duration_ms: 5         # ms,冲击持续时间上限
  squeeze_force: 80             # N,挤压持续力阈值
  squeeze_duration_ms: 300      # ms,挤压持续时间阈值
  classifier: "force_feature_svm"

复盘时建议按“状态—判据—响应—结果”四列记录每一次异常事件:状态是接触、碰撞、挤压还是冲击;判据用了哪个阈值;响应是急停、退让还是继续;结果是误报、漏报还是正确处置。坚持记录,才能把术语辨析真正落到参数整定与安全验证中。