【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构

讲apollo之前先讲点通用性的架构知识
自动驾驶系统的硬件主要分步在这些层:感知定位层、计算单元层、车辆控制层。从整个硬件的架构上也要充分考虑系统感知定位、计算决策、车辆控制的功能要求。整体设计和生产上要符合相关车规级标准,如ISO26262、AECQ-100、TS16949等相关认证和标准。目前L1、L2、ADAS系统的硬件架构体系和供应链相对完善符合车规级要求。
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
图片来自apollo社群微信群分享-分享人王石峰
感知定位层硬件又分为以下三大类:
计算单元层硬件:各类传感器采集的数据统一到计算单元层处理,为了保证自动驾驶的实时性要求,软件响应最大延迟必须在可接受的范围内,这对计算的要求非常高。目前主流的解决方案有基于GPU、FPGA、ASIC等。
车辆控制层硬件:动驾驶需要用电子信号控制车辆的转向、制动、油门系统,其中涉及到车辆底盘的线控改装,目前在具备自适应巡航、紧急制动、自动泊车功能的车上可以直接借用原车的系统,通过CAN总线控制而不需要过度改装。
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
摄像头:主要用于车道线、交通标示牌、红绿灯以及车辆、行人检测,有检测信息全面、价格便宜的特定,但会受到雨雪天气和光照的影响。由镜头、镜头模组、滤光片、CMOS/CCD、ISP、数据传输部分组成。光线经过光学镜头和滤光片后聚焦到传感器上,通过CMOS或CCD集成电路将光信号转换成电信号,再经过图像处理器(ISP)转换成标准的RAW,RGB或YUV等格式的数字图像信号,通过数据传输接口传到计算机端。
激光雷达:激光雷达使用的技术是飞行时间法(TimeofFlight)根据光线遇到障碍的折返时间计算距离。为了覆盖一定角度范围需要进行角度扫描,从而出现了各种扫描原理。主要分为:同轴旋转、棱镜旋转、MEMS扫描、相位式、闪烁式。激光雷达不光用于感知也应用于高精度地图的测绘和定位是公认L3级以上自动驾驶必不可少的传感器。
毫米波雷达:主要用于交通车辆的检测,检测速度快、准确,不易受到天气影响,对车道线交通标志等无法检测。毫米波雷达由芯片、天线、算法共同组成,基本原理是发射一束电磁波,观察回波与入射波的差异来计算距离、速度等。成像精度的衡量指标为距离探测精度、角分辨率、速度差分辨率。毫米波频率越高,带宽越宽,成像约精细,主要分为77GHz和24GHz两种类型。
组合导航:GNSS板卡通过天线接收所有可见GPS卫星和RTK的信号后,进行解译和计算得到自身的空间位置。当车辆通过遂道或行驶在高耸的楼群间的街道时,这种信号盲区由于信号受遮挡而不能实施导航的风险。就需要融合INS的信息,INS具有全天候、完全自主、不受外界干扰、可以提供全导航参数(位置、速度、姿态)等优点,组合之后能达到比两个独立运行的最好性能还要好的定位测姿性能。
各传感器的应用如下图所示:
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
产品化硬件如大陆的毫米波雷达,mobieye的摄像头,不仅仅是一个硬件,而一个包含硬件、算法、及最终识别结果输出的一个完整产品。
如下图aeye的感知系统,其融合了摄像头和激光雷达
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
其iDAR智能感知系统能够瞬间将2D真实世界的色彩信息智能地叠加在3D数据上。其动态扫描和发射图纹技术、通过控制每束激光脉冲的扫描,可查询每个点的三维坐标和像素。
激光雷达和摄像头都是光学类的传感器,核心零部件和处理电路相似,将两个传感器前端融合到一起,直接输出R、G、B、X、Y、Z颜色+点云融合信息。在传感器内部实现数据融合可大幅度降低后端的计算处理量,这些今后车载传感器的一个方向。
计算单元层,可以称之为自动驾驶的大脑,通俗说一般就是一台完整的电脑。
第一种工控机方案
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
IPC即工业个人计算机(IndustrialPersonalComputer─IPC)是一种加固的增强型个人计算机,它可以作为一个工业控制器在工业环境中可靠运行。采用符合“EIA”标准的全钢化工业机箱,增强了抗电磁干扰能力,采用总线结构和模块化设计技术。CPU及各功能模块皆使用插板式结构,并带有压杆软锁定,提高了抗冲击、抗振动能力。
整体架构设计需要考虑ISO26262的要求,CPU、GPU、FPGA以及总线都做冗余设计,防止单点故障。当整体IPC系统失效还有MCU做最后的保证,直接发送指令到车辆Can总线中控制车辆停车。
目前这种集中式的架构,将所有的计算工作统一放到一个工控机中,整体体积较大,功耗高,不适用于未来的量产。但这种架构非常方便,算法迭代不需要过度考虑硬件的整体设计和车规要求。用传统的X86架构就可以非常快捷的搭建出计算平台,卡槽设计也方便硬件的更新。
第二种域控制器方案采用工控机集中式运算整体体积和功耗难以满足量产化要求,需要采用域控制器嵌入式的方案。将各个传感器的原始数据接入到SensorBox中,在SensorBox中完成数据的融合,再将融合后的数据传输到计算平台上进行自动驾驶算法处理。
自动驾驶汽车功能复杂,保证各个模块和功能间不互相影响和安全性考虑,将大量采用域控制器。根据不同的功能实现分为,车身域控制器、车载娱乐域控制器、动力总成域控制器、自动驾驶域控制器等。以自动驾驶域控制器为例,其承担了自动驾驶所需要的数据处理运算力,包括毫米波雷达、摄像头、激光雷达、组合导航等设备的数据处理,也承担了自动驾驶算法的运算,如下图所求不同的车上不同的域控制器。
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
随着自动驾驶的技术发展,算法不断完善。算法固化后可以做ASIC专用芯片,将传感器和算法集成到一起,实现在传感器内部完成边缘计算。进一步降低后端计算平台的计算量,有利于降低功耗、体积、车规化。其中以Mobileye为标杆性企业。
激光雷达处理需要高效的处理平台和先进的嵌入式软件。如图Renesas将包含高性能图像处理技术及低功耗的汽车R-CarSoC与Dibotics的3D实时定位和制图(SLAM)技术相结合,提供SLAMonChip™。SLAM可在SoC上实现高性能所需的3DSLAM处理。Dibotics公司也开发了一款名为“AugmentedLiDAR”的嵌入式LiDAR软件,能够提供实时、先进的LiDAR数据处理。
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
ASIC芯片是根据某类特定的需求去专门定制的芯片,比通用性的GPU、FPGA体积小、功耗低,性能稳定批量化成本低的特定。自动驾驶的算法公司只要做好芯片的前端设计,后端的制造和工艺都是非常成熟的产业,完全可以依靠外包实现。
芯片的制作流程是由芯片设计、芯片制造、芯片封装三部分组成。
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
前端设计完成之后,可以根据实际算法需求选择IP核通过EDA(电子设计自动化)完成布图规划、布局、布线。根据延迟、功耗、面积等方面的约束信息,合理设置物理设计工具的参数,以获取最佳的配置从而决定元件在晶圆上的物理位置。
芯片制造工艺上正从193nm深紫外(DUV)向13.5nm极紫外(EUV)发展。半导体正步入7nm时代,更先进的工艺带来性能上的提升,对比16nm工艺7nm可提升40%的性能和节省60%的能耗。
芯片封测是指将通过测试的晶圆按照产品型号及功能需求加工得到独立芯片的过程。在封测的过程中完成对芯片车规级要求,传统的汽车电子企业如NXP和ST有着更加丰富的经验。
这样不同的专用芯片和对应的传感器结合来实现自动驾驶系统中的不同功能,最终各个芯片通过can总线或者其它协议组成一个网络域就构成了车上的自动驾驶域。
线控就是ControlbyWire的直译。简单理解,就是车辆的控制都是由一系列命令而执行的,而不是物理的操作进行执行的。
感知定位如同司机的眼睛,决策规划如同大脑,执行控制就好比手和脚了。做好自动驾驶的决策规划也必须懂得执行控制,为了实现自动驾驶,车辆必须经过线控改装,其中包括线控制动、线控转向、线控油门等。
线控制动:在传统车辆上,制动系统多采用液压或真空伺服机构来控制制动,对自动驾驶而言,线控制动是最终的发展趋势,线控制动是以电子系统取代液压或气压控制单元。
下图是大陆的线控制动解决方案,MKC1与MK100组成冗余线控方案。MKC1将制动助力以及制动压力控制模块(ABS、ESC)被集成为一个结构紧凑、重量轻省的制动单元。MKC1能满足自动驾驶对压力动态特性更高的要求,电触发的紧急制动所产生的制动距离要短得多。
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
MK100是大陆的汽车电子稳定控制系统(ESC),在汽车防抱死制动系统(ABS)和牵引力控制系统(TCS)功能的基础上,增加了车辆转向行驶时横摆率传感器、测向加速度传感器和方向盘转角传感器,通过ECU控制前后、左右车轮的驱动力和制动力,确保车辆行驶的侧向稳定性。
线控转向如下图,英菲尼迪Q50线控主动转向系统基本上还是延续了传统转向系统的结构。只是增加了一套离合器装置以及三组ECU电子控制单元和一个转向力度回馈器。当车辆启动时,离合装置会自动切断连接,转向的任务交由电控系统。由于采用电子信号控制,其传动响应更为迅速,也更为轻松。
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
线控油门就是电子油门,通过位置传感器传送油门踩踏深浅与快慢的讯号,从而实现油门功能的电子控制装置。这个讯号会被ECU接收和解读,然后再发出控制指令,要节气门依指令快速或缓和开启它应当张开的角度。这个过程精准而快速。不会有机械磨耗的问题。
电子油门目前已大量普及,凡具备定速巡航即可认定有电子油门,早期电子油门为接触式,近来已经改为非接触式。电车依靠电机扭矩实现,直接发扭矩信号即可,油车依靠发动机管理系统(EMS)发扭矩信号实现。如下图左上角部分就为线控油门。
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
线控改装的方案
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
【Apollo】百度Apollo3.0硬件架构细节(1)-之自动驾驶系统常规硬件架构-有驾
转向的最早改装是在转向管柱端截断加装转向电机进行改造。之后利用原车转向助力系统进行转向控制。
制动的最早改装是加装电机踏板,后续利用原车的ESC系统进行控制,未来会选用MKC1之类的线控控制系统。
加速的最早改装都是发扭矩信号依靠EMS实现,后续的改装方案都是借用原车ACC接口由电子油门来执行。
自动驾驶面向量产的线控方案,可以参考英菲尼迪Q50的线控转向、大陆MK100+MKC1的线控制动来实现。由自动驾驶域控制器直接输出电机扭矩/制动压力信号给转向刹车的执行机构,结合大量的测试标定实现精准控制,从而给司乘人员带来完美的体感舒适度。
注:这篇参考apollo微信社群石峰老师分享的相关内容若有侵权请联系删除。
下偏会详细介绍apollo3.0具体硬件的介绍及安装配置方法。
0

全部评论 (0)

暂无评论