一种纯电动汽车的自动驾驶系统设计

“智能汽车生态群"加微信Time-machine-(备注公司+姓名)

 

1 前言

随着新一代信息技术的发展,汽车的智能化、网联化、电动化和共享化成为新的发展趋势,无人驾驶技术也逐渐由概念变为现实的生活。

无人驾驶汽车是依靠车载传感系统感知道路环境,自主规划行车路线实现车辆稳定控制并到达预期目标的智能汽车。

随着汽车电子化浪潮,国外率先开始自动驾驶布局。美国在80年代初开始自动驾驶军事化应用,欧洲从80年代中期开始研发自动驾驶车辆,更多强调单车自动化、智能化的研究,日本的自动驾驶研发略晚于欧美,更多关注于采用智能安全系统降低事故发生率,以及采用车间通信方式辅助驾驶。自2009年起,国外陆续开启自动驾驶产业热潮,谷歌首先布局自动驾驶,随后英伟达成立自动驾驶事业部,收购Mobil⁃eye,通用汽车并购Cruise Automation,谷歌无人驾驶项目扩展为子公司Waymo。

我国的自动驾驶起步依托于高校,从20世纪80年代开始进行自动驾驶汽车的研究。1992年,国防科技大学成功研制出中国第一辆自动驾驶汽车ATB-1(AutonomousTestBed-1)。国务院在2015年发布《中国制造2025》之后,以自动驾驶技术为重点的智能网联汽车成为未来汽车发展的重要战略方向,大批初创企业投身自动驾驶领域。百度、Pony.ai等公司相继快速步入了全球自动驾驶技术研发的前列。

本文内容为一种自动驾驶系统及其开发实现流程和方法,系统开发过程中采用新型研究成果,降低系统复杂度,提高自动驾驶系统的开发效率,减少系统开发成本。

2 自动驾驶系统的技术方案

自动驾驶系统的技术方案包括硬件方案和软件方案,如表1所示。

表1 自动驾驶系统技术方案

2.1 硬件方案

系统基于北汽EU5车型搭建了自动驾驶车辆平台,将车辆平台按照自动驾驶的需求进行改造。车辆平台采用纯电动汽车,内部都是电控系统,使用数字化的数据,利于自动控制,车辆改制工作量和难度较小,只需将内部数据进行整合,开发数据通讯协议,且车辆执行机构响应快,车辆控制更加平顺,因此,选用纯电动汽车更利于实现自动驾驶。

自动驾驶硬件设备可分为传感器、计算平台、安全控制、辅助系统。传感器包括:激光雷达、摄像头、GPS天线、IMU模块、毫米波雷达、超声波雷达,计算平台采用自动驾驶域控制器,安全控制主要包括驾驶模式选择按钮、急停按钮,辅助系统涉及到显示器、辅助电源、路由器、CAN总线记录仪、电源开关。硬件设备的布置如图1所示。

图1 自动驾驶系统硬件布置方案

系统中所涉及的硬件设备类型、数量和相关说明如表2所示。

自动驾驶系统的软件和算法由自动驾驶域控制器来完成。自动驾驶域控制器是在车辆分布式电子控制单元基础上发展而来的具有功能集成、模块化、可定制特点的控制器,是智能网联汽车电子电气系统发展的趋势。自动驾驶域控制器采用集成化方案,将车辆环境感知数据处理计算平台和车辆控制平台集成到单个控制器中,从而大幅简化电子系统结构,提高系统可靠性的同时降低成本,智能网联汽车车载控制器未来将以域控制器的形式呈现。

本文采用的自动驾驶域控制器有以下4大特点。

(1)高计算性能

采用双芯片,一个计算芯片,一个控制芯片,感知信息计算采用高算力的计算芯片,车辆控制信号处理采用Infineon TC387芯片,多核架构。

(2)丰富接口

包含多个车规级GMSL接口、高速CAN-FD接口、Ethernet接口,可以接入多路摄像头、毫米波雷达、激光雷达以及车载高速通信。

(3)车规级系统设计

支持统一的应用层交互协议下,嵌入客户自主开发应用层自动驾驶功能模块;

车规级器件和接口,满足整车电器、EMC、材料、耐久等要求;低运行功耗(典型运行功率30 W),9~30 V工作电压,支持风冷散热。

(4)高安全保证:

支持高至ASIL-C(ISO 26262[2])的安全要求;

支持访问许可授权、传输数据加密、硬件安全模块调用等系统和网络安全功能;

关键事件数据自动识别、采集并寄存。

表2 自动驾驶系统的硬件设备信息

2.2 软件方案

自动驾驶软件部署在自动驾驶域控制器中,基于Ubuntu系统下的机器人操作系统(Robot Operating System,ROS)平台开发,软件架构如图2所示。

图2 自动驾驶软件架构

软件功能模块主要由4部分组成:环境感知、车辆定位、决策规划和车辆控制。其中,环境感知模块实现系统对外界环境信息的数据获取和分析辨识,通过对摄像头、激光雷达、GPS等传感器数据进行处理,计算周边环境信息;车辆定位模块解析激光雷达和GPS信号,计算得到车辆自身位置;决策规划模块利用环境感知信息,计算确定车辆行为,如正常行驶、换道、加减速等,并进一步规划车辆的目标行驶轨迹及对应行驶速度、转角等;车辆控制模块利用决策规划得到的信息,根据加速、转角及制动指令控制执行机构执行响应动作,达到自动驾驶的目的。

本文的环境感知模块通过多传感器融合系统[4]来实现,有效利用激光雷达、摄像头多元数据获取资源,最大限度地获取稳定、准确的障碍物和道路信息。

3 自动驾驶系统开发的技术路线

自动驾驶系统开发的技术路线如图3所示。系统在新型自动驾驶域控制器上开发自动驾驶软件架构和策略。在技术上从硬件布置、控制集成2个与车辆相结合的方面着手设计开发。在硬件布置方面,分析L3、L4级自动驾驶应用场景和传感器配置方案,设计传感器预装位置和普适性支架,确定自动驾驶传感器布置方案,开展支架开发、以及传感器和支架的安装布置工作,同时根据传感器、域控制器的接口和供电信息,设计线束连接方案和辅助电源;在控制集成方面,提出VCU、线控底盘以及灯光的控制需求,设计自动驾驶控制功能定义,由车辆平台开发自动驾驶系统控制车辆所需的通讯信号,以及VCU、线控底盘和自动驾驶系统之间的交互。在完成硬件布置和控制集成开发之后,开展自动驾驶车辆改制试验,完成整车的改装,并结合自动驾驶软件和算法,开展自动驾驶系统集成调试工作,在调试过程中发现和改进开源平台基础平台的建设问题,调试成功后开展自动驾驶功能测试试验,并最终形成第3方自动驾驶测试试验报告。

图3 自动驾驶系统开发的技术路线

在自动驾驶实现过程中会形成一些具有科学价值和应用前景的技术方法,本文展示4种提升自动驾驶系统性能的研究成果。

3.1 自动驾驶车辆改制方法和普适性预装结构

自动驾驶系统涉及的车辆改制空间主要有前机舱、驾驶舱和后备箱。

车辆改制前设计开发辅助电源,用于连接相关电气设备,并设计线束的连接。同时准备改制场地,确定参与改制的相关人员。

自动驾驶车辆改制实施前,需要准备好车辆、相关硬件设备,开发好的支架、改制工具(锥套筒工具、焊接工具、打磨切削工具、打胶工具等),拆除车身零部件。车辆改制的整体思路如下:

(1)车辆前端布置设备有毫米波雷达及超声波雷达;

(2)车顶布置设备为激光雷达、GPS天线及高清摄像头;

(3)车辆后端布置毫米波雷达、超声波雷达、域控制器、DC辅助电源、路由器等;

(4)前机舱改制线束从车辆防火墙穿过进入驾驶舱,再到后备箱;

(5)车顶传感器线束从车顶钣金孔穿过,按天窗排水管布置方案引至后备箱;

(6)副仪表板按钮开关线束引到车辆左侧与前机舱线束一同引至后备箱。

车辆改制实施过程涉及到传感器和硬件设备的安装固定,线束的改制和布置。最终形成一套自动驾驶车辆改制流程规范,在自动驾驶系统规模化生产时提高改制效率。

在自动驾驶车辆改制之前,考虑到不同厂商的自动驾驶系统所使用的传感器配置方案各不相同。目前主流自动驾驶方案提供商的传感器解决方案中,激光雷达、摄像头和GPS天线均布置在车顶。基于此,在系统设计过程中开发自动驾驶系统普适性支架方案,如图4所示。在常用的不同传感器安装位置预留安装支架,并且开发车顶普适性支架总成,可以满足多种传感器配置方案的搭载。

图4 自动驾驶普适性支架

自动驾驶普适性支架的特点如下:

(1)车顶支架可以通过定制转接支架实现多种传感器配置方案的搭载;

(2)可以适用多种类型、不同尺寸、不同型号的传感器产品,能够灵活调整安装角度、方向和数量,节约自动驾驶传感器的安装成本。

经过车辆改制的验证,在该普适性支架上可以方便地增加和减少自动驾驶感知传感器。

3.2 自动驾驶感知传感器的自动化标定

传统的自动驾驶感知传感器标定方法需要大量人工操作,影响标定效率和标定精度,传感器的测量精度会给外参标定带来额外的误差。本文采用一种自动标定的方法对感知传感器进行标定,在传感器布置安装之后,借助自然标定场地和标定工具,通过对传感器接收的数据中的典型特征进行处理分析,将各个传感器的坐标系统一到车辆坐标系下,包括多个激光雷达的标定、激光雷达和相机的联合标定、毫米波雷达标定、超声波雷达标定,标定流程如图5所示。

图5 自动驾驶感知传感器标定流程

传感器标定的步骤如下:

(1)车顶32线激光雷达标定:建立车体坐标系,借助圆锥体形标定物,计算偏移量Δx、Δy、Δz以及旋转角a(翻滚角)、b(俯仰角)、g(偏航角)。首先根据车辆参数计算Δx、Δy,再建立平整地面的平面方程,基于非线性优化方法,求解a、b最优值,然后根据最终拟合的地面平面方程,计算Z轴方向的偏移量Δz,最后结合点云目标物识别结果,采用优化算法求解最优g值。

(2)2个16线激光雷达标定:首先,采用和32线激光雷达相同的方法,计算Δx、Δy、a、b、Δz,然后,以32线激光点云识别结果为基准,采用优化算法求解最优g值,确保32线激光雷达和16线激光雷达识别的目标重合。

(3)摄像头标定:包括内参标定和外参标定。内参标定采用张友标定法;外参标定采用激光雷达和摄像头联合标定的方法,利用激光雷达标定结果,借助标定板(棋盘格、四孔板),根据激光点云和图像数据中的特征匹配关系,求解摄像头和激光雷达的相对位姿,确定摄像头坐标系相对于车辆坐标系的位姿变换关系。

(4)毫米波雷达标定:毫米波雷达安装时对翻滚角、俯仰角和高度有较高要求,不需要标定这3个参数,x和y方向的位置偏移量直接通过车辆结构推算,主要借助毫米波反射器,以从激光点云检测到反射器的位置和毫米波雷达检测到的位置重叠为目标,采用优化方法求解最优的偏航角g。

(5)超声波雷达标定:首先设置超声波探头的初始位置,再移动超声波雷达探测目标,比较激光雷达检测和超声波雷达探测的目标位置差异,优化调整初始位置坐标。

自动化标定方法避免了传统感知传感器标定的复杂、繁琐的实施过程,减少了大量人工操作,提高了标定效率和标定精度。

3.3 自动驾驶系统的感知融合方法

自动驾驶感知技术通常激光雷达、摄像头、毫米波雷达等几类常用的传感器,各类传感器各有优缺点,在特性上都有所差异,需要采用多传感器融合技术,让多种相互补充,发挥各传感器的优点,提升感知功能的精确性和稳定性。基于多传感器融合技术,本文设计一套自动驾驶系统的感知处理流程,如图6所示,并提供一种多传感器的目标融合方法。

多种类型传感器数据经过通讯传输并进行协议解析、时间和空间同步配准后,进入目标检测识别功能模块。

激光点云数据经过点云分割、点云聚类、障碍物点云分类、删除障碍物栅格等处理后输出目标类型、目标三维位置坐标,并基于目标形状和位置坐标计算目标的长度和宽度。

摄像头目标检测识别功能模块采用YOLO V3深度学习方法识别图像数据中目标的类型。YOLO V3基于Darknet-53基础识别网络。Darknet-53包括53个卷积层和大量的残差层,残差神经网络“直接连接”的方式可以在一定程度上避免由于神经网络加深而导致训练时产生的“梯度爆炸”和“梯度弥散”现象,也使得网络的泛化能力大大提升。完成目标识别之后,再基于图像特征匹配,使用对极约束求解摄像头位姿,并使用三角测量计算动态目标的运动变化,减去摄像头的位姿来获取目标最终的横纵向位置坐标、速度、长度和宽度。

毫米波雷达数据经过数据转化、聚类处理后输出目标的横纵向位置坐标和速度信息。

目标检测识别之后开展目标数据的融合跟踪处理,对传感器的检测目标做全局匹配,并使用无迹卡尔曼滤波算法,融合摄像头目标数据、激光雷达目标数据、毫米波雷达目标数据,最后进行目标匹配跟踪处理,更新未匹配的跟踪目标、删除丢失的跟踪目标、初始化新目标,重复目标数据融合处理的流程。

图6 自动驾驶系统的感知处理流程

目标数据融合处理的步骤如下:

(1)建立系统状态方程和测量方程,设置状态向量,确定无迹卡尔曼滤波中Sigma点的选取策略。选取横向位置px、纵向位置py、横向速度vx、纵向速度vy、横向加速度ax、纵向加速度ax、目标宽度W、目标长度L,作为状态向量:Xk=[px,px,vx,vy,ax,ay,W,L]T。设置状态向量的初始均值和方差,并计算Sigma点;

(2)预测各个Sigma点,加权计算状态量和协方差矩阵的预测值;

(3)比较每个传感器的检测目标和已跟踪的目标,使用全局最邻近(GNN)方法执行全局匹配;

(4)对于已经匹配和跟踪的目标,基于各个传感器的观测值进行更新;

(5)删除跟踪丢失的目标;

(6)将未匹配目标和已跟踪目标进行匹配,识别增加新的跟踪目标,重复目标数据融合处理的步骤。

3.4 自动驾驶系统测试

自动驾驶系统的实车测试过程如图7所示。

图7 自动驾驶系统测试过程

首先,建立自动驾驶测试管理规范。在执行自动驾驶功能测试前,确定自动驾驶测试流程,明确通用测试要求、能力评估内容与方法等。

然后,参照政府部门出台的相关测试技术方法、测试管理细则、测试场地要求,执行如下测试项:认知与交通法规遵守能力(主要是交通标线识别)、执行能力(包括:直线行驶、曲线行驶、直角转弯行驶)、应急处置与人工介入能力(包括:紧急情况处理、人工介入后的可操作性、紧急停车)、综合驾驶能力(包括:起步停车、跟随行驶、变更车道、路口直行、路口转弯、路口掉头、靠边停车、紧急制动、倒车入库)等,输出测试结果。

另外,基于自动驾驶域控制器的特点,在系统设计开发过程中创造性地提出一种自动驾驶域控制器在整车平台上的技术评估方法,主要包括:基本硬件评估、感知功能测试、自动驾驶功能时延测试、故障响应机制测试、结构设计评估、电气接口评估。

4 技术验证情况

4.1 环境感知技术验证

(1)感知传感器标定

在实车上开展感知传感器的标定,标定效果如图8所示。

图8 自动驾驶感知传感器标定效果

图8(a)是32线激光雷达g标定效果,标定物落在y=0的轴线上;图8(b)是16线激光雷达g标定效果,以32线激光雷达为参照,16线和32线激光雷达中的标志物完全重合,标定效果较好;图8(c)为摄像头标定后形成的图像和点云合并图像,图像和点云的重合度较高,标定准确;在图8(d)中,激光雷达和毫米波雷达检测到的毫米波雷达反射器目标基本重合,毫米波雷达标定准确。

将激光雷达自动标定和人工标定的结果进行比较,计算标定参数偏差,并统计标定处理时间如表3所示。

表3 激光雷达标定结果比较和处理时间统计

对于摄像头标定,从图像中取10个特征点作为检查点,根据标定参数计算特征点在激光雷达坐标系中的x、y、z坐标,统计该计算的坐标和特征点在激光点云中坐标之间的误差,计算公式如式(1)所示。使用该误差描述摄像头的标定精度。

式中,x'i、yi'、z'i分别为计算出的第i个图像特征点在激光雷达坐标系中的三维坐标,xi、yi、zi分别为第i个特征点在激光点云中的三维坐标,σ为计算误差。

对于毫米波雷达标定,计算自动标定和人工标定的g值偏差。摄像头和毫米波雷达标定结果和标定处理时间如表4所示。

表4 摄像头和毫米波雷达标定评价和处理时间统计

(2)多传感器的目标融合

使用携带有差分GPS的车辆、行人及骑车人作为测试目标,运行本文的多传感器目标融合程序。在车体坐标系下,典型目标的多传感器融合数据如图9所示。不同速度下经过融合的目标位置和目标上GPS获取的实际位置的平均偏差如表5所示。

图9 典型目标的多传感器融合数据

表5 融合目标的位置偏差统计

设置多个场景,开展多次测试,统计所有测试目标中未检测到的目标数,计算未检测的目标数和所有目标数的比例(即漏检率),约为1.893%。表明,本文的多传感器融合效果较好。

4.2 系统测试验证

在自动驾驶测试场地中开展系统测试,多次测试使用感知模块的系统功能,记录多次测量的平均值,表6列出了测试结果。

表6 自动驾驶系统测试结果

经过实车测试验证,使用本文感知技术的系统功能均已达标,表明感知模块运行良好。

5 结束语 

本文研究了纯电动汽车自动驾驶系统的实现方法,提出一种自动驾驶系统的技术方案,研究自动驾驶系统实现的技术路线,并在自动驾驶实现过程中形成一些具有科学价值和应用前景的研究成果,主要技术成果和创新点如下:

(1)在硬件方案采用自动驾驶域控制器代替传统的工控机和ECU,可以减少线束连接、降低成本和大量信息交互带来的技术瓶颈,后续可以考虑实现自动驾驶域控制器的车规化探索;

(2)自动驾驶普适性预装结构可以支持多种传感器的布置、节约传感器的安装成本,提高车辆改制效率;

(3)通过利用和处理多个传感器数据,结合目标识别等技术,采用不同的方法实现不同传感器坐标系到车辆坐标系的位姿变换,提升自动驾驶环境感知传感器标定的自动化程度,精确性较高,满足多传感器融合的要求;

(4)设计1种多传感器的目标融合方法和一套自动驾驶系统的感知处理流程,目标漏检率较低,目标检测和跟踪的效果较好。

实践表明,本文提出的自动驾驶系统实现方法和研究成果可以提高自动驾驶系统实现效率,提升自动驾驶系统的性能。

未来,感知能力仍然是智能驾驶车辆的关键技术瓶颈,尤其是在数据融合过程中采用人工智能技术和基于并行计算的先进复杂的前融合算法,可以提高传感器融合的性能;将单车的感知技术和车路协同技术融合,能够增强智能车辆的感知能力,提升自动驾驶的安全可靠性,降低单车智能感知的成本,也是自动驾驶发展的重要研究方向。

本文作者张婷

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340