2. 3A算法基础
在自动驾驶、机器人、智能座舱等系统中,3A算法通常指代感知(Perception)、决策(Decision)与控制(Control)三大核心模块。它们构成一条从“理解世界”到“做出选择”再到“执行动作”的闭环链路。联调与工程落地的第一步,不是急着调参,而是先建立对三大模块职责边界、输入输出和常见术语的统一认知。
一、核心原理:从信号到动作的闭环
感知模块负责回答“周围有什么、在哪里、往哪动”。它的输入通常来自摄像头、激光雷达、毫米波雷达、IMU、GNSS等传感器,输出是目标列表、车道线、可行驶区域、障碍物轨迹等结构化信息。决策模块负责回答“我该做什么”,包括路径规划、行为选择、速度决策和优先级仲裁。控制模块负责回答“怎么精确做到”,将期望轨迹和速度转化为油门、刹车、转向或电机力矩等底层指令。
三者之间不是单向流水线,而是存在反馈:控制执行效果会影响车辆姿态,姿态变化又会被感知重新观测,决策再根据新状态调整目标。因此联调时常见的问题往往不是单模块错误,而是接口时序、坐标系、频率和置信度不匹配。
二、常见术语与系统组成
感知侧常见术语包括:检测(Detection)、跟踪(Tracking)、传感器融合(Fusion)、标定(Calibration)、ROI、置信度(Confidence)、漏检/误检。决策侧常见术语包括:行为预测(Prediction)、路径规划(Planning)、状态机(State Machine)、代价函数(Cost Function)、安全边界、优先级仲裁。控制侧常见术语包括:期望轨迹、横向控制、纵向控制、PID、MPC、前馈/反馈、执行器延迟。
| 模块 | 核心输入 | 核心输出 | 典型频率 | 联调关键指标 |
|---|---|---|---|---|
| 感知 | 图像、点云、雷达、IMU | 目标列表、车道线、可行驶区域 | 10~30 Hz | 延迟、漏检率、误检率、坐标误差 |
| 决策 | 环境模型、定位、地图 | 行为意图、轨迹、速度曲线 | 5~20 Hz | 规划耗时、轨迹平滑度、安全距离 |
| 控制 | 期望轨迹、速度、加速度 | 油门、刹车、转向、力矩 | 50~100 Hz | 跟踪误差、超调、响应延迟 |
三、案例场景:一次跟车联调
假设车辆在高速上跟随前车。感知模块输出前车距离、相对速度和横向偏移;决策模块根据安全距离模型决定是否减速或变道;控制模块将期望减速度转化为刹车压力。联调中若发现“前车已减速但本车反应慢”,可能不是控制参数问题,而是感知时间戳滞后、决策频率过低或控制前馈不足。排查顺序应从数据链路开始,再查算法参数,最后查执行器响应。
# 联调日志片段示例
[perception] ts=1024.30 obj_id=7 dist=32.5m v_rel=-2.1m/s conf=0.91
[decision] ts=1024.35 state=FOLLOW target_speed=18.0m/s gap=1.8s
[control] ts=1024.36 cmd_acc=-1.2m/s^2 brake=12% steer=0.3deg
[chassis] ts=1024.42 actual_acc=-0.8m/s^2 delay=60ms
四、误区与复盘
- 误区一:把3A当成三个独立算法。实际上接口协议、坐标系、时间戳和降级策略才是联调的主战场。
- 误区二:只盯单模块指标。感知mAP高不代表决策安全,控制跟踪好也不代表整体舒适。
- 误区三:忽略频率匹配。感知30Hz、决策10Hz、控制100Hz时,必须设计缓存、插值和超时策略。
- 误区四:没有降级路径。当感知置信度下降或决策超时,系统应能进入安全停车或最小风险状态。
复盘时可用一张“输入-输出-频率-异常”清单逐项核对:每个模块的输入是否完整、输出是否被下游正确消费、频率是否满足实时性、异常时是否有兜底。只有把三大模块的边界和接口讲清楚,后续的参数整定、场景测试和工程落地才有稳定基础。