3、横向控制基本原理

做横向控制,说白了就是让车自己跟着路走。你想想看,车为什么要偏?怎么让它回来?这些问题背后有三个核心概念必须吃透。今天我们就聊透这三点:运动学模型、路径跟踪、误差定义。

我个人习惯把它们看作一个链条。先知道车怎么动,再知道路在哪,最后算出差了多少。搞懂了这三步,PI参数调起来才有方向。

横向控制基本原理框架 运动学模型 自行车模型 · 状态方程 期望路径 参考线 · 目标轨迹 横向误差 距离偏差 · 角度偏差 控制量 方向盘转角 · 修正量 前馈 + 反馈 PI 控制核心 横向控制 = 运动学模型描述车辆 + 期望路径给定目标 + 误差驱动反馈修正 前馈补偿路径曲率,反馈消除累积偏差,二者缺一不可

3.1 车辆运动学模型

搞横向控制,我见过有人一上来就上动力学模型,结果调参调得怀疑人生。其实对于Lane Keeping这种场景,运动学模型就够了。说白了,运动学模型只考虑几何关系,不考虑轮胎滑移和受力。这在低速和中低速场景下精度完全够用。

最常用的简化是自行车模型。把四个轮子合并成前轮和后轮,车辆简化为一根棍子。这样描述车辆状态只需要三个量:

  • 横向位置 y — 车辆中心到道路中心线的距离
  • 航向角 ψ — 车辆纵轴与道路切线方向的夹角
  • 车速 v — 通常认为是常数或已知输入

车辆的运动方程长这样:

dy/dt = v · sin(ψ)
dψ/dt = v · tan(δ) / L

其中 δ 是前轮转角,L 是轴距。这就是一个典型的非线性系统。不过在实际工程中,我们通常做小角度假设,把 sin(ψ) ≈ ψ,系统就线性化了。

个人经验: 我在项目中遇到过车速变化剧烈的情况。运动学模型在车速低于60km/h时表现很好,超过这个速度,轮胎侧偏开始明显,就得考虑动力学模型了。选模型前先问自己:这个场景最高车速是多少?

3.2 期望路径跟踪

路径跟踪的核心问题很简单:给你一条路,车怎么走才算「跟上了」?

这里有两个流派。一种是预瞄法,看车前一段距离的路点,算偏差。另一种是基于模型预测,算未来轨迹。PI控制通常用前者,简单直接。

期望路径通常用离散点序列表示:

路径 = {(x₀, y₀, ψ₀), (x₁, y₁, ψ₁), ..., (xₙ, yₙ, ψₙ)}

每个点包含位置和朝向。在实际工程中,路径数据来自高精地图或视觉感知。我个人习惯在路径生成阶段就把曲率算好缓存起来,因为前馈控制需要它。

路径来源 更新频率 典型精度 工程难点
高精地图 10-50 Hz ±10 cm 定位漂移
视觉车道线 15-30 Hz ±5 cm(近处) 遮挡、光照
融合路径 20-50 Hz ±5 cm 数据对齐
避坑: 我曾经遇到一个项目,路径更新频率太低,导致控制量产生阶梯式跳跃。后来强制路径插值到50Hz以上,抖动问题才解决。路径输入信号的平滑度直接影响控制输出品质。

3.3 横向误差定义

误差怎么定义?这一点看似简单,但实际项目中踩坑的不少。横向控制需要两个误差量:

  1. 横向位置偏差 e_y — 车辆质心到最近路径点的垂直距离。这是PI控制的误差入口。
  2. 航向角偏差 e_ψ — 车辆航向与路径切线方向的差值。这个量决定了误差变化趋势。

误差计算公式:

e_y = (y_vehicle - y_path) · cos(ψ_path) - (x_vehicle - x_path) · sin(ψ_path)
e_ψ = ψ_vehicle - ψ_path

这里要注意符号约定。我习惯左侧为正,偏左为正偏差。控制目标就是让 e_y 和 e_ψ 同时归零。

为什么两个误差都要?想想看:如果只看 e_y,车可能平行跑偏但始终有偏差;如果只看 e_ψ,车可能对中但指向有偏角。只有两个误差都收敛,车才能真正贴着路走。

关键认知: e_y 是位置维度的误差,e_ψ 是速度维度的误差。PI控制中,比例项主要针对 e_y,积分项消除稳态残差,微分项(如果加上)则抑制 e_ψ 引起的振荡。

3.4 工程实现中的几个要点

  • 坐标系对齐: 路径坐标和车辆坐标必须在同一坐标系下运算。我见过有人在车辆坐标系算路径偏差,结果计算巨复杂。换个思路,把路径转到车辆坐标系下,一切都简单了。
  • 预瞄距离: 车速越快,预瞄距离越远。一个简单的经验公式:预瞄距离 = v · T,T 取 0.5-1.0 秒。低速弯道可以适当缩短。
  • 曲率前馈: 路径曲率决定了前轮转角的基础值。如果只有反馈没有前馈,过弯时总会有滞后。前馈量 δ_ff ≈ L · curvature,这是 PI 控制的基础。
参数 推荐范围 调参方向
预瞄时间 T 0.4 - 1.2 s 路况好可小,弯道密可大
误差截断阈值 0.2 - 0.5 m 过大导致积分饱和,过小过于敏感
控制频率 30 - 100 Hz 50Hz是甜点,太低有延迟感

嗯,这一章的内容就到这里。搞清楚了运动学模型、路径跟踪和误差定义这三个基本块,后续讲PI参数整定和工程落地时,你就会有更清晰的感觉。毕竟,误差都不知道怎么算,调参就更没方向了。