矿用无人驾驶车辆车载计算单元硬件在环仿真测试研究
2022-02-11倪浩原徐国艳王京伟张海福
倪浩原,徐国艳,王京伟,张海福,丁 红
(1.北京航空航天大学交通科学与工程学院,北京市海淀区,100191;2. 特种车辆无人运输技术工业和信息化部重点实验室,北京市海淀区,100191;3. 内蒙古霍林河露天煤业股份有限公司,内蒙古自治区通辽市,028001)
0 引言
随着我国对矿用无人驾驶车辆研发的不断推进,无人驾驶矿车将会更多地进入市场并进行落地应用,这将改变矿山的生产方式,并在智能矿山建设与矿物运输中发挥重要作用[1-5]。
无人驾驶车载计算单元是矿用无人驾驶车辆的核心,其能够接入多种传感器与控制设备,进行高效的数据处理,并结合无人驾驶技术控制矿用车辆行驶。因此对矿用无人驾驶车辆车载计算单元的性能测试十分重要。
无人驾驶仿真测试普遍采用的方法为利用成熟的车辆仿真软件进行测试,如Carmaker、VTD(Virtual Test Drive)、PanoSim、CarSim、Gazebo、PreScan仿真软件等。其中,PreScan仿真软件由于具有丰富的场景设计功能和强大的传感器系统,逐渐成为国内使用的主流仿真软件之一,是用于高级驾驶辅助系统和主动安全系统开发验证的仿真工具[6]。目前,国内外已有较多利用PreScan仿真软件进行车辆无人驾驶技术部分算法的仿真测试研究。国内方面,江浩斌[7]等研究人员利用PreScan仿真软件与Matlab/Simulink联合仿真,进行智能车辆集群滑模控制方法的验证,主要利用了软件中精确的传感器技术;贺勇[8]等研究人员进行的汽车无人驾驶仿真实验,其在PreScan仿真软件中进行建模,对车辆在弯道的行驶和目标车辆行驶过程中前方存在障碍物时的避撞控制算法进行了验证;朱西产[9]等研究人员利用PreScan仿真软件搭建环境场景,对车辆与行人在危险工况状态下的转向避撞控制策略算法进行了验证;陈慧[10]等研究人员在CarSim/PreScan/Simulink的联合仿真平台和硬件在环平台上建立了多种测试场景,验证基于驾驶人不满度的高速公路无人驾驶换道决策算法;梁政焘[11]等研究人员在PreScan仿真软件上进行硬件在环仿真试验,对基于MPC的智能车轨迹跟踪算法的性能进行了验证;ZHANG Q[12]等研究人员提出了一种利用PreScan仿真软件软件进行车道偏离预警系统性能测试的方法。国外方面,ALMROTH M[13]将PreScan仿真软件作为智能运输系统的开发环境进行了研究;Zaki P S[14]等研究人员在PreScan仿真软件中验证了无人驾驶车辆的交通标志识别算法模型的性能;Kim Y[15]等研究人员利用PreScan仿真软件中的传感器建立道路地形,对实时交通中的网联无人驾驶车辆进行了硬件在环测试。
通过以上分析,当前的研究多针对与无人驾驶技术中的某一算法进行测试且多适用于小型车辆,场景多为城市道路场景,针对矿区场景下矿用无人驾驶车辆车载计算单元硬件在环仿真的研究还较少。由于矿区道路条件较差,车辆体积大,直接利用实车对车载计算单元进行测试验证存在消耗时间长、人力物力成本高、难度较大、效率较低等问题,并且存在安全隐患,因此需要研究针对矿用无人驾驶车辆车载计算单元的仿真测试方法及系统。
1 仿真系统结构及功能
笔者研究了一种适用于矿用无人驾驶车辆车载计算单元测试的硬件在环仿真系统,主要由仿真平台、通信设备和实车车载计算单元组成。主要实现步骤为:矿区仿真场景建模、矿用车辆无人驾驶主要硬件设备仿真、通信连接实现、仿真报告生成。使用PreScan仿真软件与Matlab软件进行联合仿真,融入外接驾驶器设备,根据实车使用的GPS、激光雷达、毫米波雷达、视觉传感器、执行控制机构等设备的通信协议与通信方式进行仿真模拟,搭建数据模拟、数据解析和通信传输模块,通过串口通信、UDP通信、CAN通信实现仿真平台与矿用无人驾驶车辆的车载计算单元信息交互,形成闭环控制。针对矿区非结构化道路环境、天气情况以及矿区障碍物的设置要求等,在仿真软件场景建模步骤时进行设计。笔者研究的系统可对车载计算单元硬件性能以及其环境感知算法、决策及路径规划算法、车辆控制算法、自动/人工驾驶切换响应等多种无人驾驶算法的性能以及车载计算单元与矿用无人驾驶车辆中其他智能设备间的信息交互和工作流程进行测试验证。矿用无人驾驶车辆硬件在环仿真系统架构如图1所示。
图1 矿用无人驾驶车辆硬件在环仿真系统架构
矿用车辆无人驾驶系统多含有车用无线通信(Vehicle to Everything,V2X)模块、人机界面(Human Machine Interface,HMI)模块、监控调度平台等,用于实现无人驾驶矿车与智能电铲、推土机的通信和云端调度等。利用笔者研究的系统环境,可对车载计算单元与该类平台或设备的交互功能进行测试。车载计算单元接收仿真平台的模拟信息,可测试车载计算单元对于V2X交互、HMI交互、监控调度平台指令控制等的响应能力以及无人驾驶系统运行耐久性与可靠性等。仿真系统扩展测试功能如图2所示。
图2 仿真系统扩展测试功能
利用硬件在环仿真环境测试,既可以验证实车中应用的通信协议、通信方式的可行性,又可以测试矿区无人驾驶运输系统中V2X智能交互流程、HMI交互流程、监控调度平台指令控制流程的可行性与准确性,完成无人驾驶系统实现装载-运输-卸载一体化的仿真验证。
由于矿车体型较大,安装感知传感器等设备较为困难,而选取感知效果最佳的安装位置需要多次测试,且调整设备物理功能参数后需要再重新安装,而仿真系统由于设置方便能够很好地解决该问题。
笔者的研究内容贴近矿用无人驾驶车辆测试情况,为车载计算单元的测试方法提供了实际依据,能在一定程度上使矿车无人驾驶系统与车载计算单元相关的问题在仿真层面得到充分暴露,节省大量的人力、物力和时间成本,提升车载计算单元的开发与迭代效率。
2 矿用车辆无人驾驶系统主要设备仿真
矿用车辆无人驾驶系统中车载计算单元主要接入的硬件设备有GPS、激光雷达、毫米波雷达、视觉传感器与矿车线控系统,因此笔者主要针对以上设备进行仿真研究,并用PreScan仿真软件中大型货车作为仿真车辆模拟宽体车、矿卡等矿用车辆。
2.1 GPS仿真
在PreScan仿真软件中,仿真车辆会在Simulink中生成可输出车辆实时经纬度、姿态角及速度的车辆状态模型,车辆在循迹过程中所需要的车辆位置信息和状态信息都可从该模型获取。车辆状态模型如图3所示,可利用该模型对GPS进行模拟,其中Rotx、Roty、Rotz即为车辆姿态角,即横滚角(Roll)、俯仰角(Pitch)、偏航角(Yaw)。
图3 车辆状态模型
笔者以GPS传感器输出的$GPRMC信息为例,其包含的信息有消息头$GPRMC、UTC时间、纬度信息、经度信息、速度信息、车辆姿态角信息等。其中经纬度、速度、姿态角信息均可以从车辆状态模型中获取,对于UTC时间、接收机状态等信息,可利用Maltab相应模型进行模拟制作,模拟UTC时间可保证仿真系统与真实世界的时间一致性。通过以上可实现模拟不同的车辆定位状态,如模拟故障状态,以全面测试车载计算单元应对各种信息时的性能。串口通信方面可在Simulink库中使用串口配置模块与串口数据发送模块进行实现。
2.2 激光雷达仿真
选用PreScan仿真软件中的“Point Cloud Sensor” 仿真传感器对激光雷达进行模拟,在模拟真实激光雷达扫描形式的同时,能够输出周围环境的点云数据。矿用车辆无人驾驶系统应用的激光雷达大多为32线或64线,且进行360°的扫描,而在一般情况下,后180°为驾驶室,因此多数无人驾驶算法只提取车辆前方180°的数据。
2.2.1 激光雷达数据模拟
以32线激光雷达为例,“Point Cloud Sensor” 仿真传感器水平可设置最大覆盖范围为120°,故需要一个水平范围设置为120°,一个水平设置范围为60°,并调整照射方向。设雷达的水平分辨率为0.2°,则120°激光雷达水平激光数设置为600条,60°激光雷达水平激光数设置为300条,竖直激光数设置为32条,即模拟了真实32线雷达以0.2°的分辨率进行180°的旋转扫描,得到180/0.2=900个水平方位角上(0.2°、0.4°、……、179.8°、180°)32个距离数据。
在Simulink中,120°激光雷达的输出数据为600列×32行的矩阵,行数代表32线激光雷达在每个水平方位角下都返回32个距离数据,列数代表600个水平方位角;60°激光雷达的输出数据为300列×32行的矩阵,行数含义与120°激光雷达相同,列数代表300个水平方位角。仿真激光雷达的扫描的机制是水平方面从y轴正半轴向y轴负半轴方向,竖直层面从z轴正半轴向z轴负半轴方向,故矩阵中的每一个值都可根据其在矩阵中所处位置分析出是某一方位角下某束激光所返回的数据。仿真激光雷达的坐标系与扫描方向如图4所示,设用例激光雷达的坐标系与扫描方向如图5所示,坐标系与扫描方向均不同。由于方位角分辨率为已知的0.2°,则水平方位角可以模拟建立一个180/0.2=900×1的矩阵,其值为0.2°、0.4°、……、178.8°、180°,根据输出数据以相应的顺序进行提取并和水平方位角匹配实现统一扫描起点与扫描方向,可以解决仿真与真实激光雷达传感器坐标系与扫描方向的差异问题。
图4 仿真激光雷达坐标系及扫描方向
图5 用例激光雷达坐标系及扫描方向
例如将2个仿真激光雷达扫描范围配置为如图6所示,组成180°扫描区域,此时与用例激光雷达规定的扫描方向不同,将仿真激光雷达输出矩阵进行左右翻转操作,实现将扫描起点和扫描方式与真实雷达统一,数据处理后仿真激光雷达扫描方式如图7所示。
图6 仿真激光雷达参数设置
图7 数据处理后仿真激光雷达扫描方式
2.2.2 激光雷达通信优化
UDP通信模块选用Simulink中的UDP Send模块,一般车载计算单元算法中接入感知传感器的频率为10 Hz,根据多数的实际激光雷达的通信协议,需传输360°的信息,由于水平分辨率为0.2°,则需在100 ms内传输1 800个数据信息包。
期望在100 ms内传输完整的360°数据信息,即在100 ms内调用通信模块1 800次,故需将Simulink工程仿真步长设置为1/1 800 s。由于仿真工程中模块模型较多,很多模型的工作频率会继承仿真步长频率,导致其频率也为1/1 800 s,这将一定程度上影响Simulink仿真运行的速度,严重时可能导致仿真时间慢于真实时间,影响仿真测试的真实程度。
为了不影响Simulink运行的仿真速度,将仿真激光雷达传感器频率仍然设置为10 Hz,即每100 ms生成一次数据,利用后续模型对生成的数据进行1 800次的数据处理及向车载计算单元传输,实现激光雷达在规定频率下的正常通信。通过以上对于激光雷达数据模拟及传输的速度优化,可保证仿真的实时性和与真实世界时间的同步性,实现实时硬件的在环仿真。
2.3 毫米波雷达与视觉传感器仿真
选用PreScan仿真软件中的“Radar” 仿真传感器对毫米波雷达进行模拟,其能够模拟真实毫米波雷达的工作方式,并返回相应的信息供开发者进行处理。在矿用车辆无人驾驶系统中,毫米波雷达扫描区域一般由长距离和短距离扫描区域组成。
视觉传感器是车辆无人驾驶技术中普遍应用的传感器,笔者利用“Object Camera” 仿真传感器进行模拟,其能够输出车辆与PreScan仿真软件中各种添加物体的距离、相对速度、物体类型等信息,能够区分行人、车型等,与实际视觉传感器设备的功能基本一致。
毫米波雷达与视觉传感器输出数据内容相似,且通信方式均为CAN通信。笔者选取大陆ARS408毫米波雷达为例,可利用2个“Radar” 仿真传感器模拟这种效果,毫米波雷达扫描效果如图8所示。
图8 毫米波雷达扫描效果
在矿区无人驾驶运输中,因安全性对感知要求较高,会在车辆前方安装左、中、右3个毫米波雷达向不同角度同时进行探测,因此可以设置雷达安装朝向同时进行探测。毫米波雷达组合扫描效果如图9所示。
图9 毫米波雷达组合扫描效果
在大陆ARS408毫米波雷达的通信协议中,所传输的数据信息包含物体数量、类型、相对距离、相对速度以及在传感器坐标系中的水平方位角等信息,利用“Radar”仿真传感器输出信息进行模拟,并根据协议中的分辨率和偏移量、每类数据对应的位数和所处报文中的位置以及移位函数等对仿真传感器输出的原始数据进行位操作处理。CAN通信方面可根据所使用CAN设备规格型号选用Simulink库中CAN通信模块或其他集成开发环境(Integrated Development Environment, IDE)下开发的数据传输程序进行实现。
2.4 矿车线控系统仿真
仿真平台可通过CAN通信的方式,接收车载计算单元的车辆控制信息,利用Simulink中生成的车辆控制模块,将控制量输入即可控制车辆无人驾驶,并根据矿用无人驾驶车辆协议将车辆实时状态控制信息与车身反馈信息通过CAN通信发送给车载计算单元,形成闭环控制。以上过程模拟了矿车线控系统,实现了矿用无人驾驶车辆车载计算单元控制仿真车辆运行并获取车辆反馈信息的过程,可根据车辆运行状态现象等对车载计算单元的性能进行分析。车辆控制模块如图10所示。
图10 车辆控制模块
在仿真软件中,可设置仿真硬件设备的频率,适用于多种不同的情况。同时由于利用仿真大型货车模型,车辆状态反馈与宽体车等矿用车辆差距较小,可适用于矿用无人驾驶车辆车载计算单元中无人驾驶控制技术处理矿车线控系统数据性能的测试。
3 自动/人工驾驶切换与仿真报告生成
在多数矿用车辆无人驾驶系统实地测试应用过程中,车辆上配有司机或安全员,支持自动/人工驾驶切换控制车辆,而PreScan仿真软件中支持接入外界模拟驾驶设备控制仿真车辆的运行。笔者在仿真系统中加入了自动/人工驾驶切换控制模型,可判断驾驶模式,并开启相应的驾驶控制通道(模拟驾驶设备控制或车载计算单元控制仿真车辆)及发送车辆驾驶模式至车载计算单元,可测试其对于切换控制的响应性能。自动/人工驾驶切换控制模型逻辑如图11所示。
图11 自动/人工驾驶切换控制模型逻辑
笔者在研究中提供了一种通用方法,可以将车载计算单元的运行记录数据与Simulink仿真记录数据结合分析,得到准备全面的仿真结果。利用Matlab中的inifile函数,可以在仿真运行初始化阶段修改车载计算单元日志生成的配置(.ini)文件,修改其中的日志文件名称、保存路径等配置。在仿真结束后自动读取对应每次仿真的车载计算单元运行日志文件并导入Matlab工作区中,与仿真过程中Simulink的记录数据相结合,进行数据处理生成仿真报告。仿真报告生成流程如图12所示。
图12 仿真报告生成流程
4 系统应用
笔者利用所研究的系统在白云鄂博矿区场景下进行了矿用无人驾驶车辆车载计算单元硬件在环仿真测试,以验证仿真系统的功能。所选矿区分为运输区域、装载区域、卸载区域等,其中装载区域中存在电铲辅助车辆、卸载区域中存在推土机辅助车辆,矿用无人驾驶车辆出发先驶向装载区域进行矿料装载,再驶向卸载区域运输并进行卸料工作,如此反复,实现矿区装载-运输-卸载全流程无人运输作业。
无人运输作业过程中涉及到矿用无人驾驶车辆车载计算单元与辅助车辆(电铲、推土机)的车载Telematics BOX(T-BOX)硬件控制器进行V2X交互,需要仿真平台向T-BOX利用笔者研究的方法发送模拟GPS信息,T-BOX接收信息并上传至云调度平台,从而模拟辅助车辆也位于实际矿区装载区域和卸载区域环境中,实现与矿用无人驾驶车辆车载计算单元的交互,同时需要利用矿用无人驾驶车辆HMI向云调度平台申请作业任务。系统应用实物搭建及连接说明如图13所示,其中模拟驾驶设备可进行人工驾驶接管,仿真系统运行过程中的无人驾驶车辆行驶效果如图14所示。
图13 系统应用实物搭建及连接说明
图14 仿真矿用无人驾驶车辆行驶效果
利用所研究的方法,仿真平台对实际矿用宽体车辆所使用的GPS传感器、感知传感器和执行机构硬件的功能特性和通信协议进行了仿真模拟,并使用相同于各硬件设备与矿用无人驾驶车辆间的通信方式将仿真平台与矿用无人驾驶车辆车载计算单元进行了通信连接。车载计算单元接收云调度平台的调度和作业任务信息以及仿真平台中仿真车辆车身状态反馈、仿真GPS传感器、仿真感知传感器、仿真执行机构等模拟信息后,与辅助车辆T-BOX硬件控制器进行信息交互,实时进行矿用无人驾驶车辆运输作业过程中的决策与规划,并发送车辆控制信息至仿真平台,仿真平台接收数据并根据矿用无人驾驶车辆线控系统所用的通信协议进行数据解析,控制仿真车辆的行驶。
选取某次卸载测试实验数据进行分析,仿真车辆是由矿区底部装载区域电铲处上行行驶,行驶至矿区顶部卸载区域时,事先采集轨迹即为在真实矿区中预先人工驾驶完成装载-运输-卸载作业流程,记录人工驾驶轨迹的GPS信息并作为无人驾驶运输作业的行驶路径,存入车载计算单元中,验证车载计算单元控制车辆是否能够按照此轨迹进行无人驾驶。仿真矿区各区域位置示意如图15所示,仿真矿用无人驾驶车辆轨迹与事先采集轨迹对比如图16所示。
图15 仿真矿区各区域位置示意
图16 仿真矿用无人驾驶车辆轨迹与事先采集轨迹对比
由图16可以看出,采集轨迹的蓝色虚线与仿真车辆轨迹的红色实线基本重合,表明笔者研究的硬件在环仿真系统可以有效地对矿用无人驾驶车辆车载计算单元的性能和其中的无人驾驶算法进行测试。
为了缩短测试时间、加速测试效率,可在仿真地图中任意设置装载区、卸载区位置进行加速测试,在测试中不会因为行驶距离的减少而影响测试效果。加速测试各区域位置示意如图17所示,仿真车辆行驶过程横向距离误差曲线如图18所示,仿真测试车辆停靠点处卸载纵向距离误差曲线如图19所示。
图17 加速测试各区域位置示意
图18 仿真车辆行驶过程横向距离误差曲线
图19 仿真测试车辆停靠点处卸载纵向距离误差曲线
由图18可以看出,在加速测试中,平均误差为-0.10 m,证明车载计算单元控制算法较好。由图19可以看出,车辆行驶到排土区域后,在排土区域推土机位置处进行停靠,仿真车辆最终在停靠点处的纵向距离误差为-0.21 m,证明车载计算单元泊车规划算法较好。
选取某次装载-运输-卸载一体化全流程测试实验进行验证,仿真平台与实车车载计算单元、辅助车辆T-BOX进行通信连接与仿真模拟数据传输,并接受车载计算单元车辆控制数据控制仿真车辆行驶,测试过程为仿真车辆无人驾驶空载驶向装载区域,在装载区域前的等待区域等待云调度平台允许驶入命令,驶入后在电铲处进行指点停靠并进行装载任务;装载任务完成后,接收云调度平台允许驶离命令满载驶向卸载区域,在卸载区域前的等待区域等待云调度平台允许驶入命令,在推土机处进行指点停靠并进行卸载任务;完成任务后接收云调度平台允许驶离命令,空载驶离卸载区域进行下一次装载-运输-卸载全流程运输作业。该过程仿真车辆速度变化曲线如图20所示。
图20 装载-运输-卸载测试实验车辆速度变化曲线
由图20可以看出,利用仿真系统测试了车辆装载-运输-卸载过程中实车车载计算单元的命令执行、车辆行驶决策规划、控制逻辑等的正确性与稳定性,以及测试了无人驾驶系统中运输车辆与辅助车辆间智能交互流程、云调度平台指令控制流程的正确性与稳定性,同时也验证了笔者所研究的仿真系统的有效性与可应用性。
5 结论
笔者研究了一种用于矿用无人驾驶车辆车载计算单元测试硬件在环仿真测试系统,根据真实硬件设备的通信协议与通信方式对矿用车辆无人驾驶系统中所需的全部主要硬件设备进行数据模拟与通信实现,所研究的系统还包含自动/人工驾驶切换、控制模型等,且可利用系统环境测试车载计算单元与矿用车辆无人驾驶系统中其他平台或设备的交互功能和对外部信息的响应能力,以及可测试矿用车辆无人驾驶系统连续运行的正确性与稳定性等,实现了针对矿用无人驾驶车辆车载计算单元的多方面测试。
通过在白云鄂博矿区场景进行矿用无人驾驶车辆车载计算单元硬件在环测试,对实验结果进行分析表明,所研究的系统具有有效性与可应用性。相比于矿区实车测试,笔者的研究能够节省大量的时间和人力物力消耗,提升矿用无人驾驶车辆车载计算单元与无人驾驶运输系统的开发迭代效率,减小安全风险。