3. 环境感知与状态表示

行为决策与轨迹生成系统并非在真空中运行,其输入质量直接决定了输出轨迹的安全性、舒适性与可行性。在自动驾驶或机器人系统中,环境感知模块负责回答“周围有什么”,而决策规划模块需要回答“我该怎么办”。两者之间的桥梁,正是本章要探讨的“状态表示”问题——即如何将原始传感器数据(点云、图像、毫米波雷达回波)经过障碍物检测、地图构建、目标预测等处理,转化为决策与规划模块能够高效消费的结构化输入。本章将系统梳理障碍物检测的输出形式、栅格地图与高精地图的差异与适用场景、预测模块的关键输出,并重点讲解感知信息向决策规划输入转化的接口设计与数据协议。

感知信息 → 决策与规划输入 转化链路 传感器原始数据 LiDAR点云 / 相机图像 毫米波雷达 / 超声波 GNSS+IMU / 轮速计 感知处理模块 障碍物检测(3D BBox/分割) 栅格地图构建(占据网格) 高精地图匹配与融合 目标跟踪与状态估计 结构化状态表示 障碍物列表(id/类别/速度/朝向) 栅格占据概率图(BEV视角) 车道级拓扑 + 交通标志 预测轨迹集合(概率/时间戳) 决策 规划 行为决策 轨迹生成 障碍物检测输出 • 3D边界框: x,y,z,l,w,h,θ • 类别: 车辆/行人/骑行者/未知 • 速度: vx, vy, 加速度 ax, ay • 朝向角 + 航向角变化率 • 置信度分数 + 跟踪ID 栅格地图(BEV) • 分辨率: 0.1m~0.5m/格 • 占据概率: P(occupied) ∈ [0,1] • 视野范围: 前后80m, 左右40m • 更新频率: 10~20Hz • 多帧融合 + 膨胀处理 高精地图(HD Map) • 车道中心线: 三次样条/多项式 • 车道边界类型: 实线/虚线/路沿 • 交通标志: 限速/停止/让行 • 拓扑关系: 车道连接/交叉口 • 静态图层 + 动态图层分离 预测模块输出 • 多模态轨迹: 每条轨迹含 (x(t), y(t), θ(t)) 序列 • 概率分布: P(traj_i) 且 ΣP = 1 • 时间范围: 3s~8s, 时间步长 0.1s~0.2s • 意图标签: 直行/左转/右转/变道/停车 • 协方差矩阵: 描述轨迹不确定性 感知 → 决策/规划 接口协议 • 统一时间戳(主时钟同步) • 坐标系: 车体坐标系→全局坐标系 • 数据帧: protobuf / DDS / ROS2 msg • 延迟预算: 感知→决策 < 100ms • 降级策略: 感知失效时安全停车

3.1 障碍物检测:从原始点云到结构化目标列表

3.1.1 核心原理:检测与跟踪的融合

障碍物检测的目标是将传感器原始数据转化为“目标列表”,每个目标包含空间位置、几何尺寸、运动状态和语义类别。在LiDAR为主的方案中,典型流程为:点云预处理(去噪、地面分割)→ 聚类或深度学习方法提取候选目标 → 3D边界框回归 → 多目标跟踪(如卡尔曼滤波或匈牙利匹配)→ 输出稳定的目标ID与运动状态。在视觉为主的方案中,则通过2D检测 + 深度估计 + 多视角融合实现类似输出。关键点在于:检测是逐帧的,而跟踪赋予目标时间一致性,这是决策模块判断“目标是否危险”的基础。

3.1.2 输出字段与质量标准

字段单位典型值/范围决策规划用途
目标ID-整数,唯一且稳定跨帧关联、预测跟踪
类别-车辆/行人/骑行者/未知行为预测模型选择、风险权重
位置 (x,y)m车体坐标系下 ±100m碰撞检测、路径规划约束
尺寸 (l,w,h)m车辆: 4.5×1.8×1.5膨胀半径计算、可通行空间判断
速度 (vx,vy)m/s[-30, 30]动态障碍物预测、紧急制动判断
朝向角 θrad[-π, π]运动模型初始化、轨迹预测
置信度-[0,1],阈值通常0.5决策置信度加权、降级策略

3.1.3 案例拆解:城市路口行人横穿场景

某城市L4级自动驾驶测试车行驶至无保护左转路口,感知模块在t=0时刻检测到右侧路沿旁一个行人目标(ID=17),类别为“行人”,位置(12.3m, -4.5m),速度(0.2m/s, 0.1m/s),置信度0.92。跟踪模块在连续5帧中保持ID稳定,且速度估计收敛。此时决策模块判断该行人处于静止状态,但预测模块根据行人朝向(面向车道)和历史运动趋势,输出两条预测轨迹:轨迹A(概率0.6)为继续静止等待,轨迹B(概率0.4)为未来2秒内启动横穿。决策模块据此将行人状态标记为“潜在横穿者”,在规划中增加虚拟障碍物膨胀区域,并将速度限制从15m/s降至8m/s。若感知模块仅输出单帧检测而无跟踪ID,决策模块将无法判断该行人是静止还是缓慢移动,可能误判风险等级。

常见误区:过度依赖单一帧检测结果。传感器噪声可能导致目标位置抖动,若直接输入规划模块,会造成轨迹振荡。必须经过跟踪滤波(如卡尔曼平滑)后再输出。此外,类别置信度低的目标(如“未知”类)不应直接忽略,应作为保守膨胀处理。

3.2 栅格地图与高精地图:两种空间表示的分工与融合

3.2.1 栅格地图:动态占据的实时表达

栅格地图将车辆周围环境离散化为均匀网格,每个格子存储占据概率。其优势在于:无需语义理解即可表达任意形状的障碍物,对未知物体鲁棒;计算简单,适合实时更新。典型参数:分辨率0.2m,视野80m×40m,更新频率10Hz。栅格地图通常由多帧点云投影到BEV视角并做概率累积生成,同时进行膨胀处理(根据车辆尺寸将障碍物边界外扩)。决策规划中,栅格地图主要用于:局部路径规划的代价地图、无车道线区域的自由空间搜索、以及紧急避障的可行区域判断。

3.2.2 高精地图:先验语义的静态层

高精地图提供厘米级精度的车道几何、拓扑关系、交通标志等静态信息。与栅格地图不同,高精地图不随传感器实时更新,而是作为先验知识在启动时加载,并在运行中通过定位模块进行匹配。其核心价值在于:将规划问题从“自由空间搜索”简化为“车道约束下的轨迹优化”。例如,高精地图明确给出车道中心线、停止线位置、限速值,决策模块可以直接基于这些语义元素进行行为选择(如是否允许变道、是否需停车让行)。

3.2.3 对比与融合策略

维度栅格地图高精地图
数据来源实时传感器融合离线采集+人工标注
更新频率10~20Hz低频(地图更新/OTA)
语义信息无(仅占据概率)丰富(车道/标志/拓扑)
不确定性显式概率表达假设高置信度
规划用途局部避障、自由空间全局引导、行为决策
失效模式动态物体拖尾、遮挡地图过期、定位漂移

实际系统中,两者互补:高精地图提供“应该走哪条车道”,栅格地图提供“当前哪里被占据”。融合策略通常为:以高精地图为骨架,将栅格地图中的动态障碍物叠加到车道坐标系中,形成“带语义的局部占用图”。例如,在变道决策中,高精地图判断目标车道存在且合法,栅格地图进一步确认该车道内无动态障碍物,两者同时满足才允许变道。

工程经验:栅格地图的膨胀半径应根据目标类别动态调整——行人膨胀0.3m,车辆膨胀0.8m,未知物体膨胀1.0m。过小会导致规划轨迹贴近障碍物,过大则造成可通行空间浪费。

3.3 预测模块输出:从当前状态到未来可能性

3.3.1 预测输出的核心内容

预测模块的任务是估计其他交通参与者的未来状态分布。输出通常包含:多模态轨迹集合(每条轨迹为时间序列的位置点)、每条轨迹的概率、以及轨迹的不确定性(协方差)。例如,对一辆接近路口的车辆,预测模块可能输出:轨迹1(概率0.5)直行通过,轨迹2(概率0.3)减速停车,轨迹3(概率0.2)左转。这些轨迹的时间范围通常为3~8秒,时间步长0.1~0.2秒。决策模块利用这些信息进行风险评估——如果所有预测轨迹均与自车规划轨迹无冲突,则安全;若存在高概率冲突,则需减速或改变策略。

3.3.2 预测与决策的交互模式

预测并非单向输出,而是与决策形成闭环。当决策模块选择“加速通过路口”时,预测模块应相应调整对其他车辆的预测假设(例如假设对方会减速让行)。这种交互式预测在复杂交互场景(如无保护左转、匝道汇入)中至关重要。实际系统中,常采用“假设-验证”循环:决策模块提出候选行为,预测模块基于该行为重新评估风险,若风险可接受则执行,否则调整行为。

3.3.3 案例拆解:高速匝道汇入场景

自车以20m/s行驶在加速车道上,准备汇入主路。感知模块检测到主路后方来车A(速度25m/s,距离自车后方30m)和前方车辆B(速度18m/s,距离自车前方40m)。预测模块对车辆A输出两条轨迹:轨迹A1(概率0.7)保持当前速度继续直行,轨迹A2(概率0.3)减速让行。对车辆B输出轨迹B1(概率0.9)保持匀速,轨迹B2(概率0.1)减速。决策模块计算:若自车以25m/s加速汇入,与轨迹A1在3.2秒后存在潜在冲突点,冲突概率0.7×0.9=0.63,超过安全阈值0.3。因此决策模块选择“减速等待”策略,将自车速度降至15m/s,等待车辆A通过后再汇入。此时预测模块更新车辆A的预测——由于自车减速,车辆A更可能保持速度(概率升至0.85),冲突概率降至0.1以下,决策模块确认安全后执行汇入。

关键参数:预测时间范围与决策周期需匹配。若预测仅覆盖2秒,而自车完成变道需4秒,则决策模块无法评估变道后半段的风险。一般要求预测时域 ≥ 规划时域 + 1秒余量。

3.4 感知信息转化为决策与规划输入:接口设计与数据协议

3.4.1 坐标系与时间同步

所有感知输出必须统一到同一坐标系和时间基准。通常采用车体坐标系(原点在后轴中心,x向前,y向左)作为感知输出的基准,再由规划模块转换到全局坐标系(如UTM)。时间同步方面,每个感知帧必须携带精确时间戳,且与规划模块的主时钟对齐(误差<5ms)。若时间不同步,高速场景下1ms误差可导致0.02m的位置偏差,在紧急制动场景中可能造成误判。

3.4.2 数据帧结构与传输

// 感知输出数据帧示例(简化protobuf定义)
message PerceptionFrame {
  uint64 timestamp_ms = 1;          // 主时钟时间戳
  uint32 frame_id = 2;              // 帧序号
  repeated Obstacle obstacles = 3;  // 障碍物列表
  OccupancyGrid grid = 4;           // 栅格地图
  MapReference hd_map_ref = 5;      // 高精地图引用
}

message Obstacle {
  uint32 id = 1;
  enum Type { UNKNOWN=0; CAR=1; PEDESTRIAN=2; CYCLIST=3; }
  Type type = 2;
  float x = 3; float y = 4; float z = 5;
  float length = 6; float width = 7; float height = 8;
  float theta = 9;
  float vx = 10; float vy = 11;
  float confidence = 12;
  repeated PredictedTrajectory trajectories = 13;
}

传输层通常采用共享内存(同机部署)或DDS/ROS2(分布式部署),要求端到端延迟(传感器采集→感知处理→决策规划)小于100ms。在功能安全要求下,还需设计降级通道:当感知数据质量下降(如置信度普遍低于阈值)时,决策模块应切换至保守模式(如减速至安全停车)。

3.4.3 常见误区与工程复盘

  • 误区一:将栅格地图直接作为规划输入而不做语义过滤。栅格地图中的“动态噪点”(如树叶、飞鸟)会导致规划轨迹频繁抖动。应在栅格地图生成时结合语义信息进行滤波。
  • 误区二:忽略预测的不确定性。仅使用单一最可能轨迹进行决策,在预测概率分布较分散时(如行人犹豫是否横穿),会低估风险。应使用概率加权或保守策略。
  • 误区三:高精地图与实时感知冲突时盲目信任高精地图。例如地图显示车道畅通,但感知发现前方有施工锥桶,此时应以实时感知为准,并触发地图更新请求。
安全提示:感知模块输出的“未知”类别障碍物不应被忽略。在决策规划中,未知障碍物应按照最大风险处理——即假设其可能突然移动,并预留更大的安全距离。这是L3+系统通过安全认证的必要条件。

综上所述,环境感知与状态表示是行为决策与轨迹生成系统的“眼睛”和“记忆”。障碍物检测提供动态目标的结构化描述,栅格地图提供实时占据空间,高精地图提供先验语义约束,预测模块则打开未来可能性的窗口。四者通过统一的时间戳、坐标系和数据结构,共同构成决策规划模块的完整输入。工程实践中,必须重视接口的鲁棒性设计——包括降级策略、延迟补偿和不确定性传递,才能确保系统在复杂真实环境中安全可靠运行。