3. 环境感知与障碍物表示

局部规划器要回答“往哪走、能不能过”,前提是它拿到一份可计算的环境描述。传感器给出的是原始观测,规划器需要的是障碍物位置、形状、速度与不确定性。本节围绕这条“传感器→点云/栅格→代价地图→膨胀→动态跟踪与预测”的转换链展开,重点说明每类传感器的适用边界、栅格与代价地图的构建方式,以及动态障碍物如何以接口形式交给规划器。

一、四类传感器的分工与互补

激光雷达(LiDAR)通过飞行时间测距,输出三维点云,水平视场常见 360°(机械式)或 90°~120°(固态/半固态),测距精度可达厘米级,适合构建高精度栅格与几何轮廓。缺点是雨雾、扬尘、玻璃与镜面会造成丢点或虚假回波,且点云数据量大。毫米波雷达利用多普勒效应,能直接测出径向速度,穿透雨雾能力强,探测距离可达 150~250 m,但角分辨率低、点云稀疏,易产生多径虚假目标,适合中远距离与高速场景的速度估计。视觉相机成本低、纹理信息丰富,可做语义识别(区分行人、车辆、锥桶),但受光照、逆光、雨雪影响大,单目测距精度差,需依赖标定与深度估计。超声波传感器量程通常 0.2~5 m,成本极低,对近距离补盲(如低速泊车、贴边行驶)有效,但波束角大、易受温度与风速影响,刷新率低。

工程上很少只用一种传感器。典型配置是:激光雷达负责近中距几何建图,毫米波雷达负责远距速度与恶劣天气冗余,视觉负责语义与分类,超声波负责最后 1~2 m 的贴边保护。融合时需先做时间同步(如统一到同一时间戳,误差控制在 10 ms 内)和外参标定(雷达到车体、相机到雷达的旋转平移矩阵),否则同一障碍物会在不同传感器中落在不同位置。

二、点云到栅格地图

点云是离散的三维点集合,直接用于碰撞检测计算量大。常见做法是投影到二维栅格:以车体为中心建立局部栅格,分辨率取 0.05~0.2 m。对每个点,根据其高度过滤地面点(如高度低于 0.2 m 视为地面),再将其投影到对应栅格并标记为占据。未被任何点命中但被射线穿过的栅格标记为空闲,其余为未知。这样得到三态栅格:占据、空闲、未知。

栅格概率更新常用贝叶斯或对数几率(log-odds)形式。设某栅格被占据的先验概率为 p,观测到占据时用对数几率累加:

L(t) = L(t-1) + log(p_occ / (1 - p_occ)) - log(p_free / (1 - p_free))
p(t) = 1 / (1 + exp(-L(t)))

例如取 p_occ = 0.7、p_free = 0.4,则一次占据观测约增加 0.85 的对数几率。连续多次观测后,概率会稳定收敛,从而抑制单帧噪声。栅格地图的代价是内存随范围平方增长,因此局部规划通常只维护车体周围 20~50 m 的滚动窗口。

三、代价地图与障碍物膨胀

栅格只回答“是否占据”,代价地图则回答“通过这里要付出多少代价”。它在占据栅格基础上叠加多层:静态层(建图得到的固定障碍)、障碍层(当前传感器检测到的障碍)、膨胀层(按机器人半径外扩)、代价层(离障碍越近代价越高)。规划器在代价地图上搜索时,会自然远离高代价区域。

膨胀是保证安全的关键。设机器人外接圆半径为 R,膨胀半径通常取 R 加安全余量 δ(如 0.1~0.3 m)。膨胀后,障碍物边缘向外扩展 R+δ,规划器只需把机器人当作质点处理,就能避免擦碰。膨胀代价常按距离衰减:紧贴障碍处代价最高(如 253),向外逐格递减到 0。这样即使路径必须靠近障碍,也会选择代价较低的一侧。

需要注意:膨胀半径过大会把窄通道“堵死”,导致无解;过小则安全余量不足。实际调参时,可先按机器人实际轮廓确定 R,再根据定位误差和控制误差确定 δ。若定位误差约 0.1 m、控制跟踪误差约 0.1 m,δ 取 0.2 m 较为稳妥。

环境感知与障碍物表示:从传感器到规划接口 传感器层 激光雷达 · 点云 毫米波雷达 · 速度 视觉 · 语义分类 超声波 · 近距补盲 环境表示层 点云 → 三态栅格 占据/空闲/未知 对数几率概率更新 滚动窗口 20~50 m 代价地图层 静态层 + 障碍层 膨胀层 R + δ 代价层 253 → 0 质点化碰撞检测 规划接口 局部代价 可通行性 障碍列表 预测轨迹 时间戳 障碍物膨胀与代价梯度 障碍 膨胀边界 R+δ 高代价区 车 绕行路径 动态障碍物跟踪与预测接口 t-2 t-1 t t+1 检测框 关联 状态估计 预测 未来 3 s 轨迹 接口字段:id | 位置(x,y) | 速度(vx,vy) | 尺寸 | 类别 | 置信度 | 预测轨迹点 更新频率 10~20 Hz,时间戳与规划器对齐

四、动态障碍物跟踪与预测接口

静态栅格无法表达运动物体。动态障碍物需要先检测(聚类或深度学习框),再关联(把当前帧检测与上一帧轨迹匹配),最后滤波估计状态。常用方法是卡尔曼滤波:状态量取 [x, y, vx, vy],观测为位置。预测时,匀速模型给出未来 1~3 s 的轨迹点;若目标可能转向,可切换到匀加速或交互多模型(IMM)。

交给规划器的接口应包含:目标 id、当前位置、速度矢量、外接尺寸、类别(行人/车辆/未知)、置信度,以及未来若干时刻的预测位置。更新频率建议 10~20 Hz,且时间戳必须与规划器当前时刻对齐,否则预测会“超前”或“滞后”。置信度低的目标可只做减速避让,不触发急停,避免误检导致频繁刹车。

调参经验:栅格分辨率 0.1 m 时,20 m×20 m 局部地图约 4 万格,单帧更新可控制在毫秒级;膨胀半径按“机器人外接圆半径 + 定位误差 + 控制误差”估算,不要凭感觉取固定值。
常见问题:毫米波雷达的虚假目标若直接进入代价地图,会造成“幽灵障碍”。应在融合层用视觉或激光雷达做一致性校验,连续 3 帧以上稳定出现才纳入障碍列表。

把上述环节串起来,局部规划器拿到的就是一张带代价的局部栅格,外加一份动态目标列表及其预测轨迹。前者回答“哪里能走”,后者回答“哪里即将不能走”。两者时间戳一致、坐标系统一(通常为车体坐标系,x 向前、y 向左),规划器才能在同一框架下做避障决策。