3. 碰撞几何与安全间隔度量
在多无人系统(无人机、无人车、无人艇等)的碰撞避免问题中,仅凭“距离近不近”来判断风险是不够的。两架无人机可能相距 80 m,但若它们正以 15 m/s 的相对速度对头接近,风险远高于相距 40 m 但同向平行飞行的情形。因此,碰撞避免的核心不是单一的距离阈值,而是一组几何度量:碰撞锥刻画“是否会撞”,最近接近点刻画“最近会到多近”,最小安全距离刻画“允许多近”,安全区域建模则刻画“把谁当成多大一个物体”。本节围绕这四个概念展开,并给出可计算的实现方式。
一、碰撞锥:把“会撞”变成角度判据
碰撞锥(Collision Cone, CC)的基本思想是:把本机视为质点,把障碍/他机膨胀为一个半径等于两者安全半径之和的圆(球),则所有会导致碰撞的相对速度方向构成一个以本机为顶点、以他机为中心的锥形区域。设本机位置为 p_A,他机位置为 p_B,相对位置 p = p_B − p_A,相对速度 v = v_B − v_A,膨胀半径 R = r_A + r_B。若存在 t ≥ 0 使 |p + v·t| ≤ R,则相对速度 v 落在碰撞锥内。
工程上更常用的是角度判据:设相对位置方向角为 θ_p,相对速度方向角为 θ_v,则当 |θ_v − θ_p| ≤ α 时存在碰撞风险,其中 α = arcsin(R / |p|) 为碰撞锥半角。这个判据计算量极小,适合机载实时运行。需要注意:α 随距离减小而增大,因此“远处擦边”和“近处擦边”的风险等级完全不同,这正是碰撞锥比固定距离阈值更合理的地方。
二、最近接近点(CPA)与最小安全距离
最近接近点(Closest Point of Approach, CPA)回答的是“如果双方都不改变运动,最近会接近到多少”。在匀速直线假设下,最近接近时间 t_cpa 与最近距离 d_cpa 有闭式解:
p = p_B - p_A # 相对位置
v = v_B - v_A # 相对速度
t_cpa = -(p · v) / (v · v) # 若 t_cpa < 0,说明正在远离
d_cpa = |p + v · t_cpa| # 最近接近距离
以两架四旋翼为例:A 位于 (0, 0, 100),速度 (10, 0, 0) m/s;B 位于 (200, 30, 100),速度 (−10, 0, 0) m/s。则 p = (200, 30, 0),v = (−20, 0, 0),t_cpa = 10 s,d_cpa = 30 m。若设定最小安全距离 d_safe = 50 m,则 d_cpa < d_safe,必须在 t_cpa 之前完成规避。这里 d_safe 不是随意取的,通常由定位误差、控制跟踪误差、通信延迟、风扰漂移共同决定,例如:定位误差 2 m + 跟踪误差 3 m + 延迟导致的额外位移 5 m + 安全裕度 40 m = 50 m。
t_cpa,若 t_cpa < 0 则双方正在远离,无需动作;若 t_cpa ≥ 0 且 d_cpa < d_safe,再结合碰撞锥判断是否需要立即机动。两者结合可避免“距离近但正在远离”的误报。三、椭球与多面体安全区域建模
把无人系统当成一个点或一个球,在多数场景下过于保守或过于乐观。真实机体往往是非对称的:固定翼无人机翼展远大于机身厚度,无人车长度大于宽度。此时用椭球或多面体描述安全区域更精确。
椭球安全区域用一个二次型定义:(x − c)ᵀ Q (x − c) ≤ 1,其中 c 为中心,Q 为对称正定矩阵,其逆的特征值对应各轴半轴长的平方倒数。若机体沿 x、y、z 的半轴为 (a, b, c),则 Q = diag(1/a², 1/b², 1/c²)。两椭球之间的碰撞检测可转化为求解两二次型的最小值问题,工程上常用 GJK 或采样近似。
多面体安全区域则用一组半空间交集表示:A x ≤ b。它的优势是能精确描述长方体、棱柱、凸包等形状,且与线性规划、模型预测控制天然兼容。例如把一架无人机的安全区域建模为长 2 m、宽 2 m、高 0.5 m 的长方体,只需 6 个半空间约束。多面体之间的碰撞检测可归结为线性可行性问题,计算稳定、易于嵌入优化求解器。
四、把度量串成可执行的判断逻辑
实际系统中,上述四个概念通常按以下顺序使用。第一步,用椭球或多面体描述本机与他机的安全区域,得到等效膨胀半径或半空间约束。第二步,计算相对位置与相对速度,求 t_cpa 与 d_cpa。第三步,用碰撞锥半角 α 判断相对速度方向是否指向危险区。第四步,将 d_cpa 与 d_safe 比较,并结合 t_cpa 剩余时间划分风险等级。
| 条件 | 几何含义 | 建议动作 |
|---|---|---|
| t_cpa < 0 | 双方正在远离 | 保持当前航迹,继续监视 |
| d_cpa ≥ d_safe | 最近距离仍安全 | 保持,降低监视频率 |
| d_cpa < d_safe 且 t_cpa > 10 s | 存在风险但时间充裕 | 提前规划平滑规避 |
| d_cpa < d_safe 且 t_cpa ≤ 10 s | 风险紧迫 | 立即机动,优先改变相对速度方向 |
需要强调的是,d_safe 的取值必须与安全区域模型一致。若用球形膨胀,d_safe 应包含两机最大外接半径;若用椭球或多面体,则 d_safe 可只保留定位与控制误差裕度,从而减少不必要的规避机动。这也是精确几何建模的实际价值:它让安全间隔既不过于保守导致频繁避让,也不过于激进导致漏判。
d_safe = 50 m,看似安全,但若 t_cpa = 2 s、d_cpa = 8 m,则已处于紧急状态。判断必须同时看“现在多远”和“最近会多近”。小结:碰撞锥给出方向判据,CPA 给出时间与距离判据,最小安全距离给出阈值判据,椭球与多面体给出形状判据。四者组合,才能把“会不会撞、多近算危险、什么时候必须动”转化为可计算、可复现、可嵌入实时系统的几何度量。