一种自动驾驶汽车系统架构开发与测试验证

2019-02-06 10:56高建博隗寒冰
重庆理工大学学报(自然科学) 2019年12期
关键词:车道子系统传感器

龙 翔,高建博,隗寒冰

(重庆交通大学 车辆与机电工程学院,重庆 400074)

为更好地解决汽车行驶过程中由于人为因素导致的各类交通事故问题,将人工智能算法与控制技术相结合,研究开发更加节能、环保、安全的自动驾驶汽车已引起国内外研究机构的极大重视。自动驾驶汽车是由环境感知、决策规划、控制执行等多个子系统协同工作的复杂系统。自动驾驶汽车依赖各种传感器感知自身和周围环境信息,实时规划决策与控制执行,这些功能是由多种硬件设备群和软件算法协同运行来实现的。自动驾驶汽车的系统架构是环境感知、决策规划、控制执行等模块的硬件结构及软件体系的总体组织形式,其有效性、合理性、科学性很大程度上决定智能汽车的可靠性、稳定性、可移植性、可拓展性及功能实现。因此,进行自动驾驶汽车软硬件系统平台的研究具有重大意义。

国外自动驾驶汽车系统架构技术的研究较早。20世纪50年代,通用汽车研发的Firebirds系列自动驾驶汽车就采用电子引导系统和公路通信系统结合的方式实现车辆自动控制;美国国防高级研究计划局(DARPA)主导开展的自动陆地车辆项目通过激光雷达等传感器,结合计算机视觉和智能控制技术控制车辆运行,速度每小时可达19英里(30.58 km/h)。2005年DARPA挑战赛中,斯坦福大学智能车团队的Stanley智能车[1]夺得冠军,团队设计了一种包括传感器接口层、环境感知层、规划与控制层、用户界面层、车辆操纵接口层以及全局服务层的无人驾驶汽车系统。卡内基-梅隆大学的BOSS智能车[2]将自动驾驶控制系统划分为四大模块,包括环境感知模块、负责全局规划的任务规划模块、基于有限状态机的行为决策模块和局部规划控制模块。Kim J等[3]针对智能汽车系统网络带宽、容错率和系统性能问题,基于车载网络标准协议(FlexRay)开发了分布式系统体系结构的自动驾驶汽车。Zhou C等[4]基于ROS系统将基于卷积神经网络的深度学习技术与基于激光雷达图像的统计方法相结合,提出了一种新型室内自主车方案,实现了巡航模式下的高避障率。2016年NVIDIA研究团队[5]训练了一个基于CNN的端对端自动计时控制系统,实时运行在NVIDIA DRIVE PX GPU平台中,实现了单目图像像素信息到转向角的端对端映射,系统可自适应学习晴天、雨天、多云等天气条件,车道线磨损及非结构化路面条件下的驾驶策略。国内在自动驾驶方面的研究相对较晚,例如,徐友春等[6]设计的猎豹智能车采用机器视觉的方法识别高速道路车道线,利用拟人控制算法实现了自动驾驶,其最高时速达95 km/h。李克强等[7]针对现有自动驾驶汽车可拓展和可升级性能不强、对智能汽车与电动汽车技术集成程度不高的问题,提出一种具有开放式结构、模块化部件,容易实现功能扩展和部件升级的电动汽车系统平台建立方法。管欣等[8]在量产车的基础上,针对智能汽车的功能需求,采用MicroAutoBox作为执行控制器,自主设计执行机构控制挡位及油门制动踏板。近年来,关于驾驶机器人相关工作的研究成果[9]中,这类系统通常具有控制精度高、不需要改动原有车辆结构等优点。

近年来,无人驾驶汽车的系统架构已取得较大进展,然而现有系统普遍传感器数量庞大,硬件线路复杂,模块间耦合性较强,不利于功能拓展。另外,无人驾驶汽车技术是一个高速发展的领域,目前系统存在硬件技术滞后等不足。基于驾驶机器人的方案存在设计、安装复杂、占用空间大,控制机构复杂等问题。基于深度学习端对端技术的设计方案对车载计算能力要求较高、模型的可解释性差,且依赖于海量标注数据进行模型训练。

本文在量产车型基础上设计开发了一种开放式、可拓展、可升级的L3级自动驾驶汽车系统架构,综合考虑功能的模块化与交互集成,建立感知、决策、规划、控制、执行等子单元模块,同时增加诸如人机交互、信息交互等功能模块,实现数据读写、日志记录、人机交互等功能,使硬件的接入和软件的升级改造易于实现,从而有助于开发验证自动驾驶系统的环境感知、路径规划、整车控制等算法。

1 硬件系统开发

本文在调研国内外智能车软硬件架构的基础上,针对高速公路和复杂城区道路实际环境的应用场景,经过对比分析、测试优化,最终确定了一种模块程度高、拓展性强的系统架构,在结构化道路条件下能满足L3级自动驾驶任务要求。图1为车辆硬件布置,图2和图3分别为车辆硬件、软件框架。

图1 车辆外观及硬件布置

图2 车辆硬件系统架构

图3 软件系统架构

1.1 总体架构

车辆的硬件部分按照功能可划分为五大子系统,包括传感器子系统、数据通信子系统、计算子系统、执行机构子系统、底层驱动子系统。

传感器子系统由各种环境感知传感器硬件组成;数据通信子系统主要包括信号转换模块、网关、路由设备;计算子系统的核心为1台车载主控计算机;执行机构子系统包括自动换挡机构总成、线控制动系统总成结构;底层驱动子系统由整车后管理模块和信号灯控制模块组成。传感器及计算设备总功率约为400 W,通过车载蓄电池供电,同时提供1个辅助电源作为备用。

1.2 传感器子系统

准确而全面地感知车辆状态及行驶环境信息是智能车功能实现的重要基础。本文车辆的应用场景主要为高速、城区等结构化道路环境,故采用三维激光雷达和RGB彩色相机作为主要的环境信息感知传感器,同时使用1个单线雷达和1个灰度相机作为辅助传感器。采用GPS基站、GNSS接收仪、IMU设备作为定位装置,最高可达厘米级别定位精度,实现了车辆高精度定位和对道路环境的实时精确感知。车辆传感器、计算设备的性能描述如表1所示。

1.3 数据通信及计算子系统

车辆采用2台计算设备构成“上-下位机”体系的计算平台(下文分别称为主控计算机、辅助计算机)。主控计算机为系统的主要计算设备,负责环境感知、决策规划、控制算法实现。辅助计算机负责车身CAN信号与主控计算机之间信号的处理与转发,并通过两路COM口与人机交互模块通信,方便系统开发与调试。各传感器信号与主控计算机之间以及2台计算机之间均通过socket/TCP协议收发信息,辅助计算机和底层控制系统通过CAN总线进行信息交换。

1.4 底层驱动子系统

底层驱动子系统由2种底层驱动模块组成,分别为整车后管理模块和信号灯控制模块。整车后管理模块是车辆的能量管理核心,独立控制车辆其他系统的能源,实现对上下位工控机、激光雷达、毫米波雷达、相机、DGPS系统等车载传感器的供电。该电路具有可靠性高、功耗低的特点,始终处于工作状态。信号灯控制模块通过接收主控计算机控制信号实现对前大灯、转向灯、喇叭的控制。

表1 车辆传感器等硬件性能

2 软件系统开发

根据车辆软件系统层次化、模块化、可复用、可移植化的设计思路,将整个系统分解为传感器层、信息交互层、感知层、决策规划层、控制层、执行层、人机交互层共7层结构。系统软件框架如图3所示。

传感器层主要由两部分组成:环境感知传感器和车身状态传感器。前者由激光雷达、毫米波雷达、相机等组成,主要用于车辆行驶过程中周边环境的数据采集任务;后者主要包括差分GPS系统传感器、IMU、轮速传感器、车速传感器等,用于车身姿态、航向、位置、车速等信息的采集。传感器层完成各传感器数据采集、解析、时间同步等操作的封装,并以数据流的形式发送至感知层。

感知层对传感器层原始的数据流做分析处理,实现道路场景下行人、车辆、交通信号灯等多目标检测识别,以及车道标志线识别、车身状态估计等,为车辆决策和规划层提供信息。

决策规划层结合车辆定位信息和离线地图,决策出当前的驾驶模式。依据感知层中障碍物信息和驾驶模式完成局部路径规划,在有各种障碍物的环境中,寻找从起始状态到目标状态的无碰路径,在满足车辆运动学和动力学约束的条件下,同时满足舒适性、安全性指标要求。

控制层依据规划层输出的参考路径和车辆自身状态数据,控制车辆横纵向运动使之按照预定目标轨迹行驶。基于L3级自动驾驶功能需求,车辆同时可以接收人工接管指令,对车辆进行制动、加速和转向操作。该层的控制信号输出至各执行单元的控制器。

执行层接受控制层的控制信号完成驾驶动作,如自动切换挡位、电控转向操作、油门制动操作等。

信息交互层为各层之间数据通信提供统一、规范的接口,并实现数据记录、离线地图数据读写等功能,方便系统调试和测试。

人机交互层接受驾驶员的行车开始指令和紧急停车指令,同时将行驶过程中环境、车辆状态等各种数据可视化,供驾驶员参考。

车辆软件系统经过多次改进和完善,在实际场景中进行了大量实车实验,系统架构具有以下优点:

1)系统采用分层思想设计,将系统分为传感器层、信息交互层、感知层、决策规划层、控制层、执行层、人机交互层等七大子系统层。层与层之间相互独立、互联,通过规范化接口实现信息流通。

2)开放式的接口和模块化的部件。在硬件结构升级的情况下,容易实现功能的拓展和软件功能的升级,使得各种电气设备的接入变得更加容易,有助于系统迭代和快速验证设计。

3)完备的人机交互接口。系统不仅提供行车和紧急停车接口,同时具有丰富的可视化界面,可动态显示调试过程中的环境感知状态信息、车辆状态信息等数据,并实时记录感知、控制数据以便于分析和诊断。

3 系统关键算法

车辆的算法实现部分采用视觉和雷达信息融合的方式实现道路环境的感知,在此基础上采用基于Frenet的局部路径规划及预瞄控制算法实现车辆运动和姿态控制。设计目标为:

1)机器视觉系统能在光照变化、轻微遮挡干扰条件下实现实时准确的车道识别,频率不低于20 Hz;多传感器信息融合系统能实时识别行驶前方的车辆、行人目标,相对距离误差小于5%,频率不低于20Hz。

2)依靠LTE-V的V2X设备对交通信号灯进行识别与响应,能执行拥堵跟车、加速减速、制动、主动超车等驾驶模式。

3.1 逆透视变换

图像信息是世界坐标系下的3维物体在二维图像平面上的投影,该过程在物理上可用小孔成像模型近似,在数学上是一个透视映射过程。为了得到图像坐标下车道、行人、车辆等目标在车辆坐标系下的准确映射,从而构建智能驾驶系统局部地图,采用文献[10]所提出的逆透视变换公式,将透视图像转换为俯视图,如式(1)所示:

式中:xp、yp为图像中任意点(u,v)在车辆坐标系中的局部坐标位置;h为相机安装高度;θ为相机俯仰角;α、β分别为相机的水平、垂直视场角;m、n分别为图像的高度和宽度值。

3.2 车道线检测算法

目前常用的车道线识别算法可分为基于车道线几何和颜色特征、基于模板配准和基于模式识别3类[11]。提高算法在复杂环境下的鲁棒性和在嵌入式平台下运行的实时性是其核心问题。

本文在参考前人研究成果[12-14]的基础上,设计了基于车道线特征约束和特征聚类的检测算法。图4为系统软件框架中车道线检测算法流程,分为图像预处理、直线检测、特征聚类、车道线拟合4部分。

图4 车道线检测算法流程

算法的核心是基于先验知识的车道标志线特征约束定义与选择。具体而言,在相机特定外参数下,车道标记线具有一定长度、方向、宽高比等形状特征约束,以及起始点位置约束、斜率约束,除此之外,车道线还具有一定相对位置约束,即同一条车道线上的候选直线方向一致,斜率偏移量小于某一阈值。车道线几何、位置特征约束具体定义如式(2)(3)所示。

式中:(xs,ys)、(xe,ye)分别表示车道线的起始点坐标;lm、lM表示长度阈值上下限;xm、xM、ym、yM表示起点坐标在图像横、纵方向上的范围阈值;km、kM表示斜率阈值上下限;i、j表示任意2条线段编号;dm、dM表示第j条备选直线的起点到第i条备选直线的距离。

算法设计时需考虑车载工控机的计算速度,所以预处理部分舍弃耗时较多且对结果影响不明显的滤波处理和边缘检测处理环节,最终确定感兴趣区域(region of interest,ROI)选择、灰度处理、二值化及连通域分析的预处理过程。为减弱光照变化影响,提出根据历史信息进行阈值补偿的二值化法,如式(4)所示。

式中:Tt为t时刻的二值化阈值;为某段时间内阈值平均值;c为补偿参数。正切函数作用为平缓正负偏离值,使预处理结果趋于稳定。

完成图像预处理后,采用概率Hough变换算法检测直线元素构成直线集作为车道标记线的候选集。车道标记线的几何特征约束(长度、方向、宽高比等形状约束特征,起始点位置约束特征,斜率约束特征)和车道线位置特征约束(车道线斜率差,车道线距离偏移量)作为约束条件,使用K-D树算法回溯聚类,最后对属于某条车道线的Hough直线集离散化,并根据最小二乘法拟合得到目标车道线,如式(5)所示。

式中:xi、yi表示离散点的图像坐标;N为点的总个数为坐标均值;a、b为拟合后直线斜率和截距。

3.3 基于视觉的行人和车辆检测算法

传统的行人、车辆检测方法基于人工设计的特征(如HOG、Haar等)训练分类器实现目标检测。但这类算法具有鲁棒性弱、泛化能力差的缺点,而深度卷积神经网络(convolutional neural networks,CNN)[15]可在训练数据集中通过最优化损失函数,自适应构建目标的低层至高层特征描述,且对形变、光照具有一定的不变性,具有较好的泛化能力。

在行人和车辆检测算法中,车辆采用一种基于轻量化卷积神经网络的目标检测方法,通过GPU加速,可在车载计算平台中实时运行,提供车辆前方行人、车辆等目标的局部坐标和尺寸信息。算法由位于前端的轻量化深度卷积网络和后端的多尺度目标检测网络两部分组成。前端为去除全链接层的分类网络,提取目标边缘、颜色、轮廓、部件等初级信息;后端根据实际检测类别,设置不同尺寸的卷积核,分别作用在不同特征层上进行定位和分类,最后使用NMS(non-maximum suppression)算法[16]合并预测框得到最终检测结果。算法流程如图5所示,式(6)为训练损失函数。

式中:N为标签框同默认框成功匹配的数目之和;Lconf为分类置信损失,采用多类Softmax损失函数;Lloc为定位损失函数,采用SmoothL1损失函数;x为指示函数,表征默认框同标签的匹配结果;c为预测类别的置信度;l和g分别为预测回归框和目标真实框的位置信息;α为权衡置信损失和定位损失的超参数,一般取1。

算法采用批梯度下降法寻优计算,前向-反向训练过程中最小化模型预测误差,提升目标类别置信度的同时提高边界框的位置预测精度。在目标检测数据集中反复迭代,从而提高模型的目标检测性能,得到适用于行人、车辆的目标检测器。

图5 目标检测算法流程

3.4 局部路径规划算法

路径规划的目标是实时决策受动态、静止障碍物和车辆动力学约束的最优运动轨迹。目前常用的路径规划方法主要有势场法、栅格法、采样法和离散优化法[17]。势场法易产生震荡或陷入局部最优,栅格法运算量过大。基于采样的RRT算法需要设计高效启发式采样方法。离散优化法使用数值微积分描述车辆运动状态。Frenet最优轨迹生成方法[18]是离散优化法的一种,主要包括定义Frenet骨架、生成候选轨迹、选取最优轨迹3个部分。Frenet骨架由离线道路路径点根据三次样条函数拟合得到,如式(7)所示。通过笛卡尔坐标系到曲线坐标的转换公式将道路几何形状映射到曲线坐标系中,如图6所示。

式中:s、(sb(s),yb(s))分别表示在曲线坐标系下的弧长、全局坐标;(a,b,c,d)表示3次样条曲线多项式系数。

图6 曲线坐标系转换示意图

算法横向采样参数根据感知层的输出得到,在Frenet骨架基础上不断偏移一定采样距离Δq直到覆盖整个车道宽,并使用5次多项式描述横向位移位置,如式(8)所示。纵向参数根据预测时间、期望速度得到对应横向偏移量下曲线坐标系的一系列S轴坐标生成候选轨迹。

式中:d表示横向位移位置;t表示预测时间;{a0,…,a5}表示多项式系数。

算法采用最大速度、最大加速度、最大曲率、行驶无碰撞条件对候选路径约束选择获取候选轨迹,并采用加速度的1阶导数作为优化指标,计算每条候选轨迹在曲线坐标系下纵横向Ctot值,取其最小值对应的轨迹为最优轨迹,如式(9)所示。

式中:Clat、Clon分别表示横向和纵向最优轨迹损失函数;klat、klon分别表示横向和纵向损失函数的权重。

4 实验结果

4.1 车道线检测

为验证算法在各种工况下的鲁棒性,本文选取不同天气、光照、工况条件下的数据作为测试集验证算法性能,详细环境描述见表2,图7为车道线识别结果(绿色)。结果表明:在有少量雨水、道路阴影、车辆遮挡、道路标志干扰的结构化道路下,算法均可实时准确地识别出车道标志线。

4.2 行人和车辆检测

目标检测有多种评价指标,如检测精度、效率、定位精度、查全率、查准率等。本文采用mAP(mean average precision)衡量行人和车辆等目标的检测精度,采用FPS(frames per second)值衡量算法在线运行速度。mAP值介于0~1范围,越大说明检测精度越高,其定义如式(10)(11)所示。

式中:C为类别总数;P、R分别为精确度和召回率,TP、FP、FN分别为真正例(Intersection over Union,IOU>0.5)、假正例(IOU<0.5)、假反例(漏检目标);J、r描述P-R曲线的采样频率,本文中J=10。

表2 车道线检测场景说明

图7 车道线检测结果

基于深度学习的目标检测算法性能受训练数据集规模、场景类别的影响较大。为对算法进行客观评价,利用KITTI公开数据集[19]提供的目标检测数据集作为训练和测试基准,将本文算法与数据库提供的算法进行对比。由表3可以看出,基于传统特征的方法如ACF等精度较低,mAP在0.5~0.6范围,主要原因为特征表达能力不足。基于复杂深度网络的方法如DH-ARI等精度超过0.9,但是对硬件要求苛刻。本文中的算法在速度和精度方面达到较好的均衡,在CPU环境下速度达到21FPS,且精度方面接近Faster RCNN算法的水平,远高于ACF等传统方法。

表3 检测算法性能对比

另外,车辆在园区封闭道路内进行了实车行人、车辆目标的检测实验,部分结果如图8所示。测试图片涵盖了侧视、后视、远端、近端等多种视角以及阴影、遮挡、逆光等各种复杂环境。算法能实时检测并输出目标的类别、置信度和位置信息,实验结果表明在各个场景下本文算法均能实现多目标的快速、鲁棒检测。

4.3 局部路径规划算法

车辆在重庆交通大学校园以及包含S弯、汇流、超车、长下坡、急弯等各种驾驶场景的中国汽车研究院园区内,对感知、规划、控制算法进行了实车测试验证。图9为主动超车测试结果,绿色矩形表示前车,蓝色矩形表示本车,黄色曲线表示局部规划候选路径,红色曲线表示最优轨迹,测试结果显示,智能车在识别前方车辆后成功完成主动超车动作。另外,开发的车辆还参加了重庆智博会i-VISTIA无人驾驶挑战赛(图10),顺利完成了城市交通场景和礼嘉环线场外挑战赛,进一步说明本文所提出的系统架构和自动驾驶算法的实用性和有效性。

图8 行人、车辆目标检测结果

图9 局部路径规划测试结果

图10 重庆智博会i-VISTIA城市交通场景挑战赛场景

5 结束语

科学合理的系统架构和算法设计是实现无人驾驶汽车功能实现和安全运行的重要基础。本文设计的系统方案具有较为明显的优势:一是系统具有较好的可拓展性,可根据不同任务要求进行合理的配置;二是关注人机交互功能,既对调试、运行过程中系统关键参数、数据进行备份与记录,又充分考虑人的驾驶体验和驾驶安全,可以随时接管车辆避免意外出现;三是系统接口统一,信息流向清晰,在极大降低系统的耦合性的同时有利于模块的调试与升级。通过了实车测试验证,结果表明开发的软硬件系统架构系统稳定,目标识别算法能实时准确地定位识别行人和车辆目标,动态轨迹规划算法能准确控制车辆按照目标轨迹运行。

猜你喜欢
车道子系统传感器
不对中转子系统耦合动力学特性研究
北斗+手机实现车道级导航应用
康奈尔大学制造出可拉伸传感器
避免跟车闯红灯的地面车道线
浅谈MTC车道改造
GSM-R基站子系统同步方案研究
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
驼峰测长设备在线监测子系统的设计与应用