3. 环境建模与动态障碍表征

动态航迹规划的第一步不是“算路径”,而是把连续、复杂、不断变化的飞行环境,转换成规划器能够计算和推理的数据结构。同一片空域,用不同建模方式表达,会直接决定后续算法能处理什么、算得多快、以及能否安全避障。本节围绕栅格地图、路图、势场、高程图、概率占据地图五类静态/半静态表示,以及动态障碍物的时空描述方法展开,重点说明每种表示的适用场景、关键参数与实现要点。

一、栅格地图:最通用的离散占据表示

栅格地图把三维空域按分辨率 r 切成规则立方体单元,每个单元记录一个占据状态。最常用的是二值占据:0 表示自由,1 表示障碍。给定空域范围 [xmin,xmax]×[ymin,ymax]×[zmin,zmax],栅格尺寸为:

Nx = ceil((xmax - xmin) / r)
Ny = ceil((ymax - ymin) / r)
Nz = ceil((zmax - zmin) / r)
index(i,j,k) = i + j*Nx + k*Nx*Ny

分辨率是核心权衡:r 越小,障碍边界越精细,但内存与搜索节点数按 1/r³ 增长。例如 1 km×1 km×200 m 空域,r=10 m 时约 20 万格,r=5 m 时约 160 万格。工程上常对栅格做膨胀处理,把障碍按无人机安全半径 Rs 外扩 ceil(Rs/r) 格,使规划器可把无人机当作质点处理,代价是损失部分可通行空间。

二、路图:把连续空间压缩成图

路图不保留全部栅格,只保留“值得走”的骨架。常见三类:可视图(Visibility Graph)连接障碍顶点间的可视连线,适合多边形障碍的二维最短路径;Voronoi 图取到最近障碍等距的脊线,天然远离障碍,安全性好但路径偏长;概率路图(PRM)在自由空间随机采样 N 个点,对距离小于 dmax 且连线无碰撞的点对连边,适合高维或复杂三维空间。路图把搜索空间从数十万栅格降到数百至数千节点,A*、Dijkstra 可直接在其上运行。

三、势场与高程图

人工势场法把目标设为引力源、障碍设为斥力源,合力方向即期望航向。引力常取 Fatt = katt·(p - pgoal),斥力在障碍影响半径 ρ0 内按 Frep = krep·(1/ρ - 1/ρ0)·(1/ρ²) 增大。它计算极快、适合在线局部避障,但存在局部极小值陷阱,通常与全局规划器配合使用。

高程图(Elevation Map)是面向地形的 2.5D 表示:把水平面划成网格,每格只存一个高程值 h(i,j),常用于低空突防、地形跟随。它比三维栅格省内存,但无法表达桥洞、悬垂等真正的三维结构,遇到多层障碍需改用体素或分层高程图。

四、概率占据地图:处理不确定性

真实感知有噪声,同一格可能时有时无。概率占据地图用 P(occ)∈[0,1] 表示占据概率,并用对数几率 L = log(P/(1-P)) 做贝叶斯更新,避免连乘下溢:

L_new = L_old + L_meas - L_prior
L_meas = log(P(z|occ) / P(z|free))

传感器命中障碍时 L_meas>0,探测到自由时 L_meas<0。当 P(occ)>0.7 判为障碍,<0.3 判为自由,中间为未知区。未知区在规划中通常按“保守可通行”或“禁止进入”两种策略处理,取决于任务风险等级。

五、动态障碍物的时空描述

静态地图只回答“哪里不能走”,动态障碍还要回答“什么时候不能走”。常用两种描述:

  • 时空栅格/时空体素:在 (x,y,z,t) 四维空间标记占据,规划时把时间作为搜索维度,得到带时间戳的航迹。
  • 运动学预测包络:对每个动态障碍给出位置 p(t) 与不确定半径 R(t),用膨胀球或扫掠体表示其未来占据区域。例如匀速直线运动障碍在 t 时刻的包络为以 p0+v·t 为心、R0+σ·t 为半径的球,σ 反映预测误差随时间增长。

工程上常把动态障碍按预测时域 Th 离散成若干时间片,每片生成一张占据栅格,规划器在时间维上做滚动窗口搜索。预测时域越长,保守性越强,可通行窗口越窄,因此需要与重规划周期匹配。

环境建模与动态障碍表征总览 静态/半静态表示 → 规划空间;动态障碍 → 时空约束 静态 / 半静态环境表示 栅格地图 分辨率 r · 占据/自由 · 膨胀 Rs 内存 ∝ 1/r³,通用性最强 路图 可视图 · Voronoi · PRM 节点少,搜索快,骨架化 人工势场 引力 katt · 斥力 krep · 影响半径 ρ0 局部避障快,有极小值陷阱 高程图 2.5D · 每格一个高程 h(i,j) 省内存,无法表达悬垂结构 概率占据地图 对数几率 L · 贝叶斯更新 · 阈值 0.3/0.7 动态障碍物时空描述 时空栅格 / 时空体素 四维 (x, y, z, t) 占据标记 时间作为搜索维度 → 带时间戳航迹 适合已知轨迹的确定性障碍 运动学预测包络 位置 p(t) = p0 + v·t 不确定半径 R(t) = R0 + σ·t 膨胀球 / 扫掠体表示未来占据 σ 反映预测误差随时间增长 滚动时域离散 预测时域 Th 切成时间片 每片一张占据栅格,时间维滚动搜索 融合输出 静态代价地图 + 动态时空约束 → 规划器输入 融合

六、建模选择与参数建议

实际系统中很少只用一种表示。典型组合是:用概率占据地图融合激光/视觉/雷达,得到带不确定性的静态代价地图;用高程图叠加地形约束;用路图或栅格做全局搜索;用势场做局部避障;动态障碍则用预测包络在时间维上生成滚动窗口。选择时重点看三个量:空域规模、障碍密度、动态目标数量。空域大且障碍稀疏时优先路图;障碍密集且需精细边界时用栅格;感知噪声大时必须用概率占据;动态目标多且预测可靠时用时空体素,预测误差大时用膨胀包络更稳妥。

建模分辨率、膨胀半径、预测时域这三个参数需要联合标定:分辨率决定几何精度,膨胀半径决定安全裕度,预测时域决定动态避障的前瞻能力。三者不匹配时,常见现象是“规划出的路径贴障碍太近”或“频繁重规划”。
概率占据地图中的未知区域不要默认当作自由空间。在感知覆盖不全的空域,未知区应按保守策略处理,否则规划器可能把航迹引向未探测的障碍。