从开车理解控制系统(五):为什么自动驾驶也会蛇形走位?
很多人会觉得:自动驾驶拥有摄像头、雷达以及强大的AI算力,它开车应该比人类更稳。车辆虽然始终保持在车道内,却会出现轻微的左右摆动,看起来就像在车道中央附近来回修正。那么问题来了:自动驾驶拥有大量传感器和强大的计算能力,为什么依然会出现蛇形走位?1. 自动驾驶本质上也是一个控制系统
回顾我们前面几篇文章,无论是波德图、双闭环控制还是PID控制。本质上都在解决同一个问题:如何让系统稳定地达到目标值。从控制理论角度看,自动驾驶和电源控制、电机控制其实没有本质区别。只是控制对象从电压、电流变成了车辆位置。2. 为什么自动驾驶容易出现蛇形走位?
很多人认为:自动驾驶看到车道线以后,立刻修正方向盘就可以了。整个过程需要经过:摄像头采集图像 → 识别车道线 → 计算车辆位置 → 路径规划 → 计算转向角度→ 控制方向盘执行。虽然每一步都很快,但整个过程依然需要时间。与此同时,车辆并不会停下来等待计算完成,它始终在继续向前行驶。这意味着:当控制器开始修正时,车辆的位置已经和刚发现误差时不同了。换句话说,自动驾驶实际上一直在根据“过去的信息”进行控制。因此高速行驶时,同样的控制延时会对应更大的位置变化,控制难度也会明显增加。3. 为什么人开车反而不容易蛇形走位?
看到这里,很多人可能会产生一个疑问:既然自动驾驶拥有大量传感器和强大的计算能力,为什么有时候反而没有老司机开得稳?原因在于:人类驾驶员并不仅仅是在根据当前位置修正方向盘,更多时候是在提前预判。例如:看到前方道路开始向左弯曲。老司机往往会提前调整方向盘,而不是等车辆已经偏离车道后再修正。因此很多时候,人类驾驶员实际上是在不断预判未来,而不仅仅是在纠正当前误差。从控制理论角度看,前面几篇介绍的PID属于反馈控制,也就是发现误差以后再进行修正。而老司机的这种提前预判,则更接近于前馈控制(Feedforward)。它能够利用已知信息提前采取动作,从而减少误差的产生,这也是为什么经验丰富的老司机往往比新手更加平稳。4. 为什么有些自动驾驶比另外一些更稳?
现代自动驾驶系统其实也不仅仅依赖PID反馈控制,它们同样会利用道路曲率、导航路径、车辆速度以及传感器信息提前规划轨迹,某种程度上,这也是一种前馈控制。但即使加入了前馈控制,自动驾驶依然无法完全消除感知误差、计算延时以及车辆动力学带来的影响,因此蛇形走位并不会完全消失,只是相比单纯依靠反馈控制,能够得到明显改善。如果你体验过不同品牌的自动驾驶系统,可能会发现它们的驾驶风格差异很大。如果修正力度太小,车辆会长时间偏离车道中心,看起来反应迟钝。如果修正力度太大,又容易出现超调和振荡,表现出来就是车辆在车道中央附近来回摆动。因此自动驾驶控制器始终需要在响应速度和系统稳定性之间寻找平衡。除了控制器参数之外,传感器精度、算法处理速度以及车辆底盘响应速度也都会影响最终表现。这也是为什么不同厂商的自动驾驶系统,会呈现出完全不同的驾驶风格。结尾
很多时候,它只是控制器在不断修正误差过程中表现出的正常现象。只是由于感知、计算和执行都需要时间,控制动作永远无法做到完全理想。而这背后,其实正是我们前面几篇文章讨论过的内容:当你下一次体验自动驾驶时,如果发现车辆在车道中央附近轻微摆动,不妨换个角度思考:你看到的未必是系统失控,恰恰可能是控制器正在不断寻找响应速度与系统稳定性之间的平衡。