2. 自动驾驶系统基础

自动驾驶系统并不是一个“会自己开”的黑盒,而是由感知、定位、决策、控制四大模块串联而成的闭环系统。理解这四者的分工与耦合关系,是开展测试工程的前提:测试用例、故障注入、评价指标,几乎都围绕这四个模块的输入输出边界展开。

核心链路可以概括为:感知回答“周围有什么”,定位回答“我在哪里”,决策回答“下一步怎么走”,控制回答“如何把动作执行到位”。四者缺一不可,任一环节的误差都会沿链路放大。
自动驾驶四大模块闭环与农机/工程机械特殊要求 感知 摄像头 / 激光雷达 / 毫米波 GNSS-RTK / IMU / 轮速 输出:障碍物、作物行、地形 定位 RTK 差分 / 组合导航 点云匹配 / 航位推算 输出:位姿、航向、速度 决策 全局路径 / 局部避障 行为状态机 / 任务调度 输出:目标轨迹、速度指令 控制 横向转向 / 纵向油门 液压 / 电控执行器 输出:转向角、转速 执行结果与车辆状态反馈(闭环校正) 农机与工程机械的特殊要求 非结构化环境 无车道线、作物行弯曲 高精度定位依赖 RTK 固定解、抗遮挡 作业质量约束 重耕率、漏耕率、平整度 执行器非线性 液压迟滞、大惯性 安全与失效 人员靠近、急停优先 多机协同 机群调度、避让会车 标定与测试 传感器外参、时延补偿 环境适应性 粉尘、振动、温漂

一、感知模块:从“看得见”到“看得懂”

感知模块负责把物理世界转化为机器可计算的数据。典型传感器包括摄像头、激光雷达、毫米波雷达、超声波,以及农机上常用的 GNSS-RTK、IMU、轮速计和角度传感器。其核心任务有三类:目标检测(识别行人、车辆、障碍物)、语义分割(区分可行驶区域、作物行、田埂)、状态估计(估计目标位置与速度)。

在农机与工程机械中,感知面临的最大挑战是非结构化环境:农田没有车道线,作物行会因播种偏差而弯曲;工地扬尘会削弱激光雷达回波,振动会导致相机外参漂移。因此,感知算法不能只依赖单一传感器,而要做多源融合,并在测试中重点验证粉尘、逆光、雨雾、遮挡等边界场景。

二、定位模块:厘米级位姿是作业精度的基础

定位模块回答“我在哪里、朝哪个方向、速度多少”。农机自动驾驶普遍采用 GNSS-RTK + IMU + 轮速 的组合导航方案:RTK 提供厘米级绝对位置,IMU 提供高频姿态与角速度,轮速计在 GNSS 短时失锁时进行航位推算。工程机械在隧道、桥下、林间等遮挡场景中,还需引入激光点云匹配或视觉里程计作为补充。

定位误差会直接传递到作业质量。例如播种机对行误差超过 5 cm,就可能出现重播或漏播;平地机高程误差超过 2 cm,会影响后续摊铺。测试中常用固定解比例、航向误差、位置跳变、失锁恢复时间等指标评价定位模块。

三、决策模块:从全局任务到局部动作

决策模块分为全局规划与局部规划两层。全局规划根据地块边界、作业幅宽和农艺要求,生成往复式、回字形或套播式路径;局部规划则根据实时感知结果进行避障、绕行和速度调整。决策输出通常是目标轨迹点序列和速度指令。

农机决策的特殊性在于作业质量约束优先于通行效率:地头转弯要保证不压苗、不漏耕,机具提升与下降要与转向动作时序配合。工程机械则更强调任务状态机,如装载机的“铲装—举升—运输—卸料—返回”循环,每个状态都有明确的进入与退出条件。

四、控制模块:把轨迹变成执行器动作

控制模块接收目标轨迹与速度,输出转向角、油门开度、制动压力和机具升降指令。常用算法包括纯跟踪、Stanley、模型预测控制(MPC)和 PID。农机与工程机械的执行器多为液压系统,存在明显迟滞、死区和大惯性,因此控制参数需要针对机型标定。

# 典型控制参数标定记录(示例)
转向PID: Kp=1.8  Ki=0.05  Kd=0.12
速度环:  Kp=0.9  Ki=0.03
前视距离: 3.5 m(低速) / 6.0 m(高速)
转向死区补偿: 2.5%
液压响应延迟: 约 180 ms

五、四大模块的测试关注点对比

模块 核心输入 核心输出 农机/工程机械特殊要求 典型测试指标
感知 图像、点云、雷达回波 障碍物、可行驶区域 抗粉尘、抗振动、识别作物行 检出率、误检率、时延
定位 GNSS、IMU、轮速、点云 位姿、航向、速度 RTK 固定解、抗遮挡、高频输出 定位误差、失锁恢复时间
决策 地图、位姿、障碍物 目标轨迹、速度指令 作业质量优先、地头转弯时序 重耕率、漏耕率、避障成功率
控制 目标轨迹、车辆状态 转向角、油门、液压指令 液压迟滞补偿、大惯性稳定 跟踪误差、超调量、响应时间
测试提示:四大模块的接口边界是测试用例设计的抓手。例如向感知注入“逆光+扬尘”图像,向定位注入“GNSS 失锁 3 秒”,向决策注入“突然出现行人”,向控制注入“液压延迟 +50 ms”,即可系统覆盖链路风险。
常见误区:把自动驾驶测试等同于“跑一圈看看能不能走直”。实际上,走直只验证了控制与定位的稳态性能,无法暴露感知漏检、决策时序错误和失效降级问题。测试必须按模块分解,再按链路集成,才能定位真正的薄弱环节。

六、案例与复盘:地头转弯压苗问题

某拖拉机自动驾驶项目在田间测试中出现地头转弯压苗。复盘发现:感知模块未识别出地头已出苗区域,决策模块仍按固定转弯半径规划,控制模块的转向延迟又导致实际轨迹外扩。最终通过三项改进解决:感知增加作物行分割、决策引入地头缓冲区、控制加入前馈补偿。这说明自动驾驶故障往往是跨模块耦合问题,测试必须保留完整数据链路记录,包括传感器原始数据、定位轨迹、决策输出和控制指令,才能完成有效归因。