第一章和第七章 无人驾驶平台和系统

第一章

SAE自动驾驶分级标准

层级 名称 详细描述
Level 0 无自动化 无自动控制功能。
Level 1 单一功能级自动化 无法做到手和脚同时不操控。
Level 2 部分自动化 在某些预设环境下可以不操作汽车,即手脚同时离开控制。
Level 3 有条件自动化 特定条件部分任务。
Level 4 高度自动化 特定条件全部任务。
Level 5 完全自动化 全部条件全部任务。

传感器平台

主流的无人驾驶传感平台以激光雷达和车载摄像头为主,并呈现多传感器融合发展的趋势。需要了解各类传感器(激光雷达、毫米波雷达、摄像头、GPS/IMU、V2X通信传感系统)的检测原理、优势、劣势以及功能。

1. 激光雷达 (LiDAR) 与 毫米波雷达 (Radar):

激光雷达 (LiDAR)

  • 核心原理:利用光进行“回声定位”。
    • 测距技术:飞行时间法 (ToF)。
    • 公式: $r =\frac{1}{2}ct$(c为光速,t为往返时间)。
  • 适用性:测距精准(厘米级),能区分车道线;缺点是受雨雪雾天气影响大。
  • 分类:
    1. 机械式:360°扫描,但体积大、成本高、易损耗。
    2. 半固态:内部微动(MEMS/转镜),适合车规量产。
    3. 固态:无机械部件(Flash/OPA),耐用且成本低,是未来方向。

毫米波雷达 (Radar)

  • 核心优势:全天候工作,穿透力强(抗雨雾)。
  • 频段:
    • 24GHz:短距离(盲点监测)。
    • 77GHz:主流,探测距离远、精度高、体积小。

2. 摄像头 (Camera):

  • 特点:
    • 优点:语义识别能力强(红绿灯、路牌),信息丰富,成本低。
    • 局限:受光线影响大(怕黑、怕逆光),测距不如雷达。
  • 类型与位置:
    | 摄像头类型 | 应用场景 |
    | :—- | :—- |
    | 单目 | 自适应巡航、车道偏离预警、车道保持辅助、前向碰撞预警、自动紧急制动、交通标志识别、自动泊车、行人检测、驾驶员监控 |
    | 双目 | 自适应巡航、车道偏离预警、车道保持辅助、前向碰撞预警、自动紧急制动、交通标志识别、自动泊车、行人检测、驾驶员监控 |
    | 环视摄像头 | 自动泊车、全景环视系统 |
    | 后视 | 自动泊车 |

3. GPS 与 IMU (组合导航):

对比分析

特性 GPS (全球定位系统) IMU (惯性测量单元)
原理 接收卫星信号算绝对坐标 靠陀螺仪/加速度计算相对位移
优点 无累积误差 频率高,不怕遮挡
缺点 信号易受遮挡(隧道/高楼),更新慢 误差随时间累积

融合优势 (互补)

  • GPS 修正 IMU:用 GPS 的绝对位置消除 IMU 的累积误差。
  • IMU 填补 GPS:在 GPS 信号丢失(如隧道)时,IMU 继续推算位置。
  • 算法:通常使用卡尔曼滤波 (Kalman Filter) 进行数据融合。

4. V2X 通信传感系统:

  • 三大优势:
    1. 覆盖广:实现“超视距感知”(如几公里外的路况)。
    2. 避盲区:解决视线遮挡问题(如路口盲区)。
    3. 更安全:通过数字证书防篡改。
  • 政策与标准:
    • 如欧盟 PRESERVE 项目,建立了安全架构和证书体系,保障信息不被黑客伪造。

  • GPS+惯导:开阔环境首选,绝对定位能力强,GPS怕遮挡。
  • 激光SLAM:几何特征丰富环境首选,精确但成本高、怕恶劣天气。
  • 视觉SLAM:纹理特征丰富环境可用,成本低但怕弱纹理、光照变化。
  • 纯惯导(IMU):短期备用方案,任何环境都能工作但误差累积。
环境场景 主传感器 辅助传感器 为什么这样配
无GPS+有结构 激光雷达 IMU 激光提供绝对位置,IMU填补扫描间隔
有GPS+开阔地 GPS IMU GPS提供全局定位,IMU提高更新频率
有GPS+有纹理 视觉+GPS IMU 视觉提供局部精度,GPS防止漂移
恶劣天气 GPS+IMU - 激光/视觉受影响,回归最可靠组合

多传感器融合:卡尔曼滤波

第七章

1. 计算平台

解决方案 核心特点 优势与适用场景
GPU (图形处理器) 并行计算能力强 擅长处理大规模并行任务,非常适合深度学习和图像处理(如训练神经网络)。
DSP (数字信号处理器) 擅长数字信号处理 适合处理连续的模拟信号转换成的数字信号(如音频、雷达信号处理),数学运算能力强。
FPGA (现场可编程门阵列) 硬件可重构 灵活性极高,可以根据需要重新编程硬件逻辑,低延迟,能耗比通常优于 GPU。
ASIC (专用集成电路) 专用定制 为特定功能量身定制,性能最高、功耗最低、体积最小,但不可更改,研发成本高。

2. 控制平台

控制平台是连接算法与执行机构的桥梁,主要包括两大部分:

  • ECU (电子控制单元):分布在车内的“小脑”,负责运行具体的控制算法(如控制发动机喷油、刹车防抱死等)。
  • 通信总线:连接各个 ECU 和机械部件的“神经纤维”,负责传输指令和状态信息。

3. 通信网络协议

不同总线根据速率和可靠性适用于不同的场景:

协议名称 定位与特点 工作机制 适用场景
LIN (局部互联协议) 低速、低成本 主从模式(Master-Slave) 车身电子
(如车窗、雨刮器、后视镜调节)
CAN (控制器局域网) 中速、行业标准 仲裁机制(优先级判断)、多主结构 车辆底盘控制
(如发动机、变速箱、ABS),应用最广泛
FlexRay 高速、高可靠性 时间触发 (Time-Triggered) + 事件触发 线控系统 (X-by-Wire)
(如线控转向、线控刹车),确保数据零延迟、零出错

4. 无人驾驶的安全性(四大安全)

无人驾驶系统安全性核心考点总结

(1). 传感器的安全 (感知层)

  • 常见攻击方式:
    • 致盲攻击:使用强光或激光干扰摄像头,使其“失明”。
    • 欺骗攻击:伪造 GPS 信号,或使用对抗样本(如在路牌上贴贴纸)误导算法。
  • 核心防御策略:多传感器融合
    • 利用激光雷达、毫米波雷达和摄像头的不同特性进行交叉验证,不依赖单一信源。

(2). 操作系统的安全 (软件层)

  • 主要威胁:节点劫持
    • ROS (机器人操作系统) 内部节点通信若缺乏验证,易被黑客控制发送错误指令。
  • 核心防御策略:隔离技术
    • 容器技术 (如 Docker) 和 沙盒 (Sandbox):将节点隔离在独立环境中运行,防止病毒或故障扩散。

(3). 控制系统的安全 (执行层)

  • 入侵方式:通过 OBD 接口或无线网络侵入 CAN 总线,发送伪造的刹车/转向指令。
  • 核心防御策略:加密与验证
    • ECU 在执行指令前必须校验数字签名,确保指令来源合法且未被篡改。

(4). 车联网通信系统的安全性 (V2X 网络层)

  • 主要威胁:消息伪造(假绿灯)、篡改路况信息、隐私泄露。
  • 核心防御策略:PRESERVE 三层防护架构
    1. 硬件层:使用 HSM (硬件安全模块) 物理隔离存储密钥。
    2. 软件层:部署防火墙和入侵检测系统。
    3. 安全证书:建立 PKI 数字证书体系,确保每一条 V2X 消息都是真实可信的。

第二章 定位方法以及传感器应用

章节核心逻辑:无人驾驶系统如何解决两个终极问题?

  1. “感官”:用传感器感知周围环境(雷达、相机)。
  2. “大脑”:用算法(定位、滤波)确定自己在哪、状态如何。

SLAN:同步定位与地图构建。主要有:激光SLAN & 视觉SLAN

第一部分:硬件传感器

1. 激光雷达(激光SLAN)

  • 原理:飞行时间法 (ToF)。发射激光束,计算往返时间测距。
    • 公式:$r = \frac{1}{2} c t$
  • 特性:
    • 3D激光雷达采集到的信息叫做点云。将点云与全局地图进行迭代匹配(ICP)
    • ✅ 精度极高,测距远,分辨率高,隐蔽性好,抗干扰能力强
    • ❌ 成本高,易受雨雪雾天气干扰(噪声大)
  • 考点:它是L4/L5级自动驾驶的核心传感器。

2. 摄像头

  • 原理:被动接收环境光。
  • 分类与应用 (🎯 学长考题重点):
    • 单目 (Monocular):前视感知,识别人、车、车道线、红绿灯。
    • 双目 (Stereo):通过视差原理测距。
    • 鱼眼 (Fisheye):视野极大 (>180°),专门用于倒车影像、360°环视(图像有畸变)。
  • 特性:
    • ✅ 纹理信息丰富,便宜。
    • ❌ 受光照影响大(逆光、黑夜致盲),测距精度不如雷达。

3. 毫米波雷达

  • 原理:多普勒效应。
  • 特性:
    • ✅ 穿透力强(无视雨雪雾),测速特别准。
    • ❌ 分辨率低(看不清物体轮廓,只能知道“有东西”)。

第二部分:定位算法

1. 激光SLAN:ICP vs NDT (⭐⭐⭐ 必考对比)

(1)ICP:


优点 缺点
效果精确 耗时大,效率低
不必数据处理 可能陷入局部最优
较好收敛性 需要噪声处理

(2)NDT:


总结:
把“刚才看到的”(实时点云)和“记忆中的”(高精地图)拼在一起。

特性 ICP (迭代最近点) NDT (正态分布变换)
通俗理解 硬碰硬。每个点都去找地图上离它最近的点,强行拉近。 概率流。把地图划成格子,看现在的点落在哪个概率最高的格子里。
核心原理 最小化点对点欧氏距离。 计算网格内的高斯概率密度函数 (PDF)。
优点 精度极高(前提是初值给得好)。 速度快,鲁棒性强(容错率高,初值差一点也能对上)。
缺点 慢,容易拼错(陷入局部最优)。 精度略逊于精细的ICP。

2. 视觉SLAM

  • 视觉前端特征 (🎯 填空题重点):
    • 角点 (Corner):如 Harris, FAST。
    • 斑点 (Blob):如 SIFT(最准最慢)。
    • ORB特征:Oriented FAST (带方向角点) + BRIEF (二进制描述子)。速度极快,适合实时系统。
  • 回环检测 (Loop Closure):
    • 利用词袋模型 (BoW) 判断“我是否来过这里”,消除累积误差。


第三部分:定位系统

1. 坐标系转换 (⚠️ 判断题陷阱)


  • 转换链条:
    GPS输出的经纬度信息 $\rightarrow$ ECEF (地心地固) $\rightarrow$ 导航坐标系 (ENU/NED) $\rightarrow$ 车体坐标系 (Body)
  • 关键点:
    • ENU:东北天坐标系(指北坐标系)。
    • ECEF:随地球自转。
    • 考题避坑:通常不能直接从 ECEF 旋转得到车体坐标系,中间必须经过局部切平面(导航坐标系),否则无法描述“东南西北”。

2. 基于GPS +惯性组合(IMU)导航的定位系统

(1)GPS:

  • RTK:载波相位动态实时差分,定位误差在城市中也可达到10~50m(一般GPS为10~100m)
  • 差分GPS定位:通过在一个精确的已知位置(基准站)上安装GPS监测接收机,计算得到基准站与GPS卫星的距离,然后再根据误差修正结果,从而提高了定位精度。
  • 伪距法定位:
    • 优点:速度快、无多值性问题、虽然精度低,但是满足大部分需求。

(2)惯性测量单元:


总结:

  • GPS (全球定位系统):提供绝对位置。
    • 缺点:更新慢 (10Hz),易被遮挡(隧道、高楼峡谷)。
    • RTK技术:利用基准站差分,将精度提升至厘米级。
  • IMU (惯性测量单元):提供相对推算。
    • 组成:加速度计(测比力/加速度)+ 陀螺仪(测角速度)。
    • 原理:航位推算。
    • 缺点:误差随时间累积(积分漂移)。
  • 融合逻辑:GPS负责“纠偏”(消除累计误差),IMU负责“填空”(高频输出,保证信号不断)。

(3)惯性导航系统(INS):


第四部分:卡尔曼滤波

这一部分数学最难,重点掌握逻辑和公式。

  • 卡尔曼滤波:是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。
  • 基本思想:利用前一时刻的估计值和现时刻的观测值来更新对状态变量的估计,求出现在时刻的估计值。

1. 卡尔曼滤波 (KF) —— 线性系统的最优估计

  • 核心逻辑:加权平均。
    • 模型算出一个值(预测),传感器测出一个值(测量)。
    • 谁方差小(谁靠谱),我就信谁多一点。
  • 五大核心公式 (📝 建议默写):
    1. 预测状态:$\hat{x}_k^- = A \hat{x}_{k-1} + B u_k$
    2. 预测协方差:$P_k^- = A P_{k-1} A^T + Q$ (Q: 模型噪声)
    3. 卡尔曼增益:$K_k = P_k^- H^T (H P_k^- H^T + R)^{-1}$ (R: 测量噪声)
      • 理解:$R$ 越大(测量烂),$K$ 越小(不信测量);$Q$ 越大(模型烂),$K$ 越大(信测量)。
    4. 状态更新:$\hat{x}_k = \hat{x}_k^- + K_k (z_k - H \hat{x}_k^-)$
    5. 协方差更新:$P_k = (I - K_k H) P_k^-$
局限性
实时性不能满足
可靠性降低
对于非线性系统效果不佳

2. 进阶滤波:EKF vs UKF (⭐⭐ 简答题)

解决非线性问题(如车在转弯、雷达测距是弧线)。

  • 扩展卡尔曼滤波 (EKF):
    • 方法:线性化:用线性变换近似非线性变换。用泰勒级数展开(保留一阶导数),算出雅可比矩阵 (Jacobian)。
    • 缺点:雅可比矩阵难算,忽略高阶项有精度损失。
    • 考点:EKF近似的是非线性函数本身。
  • 无损卡尔曼滤波 (UKF):
    • 方法:无损变换。选几个代表点(Sigma Points)去通过非线性函数,近似出新的概率分布。
    • 优点:不用算雅可比,精度通常更高。

3. 运动模型

  • CTRV (Constant Turn Rate and Velocity):恒定转弯率和速度。这是描述车辆运动最常用的模型。

4. 传感器融合架构

  • 顺序滤波 (Sequential Filtering):
    • 逻辑:一次预测,多次更新。
    • 场景:激光雷达和毫米波雷达的数据不同时到达。先用激光更新卡尔曼滤波,结果作为初值,马上再用毫米波更新。

📝 考前抢分 CheckList (必背)

  1. 倒车影像用什么镜头? $\rightarrow$ 鱼眼 (Fisheye)
  2. 指北坐标系通常指什么? $\rightarrow$ ENU (东北天)
  3. ICP和NDT谁更快更鲁棒? $\rightarrow$ NDT
  4. EKF的核心数学操作是什么? $\rightarrow$ 泰勒展开 / 计算雅可比矩阵
  5. SLAM常用视觉特征? $\rightarrow$ ORB, SIFT, 角点
  6. 卡尔曼增益K变大说明什么? $\rightarrow$ 说明更相信测量值 (或者模型预测的不确定性Q变大了)。

第三章 深度学习和视觉感知

第一部分:路缘石检测

1. ROI提取 (感兴趣区域)

  • 获取原始点云,只保留车身周围一定范围内的点(去除无关背景)。

2. 点集左右划分

  • 将点云按照激光雷达的扫描线(车身前向射线)进行划分。
Image 1
Image 2
Image 3

3. 路缘石点提取

  • 在每一条射线上,利用几何特征(如高度突变、坡度变化)找到疑似路缘的点。
  • 左右子点集划分:将找到的点分为“左侧路缘点集”和“右侧路缘点集”。
Image 1
Image 2
Image 3
Image 4

4. 提取与拟合

  • 利用最小二乘法或RANSAC算法,将点拟合成平滑的曲线(通常是三次样条曲线),得到最终的路缘线。

补充:坐标系变换

第二部分:卷积神经网络(CNN)

  1. 卷积与前馈神经网络区别:

    • 用卷积运算代替矩阵乘法运算
    • 传统全连接神经网络不足:计算/储存要求高(参数大)、易过拟合
    • CNN优势:稀疏交互、权重共享、等变表示
  2. CNN的三大特性:

    • 稀疏交互:卷积核大小远小于输入图像,每个输出神经元只与局部输入连接(效率高)。
    • 参数共享:同一个卷积核在整张图上滑动,用的是同一组参数(储存空间少)。
    • 等变表示:输入平移,输出也跟着平移。
  3. 核心组件:

    • 卷积层:提取特征。
    • 池化层:用相邻位置的总体统计特征来替换该位置的值,起到降维、减少参数、防止过拟合的作用。(最大池化、平均池化)
    • 激活函数:引入非线性(如 ReLU)。

第三部分:YOLO

1. YOLO的核心思想

  • 不需要生成候选区域,直接把图像划分成 S×S 的网格,每个网格负责预测中心落在该格子里面的物体。
  • 速度快,适合无人驾驶实时感知。

2. YOLOv3的特征提取

特点:

  • 有53个卷积层
  • 输出图像尺寸:416x416x3
  • 连续使用卷积层和跳跃连接层

图像金字塔:

  • 图像金字塔-向下采样:删除图像偶数行列,大小变为四分之一。
  • 图像金字塔-向上采样:补充大量像素点0,大小变为四倍。
    (注意:两种操作互相是不可逆的。)

多尺度特征预测:

交并比:

边界框坐标计算:

  • $(b_x,b_y)$为中心坐标。
  • $b_w,b_h$进行了尺度缩放。
  • Sigmoid函数作用:将$t_x,t_y$压缩到[0,1]区间内,确保预测边界在网格内,防止偏移过多。
  • 指数函数e的作用:确保缩放后的宽高为正。

第四章 迁移学习和强化学习

第一部分:迁移学习

  • 意义:
    • 解决大数据和少标签之间的矛盾。
    • 解决大数据和弱计算之间的矛盾。
    • 解决普适化模型和个性化需求之间的矛盾。
    • 满足特定应用需求。

为什么需要“迁移学习”?

  1. 收集数据难、标注难。
  2. 冷启动的问题(新环境没有数据)。
  3. 个性化模型很复杂。

迁移学习的四种方法

  • 基于( )的迁移
    • 实例:找到与目标相似的样本。
    • 特征:把两个领域的数据变换到同一个特征空间。
    • 模型:共享模型参数。
    • 关系:挖掘逻辑关系。

第二部分:端到端无人驾驶

基本思路:

  1. 采集数据:摄像头拍摄的图像
  2. 网络训练:通过神经网络训练的数据来做出决策
  3. 测试:通过训练的模型来控制车辆,例如方向盘的转角、刹车、油门、

代表模型:ALVINN、NVIDIA PilotNet

  • 输入:摄像头拍摄的图像
  • 输出:车辆控制指令(方向盘的转角)

  • 优点:不需要复杂规则设计,系统简单,能利用海量数据。

  • 缺点:安全性难以保证,出事难追责。

第三部分:强化学习

  • 强化学习:没有监督者,数据不需要带标签,只有一个奖励信号,还可能是延时的。

1. 核心五要素

  • 个体(Agent):智能体。
  • 环境(Environment):与Agent交互的事物。
  • 动作(Action):Agent的行为。
  • 状态(State):Agent从环境获取的信息。
  • 奖励(Reward):行为的反馈。
    (学习目标是最大化累计奖励)

    Agent先从Environment中获取一个State,然后根据这个状态做出Action并反馈给环境,获取Reward。

2. 马尔可夫决策过程

  • 马尔可夫性:系统的下一个状态只跟当前状态有关,与过去状态无关。

马尔可夫决策过程(MDP):

  • $S为有限状态空间集合。$
  • $A为有限动作的集合。$
  • $P为状态转移概率。$
  • $R为奖励函数。$

从$Start \rightarrow End$的过程是一个序列决策问题,要选择路线以找到最大收益,这使得我们需要一个策略。

  • 确定性策略:相同状态下输出动作是确定的。
  • 不确定性策略:按照概率大小输出不同的输出动作。

累计期望奖励:

其中,$\gamma$为折扣因子 $\in[0,1)$,用来估算未来对现在的影响。

值函数:

  • 作用是量化每一个行动对最终的最大化长期回报的目标的贡献。
  1. 状态s下的值函数:

  2. 状态+行为-值函数:

  3. 最优状态-值函数:

  • 值函数最大的策略,即:$V^*(s)=max (v_\pi(s))$
    (最优状态行为-值函数同理。)

第三部分总结:


第四部分:Q-learning

  • 实质上就是基于奖励机制的学习算法。

    Q-learning

    更新公式:

  • $Q(s_t, a_t)$ 是在状态 $s_t$ 下采取动作 $a_t$ 的长期回报,是一个估计 Q 值。

  • $r_{t+1}$ 是在状态 $s_t$ 下采取动作 $a_t$ 得到的回报 reward。
  • 指的是在状态 t+1下所获得的最大 Q 值(直接看 Q-table,取它的最大化的值)。
  • $\gamma$ 是折扣因子(若$= 0 \rightarrow$ 则短视,只注重眼前奖励,反之是远视,长远考虑)。
  • 即为目标值,就是 时序差分目标,是 $Q(s_t, a_t)$ 想要逼近的目标。$\alpha$ 是学习率,衡量更新的幅度。
  • 注意:$max Q(s_{t+1},a)$ 所对应的动作不一定是下一步会执行的实际动作。这里引出 $\varepsilon$-greedy,即 $\varepsilon$-贪心算法。

$\varepsilon$-贪心算法

  • exploration:探索环境,通过尝试不同的动作来得到最佳策略(带来最大奖励的策略)
  • exploitation:不去尝试新的动作,利用已知的可以带来很大奖励的动作。
  1. 目的是获得一种长期收益最高的策略,这个过程可能对short-term reward有损失。
  2. 如果exploitation太多,那么模型比较容易陷入局部最优,但是exploration太多,模型收敛速度太慢。这里面临一个权衡问题,即怎么通过牺牲一些短期的奖励来理解动作,从而学习到更好的策略。

DQN

  • 问题:传统的Q-learning用表格存Q值 (Q-Table)。如果状态太多(比如输入是图像),表格存不下。
  • 解决:用神经网络来代替表格,估算Q值。
    • 输入当前画面,利用神经网络提取特征,输出每个动作的Q值。
  • 思想:
    1. 经验回放:
      • 问题:开车时,上一秒是在直行,下一秒通常还在直行。数据之间关联性太强,一直学相似的东西,神经网络容易过拟合。
      • 解决:我们不直接学刚才发生的事,而是把智能体经历过的所有事情 $(s, a, r, s’)$ 存进一个经验池。
      • 操作:训练时,从经验池里随机抽取一批数据来学习。打破了数据的时间相关性,让学习更全面。
    2. 目标网络:用一个目标网络来对当前网络来进行打分,可以提高稳定性。

策略梯度

  • DQN 的问题:
    1. 无法处理连续动作:DQN 输出是离散的(如上下左右),但方向盘角度是连续数值,无法建立无限大的表格。
    2. 死循环风险:确定性策略在相同状态下永远做相同选择,容易在特定场景(如迷宫死胡同)原地打转。
  • 策略梯度的方案:
    • 不计算 Q 值,而是训练一个神经网络(策略网络 $\pi_\theta$)。
    • 输入:状态 $s$。
    • 输出:动作的概率分布(直接告诉智能体每个动作被选中的概率)。

策略梯度的核心逻辑是:“先凭直觉试一试,如果结果好,就增加刚才那些动作的概率;如果结果差,就减少。”

第一步:试错 (Sampling)

  • 让智能体用当前的策略网络 $\pi_\theta$ 与环境交互,跑完一整轮(Episode)。
  • 记录轨迹:$\tau = {s_1, a_1, r_1, s_2, a_2, r_2, \dots, s_T, a_T, r_T}$。

第二步:打分 (Evaluation)

  • 计算这一轮的总得分(累计回报):$R(\tau) = \sum r_t$。
  • 判据:总分高说明这一轮的动作序列整体是好的。

  • 利用梯度上升更新参数 $\theta$,目标是最大化期望回报 $J(\theta)$。

  • 核心公式:
    • 如果 $R(\tau)$ 是正的高分 $\rightarrow$ 大幅增加该动作的概率。
    • 如果 $R(\tau)$ 是负分 $\rightarrow$ 减少该动作的概率。
比较维度 策略梯度 (Policy Gradient) 价值方法 (DQN)
输出内容 动作概率 (直接输出策略) 动作价值 (Q值)
动作空间 支持连续动作 (如方向盘转角) 仅支持离散动作 (如按键)
策略类型 随机策略 (Stochastic) 确定性策略 (Deterministic)
稳定性 较低 (方差大,容易受单次结果影响) 较高 (有目标网络等机制)

DDPG(深度确定性策略梯度)

为了解决策略梯度“由一整轮结果决定成败,方差太大”且梯度计算困难的问题,引入了 Actor-Critic 框架。

Actor-Critic 结构:

  • Actor (演员):策略网络,负责动作。
  • Critic (评论家):价值网络,负责打分(代替“整轮总分”)。
  • 改进点:Critic 每一步都给 Actor 反馈,不需要等游戏结束,学习效率更高,算法更容易收敛。

DDPG:
无人驾驶控制的核心算法,共包含4个神经网络。结合了 DQN 和 Actor-Critic 的优点:

  1. 结构:Actor-Critic (一个做动作,一个打分)。
  2. 机制 1:经验回放 (Replay Buffer) $\rightarrow$ 打破数据关联性。
  3. 机制 2:目标网络 (Target Network) $\rightarrow$ 稳定训练目标。
  • 适用场景:连续动作空间的精准控制。

第五章 无人驾驶规划

第一部分:路径规划(A-star算法)

  • 目标:寻找最短路线。

深度/广度优先搜索

  1. 深度优先搜索:

    • 沿着一条路径不断往下探索。
    • 栈的性质:先进后出
  2. 广度优先搜索:

    • 由起点开始,由近及远搜索。
    • 栈的性质:先进先出

1. Dijkstra算法

  • 核心思想:由近到远把所有点点最短路径算出来。
  • 缺点:效率低下、功耗高。

2. A-star算法

在此基础上引入启发函数,得到A-star算法。
启发函数:

  • $g(n)$:实际代价(起点到这里,花了多少代价)
  • $h(n)$:预估代价(从这里到终点,还需要多少代价)

启发式函数$h(n)$的选择:

  1. 欧几里得距离 (Euclidean Distance):两点间的直线距离(适用于允许任意方向移动的场景)。
  2. 曼哈顿距离 (Manhattan Distance):城市街区距离(适用于只能横平竖直走的网格地图)。
  • 关键原则:$h(n)$ 必须小于等于实际代价。如果 $h(n)$ 估得太高,可能会漏掉最优路径;如果估得太低,算法会变慢但仍能找到最优解。
  • 特点:既有 Dijkstra 的严谨(保证找到路),又有“贪心算法”的速度(优先往终点方向找)。

3. 混合A-star

相比于普通A-star(把车看成一个质点),混合A-star加入了车头朝向参数$\theta$.

  • 从二维$(x,y)$拓展到三维$(x,y,\theta)$。
  • 需要考虑车辆动力学,所以不再是简单地连接相邻个字,而是要生成符合车辆转弯的圆弧路径。
算法 Dijkstra A* (A-Star) Hybrid A*
是否有方向感 无 (盲目搜索) 有 (启发式引导) 有 (启发式 + 运动学)
公式 $f(n) = g(n)$ $f(n) = g(n) + h(n)$ 同 A*,但考虑 $\theta$
考虑车辆体积/转弯 否 (视为质点) 否 (视为质点) 是 (考虑运动约束)
适用场景 简单图搜索 全局路径规划 复杂环境泊车、掉头

局部路径规划——TEB算法

第二部分:行为规划(分层有限状态机)

根据当前的交通环境以及全局路线,来做出合理驾驶行为。

  • 安全第一,交通法规优先,实时反应

1. 有限状态机

根据外界的输入在有限的状态之间跳来跳去。

  • 分类:
    • 确定型自动机:对每个输入只有一个精确的转移(一个动作)。
    • 非确定型自动机:可以没有/有多个结果。

当状态变得很多,就会变得非常庞大,产生问题:

  1. 可维护性差
  2. 可拓展性差
  3. 复用性差

2. 分层有限状态机

相比与FSM,HFSM引入“超级状态”概念,实现打包管理。

超级状态:将同一类的一组状态视作一个集合(图中大方框),超级状态之间也有转移逻辑。

  • 斯坦福大学Junior:将顶层的驾驶行为分成了13个超级状态。在无人车正常行驶中,状态机几乎处在普通驾驶模式(即FORWARD-DRIVE和PARKING-NAVIGATE这两个状态)。
优点
分层结构 减少复杂度
分层继承 提高了可复用性/灵活性
分层封装 提高可读性/可测试性

第三部分:路径生成(三次样条插值算法)

  • 生成路径基本要求:能够通过车辆控制来执行该路径。

拟合和插值的区别:

  • 拟合:不要求通过所有点,讲究神似。
  • 插值:要通过所有给定的点。

为什么使用“三次样条插值曲线”(而不是“三次拟合曲线”)?
因为“三次样条插值”生成的曲线符合车辆运动学规律,即:
尽量走直线,在转弯的地方走曲线。

三次样条插值算法的数学性质

  1. 生成的曲线在衔接点处函数值连续。
  2. 一阶导数和二阶导数连续可导。
  3. 自由边界三次样条的边界一阶、二阶导数也是连续的保证速度/加速度连续。
    (对于第三点:由于解方程组时,未知数比方程多两个,就会产生自由边界。)

第四部分:动作规划

最优动作序列

Jerk:加速度的变化率,即加加速度。

  • 过高的Jerk会引起乘客的不适,所以要研究怎么优化Jerk。

Frenet坐标系

相比于笛卡尔坐标系(东南西北),Frenet坐标系使用道路中心线作为参考线。

  • s轴:沿着道路中心线走了多远。
  • d轴:偏离中心线多少(左正右负)。

优势:

  1. 简化了道路曲线拟合的问题,把二维问题简化成一维问题。
  2. 所以计算也简单了。
  3. 保持车道只需要保证 $d=0$。
  4. $s$管速度(停车、巡航)、$d$管方向(变道、避障)。

横向、纵向轨迹优化

  • 将轨迹优化问题分割为横向&纵向。
  • 选取损失函数C,采用使得C最小的轨迹。

1. 横向轨迹的损失函数

主要任务:控制方向(如:车道保持、变道)。
公式:

组成部分 符号含义 惩罚项 对应指标
舒适项 Jerk (加加速度)。
防止方向盘打得太急,避免乘客晕车。
舒适度
效率项 $k_{t}T$ 耗时。
防止变道或回正动作拖泥带水,动作要干脆。
效率
偏差项 终点横向偏差。
防止规划结束时车子没回正、压线或偏离中心。
准确度
  • 调整惩罚项系数$k_j,k_t,k_d$,可以选择更注重哪个指标。

2. 纵向轨迹的损失函数

主要任务:控制速度(如:跟车、巡航、停车)。
公式 (以车速保持场景为例):

组成部分 符号含义 惩罚项 对应指标
舒适项 Jerk (加加速度)。
防止急刹车或地板油,保证加减速平滑。
舒适度
效率项 $k_{t}T$ 耗时。
防止长时间达不到目标状态。
效率
规则项 速度偏差。
: 规划终点速度; $\dot{s_{c}}$: 设定巡航速度。
防止速度不达标(例如限速60却只开40)。
规则依从性
  • 调整惩罚项系数$k_j,k_t,k_s$,可以选择更注重哪个指标。

3. 总损失函数

公式:

  • 权重调节 ():
    • (横向权重) 和 (纵向权重) 是人为设定的系数。
    • 作用:决定车子是优先保证“走得直”(横向),还是优先保证“速度准”(纵向)。

碰撞避免

第六章 车辆模型和高级控制

第一部分:车辆模型

1. 自行车模型

该模型做出的假设:

  1. 忽略车辆在垂直方向上的运动。
  2. 把前轮和后轮的两个轮胎各自看成一个。
  3. 看成和自行车一样,前轮控制转角。

2. 运动学自行车模型

控制输入$(a, \delta_f)$

  • $a$ 表示车辆的加速度。踩油门意味着正的加速度,踩刹车意味着负的加速度。
  • $\delta_f$ 表示方向盘的转角。假定方向盘转角就是前轮当前的转角。

四个状态量:(位置、偏航角、速度)

  • $x$:车辆当前的 $x$ 坐标
  • $y$:车辆当前的 $y$ 坐标
  • $\psi$:车辆当前的偏航角(用弧度来描述,逆时针方向为正)
  • $v$:车辆的速度

相关几何参数:

  • $l_f$:前轮到车辆重心的距离
  • $l_r$:后轮到车辆重心的距离

更新公式:根据运动学定理,运动学自行车模型中各个状态量的更新公式如下:

其中,$dt$ 表示间隔时间,$\beta$ 又如下的公式计算可得:

滑移角

自行车模型假定后轮的转角控制输入 $\delta_r = 0$。

3. 动力学自行车模型

核心思想:当车辆以高速度行驶时,车轮方向不一定是车轮当前的速度方向(侧滑)。
所以该模型考虑了以下两个力:

  • 纵向力:使车辆前后移动的力。
  • 侧向力:使车辆横向移动的力。

轮胎是车辆运动的一个重要力的来源。

  • 体现了由frenet坐标系下车身的纵向和侧向速度来推导笛卡尔坐标系下X和Y两个方向上的车辆行驶速度。

第二部分:PID控制

  • 比例、积分、微分

1. P控制

该控制器控制的是车辆转角。

  • 等值控制是震荡的。

控制输出表示为:

其中,

  • $e(t)$表示在$t$时刻下的CTE(车辆到参考线距离)。
  • 在合理的数值范围内,$K_p$越大,控制效果越好,即:越快回到参考线附近。
  • 但是当CTE和$K_p$都很大时,车辆会失去控制。

2. PD控制

相比于P控制,PD控制引入了CTE变化率这个概念。

  • CTE变化率描述了无人车向着参考线方向移动的快慢。

此时控制输出表示为:

其中,

  • 增大P系数$K_p$增大车辆朝着参考线运动的倾向。
  • 增大D系数$K_d$使得转向更平缓(因为转角速度变化更慢了)。

所以有以下两种情况:

  1. P过大,D过小:

    • 欠阻尼。
    • 无人车将沿着参考线震荡前进。
    • 因为P过大,车辆一直要朝向参考线,但是D过小,转角变化率很快,导致车辆不好控制。
  2. P过小,D过大:

    • 过阻尼。
    • 无人车需要很久才能矫正误差。
    • 因为P很小,而且D很大,所以车辆转角变化很慢,而且不倾向于找到参考线。

3. PID控制

因为PD控制很难消除稳态误差,所以引入了积分环节。

控制输出:

其中,

  • 积分项本质上是车的实际路线到参考线的图形面积,也就是累积的误差。
  • 积分项系数$K_i$的大小影响系统稳定性。
  • 过大使得系统震荡,过小会使得汽车收到扰动后需要很久时间才能回到参考线。

PID参数整定方式

简单来说,就是先P后I最后D.

PID三个环节的总结:

环节名称 优点 缺点
比例环节 (P) 调整系统的开环比例系数,提高系统的稳态精度,减低系统的惰性,加快响应速度。 仅用P控制器,过大的开环比例系数不仅会使系统的超调量增大,而且会使系统稳定裕度变小,甚至不稳定。
积分环节 (I) 消除稳态误差。 积分控制器的加入会影响系统的稳定性,使系统的稳定裕度减小。
微分环节 (D) 使系统的响应速度变快,超调减小,振荡减轻,对动态过程有“预测”作用。

第三部分:模型预测控制

传统PID具有延时性,即控制指令会在未来被执行。而模型预测控制可以避免延时问题。

  • 将更长时间跨度的控制问题分解为几个更短短跨度问题。
  • 包含以下三个因素:
    1. 预测模型:能够在短时间内预测系统将来的变化。
    2. 在线滚动优化:通过算法来优化未来一段时间的控制输入,使得损失最小。
    3. 反馈矫正:到下一个时间点根据新的状态重新预测和优化。

基本步骤:

  1. 从 $t$ 时刻开始,预测未来 $n$ 步的输出信号。(预测模型)
  2. 基于模型的控制信号以及相应的输出信号,构造损失函数,并且通过调整控制信号最优化损失函数。(在线滚动优化)
  3. 将控制信号输入系统。(反馈矫正)
  4. 等到下一个时间点,在新的状态重复步骤 1。
  • 模型预测控制一般应用于无人驾驶横向控制。

第四部分:轨迹追踪

基于几何追踪的方法————纯追踪

思想:
纯追踪就是基于几何原理,算出要把方向盘打多少度,才能让车画一个圆弧,恰好经过前方那个预瞄点。


  • $(g_x,g_y)$是下一个预瞄点。
  • $K$可以表达为:$K =\frac{2}{{l_d}^2} e_l$,纯追踪控制器其实是横向的P控制器。

重点:前视距离$l_d$的参数选择
前视距离 ($l_d$) :距离目标路径点的前视距离,一般将前视距离表示成车辆纵向速度的线性函数。

  • 计算公式
前视距离 ($l_d$) 设定 优点 缺点/问题 适用场景与表现
较短 ($l_d$ 小) 追踪精确:车辆能够紧紧贴合参考路径行驶。 容易震荡:控制过于敏感,车辆容易在路径左右来回摆动 (Oscillation),导致行驶不稳定。 适用于低速行驶,或者路径曲率变化不大且需要高精度跟踪时。
较长 ($l_d$ 大) 轨迹平滑:控制动作更加温柔,车辆行驶更加稳定。 转向不足:在急转弯或大曲率路段,车辆会“切内角” (Cut corners),无法精确经过路径点。 适用于高速行驶,为了防止翻车或失控,优先保证车辆的稳定性。
动态调整策略 平衡性能:在不同速度下都能获得较好的跟踪效果。 参数整定:需要根据实际车辆特性调整系数 $k$。 常用方法:将前视距离设为纵向速度的函数 (通常是线性关系 $l_d = k \cdot v_x$)。
约束:通常会设置一个最大值和最小值来限制前视距离的范围。
  • 核心结论:前视距离的调整本质上是在“精确性”和“稳定性”之间做权衡。纯追踪算法的关键在于找到适合当前速度的最佳前视距离。