第一篇综述-无人车系统架构(三)

时间:2024-05-20 15:58:58

第一篇综述-无人车简介(一)

第一篇综述-无人车简介(二)

目录

硬件架构

软件架构


前面简述了无人车的定义及分级、发展历程、社会影响及所面临的技术挑战。本章将讲述无人车的系统架构,包括硬件架构和软件架构,使读者从系统层面对无人车的体系架构有个宏观的认知,这样对于后续要讲解的各硬件传感器原理、各算法模块的原理、工程系统平台等的理解打下坚实的基础,以便我们能够更加系统全面地对无人车各部件(传感器、软件模块、数据、云端平台、通信系统等)进行评测。

硬件架构

       目前业界无人车的硬件架构,一般采用激光雷达作为主要感知传感器,同时结合摄像头、GPS/IMU、毫米波雷达、超声波雷达等,以NVIDIA Drive PX2 或 Xavier作为主要计算平台,在工业PC机上运行各种算法模块,通过线控技术控制车辆行驶。以百度开源自动驾驶系统Apollo公布的架构图为例,如下所示:

第一篇综述-无人车系统架构(三)

       车顶部署了一套64线激光雷达,周围部署了多个摄像头,车辆前方部署毫米波雷达,GPS天线在车后方,后备箱存放工业PC机和GPS接收器等设备。其内部各硬件设备型号及连接关系如下图所示:

第一篇综述-无人车系统架构(三)

       目前业界大部分的无人车硬件架构,都与上方类似,唯有Google的Waymo采用双备份的硬件架构来增加安全可靠性,但从单一系统来看,总体硬件架构同以上是类似的。

摄像头(Camera) :主要用于车道线、交通标示牌、红绿灯以及车辆、行人检测,有检测信息全面、价格便宜的特点,但受到雨雪天气和光照的影响较大。 摄像头由镜头、镜头模组、滤光片、CMOS/CCD、ISP、数据传输部分组成。光线经过光学镜头和滤光片后聚焦到传感器上,通过CMOS或CCD集成电路将光信号转换成电信号,再经过图像处理器(ISP, Image Signal Processing)转换成标准的RAW,RGB或YUV等格式的数字图像信号,通过数据传输接口传到计算机端。

激光雷达(LiDAR,Light Detection and Ranging) :主要用于高精地图制作、障碍物识别和跟踪和自身定位,是目前公认L3级以上自动驾驶必不可少的传感器。激光雷达具有高精度、高分辨率的优势,同时具有建立周边3D模型的前景,但其劣势在于对静止物体(如隔离带、护栏等)的探测较弱且成本高昂(一套64线Velodyne 激光雷达高达70万元)。它由激光发射机、光学接收机、转台和信息处理系统等组成。其工作原理是向目标发射探测信号(激光束),然后将接收到的从目标反射回来的信号(目标回波)与发射信号进行比较,作适当处理后,就可获得目标的有关信息,如目标距离、方位、高度、速度、姿态、甚至形状等参数,从而对目标进行探测、跟踪和识别,输出的数据称为“点云”(Point Cloud),目前有PCL(Point Cloud Library)开源库支持这类数据的读写处理。

       为了覆盖一定角度范围需要进行角度扫描,从而出现了各种激光雷达扫描原理,主要分为: 同轴旋转、棱镜旋转、MEMS扫描、相位式、闪烁式。目前激光雷达制造商最先进的是以色列的Velodyne,它在激光雷达界的地位,就如芯片界的英特尔、搜索界的谷歌,是绝对的盟主。

毫米波雷达(Radar)主要用于交通车辆和行人的检测,具有检测速度快、准确,穿透雾、烟、灰尘的能力强,具有全天候(大雨天除外)全天时的特点,但其劣势在于雨、雾和雪等高潮湿环境的信号衰减,以及对树丛穿透能力差和无法检测车道线交通标志等。毫米波雷达工作在毫米波段。通常毫米波是指30~300GHz频段(波长为1~10mm)。毫米波的波长介于厘米波和光波之间,因此毫米波兼有微波制导和光电制导的优点。

       毫米波雷达由芯片、天线、算法共同组成 ,基本原理是发射一束电磁波,观察回波与入射波的差异来计算距离、速度等。成像精度的衡量指标为距离探测精度、角分辨率、速度差分辨率。毫米波频率越高,带宽越宽,成像越精细,主要有77GHz和24GHz两种类型。

定位系统(Localization System)主要由定位导航卫星、位置接收器(如GPS接收器)和惯性测量单元(IMU, Inertial measurement unit)、基站等组成。GNSS板卡通过天线接收所有可见GPS(Global Positioning System)卫星和RTK(Real Time Kinematic)的信号后,进行解译和计算得到自身的空间位置。当车辆通过遂道或行驶在高耸的楼群间的街道时,这种信号盲区由于信号受遮挡而不能实施导航的风险,就需要融合INS(Inertial Navigation System,即惯性导航系统)的信息,INS具有全天候、完全自主、不受外界干扰、可以提供全导航参数(位置、速度、姿态)等优点,组合之后能达到比两个独立运行的最好性能还要好的定位测姿性能。

超声波传感器(Ultrasonic Sensor)超声波传感器主要用于近距离和低矮障碍物探测,避免车辆周围近距离感知盲区。超声波具有易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,但易受环境温度影响,测量精度不够。虽然目前的超声波测距量程上能达到百米,但测量的精度往往只能达到厘米级。

       超声波传感器一般由超声波发射器、超声波接收器、计时器、温度感知器等组成,其测距原理是利用超声波在空气中的传播速度为已知(20℃下为344m/s),测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。由此可见,超声波测距原理与雷达原理是一样的。

测距的公式表示为:L=C×T

式中L为测量的距离长度;C为超声波在空气中的传播速度;T为测量距离传播的时间差(T为发射到接收时间数值的一半)。

 

软件架构

       无人车的硬件架构,各公司大同小异,但做出来的无人车智能程度却千差万别,核心在于无人车的“自动驾驶大脑”的智能程度不一样,算法软件是从事无人车公司的核心竞争力。各公司的无人车软件系统架构,虽然千差万别,但至少感知、定位、决策规划控制等模块不可或缺。下面仍以百度Apollo系统的软件架构为例,来讲解无人车的软件架构及各模块的主要功能。

第一篇综述-无人车系统架构(三)

其中内部软件主要数据和控制流图如下:

第一篇综述-无人车系统架构(三)

上图架构图分类五层,其实核心的自动驾驶系统,只有中间三层,也即硬件层、软件层、云端服务层。

硬件层(Hardware Layer):主要由计算单元、GPU/IMU、摄像头、激光雷达、毫米波雷达、超声波传感器、HMI(Human Machine Interface)设备、黑匣子等计算或感知设备组成,各设备的工作原理及主要作用,请参考前面硬件架构部分,后续篇章将对各设备的工作原理、关键指标参数、评价测试方法等逐一做详细的讲解,现在只需有个宏观概念即可。

 

软件层(Software Layer):该层在Apollo架构上也细分了三层,分别是实时操作系统(RTOS)、运行时框架(Runtime Framework)和各应用算法模块。

  1. 实时操作系统(Real Time Operating System):一般是针对自动驾驶定制化的高实时、高并发、低时延的Linux操作系统。
  2. 运行时框架(Runtime Framework):基于操作系统层的各算法模块调度框架,主要负责各模块之间的消息通信、资源分配和运行调度等。目前主要的框架有开源的ROS(Robot Operating System),以及百度自研的Cybertron框架。
  3. 高精地图(Map Engine):提供车道线拓扑结构、红绿灯位置、交通标志位置和类型、道路限速等信息服务,供感知、决策规划、定位等模块查询使用。
  4. 定位模块(Localization):为各算法模块提供厘米级的高精度定位信息,包括车辆的世界坐标、车辆姿态和朝向等信息。
  5. 感知模块(Perception):主要功能为检测车道线标志,识别红绿灯状态,检测跟踪识别车辆、行人,交通标识牌识别等。
  6. 规划模块(Planning):主要为基于定位信息、感知信息,结合行驶目的地信息,实时对行驶路线做出规划,为自动驾驶车辆提供行驶轨迹点。
  7. 控制模块(Control):基于规划路径,对车辆行驶下发控制命令,主要为转向、油门、制动、灯光、喇叭、车内空调等的控制。
  8. 端到端(End-to-End):主要为数据采集、车辆状态和软件监控、在线升级客户端等为云端服务的各软件模块集合。
  9. 人机交互接口(HMI):主要为乘客或远程控制员,提供与车辆交互的功能,包括规划行驶路径,打开车载娱乐系统,查看车辆行驶状态等。

云端服务层(Cloud Service Layer):该层主要运行在分布式计算的云端,为无人车提供各种服务,包括软件升级、数据更新、信息安全控制、仿真训练和车辆数据收集等。

  1. 高精地图(HD Map):提供高精地图数据,包括静态地图、反射值地图等,供车端高精地图服务引擎查询或更新使用。
  2. 仿真(Simulation):提供评测或训练各算法模块的服务平台,可以基于实车采集的数据,不断丰富更新各种测试场景或训练数据,以提高自动驾驶系统的智能和适应性。
  3. 数据平台(Data Platform):实时存储从无人车上传来的各种数据,包括感知、车辆状态、行驶轨迹、各软件模块状态、关键log文件等,供云端平台做离线统计、分析、定位问题、训练模型使用。
  4. 安全(Security):主要是对车端各种外部请求的认证、鉴权等,保证车端和云端的信息安全,避免遭受黑客攻击。
  5. 在线升级(OTA, Over The Air): 提供对无人车的各软件模块的升级、数据更新、证书更新等功能,使得无人车随时保持最新的高精地图数据、配置信息和软件模块。

第一篇综述-无人车简介(一)

第一篇综述-无人车简介(二)