2. 3A算法基础

在自动驾驶、机器人、智能座舱等系统中,3A算法通常指代感知(Perception)、决策(Decision)与控制(Control)三大核心模块。它们构成一条从“理解世界”到“做出选择”再到“执行动作”的闭环链路。联调与工程落地的第一步,不是急着调参,而是先建立对三大模块职责边界、输入输出和常见术语的统一认知。

3A不是三个孤立算法,而是一条信息逐级抽象、指令逐级具体的处理链:感知把原始信号变成环境模型,决策把环境模型变成行为意图,控制把行为意图变成执行器指令。

一、核心原理:从信号到动作的闭环

感知模块负责回答“周围有什么、在哪里、往哪动”。它的输入通常来自摄像头、激光雷达、毫米波雷达、IMU、GNSS等传感器,输出是目标列表、车道线、可行驶区域、障碍物轨迹等结构化信息。决策模块负责回答“我该做什么”,包括路径规划、行为选择、速度决策和优先级仲裁。控制模块负责回答“怎么精确做到”,将期望轨迹和速度转化为油门、刹车、转向或电机力矩等底层指令。

三者之间不是单向流水线,而是存在反馈:控制执行效果会影响车辆姿态,姿态变化又会被感知重新观测,决策再根据新状态调整目标。因此联调时常见的问题往往不是单模块错误,而是接口时序、坐标系、频率和置信度不匹配。

3A算法闭环:感知 → 决策 → 控制 → 车辆 → 感知 感知 Perception 输入:图像 / 点云 / 雷达 / IMU 输出:目标框、车道线、可行驶区域 关键:检测、跟踪、融合、标定 频率:10~30 Hz 决策 Decision 输入:环境模型 + 定位 + 地图 输出:行为意图、轨迹、速度曲线 关键:预测、规划、状态机、代价 频率:5~20 Hz 控制 Control 输入:期望轨迹 / 速度 / 加速度 输出:油门、刹车、转向、力矩 关键:PID、MPC、前馈、反馈 频率:50~100 Hz 车辆 / 执行器 / 底盘 位置、姿态、速度、横摆角速度 执行 状态反馈 重新观测 联调关注点:时间戳对齐 · 坐标系一致 · 频率匹配 · 置信度传递 · 异常降级

二、常见术语与系统组成

感知侧常见术语包括:检测(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时,必须设计缓存、插值和超时策略。
  • 误区四:没有降级路径。当感知置信度下降或决策超时,系统应能进入安全停车或最小风险状态。

复盘时可用一张“输入-输出-频率-异常”清单逐项核对:每个模块的输入是否完整、输出是否被下游正确消费、频率是否满足实时性、异常时是否有兜底。只有把三大模块的边界和接口讲清楚,后续的参数整定、场景测试和工程落地才有稳定基础。