APP下载

基于ADAS平台的下线标定系统设计与实现

2022-10-27宋小军

计算机测量与控制 2022年10期
关键词:上位标定总线

仲 正,宋小军

(上海电力大学 电子与信息工程学院,上海 200120)

0 引言

随着国家政策对新能源的支持,以及人工智能的飞速发展,汽车的智能化程度正在大幅提高,如何提升汽车的主动安全性,成为了关注和研究的热点。高级驾驶辅助系统(ADAS,advanced driving assistant system)是利用安装在车上的各类传感器(主要包括摄像头、毫米波雷达、激光雷达、超声波雷达等),在行驶过程中实时采集周围的环境数据,对识别环境中的行人、车道线、车辆、路标等信息进行辨识、跟踪及预测,当系统发现危险时能够对驾驶员预警并采取相应措施,进而提高汽车驾驶的主动安全性[1]。

安全驾驶辅助的前提是需要精确感知周围环境目标的方向、距离、速度等信息,然而各传感器在产线安装过程中,因车辆的个体差异或者传感器的安装角度等问题会造成探测数据偏差,进而对辅助驾驶系统的决策造成影响,直接影响系统的稳定性和客户的满意度。为更精确的实现功能,量产车辆在出厂前必须进行传感器的标定,然而通过手动调整各传感器安装位置,往往很难准确满足系统要求且耗时,而且对于不同车型,系统通常需要单独修改定制,标定工具功能界面复杂,不适宜产线工人操作。

在目前的驾驶辅助系统方案中,单一传感器往往存在一定的局限性,多传感器信息融合技术[2-4]已经成为智能驾驶辅助系统中的一种趋势。在多传感器系统中,各传感器检测的目标信息都是相对于自身坐标系的,所以各传感器在单独标定以后,还必须进行联合标定以确保各传感器有一个统一的转换坐标系。

针对上述问题,设计了一种针对多传感器的下线标定系统,该系统完成了对前向摄像头和前向毫米波雷达的单独标定和联合标定[5],通过基于CAN总线的统一诊断服务(UDS, unified diagnostic services)协议设计了整个下线标定的流程,并且专门设计了针对下线标定系统的上位机,不仅简化了量产中标定的流程,而且降低了产线工人操作的难度。

1 系统整体设计

本系统涉及到的ADAS平台主要由主控制器模块、摄像头模块、毫米波雷达模块等组成[6],下线标定系统依赖该平台架构进行设计。下线标定系统需在标定工位中进行,整体组成如图1所示,将搭载ADAS平台的车辆驶入标定工位以后,摆正车身,将控制台(上位机)的线束接入车载自诊断系统(OBD, on board diagnostics)接口,接着打开上位机标定软件,查看上位机与车辆的连接状态。在成功连接的状态下,用扫码枪扫描车辆识别码(VIN, vehicle identification number)识别车辆型号,扫码枪会自动在上位机标定软件中输入VIN码。一切就绪后,开始启动上位机标定软件中的标定流程,摄像头利用棋盘格标定板标定,毫米波雷达则利用角反射器标定, 利用自身结构特性建立数学模型计算出各传感器的外部参数。当摄像头和毫米波雷达分别标定结束后,上位机标定软件给出标定结果,若标定外参在合理范围之内则标定成功,最后车辆驶离标定工位。

图1 系统组成

下线标定系统需满足车规级标准,为保证软硬件正常高效运行,系统应具备汽车软件应有的特性。系统必须在规定的条件下实现规定的功能,尽可能不引起系统失效,必须在毫秒级的时间内对外界输入做出响应,保证对突发情况的出现及时处理。系统应按照相关安全标准执行,避免事故的发生或减轻伤亡的程度。系统的各功能模块应可移植,避免重复开发,不依赖于特定操作系统、芯片和车型,最大化程度实现硬件抽象。

2 系统硬件设计

如图2所示,基于ADAS平台的下线标定系统硬件部分主要包括数据采集端和控制器端两大部分。数据采集端是驾驶辅助系统感知数据的来源,主要由车身的数据和传感器的数据组成,车身数据包括车身速度、偏航角、刹车信号、转向信号等,传感器数据包括摄像头和毫米波雷达采集的数据,主要包括图像数据、目标列表、目标距离、目标速度、目标角度等。控制器端主要依托基于ARM的德州仪器TDA4VM处理器,是系统的核心部分,主要负责摄像头和毫米波雷达原始数据解析、UDS诊断通讯、算法数据融合等功能模块。上位机通过CAN总线分析仪与控制器端连接,用来启动下线标定流程。

图2 系统硬件架构图

2.1 主控模块

为满足系统处理速度的要求,以及后续功能扩展需求,主控模块型号采用基于ARM的TDA4VM芯片,系统采用符合POSIX.1标准的Linux操作系统。该芯片功能强大,有丰富的外设接口,内部集成双核64位Arm Cortex-A72微处理器,主频高达2.0 GHz,并且集成6个Arm Cortex-R5F MCU,无需使用外部系统微控制器,为集中式 ECU 或独立传感器中多种传感器模式的高级汽车平台实现可扩展性和更低的成本。在符合功能安全标准的前提下,集成了标量和矢量内核的DSP、专用深度学习和传统算法加速器、用于通用计算的GPU处理器、集成式成像子系统、视频编解码器、以太网集线器以及隔离式MCU岛。

2.2 摄像头模块

摄像头模块由镜头、镜头模组、滤光片、互补金属氧化物半导体、电荷耦合元件、图像处理器、数据传输等模块组成,由于价格便宜、检测信息全面等优点广泛应用于驾驶辅助系统中。相比于传统的光电探测方式,摄像头是基于可见光成像通信技术,以图像序列的形式捕捉二维数据,在大多数嵌入式设备中,无需增加接收机的成本,可以传输更多的信息,提供更加准确的数据。

摄像头模块型号采用安森美半导体的AR0820AT传感器,该传感器是专门为汽车辅助驾驶定制的一款 1/2英寸 CMOS 数字图像传感器,支持MIPI接口,能够在低光度和高动态范围场景下捕捉图像,自带LFM模式可消除图像中的高频LED闪烁,能够同时捕捉连续视频和单帧图像,最大帧率每秒达到40 fps,可以很好地满足车规级的要求,广泛应用于辅助驾驶和自动驾驶系统中,该传感器参数见表1。

表1 AR0820AT传感器参数表

2.3 毫米波雷达模块

毫米波雷达的基本原理是通过发射一束电磁波,基于回波与入射波的差异来计算距离、速度等信息。一般用速度差分辨率、角分辨率和距离探测精度等指标来衡量毫米波雷达的成像精度,毫米波频率越高,带宽越大,成像越精细。毫米波雷达模块主要用于检测交通车辆和道路两旁的静止护栏,安装在车身前部,检测速度快,精度高,不易受到天气干扰,在大雾等特殊环境中穿透性较好,相比激光雷达,硬件成本相对较低。

毫米波雷达模块采用德尔福的ESR前向雷达,该雷达是一款77G中长距毫米波雷达,具有长距加中距双探测模式,其最大探测距离车辆可达175米,同时追踪目标数高达64个。Delphi-ESR传感器参数如表2所示。

表2 Delphi-ESR传感器参数表

2.4 通讯模块

下线标定系统功能需要建立上位机与车辆主控模块的通讯连接,通讯需要考虑数据的传输效率、使用成本以及使用场景等。CAN总线协议是由德国电气厂商博世公司研制的一款高性能串行总线协议,抗电子干扰能力强,可以进行高效率高宽带的实时性传输,现已成为汽车网络的标准协议,所以本文选择CAN总线作为通讯总线,采用广成科技的USB转CAN总线分析仪建立上位机和车辆的连接。

3 系统软件设计

基于ADAS平台的下线标定系统的软件部分由下位机端软件设计、上位机端软件设计和基于CAN总线的UDS诊断设计三部分组成。上位机通过CAN总线向下位机发送诊断服务指令启动标定流程,下位机根据诊断服务指令执行相应的标定动作,本节将重点介绍摄像头和毫米波雷达下线标定的核心算法和标定流程。

3.1 基于CAN总线的UDS诊断设计

为完成各模块之间的通信,需定义完整的通信规范和协议,UDS诊断协议定义了一套基于诊断服务的通信框架,使用该框架可建立起外部设备与主控模块的通信渠道。UDS诊断协议基于OSI网络模型,不同的总线传输方式,实现标准和规范也不同[7-11]。

基于CAN总线的UDS诊断,传输层和网络层采用ISO 15765-2协议实现,作为服务提供者和服务应用者,为数据链路层和应用层提供相应的服务数据交互信息。所有的网络层服务都具有相同的通用结构,其定义了3种服务原语类型:Request、Confirm和Indication。物理层和链路层采用ISO 11898协议,该协议定义的数据帧中的数据段一次只能传输最大支持8字节,为支持长数据发送,ISO 15765-2定义了单帧(SF)和多帧报文传输两种模式,当数据段超过8个字节时,则需要将报文数据拆分后多次传输,多帧报文类型分为首帧(FF)、连续帧(CF)、流控帧(FC)。应用层采用ISO 14229-1协议实现,该协议与底层链路通信无关,可以在任意网络通信基础之上提供诊断服务,主要根据报文格式来区分不同的诊断服务,定义了6种原语:Request、Request-Confirmation、Indication、Response、Response-Confirmation和Confirmation。根据诊断服务的功能分类,可分为诊断和通信管理单元、数据传输功能单元、存储数据传输功能单元、输入输出控制功能单元、例行程序功能单元和上传下载功能单元。

基于CAN总线的UDS诊断基于客户端-服务端(C/S)模型,支持物理寻址和功能寻址方式,客户端到服务端各层之间的服务原语工作流程如图3所示。

图3 服务原语工作流程图

实际前装量产场景中,主控模块安装在车身中,主控模块上的一路CAN总线连接在整车CAN总线上,外部设备一般只能通过车身OBD接口建立和主控模块之间的通讯。在启动标定时,上位机通过CAN总线分析仪接入车身OBD接口,间接建立上位机与主控模块的诊断通讯。上位机和主控模块需分别实现完整的UDS协议栈,部分诊断服务命令如表3所示。

表3 诊断服务命令

3.2 下位机端软件设计

下位机端软件设计部分主要包括摄像头和毫米波雷达的单独标定和联合标定。各传感器的单独标定是在汽车产线最后阶段对整车上的各个传感器自身进行外部几何参数的校准,由于各传感器感知的目标数据一般都是根据自身建立坐标系产生的数据,联合标定就是将不同位置的传感器感知的目标数据通过坐标转换到一个统一的自车坐标系下(世界坐标系)下。本节将分别介绍摄像头和毫米波雷达下线标定的原理和标定流程。

3.2.1 摄像头标定原理

摄像头标定过程中需要求解摄像头的内参和外参,内参包括摄像头的焦距、光轴偏移量、镜头畸变参数等,外参由在世界坐标系中的位置确定。标定过程采用张正友标定方法[12],通过输入带有标定图案的标定板来计算内参和外参,从而建立实际物理点(世界坐标系)到图像上点(像素坐标系)的映射关系。将世界坐标系上的坐标(Xw,Yw,Zw)转换为像素坐标系坐标(u,v),需要经历三次坐标转换过程,计算公式如下:

(1)

式中,Zc为尺度因子;fx、fy分别为摄像头在x、y轴方向上的归一化焦距;u0、v0为图像坐标系在x、y轴方向上的偏移量;R、T表示外参矩阵的旋转和平移向量;M1、M2分别为摄像头的内参和外参矩阵。

图4 摄像头坐标转换

以上是理想情况下(不考虑畸变参数)世界坐标系到像素坐标系的转换。由于摄像头制造工艺的原因,其成像过程中难免存在着畸变,在后续构建精确的三维重建算法前,需要对摄像头的畸变进行矫正,以提高标定的精度[13-14]。摄像头畸变一般分为径向畸变和切向畸变[15]。径向畸变是由于制造工艺的原因,镜片中间厚、边缘薄,光线在远离透镜中心的地方,会发生更大程度的扭曲。切向畸变则是由于成像平面与透镜平面不平行,产生了透视变换。由于切向畸变对标定的误差影响较小,所以主要考虑径向畸变的影响,径向畸变可以由以下公式描述。

(2)

式中,(x、y)为发生畸变后像素点的坐标;(x′、y′)为去除畸变矫正后的像素点坐标;r为曲率半径;k1、k2、k3为径向畸变系数。

在车辆前装量产过程中,如果在标定工位中同时求解摄像头的内参和外参,需要从不同方位拍摄多张标定板照片,计算和操作复杂[16-18]。量产中摄像头型号一般是固定的,在不改变摄像头焦距的情况下,摄像头的内参可以看作是固定的,可以事先根据张正友算法计算出摄像头的内参,并利用极大似然估计迭代优化精度。在产线进行下线标定时,只需在标定工位拍一张标定板照片就可以估计出摄像头的位姿,即求出此时的外参,最终求出公式(1)(2)中的所有未知参数,同时也建立了世界坐标系到像素坐标系的转换关系。

3.2.2 摄像头标定流程

根据摄像头标定原理,在已知摄像头内参的情况下求摄像头的外参,需要得到摄像头坐标系到世界坐标系的转换关系,即测量此时摄像头安装在车辆上的位置和姿态关系。摄像头坐标系的原点到世界坐标系的原点的位置关系可以通过测量工具求出,摄像头此时的姿态需在标定工位中计算得出。

车辆进入标定工位以后,使标定板的横向位置和车辆的中轴线对齐,CAN总线分析仪接入车身OBD接口。当打开上位机标定工具后,首先写入VIN码和设定摄像头安装位置参数和标定板安装位置参数,接着启动摄像头标定算法程序,求出摄像头的外参,当标定工具上弹出“摄像头标定完成,复位控制器”,说明摄像头下线标定完成,结束摄像头标定,摄像头标定协议流程如图5所示。

图5 摄像头标定协议流程图

在摄像头标定流程中,安全访问 27 功能分为两个步骤,首先需要通过 01子功能控制命令来获取种子,此种子为4个字节。上位机需要根据加密算法将获取到的种子进行计算得到密钥的值,然后通过子功能控制命令 02将计算出的密钥值发送给主控模块实现安全认证,主控模块安全认证激活后,才可以进行后续标定和写入读取等诊断步骤。

3.2.3 雷达标定原理

前向毫米波雷达的下线标定主要是对外参的标定,雷达的外参是指雷达在安装过程中存在的角度误差,包括偏航角α、俯仰角β和翻滚角γ,如图6所示。前向毫米波雷达的俯仰角和翻滚角一般可以在安装时通过电子水平仪器来保证安装的准确性,偏航角则需要在标定工位中配合角反射器进行标定。

如图7所示,毫米波雷达的原始数据是基于目标径向距离和目标方位角的极坐标系,可以根据三角函数转化得到目标的二维笛卡尔坐标系(XR,YR)。

图7 雷达坐标系与世界坐标系转换关系图

(3)

式中,R为目标到雷达的径向距离;θ为目标方位角,目标在雷达面法线方向右侧为正,左侧为负。

由于毫米波雷达只有目标的二维坐标信息,没有目标的高度信息,因此可以将毫米波雷达坐标系通过旋转和平移转换到世界坐标系中。转换矩阵由两部分组成:由偏航角α所带来的旋转矩阵以及平移到世界坐标系的原点所产生的平移矩阵。平移矩阵可以通过测量世界坐标系原点到毫米波雷达的距离求出,旋转矩阵则由雷达标定后的偏航角α求出,毫米波雷达坐标系到世界坐标系的转换关系可以用如下公式表示:

(4)

式中,R为旋转矩阵,T为平移矩阵;α为雷达单独标定后的偏航角;d1为世界坐标系原点到毫米波雷达的横向距离,d2为世界坐标系原点到毫米波雷达的纵向距离。

3.2.4 雷达标定流程

根据雷达标定原理,要得到毫米波雷达坐标系到世界坐标系的转换关系,需要求出偏航角α、世界坐标系原点到毫米波雷达的横向距离d1和纵向距离d2。横向距离d1和纵向距离d2可以直接使用测量工具得出,偏航角α的测量则需在标定工位中标定,利用毫米波雷达采集角反射器的径向距离和方位角,可得到此时的方位角即是所求偏航角α。

前向毫米波雷达的标定流程与摄像头标定流程类似。首先让角反射器的横向位置和车辆的中轴线对齐,角反射器的高度和雷达的安装高度保持一致。在将雷达安装位置参数、角反射器安装参数设定完成后,上位机软件界面点击“雷达标定”按钮,启动雷达标定流程,雷达标定流程如图8所示。

图8 雷达标定协议流程图

在雷达标定流程中,首先下达指令让雷达进入扩展会话,在此会话下进行关闭 DTC 纪录,关闭成功后即可以实施标定程序的开始工作。收到雷达开始标定的反馈后,可以按照 200 毫秒的延时循环去询问雷达是否标定完成。标定成功后,查询标定结果,返回标定成功后的偏航角。如果偏航角超出误差校准范围,需要重新调整雷达法线朝向,如果在合理范围,需要将主控模块中雷达所获目标信息做出补偿。

3.2.5 联合标定

实现毫米波雷达和摄像头数据融合的关键在于建立精确的世界坐标系、毫米波雷达坐标、摄像头坐标系、图像坐标系和像素坐标系之间的转换关系。毫米波雷达与摄像头传感器在空间的融合就是将不同传感器坐标系的测量值转换到同一个坐标系中,可以将毫米雷达坐标系下的测量点通过坐标系转换到摄像头对应的像素坐标系下即可实现两者空间同步。由于毫米波雷达所获目标坐标是二维坐标,转化后的世界坐标系Zw值可以根据先验知识给定,假设毫米波雷达所获目标高度为H,则根据式(3)、(4)可以得到目标中心点的世界坐标为:

(5)

代入式(1),可求得毫米波雷达坐标系下的目标点到摄像头像素坐标系下的转换关系,从而完成了毫米波雷达和摄像头的联合标定。

3.3 上位机端软件设计

主控模块在实现算法和标定功能后,还需要对应的外部设备作为客户端对其发送诊断服务请求,并解析主控模块响应的诊断报文。针对以上需求,基于C++和QT框架设计并实现下线标定系统上位机软件,其整体架构设计如图9所示。上位机端软件主要分为3个部分:图形层、应用层、数据交互层。图形层使用QTDesigner设计程序的可视化界面,由主界面和安装参数设定界面组成,主界面负责显示标定的步骤,并且显示每个步骤执行的状态(成功、失败和等待);安装参数设定界面负责配置摄像头、雷达和标靶的安装位置信息。应用层负责根据项目配置文件初始化程序,启动标定的流程,以及根据诊断服务ID解析请求和响应的报文。数据交互层负责配置文件读写、日志记录和CAN模块的处理,其中CAN模块主要实现了UDS诊断的数据链路层和网络层,数据链路层通过采用广成科技的CAN总线分析仪提供的动态链接库进行二次开发,网络层实现的是时序控制和数据帧的分包和组包过程。

为防止主线程阻塞和保持功能独立性,上位机需设置主线程、发送线程和接收线程3个线程。主线程主要负责UI线程的渲染。发送线程负责启动摄像头和毫米波雷达的标定流程,若发送的诊断报文大于7字节则需拆分成首帧和连续帧按序发送。接收线程需要从CAN通讯模块中的接收数据缓冲区中轮询读取诊断响应报文,由于主控模块连接在整车CAN总线上,缓冲区会有大量不相关报文,所以需要根据诊断ID进行过滤,接着再对数据帧的类型进行判断,若为多帧则需重组成完整的数据帧,再根据诊断服务的类型对重组后的数据帧进行解析。发送线程和接收线程是基于生产者和消费者的模型,发送线程发送报文后,发送线程等待接收线程响应,若响应成功,则进行下个标定流程,直到成功完成整个标定过程,失败则根据响应报文给出失败原因。

图10 线程处理流程图

4 实验结果及分析

在系统设计完成后,为保证整个下线标定系统能在实际环境中正常运行,需要对系统进行实车测试。

4.1 标定工位要求

整个标定工位需要包含车辆停放区域,雷达标定设备区域和摄像头标定设备区域,用于标定雷达的角反射器需要放置在车辆前方的空旷区域[19-20],用于标定摄像头的标定板需要安装在车辆前方空中,各区域不重合,标定工位如图11所示。摄像头安装在车辆挡风玻璃处,前向毫米波雷达安装于汽车前保险杠的中间位置,雷达安装时连接器朝上,安装位置正前方不能有金属件,且覆盖件厚度均匀,结构平整。

图11 标定工位

4.2 功能性测试

上位机以跨平台框架QT和C++语言作为编程环境,为方便产线工人操作,简化了软件界面和操作逻辑,设计了如图12所示的上位机标定工具,标定主界面由VIN输入框、标定流程和启动标定按钮组成。

图12 上位机标定主界面

在启动下线标定流程之前,需在上位机安装参数设定界面设定摄像头、雷达以及对应标靶的安装位置参数,在启动标定流程之后,会将这些参数通过诊断服务传入到主控模块中,以便计算出摄像头坐标系和雷达坐标系相对于世界坐标系的位置和姿态关系。世界坐标系原点的选取会影响安装参数中测量参照物的选取,若取前保险杠中心为世界坐标系原点,则需设定如表5所示的安装参数信息。

表5 安装参数

在下线标定过程中抓取上位机和下位机通讯的部分诊断报文如图13所示,经过对诊断报文的分析,摄像头标定和毫米波雷达标定功能均可正常工作。

图13 诊断报文

4.3 准确性测试

摄像头和毫米波雷达完成下线标定以后,对其进行准确性测试。准确性测试采用静态单目标测试方法,实验车辆在开阔场地静止,测试目标停留在实验车辆正前方,由近到远采集不同距离的目标定位数据,每次采集数据时长两分钟约3 000帧,测试结果如表6所示。

表6 单目标不同距离测试数据

由表6可知,测距误差均值与毫米波雷达本身的测量误差0.25 m相近,将目标物的毫米波雷达点投影到图像上,投影点与图像检测框坐标匹配的比率是93.2%,整体上能够满足辅助驾驶系统中对目标感知定位精度的要求。

5 结束语

本文介绍了在实际产线量产工程中一种可行的ADAS下线标定系统设计,解释了摄像头和毫米波雷达的标定原理,完成了摄像头和毫米波雷达的单独标定和联合标定,并且利用基于CAN总线的UDS诊断服务协议设计了整个下线标定的流程。下线标定的目的在于校准各传感器的外参,建立精确的世界坐标系、毫米波雷达坐标、摄像头坐标系、图像坐标系和像素坐标系之间的转换关系,可以为后续摄像头和毫米波雷达数据融合奠定基础,经过对下线标定系统的功能性测试以及对下线标定完成后的准确性测试,本设计基本能够满足辅助驾驶系统中下线标定的要求。

猜你喜欢

上位标定总线
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
关于CAN总线的地铁屏蔽门控制思路论述
使用朗仁H6 Pro标定北汽绅宝转向角传感器
一场史无前例的乐队真人秀
CT系统参数标定及成像—2
CT系统参数标定及成像—2
基础油“上位”
Q&A热线
PCI9030及其PCI总线接口电路设计