第一章:自动驾驶系统概述

各位同学好,我是你们这门课的主讲。在自动驾驶这个行当摸爬滚打了十几年,踩过的坑不少,积累的经验也还算丰富。今天咱们开篇,先聊聊整个系统的骨架——系统架构、核心传感器、还有那个“大脑”计算平台。

说实话,很多人一上来就盯着算法看,觉得传感器和硬件是“体力活”。我个人习惯是反过来的——先把硬件架构吃透,再谈软件。为什么?你想想看,传感器数据都采不准,算法再牛也是白搭。我在项目中遇到过好几次,就是因为激光雷达的安装角度偏了一点点,导致感知模块在高速上把护栏识别成了可通行区域……嗯,那事儿后来成了我们内部的反面教材。

1.1 系统架构:从感知到执行

自动驾驶系统说白了,就是一个“感知-决策-执行”的闭环。我习惯把它拆成三层:

  • 感知层:负责“看”和“听”。激光雷达、摄像头、毫米波雷达、超声波,这些传感器把物理世界变成数字信号。
  • 决策层:负责“想”。计算平台和域控制器跑着各种算法,规划路径、预测障碍物轨迹、做出驾驶决策。
  • 执行层:负责“动”。线控底盘、转向、制动、油门,把决策指令变成车辆的实际动作。

这里有个容易忽略的点——时间同步。我曾经排查过一个故障,车辆在路口突然急刹,查了三天才发现是摄像头和激光雷达的时间戳差了50毫秒。50毫秒,在高速上就是1.5米的距离偏差。所以,架构设计时一定要把时钟同步机制考虑进去。

核心要点:系统架构的鲁棒性,往往取决于最薄弱的那个环节。传感器失效、通信中断、算力过载,这些都要在设计阶段就留好冗余。

1.2 核心传感器:各司其职

传感器是自动驾驶的“眼睛”。但每只眼睛看到的“颜色”不一样。我给大家梳理一下:

激光雷达(LiDAR)

激光雷达发射激光束,测量反射时间,生成点云数据。它的优势是三维空间感知精度极高,能直接给出物体的距离和轮廓。缺点嘛,怕雨雪雾,而且成本高。

我记得有一次在雨夜测试,激光雷达的点云几乎被雨滴噪声淹没。后来我们加了一套滤波算法,才勉强能用。所以,别迷信激光雷达的“上帝视角”,它也有自己的软肋。

摄像头

摄像头提供的是纹理和颜色信息。车道线、交通标志、红绿灯,这些都得靠摄像头。但它是被动传感器,依赖环境光照。夜间、逆光、隧道出入口,都是摄像头容易“瞎”的地方。

我建议做系统设计时,摄像头一定要和毫米波雷达做前融合。单纯靠摄像头做目标检测,误检率会让你崩溃。

毫米波雷达

毫米波雷达发射电磁波,擅长测速和测距。它的优势是全天候工作,雨雪雾天照样干活。但分辨率低,没法区分行人还是自行车。

这里有个避坑指南:我曾经遇到过毫米波雷达对静止目标的检测能力很差。在高速上,前方静止的故障车,毫米波雷达可能直接忽略掉。所以,不要完全依赖毫米波雷达做静止目标检测

超声波雷达

超声波雷达主要用于近距离探测,比如自动泊车、盲区监测。探测距离一般不超过5米,精度还行,但容易受天气和表面材质影响。

嗯,超声波雷达的安装位置很关键。装得太低,容易溅上泥水;装得太高,又探测不到低矮障碍物。我见过一个案例,超声波雷达被泥巴糊住,自动泊车直接撞上了路沿。

传感器类型 主要用途 优势 劣势
激光雷达 三维环境建模、障碍物检测 高精度、直接测距 成本高、受天气影响
摄像头 车道线、交通标志、目标识别 纹理信息丰富 依赖光照、易受干扰
毫米波雷达 测速、测距、目标跟踪 全天候、抗干扰 分辨率低、静止目标弱
超声波雷达 近距离探测、泊车辅助 成本低、技术成熟 探测距离短、易受污染

1.3 计算平台与域控制器

传感器采集的数据,最终要送到“大脑”里处理。这个大脑就是计算平台域控制器

早期的自动驾驶,用的是工控机+GPU的方案。功耗大、体积大、散热难。现在主流是域控制器架构,把感知、决策、控制等功能划分到不同的域里,每个域有自己的控制器。

我个人比较推崇中央计算平台+区域控制器的架构。中央计算平台负责高算力需求的任务(比如多传感器融合、路径规划),区域控制器负责执行层的实时控制(比如转向、制动)。这样既保证了算力集中,又保证了实时性。

小技巧:选型计算平台时,别只看TOPS(算力)。还要看内存带宽、I/O接口、功耗、散热。我见过一个项目,选了高TOPS的芯片,但内存带宽不够,数据搬运成了瓶颈,实际帧率还不如低算力平台。

另外,域控制器的功能安全等级很重要。ISO 26262标准里,ASIL-D是最高等级。转向、制动这些关键功能,必须达到ASIL-D。我建议在设计阶段就引入功能安全分析,别等到测试时才发现问题。

警告:域控制器的散热设计千万别忽视。我曾经在夏天路测时,域控制器温度飙到85度,直接降频保护,车辆瞬间失去响应。后来我们加了液冷方案,才解决这个问题。

好了,第一章的内容就到这里。核心就是:传感器是基础,架构是骨架,计算平台是大脑。下一章咱们会深入聊激光雷达的故障诊断,到时候我会分享一些实际排查案例。

记住,做自动驾驶诊断,别光盯着代码。硬件上的一个小问题,可能让你排查好几天。保持耐心,多动手,多记录。咱们下章见。