4. Driving Agent系统架构
Driving Agent 的系统架构决定了感知、预测、决策、规划与控制等能力如何被组织、调度和协同。架构选型不仅影响算法上限,也直接影响工程可维护性、实时性、安全冗余与迭代效率。本章围绕分层架构、端到端架构、混合架构三条主线,梳理模块划分、数据流与通信机制,并给出可落地的设计原则与复盘要点。
一、核心原理:三种架构范式
分层架构将驾驶任务拆解为感知、定位、预测、决策、规划、控制等独立模块,模块之间通过明确定义的接口传递结构化中间结果。其优势是可解释、可调试、可局部替换,便于功能安全认证;劣势是模块间信息压缩带来信息损失,长尾场景下误差逐级累积,且接口设计难以覆盖所有交互。
端到端架构以传感器原始数据或轻量特征为输入,通过单一神经网络直接输出轨迹、控制量或动作分布。它减少了人工接口,具备全局优化潜力,能学习复杂交互;但可解释性弱、训练数据需求大、安全验证困难,且对分布外场景鲁棒性不足。
混合架构在工程实践中最为常见:底层保留分层模块的可解释性与安全兜底,上层引入端到端或学习型组件增强复杂场景的决策与轨迹生成能力。典型形式包括“感知分层 + 预测学习 + 规划优化”“端到端轨迹生成 + 规则安全校验”等。
二、模块划分与职责边界
无论采用哪种架构,模块划分都应遵循“高内聚、低耦合、接口稳定、可独立测试”的原则。典型模块包括:
- 感知模块:目标检测、语义分割、车道线识别、占用栅格、多目标跟踪,输出结构化障碍物与可行驶区域。
- 定位与地图模块:GNSS/IMU/轮速融合、激光匹配、高精地图匹配,输出位姿与局部地图。
- 预测模块:对动态障碍物进行轨迹预测与意图推断,输出多模态未来轨迹及概率。
- 决策模块:行为选择、博弈交互、规则约束,输出宏观行为指令。
- 规划模块:路径规划与速度规划,输出满足动力学约束的平滑轨迹。
- 控制模块:横纵向控制、执行器接口,输出油门、制动、转向指令。
- Agent 编排层:任务调度、状态管理、安全监控、降级策略与日志回放。
三、数据流与通信机制
数据流描述信息从传感器到执行器的流转路径,通信机制则决定流转的实时性、确定性与可靠性。分层架构中,数据流是“传感器 → 感知 → 预测 → 决策 → 规划 → 控制”的串行链路;端到端架构中,数据流被压缩为“传感器 → 网络 → 轨迹”;混合架构则在串行链路中嵌入学习型节点,并增加安全校验旁路。
通信机制常见选择包括:
- 共享内存:适合同一计算平台内高带宽、低延迟的大数据传递,如图像与点云。
- DDS:支持发布/订阅、QoS 配置,适合跨进程、跨节点的实时通信。
- SOME-IP:面向车载嵌入式场景,轻量、确定性较好。
- ROS 2 话题与服务:适合原型验证与算法迭代,需关注实时性调优。
- 时间同步:PTP/gPTP 保证多传感器时间戳对齐,是融合与预测的前提。
# 典型话题与频率配置示例
/perception/objects 10 Hz # 障碍物列表
/perception/occupancy 10 Hz # 占用栅格
/localization/pose 50 Hz # 车辆位姿
/prediction/trajectories 10 Hz # 预测轨迹
/planning/trajectory 20 Hz # 规划轨迹
/control/command 100 Hz # 控制指令
四、案例场景:城市路口混合架构落地
以城市无保护左转为例。感知模块输出对向直行车辆、行人、骑行者及路口几何;预测模块给出多模态轨迹与到达冲突点时间;决策模块判断是否具备左转窗口;规划模块生成左转轨迹;控制模块执行。若采用纯分层架构,规则决策在博弈场景中容易保守或犹豫;若采用纯端到端,安全验证与责任界定困难。混合架构的做法是:端到端网络生成候选轨迹与行为意图,规则安全校验层检查冲突点、最小安全距离与交通法规,若校验不通过则回退到保守规划。这样既保留了学习模型在交互中的灵活性,又通过确定性校验守住安全底线。
五、架构选型对比
| 维度 | 分层架构 | 端到端架构 | 混合架构 |
|---|---|---|---|
| 可解释性 | 高 | 低 | 中高 |
| 安全验证 | 容易 | 困难 | 较容易 |
| 长尾场景 | 依赖规则覆盖 | 依赖数据覆盖 | 学习+规则互补 |
| 迭代效率 | 模块独立迭代 | 端到端联合训练 | 分层迭代+联合微调 |
| 工程复杂度 | 中 | 低(接口少) | 高(调度与校验) |
| 适用阶段 | 量产初期/认证 | 研究/数据充足场景 | 量产进阶/复杂城市场景 |
六、误区与复盘
误区一:把端到端等同于“无架构”。端到端仍需明确输入输出契约、时序窗口、训练数据分布与安全监控,否则无法定位失败原因。
误区二:接口越细越好。过度细化的接口会增加通信开销与耦合,导致模块间责任不清。应以任务语义划分接口,而非以数据结构划分。
误区三:忽视时间同步与调度。多传感器时间戳不一致会直接导致融合与预测错误,确定性调度缺失会造成控制抖动。
误区四:安全校验只做最后一道。安全应在感知、预测、决策、规划各层设置监控点,形成纵深防御,而非仅依赖末端兜底。
复盘时建议围绕三条主线:一是数据流是否闭环,每个模块的输入是否可追溯、输出是否可验证;二是通信是否满足实时性与确定性要求,关键链路是否有延迟预算与超时降级;三是架构是否支持渐进演进,能否在不推翻整体设计的前提下替换单个模块或引入学习型组件。架构不是一次性选择,而是随数据规模、算力平台与安全要求持续演化的工程决策。