0%

apollo学习笔记-day7

Apollo硬件开发平台

自动驾驶汽车的事故分析

2018年3月18日,Uber无人车在美国撞上一名行人,该行人被送医,随后被宣告抢救无效死亡。

在事故发生的前6秒,系统的传感器已经发现行人;在事故发生的前1秒,原车的应急制动AEB已经启动,但汽车并没有实施制动,原因是Uber在改装沃尔沃cx90时,对原车的刹车系统进行截断,由后续改装的电脑来发射控制指令,进行刹车。

  • 系统没有一个完全闭环的状态(主因)
  • 驾驶员低头在玩手机,系统检测到行人后没有发出警告
  • 自动驾驶和基础设施是相关的,事故发生前4秒路面的照明不足导致从照片上看不出行人
  • Uber无人车重心较高,容易侧翻

自动驾驶汽车的研发流程

  • 软件在环:
    • 软件在环是基于仿真和模拟的软件仿真,类似于赛车类游戏。即是在软件系统里仿真模拟出真实的道路环境如光照、天气等自然环境,开发者可将自动驾驶代码开发完毕后,在仿真系统内运行,测试是否可以实现目标。
  • 硬件在环:
    • 硬件在环是基于必要的硬件平台。在第一步的软件仿真结束后,将所有的仿真结果与传感器、计算单元集合在一起,在硬件环境里测试。
  • 车辆在环:
    • 车辆在环是基于车辆执行。在第二步硬件环境里测试完成后实施的第三步,即在一个封闭环境中测试开发者所开发功能,封闭环境中不会有交通流的干扰。
  • 司机在环:
    • 司机在环是基于实际道路。在第三步测试成功后进入到司机在环,司机在环主要是研究人——车——路——交通四者之间的相互作用,它不仅测试自动驾驶的程序代码,还能获得专业司机的评判。

自动驾驶汽车的硬件系统

三大系统:

  • 感知
    • 车辆运动
      • 惯性导航、速度传感器、角度传感器和全球定位系统
    • 环境感知
      • 激光雷达、超声波、摄像头、毫米波雷达、V2X
    • 驾驶员监测
      • 摄像头和生物电传感
  • 决策
    • 计算单元里是自动驾驶感知决策控制的算法。目前自动驾驶用的是X86结构的服务器或工控机
    • T-BOX即Telematics BOX,是车联网的通讯网关,它上接互联网下接CAN总线。例如手机上APP发送的开关门指令,都是通过T-BOX网关将操作指令发送到CAN总线来进行操控的
    • 黑匣子是用来记录无人驾驶过程中所有的信息和状态
  • 控制
    • 车辆控制
      • 制动、转向、发动机和变速箱
    • 警告系统
      • 声音、图像和震动

自动驾驶汽车的传感器

  • 摄像头主要是用于车道线、交通标识牌、红绿灯、车辆和行人的检测
    • 优点是检测信息全面且价格便宜
    • 缺点是性能受天气影响较大
    • 摄像头主要由镜头、镜头的模组、滤光片、CMOS/CCD、ISP和数据传输这几部分组成
    • 工作原理:光线通过摄像头前面的镜头和滤光片聚焦到后面的CMOS的Sensor上,Sensor将光信号进行曝光转化成电信号,然后通过ISP图像处理器转化成标准的RGB或者YUV的数据格式,最后传输到后端的计算机进行处理
  • 激光雷达的核心原理是TOF(Time of Flight),即一束光射出后碰到障碍物后,光会发生回波,并在APD上进行接收和计算光折返的距离
    • 根据扫描原理可以分为:
      • 同轴旋转、棱镜旋转、MEMS、OPA相控阵以及Flash
  • 毫米波雷达主要用于交通车辆的检测
    • 毫米波雷达主要是由射频天线、芯片和算法组成
    • 基本原理是发射一束电磁波,然后观察电磁波回波的摄入差异来计算距离和速度
    • 优点是检测速度快且较准确,不受天气情况干扰
    • 缺点是不能对车道线进行识别检测
  • 组合导航是通过GNSS板卡接收所有可见的GPS卫星信号并进行计算,从而得出被检物体在大地坐标系中的空间位置
    • 当车辆通过隧道、有建筑物群和树荫遮挡等路段时,GPS信号会产生遮挡不能提供很好的结算和实时导航
    • 惯性导航是一个完全封闭的系统,不受外界影响,可以直接给出车身的位置、速度和姿态
  • 安装位置:
    • 激光雷达是360°旋转的,所以它都是安装在车顶
    • 毫米波雷达的指向性很强,所以的它一般安装在前后保险杠上
    • 考虑到车身在道路上的俯仰和姿态的干扰,所以组合导航系统一般是安装在两个后车轮的中轴线上
    • 车身的360°都会安装摄像头。
  • 自动巡航、应急制动、行人检测都是L1、L2级的功能
  • 欧洲的标准是2017年强制性具备AEB功能的车辆,美国的标准是让到2020年让所有的车具备辅助驾驶、车道偏离和AEB功能,中国的标准是到2018年将自动驾驶L1级的功能AEB列为强制标准
  • L1、L2级别最怕的是传感器误检,例如正在开车时传感器发生误检,随后急刹车会让驾驶感受很差
  • L3以上关注的是传感器漏检,驾驶的主体是一个系统,一定不能让系统的传感器段出现漏检情况
  • 自动驾驶的制动系统反应时间会在500毫秒之内,车辆制动是液压需要0.3~0.5秒,卡车用的气刹需要0.8秒
  • 目前百度Apollo平台,在同一车上用激光雷达4到5根线才可以很好地对障碍物进行分类
  • 未来自动驾驶传感器的趋势:自动驾驶传感器离不开多传感器的融合

自动驾驶汽车的计算单元

  • 自动驾驶汽车的计算单元部分需要考量整体的车规、电磁干扰和振动方面的设计以及ISO-26262标准的要求
  • 所有的CPU、GPU、FPGA、MCU和总线都要做冗余设计,以防止单点故障
    • MCU发送最后的指令,例如刹车等
  • 缺点是体积大、功耗高,不适应未来的量产
  • 优点是方便代码的快速迭代,工控机卡槽的设计方便硬件更新和扩展
  • 由于集中式的缺点,未来将会考虑嵌入式的方案:将各传感器的原始数据先融合到一个Sensor Box中,在其中完成数据融合, 然后将融合后的数据给到后端计算平台处理
  • Sensor Box作用
    • 目前所用传感器给出的原始数据该如何判断融合完成后是否是判断同一个目标,需要有一个时间戳同步,保证这个时间戳下每个传感器探测的都是同一个坐标系,时间戳的同步是在Sensor Box里面完成的。
  • 现在开发的自动驾驶算法,当感知算法固化后可以做成专用的芯片
  • 芯片设计流程整体分为芯片设计、芯片制造、芯片封装三部分
  • 半导体正步入7纳米时代,新工艺对性能带来很大提升。对比16纳米工艺,7纳米工艺可提升40%性能,节省60%能耗

自动驾驶汽车的线控系统

自动驾驶线控系统(control by wire)指的是汽车的控制是由一些简单命令完成的,而不是由物理操作完成的

线控部分相当于人的手和脚,在线控系统里执行上端的命令,主要分为三大部分:

  • 减速控制
    • 传统汽车的减速控制由液压系统和真空助力泵协助完成,自动驾驶汽车的线控需要用电控化的零部件来完成,如电子液压制动系统(EHB)
    • MK C1集成液压和制动的模块,利用紧凑且轻重量的设计节省制动单元,通过电信号发出的制动信号也使制动距离更短
  • 转向控制
    • 目前很多自动驾驶车都使用EPS(电子助力转向系统)。EPS直接使用转向管柱与下面的齿条相结合,没有采用电控制
    • 如英菲尼迪Q50的转向系统中,由离合器进行转向管柱的截断,当车辆启动时离合器松开,所有的自动驾驶指令都通过ECU(电子控制元件)发送控制指令到下端两个转向电机上,进行转向控制
  • 加速控制
    • 线控油门是对自动驾驶车辆加速度的控制,减速刹车踏板上有位置传感器可检测到刹车深浅度,该传感器传送指令到EMS(发动机制动系统)后,气门进气量越多,加速度即越快
    • 自动驾驶汽车目前大多是新能源车,新能源车通过驱动电机的扭力控制来完成对加速度的控制

从整个线控化来看,分为三个阶段:

  • 1.0 :对原车的方向盘踏板进行改装,将一些转向管柱截断后,加装转向电机,通过控制电机进行转向,缺点是未经过原车系统测试验证,存在安全隐患。

  • 2.0 :基于原车的辅助驾驶系统,对Can总线协议进行破解,通过原车总线指令控制车的转向和制动。

  • 3.0 :从车底盘开始开发的一套系统,转向线控完全按照自动驾驶需求定制,与2.0的区别在于考虑到冗余和备份的需求。

Apollo硬件开发平台

2018年7月4日,Apollo硬件开发平台正式发布,新增15家硬件厂商选型,也发布了Apollo传感器单元,添加底层的抽象层

  • 底层的抽象层:将原来的硬件参考设计升级为硬件开发平台,硬件开发平台内容更加丰富了

在百度目前提供的参考设计中,我们将其分为

  • Apollo平台认证
    • 指百度目前正在使用的传感器经认证后公布出来
    • 例如Velodyne 64线激光雷达就属于Apollo平台认证产品
  • Apollo硬件开发平台认证
    • 在Apollo代码层面进行验证,如感知模块的数据化采集标注和模型的训练的额外工作,还需要开发者自己完成

Apollo开发平台中,还有HAL硬件抽象层,这为了防止单一硬件短路而导致整个系统硬件内核崩溃的中间开发层

自动驾驶产业图谱

  • 自动驾驶产业是汽车新能源、IT、交通通讯、半导体人工智能、移动互联网等多个10万规模产业亿聚的大型聚合产业
  • 自动驾驶汽车是物质流、能量流、信息流的聚合体,需要软硬件行业的深度整合和合作才能保证自动驾驶产业的成功落地

参考资料