自动驾驶控制:入门篇
自动驾驶控制系统入门
理解自动驾驶控制系统的输入、输出和闭环结构。
这篇文章讲什么
自动驾驶里的“控制”到底在干什么?
简单说,控制系统要做的事情就是:
给它一条参考轨迹,再给它当前车辆状态,它算出车下一步该怎么开。
在最常见的车辆控制里,输出通常就是两个量:
- 加速度
- 转向角
也就是:
参考轨迹 + 车辆状态
↓
控制系统
↓
加速度 + 转向角
如果放到车上理解,加速度决定车快一点还是慢一点,转向角决定车往左打还是往右打。

自动驾驶控制解决什么问题
自动驾驶系统一般可以粗略分成几个部分:
感知 → 定位 → 规划 → 控制 → 车辆执行
控制在最后一段。
规划模块告诉车辆:
“你应该沿着这条轨迹走。”
控制模块负责回答:
“那我现在方向盘该打多少?油门或刹车该给多少?”
所以控制不是重新规划路线,也不是识别红绿灯。控制只关心一件事:
让车辆尽可能稳定、平滑、准确地跟上给定轨迹。
输入是什么
控制系统通常需要两个输入。
第一个是参考轨迹。
参考轨迹可以理解成规划模块给出的一串目标点,每个点可能包含:
- 位置 x
- 位置 y
- 航向角 yaw
- 期望速度 v
- 曲率 kappa
第二个是车辆当前状态。
车辆状态来自定位、传感器或仿真器,一般包含:
- 当前 x
- 当前 y
- 当前 yaw
- 当前速度 v
- 当前加速度
- 当前转向角
控制器要做的事情,就是比较“我现在在哪”和“我应该去哪”,然后算出控制量。
车辆模型是什么
车辆模型描述的是:
如果我给车辆一个加速度和转向角,车辆接下来会怎么运动。
入门阶段可以先把车辆理解成一个会往前走、会转弯的点:
- 速度决定它往前走多快
- 航向角决定它朝哪个方向走
- 转向角决定它接下来怎么转
车辆模型不是控制器本身,它描述的是车辆“会怎么动”。
控制器要根据这个运动规律,去计算合适的加速度和转向角。
控制器是什么
控制器就是控制系统里的“大脑”。
它接收:
- 参考轨迹
- 当前车辆状态
然后输出:
- 加速度
- 转向角
可以把控制器理解成一个函数:
控制器(参考轨迹, 当前车辆状态) → 加速度, 转向角
我们可以把控制器拆成两部分:
- 纵向控制:控制速度,输出加速度
- 横向控制:控制方向,输出转向角
也就是:
目标速度 - 当前速度 → 纵向控制器 → 加速度
参考轨迹 - 当前姿态 → 横向控制器 → 转向角
输出是什么
控制器最终输出的是车辆执行器能理解的控制指令。
在自动驾驶控制里,最核心的两个输出是:
a:加速度
δ:转向角
加速度 a 负责纵向运动:
- a > 0:加速
- a < 0:减速
- a = 0:保持当前速度附近
转向角 δ 负责横向运动:
- δ > 0:向左或向右转,取决于坐标系约定
- δ < 0:向另一侧转
- δ = 0:尽量直行
在不同平台里,控制量通常还要转换成执行器能接收的格式。
比如油门、刹车、方向盘角度,或者某个仿真平台自己的控制接口。
但从控制算法角度看,先抓住这两个量就够了:
纵向:加速度
横向:转向角
控制闭环是什么
控制系统不是只算一次。
它是一个不断循环的过程:
读取车辆状态
↓
读取参考轨迹
↓
计算控制量
↓
车辆执行
↓
车辆状态变化
↓
继续下一轮
这就叫闭环控制。
“闭环”的关键是:车辆执行之后,系统还会继续观察车辆的新状态,然后再次修正。
比如车辆偏离轨迹了,下一轮控制器就会看到偏差,然后让车辆往轨迹方向修回来。

为什么先用 P 控制器 + Pure Pursuit
入门阶段最重要的不是一上来学最复杂的控制器,而是先跑通整个链路。
所以这个系列先用一个很简单的组合:
- 纵向:P 控制器
- 横向:Pure Pursuit
P 控制器负责速度。
它的直觉很简单:
速度慢了,就加速多一点
速度快了,就加速少一点或者减速
Pure Pursuit 负责方向。
它的直觉也很简单:
在前方轨迹上找一个目标点
让车朝这个目标点开过去
这两个控制器不一定最强,但非常适合入门。
因为它们能让我们先看懂完整控制系统:
参考轨迹
车辆状态
车辆模型
纵向控制器
横向控制器
控制输出
闭环执行
最小伪代码
整个控制系统可以先理解成下面这段伪代码:
while running:
state = get_vehicle_state()
target = find_target_point(reference_path, state)
a = p_controller(target.speed, state.speed)
delta = pure_pursuit_controller(target, state)
apply_control(a, delta)
这就是自动驾驶控制入门阶段最核心的东西。
后面的几篇文章,其实就是把这里面的每一步拆开讲清楚:
- 参考轨迹和车辆状态是什么
- 车辆模型怎么理解
- P 控制器怎么控制速度
- Pure Pursuit 怎么控制方向
- 最后怎么把它们拼成一个能跑的最小系统