Apollo进阶课程[2]——Apollo硬件开发平台

“安全是自动驾驶的第一天条”

自动驾驶车的研发流程

四个步骤:

  1. 软件在环:基于仿真和模拟。
  2. 硬件在环:基于必要的硬件平台。
  3. 车辆在环:基于车辆执行,在封闭场地。
  4. 司机在环:基于实际道路。研究人-车-路-交通几个参与物之间的相互作用。

自动驾驶车的硬件系统

要考虑到人的因素。
三大系统:感知、决策、控制。系统的具体硬件架构如下:
Apollo进阶课程[2]——Apollo硬件开发平台
速度传感器:涉及汽车的被动安全,如发生汽车碰撞时,通过速度传感器给出减速的信号,执行安全气囊的弹出。
角度传感器:做车辆包括车道线偏离这种自动驾驶时通过角度传感器判断当前车行进的角度。
V2X:主要分为V2V(车车通讯)、V2P(人车通讯)和一些基础设施之间的通讯。
摄像头:通过图像识别判断驾驶员的疲劳状态,有没有精力不集中的情况。
生物电传感器:在方向盘中,可以判断手有没有脱离方向盘和驾驶员的情绪以及身体状况。
计算单元:所有自动驾驶感知决策控制的一些算法在计算单元运行。
T-BOX:Telematics BOX,车联网的通讯网关,它上接互联网,下接CAN总线。手机APP发送一些开关门、发动机启动等操作指令可以通过T-BOX发送到CAN总线来进行相关操控。

自动驾驶车的传感器

Apollo进阶课程[2]——Apollo硬件开发平台
摄像头:

  • 主要用于车道线和交通标识牌、红绿灯以及车辆和行人检测。
  • 特点:检测信息全面,价格偏移,但会受到天气的影响。
  • 核心主要组成:镜头、镜头的模组、滤光片和CMOS/CCD、ISP数据传输
  • 拍摄图像原理
  • 双目摄像头是两个图像之间的视觉差去计算,不需要判断障碍物的类型,通过视觉差对于任意障碍物都能提出一些警告和标识。

激光雷达:

  • 核心原理:ToF(Time of Flight),一束光发射碰到障碍物会回波在APD上进行接收,然后计算光的折返距离。
  • 类型:根据扫描原理分为同轴旋转、棱镜旋转和MEMS,OPA相控阵、Flash
  • 作用:不光用于感知,还有地图类的测绘和定位。

毫米波雷达:

  • 功能:主要用于交通车辆检测,指向性强。一般在前后保险杠上。
  • 特点:检测速度快、比较准确,不受天气的干扰,无法识别和检测车道线。
  • 组成:主要是由发射的射频天线、一些芯片和一些算法组成。
  • 基本原理:发射一束电磁波,观察电磁波回波的摄入的差异来计算速度和距离。
  • 类型:目前市面主要分为77G(远距离)和24G(近)两种

组合导航:

  • 原理:通过GNSS板卡、天线接收所有可见的GPS信号,进行解算和计算得出自身在大地坐标系的空间位置。GPS信号容易被遮挡,不能提供实时导航,所以需要融合惯导的信息。惯导是完全封闭的系统,不受外界环境的干扰。
  • 一般放在两个车后轱辘的中轴线上。

Apollo进阶课程[2]——Apollo硬件开发平台
量产的L1、L2最怕误解,会避免一定的误解率。L3以上怕漏检。

自动驾驶车会要求局限车的ODD(设计使用范围),目前L4以上是城市道路+高速路。目前自动驾驶车的反应时间在500ms之内。
Apollo进阶课程[2]——Apollo硬件开发平台
角分辨率的计算:
Apollo进阶课程[2]——Apollo硬件开发平台
多/2是为了避免漏检,保证每一个角度内都不存在漏检。
检测到系统不一定能识别出来,在只有一条线或成像分辨率很低的图像是识别不出来的。
Apollo:激光雷达使用4-5条线。
未来发展趋势:多传感器的融合,如激光雷达与摄像头前端融合,直接输出RGB和XYZ融合后的彩色加点云信息。

计算单元

集中式架构:将所有计算的工作同一放到一个工控机中。体积大,功耗高,不适用量产。但比较方便于代码的快速迭代。有卡槽。方便硬件的更新和扩展
Apollo进阶课程[2]——Apollo硬件开发平台
考量整体的车规,比如说电磁干扰和振动这方面的设计,考虑ISO262的一些要求,所有的CPU、GPU、FPGA以及总线都要做一些冗余设计(防止单点故障)。
MCU作用:当整体系统失效时,MCU会最后发送一些操作(如刹车指令)到CAN总线中

嵌入式设计:
Apollo进阶课程[2]——Apollo硬件开发平台

将各传感器的原始数据先融合到一个sensor box中,在sensor box中完成数据融合后将数据给后端的计算平台进行处理。
sensor box功能:做一个时间戳的同步,保证在这个时间戳下所有传感器拍的或探测的是同一个方向,同一个坐标系。
拆解集中式计算的功能可以降低整体的功耗,但仍不足以面向量产。

芯片设计流程:

详细内容可以回顾微电子电路课程PPT

Apollo进阶课程[2]——Apollo硬件开发平台
对比16纳米,7纳米可以提升40%的性能,节省60%的功耗。

自动驾驶车线控系统

Apollo进阶课程[2]——Apollo硬件开发平台
线控:简单理解,车辆的控制都是由一系列的命令执行,而不是由物理的操作执行。
三大部分:

  • 减速控制:刹车
  • 转向控制
  • 加速控制

制动:
Apollo进阶课程[2]——Apollo硬件开发平台
线控需要用一些电控化的零件来替代。EHB(电子液压制动系统)
MK C1:集成了液压和制动模块,如AEB、ESC的一些功能。设计紧凑,重量轻。满足自动驾驶的动态特征。通过电信号触发制动,产生的制动距离更短。
MK100:ESC的车身电子稳定系统,对MK C1进行一个互相之间的一些备份。MK C1失效时由MK100来接管。

转向:
Apollo进阶课程[2]——Apollo硬件开发平台
EPS:电子助力转向系统。与线控系统的区别,它车轮之间没有参与,直接用一个转向管柱与下面的齿条结合,没有采用电控制。

加速:
Apollo进阶课程[2]——Apollo硬件开发平台
减速刹车踏板有一个位置传感器,会检测到刹车的深浅度,然后传送指令到EMS(发动机控制系统)控制发动机气门的开合。新能源控制电机,通过驱动电机的扭力的控制来完成加速度的控制。

整个线控化的三个阶段:
Apollo进阶课程[2]——Apollo硬件开发平台
3.0与2.0的差别:考虑的冗余和备份的需求。1.0暴力改装,没有封闭,没有进行安全验证,有安全隐患。

Apollo硬件开发平台

Apollo进阶课程[2]——Apollo硬件开发平台
丰富硬件类型,发布测试后的传感器
Apollo进阶课程[2]——Apollo硬件开发平台
百度平台认证:是百度正在使用的,有数据集的提供
百度硬件开发认证:只是在代码层面进行认证
发布的硬件传感器单元,其实就是sensor box。
Apollo进阶课程[2]——Apollo硬件开发平台
抽象层:防止单一硬件短路导致整个硬件系统内核崩溃的中间开发层。有一些硬件接口,比如内核的驱动,USP library(用户空间库) 。主要应用于CAN总线中,因为每一车型的CAN总线是不一样的,它会将一些控制指令的一些信息写到USP library进行一些操控。
Apollo进阶课程[2]——Apollo硬件开发平台