01.
背景与整体方案架构
随着汽车电子软件系统的飞速发展,高级辅助驾驶系统(ADAS系统)越来越获得消费者的重视。如何在研发的各个阶段对ADAS系统进行测试,成为行业内关注的热点。
在当前的开发流程中,硬件在环(HIL)测试已经广泛普及,开发人员习惯在域控制器软件和硬件初步开发完成后先在HIL台架进行测试,进行软件和硬件Bug的筛查,然后在实车上对ADAS功能进行最终的性能测试。实车测试的成本非常昂贵,一方面是测试人员的人力成本,一方面是试验场地和设备的租赁费用。因此频繁展开实车测试会导致开发成本的快速上升。
在这种背景下,车辆在环(VIL)的概念应运而生。如果在仿真软件中虚拟化测试场景,而车辆依旧由驾驶员操控,实际行驶在开阔的安全场地中,则可以节省租赁和布置试验场地的成本,并最大程度上保留对性能测试的精准度。同时,虚拟场景可以最大程度地还原法规标准和企业标准,可以用于最终性能测试前的摸底测试。
针对车辆在环的测试需要,Vector提供基于DYNA4、CANoe软件和VN系列总线接口卡硬件的整体解决方案。
DYNA4是一款成熟的车辆动力学及场景仿真软件,提供以下功能:
>
高精度的参数化车辆动力学模型;
>
基于OpenDRIVE和OpenSCENARIO标准的场景仿真;
>
多种理想传感器和物理传感器模型;
>
基于Simulink的开放式模型接口;
>
基于DYNYanimation的高精度3D模型渲染。
关于DYNA4软件的特性可以参考往期文章:DYNA4新版本R9正式发布
基于这些特性,Vector的VIL测试方案如下图所示:
图1:VIL系统图解
1.
主车:需要将ADAS域控制器暴露在外,由总线接口卡接入诊断与标定接口,以及部分通过总线进行注入的传感器接口;
2.
RTK车载单元:安装在车辆的固定位置,测试人员需要记录下RTK设备与车辆前保险杠之间的距离以用于场景标定;
3.
RTK基站:布置在试验场地。RTK基站设置后,测试人员需要使用基站标定坐标系的功能对RTK坐标系进行初始化;
4.
CANoe软件:运行在工控机中,负责诊断、标定和总线仿真,并能够调用DYNA4+DYNA animation;
5.
总线接口卡:硬件通讯接口,能够仿真和测量CAN、CAN FD、FlexRay、Ethernet等总线协议;
6.
工控机:接入NVIDIA高性能显卡。在工控机中,DYNA4通过编译成DYNA4-Export Package的方式,在CANoe中运行,并且能够调用DYNAanimation,实时发送渲染指令。工控机和其余设备通过支架固定在车内,由车载供电系统进行供电;
7.
视频注入硬件:将视频注入给ECU,支持FPD-Link和GMSL协议。仿真场景渲染出的视频Raw Data通过注入硬件转换为ECU需要的格式,并通过视频同轴线缆传输给ECU;
8.
DSI3注入硬件:支持将Object List转化为DSI3信号,用于物理模拟超声波雷达的探测结果;
9.
DYNA4软件:进行场景渲染和理想传感器Object List生成。
02.
VIL测试场景构成
在ADAS测试过程中,一个测试场景通常由以下部分构成:
1.
主车
在传统HIL测试中,主车行为由仿真的驾驶员模型控制,在功能激活时由真实ECU发出指令接管,所有指令由车辆动力学模型进行计算,结果将会被实时渲染在场景中。而在VIL环境中,车辆在场景开始时由真实驾驶员控制,然后在功能激活时由真实ECU接管控制,控制指令的反馈不经过车辆模型,而是直接体现在真实世界中,通过RTK设备进行位置和姿态的记录。如何将真实世界中的车辆位置姿态反馈在渲染出的虚拟场景中是车辆在环测试系统面临的第一个关卡。
DYNA4软件同时拥有动力学模型模块以及场景仿真模块,同时客户也可根据需求只使用动力学模块或是场景仿真模块。当只使用DYNA4的场景仿真模块时,车辆动力学模型由外部提供。外部车辆动力学模型的方案完美符合VIL测试系统的需求。在VIL测试过程中,DYNA4的自由车辆动力学模块将被屏蔽,来自RTK设备所测量的相对位移和相对速度、加速度以及车辆姿态的结果会被直接接入场景模块,由DYNAanimation进行3D渲染。通过将RTK坐标系中的位置进行坐标换算为DYNA4世界系统中的坐标,就可以将车辆真实位置反馈在虚拟场景中。
RKT设备所获得的相对位置(X、Y、Z方向)、速度(X、Y、Z方向)、加速度(X、Y、Z方向)和姿态(横摆角Yaw,俯仰角Pitch,侧倾角Roll)也会通过CAN总线或是RTK供应商要求的通讯协议,传递给CANoe软件,然后在CAPL脚本中经过坐标转换,最终传输给OpenSCENARIO控制器。OpenSCENARIO控制器根据这些数据计算场景中Ego车辆和交通参与者车辆(GVT)/行人(VRU)的轨迹并由DYNAanimation进行3D渲染。
图2:坐标系之间关联
2.
交通参与者
在测试中,交通参与者,比如人、车、自行车、电动自行车、摩托车,也需要渲染在3D场景中,并能够被摄像头模型或者雷达模型等传感器捕捉到,从而将结果输出至ECU中。DYNA4提供两种交通参与者的仿真方法:一种是在OpenSCENAIO中建立预定义轨迹,一种是在仿真过程中实时给定参与者的位置和姿态。
1)、在OpenSCENARIO场景描述文件中预定义轨迹
在一个特定的场景中,交通参与者的行为通常是被定义好的,每一个行人、车辆都被定义好了相对Ego自车的行动轨迹,在OpenSCENARIO中将这些行为的集合称之为Story。
在Storyboard中,可以定义行人与车辆相撞,也就是同一时间到达同一个地理位置的行为。
在HIL测试中,Ego车辆的轨迹来自于车辆动力学模型的输出,而在VIL环境中,来自外部设备记录的车辆位置姿态也同样会在场景中生效。也就是说,基于给定的车辆位置和速度,DYNA4 中的OpenSCENARIO控制器将会计算出交通参与者将在何时启动,以和Ego车辆完成碰撞预期。
在OpenSCENARIO中,所有参与者的位置都是以路网(高精地图)作为基准的。
在这种情况下,DYNA4支持OpenDRIVE地图的导入,在OpenSCENARIO中可以将交通参与者通过指定路网中的道路的Id、车道的Id、纵向偏移ds和横向偏移dt便可精准将交通参与者或者Ego车辆放置在指定位置。
图3:Ego车辆位置初始化
进一步,行人或者车辆的轨迹被定义为Route(按照OpenDRIVE中定义的车道行驶),或者Trajectory(不按照车道而是按照路径点进行行驶)。
更进一步,通过仿真时间,或是对Ego车辆位置、速度的约束可以设置StartTrigger激活交通参与者的Story,让其按照预定义的路径行动(比如设定仿真开始后10秒,行人开始横穿马路)。
图4:交通参与者路径
2)、通过Traffic接口实时渲染
在DYAN4场景中,对交通参与者的行为定义除了由OpenSCENARI控制器进行控制之外,还支持添加用户自定义路径的额外交通参与者。这种方案可以用于回放试验场记录的场景,可以用于和第三方的交通流仿真软件(如SUMO)进行联合仿真。
如图5所示的DYNA4 Traffic模块所示,模型中的SXRefValueFlag和SXRefValue是记录每个交通参与者在DYNA4坐标系X方向的控制标志位和控制数值,比如用户已经在OpenSCENARIO描述文件中定义了2名行人,那么数组的第3位就可以用来控制额外的交通参与者。
假设给定Flag为101和SXRefValue为100,则可以将交通参与者设置到DYNA4世界坐标X=100的位置处。
图5:DYNA4交通参与者控制模块
图6:与CANoe交互示例
3)、传感器输出
如图1所示,在实际测试中,测试车辆中的真实ADAS控制器和毫米波雷达(Radar)传感器的部分总线会被连接至Vector总线接口卡,这些总线中的控制器状态信息和传感器同步信息会被CANoe软件读取并用于后续仿真。
同时,经过DYNA4交通传感器筛选后的目标物列表也会发送给ADAS控制器。毫米波雷达的目标物可以通过总线直接传输,超声波雷达(USS)则可以通过Vector的USS注入硬件按照DSI3协议格式发送给ECU。
对于摄像头的仿真,场景经过3D渲染后产生的画面会通过DYNAanimation中配置的摄像头模型进行处理后,由视频注入硬件将ECU所需格式的视频流(GMSL或FPD-Link)传输给ECU。ADAS控制器会根据收到的传感器数据判断碰撞风险,作出刹车动作,制动效果同样会通过RTK设备的记录从而传输给DYNA4进行渲染,测试人员可以在DYNA4界面中看到完整的紧急制动功能激活过程。
此外,DYNA4提供多种传感器模型以适配多种用户方案,同时支持用户自定义数据格式的定制化开发。针对摄像头传感器,Vector可以针对客户提供的畸变参数或者自定义畸变模型来定制化开发仿真插件,并在DYNA4配置界面直接使用。针对USS传感器,Vector也提供传感器模型以及DSI3协议仿真硬件接口。
03.
测试流程与结果
1)、场景初始化
与HIL硬件在环测试不同的地方在于,虽然OpenSCENARIO中定义的交通参与者位置会直接在场景中预定义,但Ego车辆的位置和姿态则完全由外部输入控制,也就是说为了保证碰撞场景的实现,Ego车辆在场景中需要初始化在特定的位置上。
DYNA4 OpenSCENARIO场景模块支持Python脚本模块的导入,可将OpenSCENARIO中定义的Variable和CANoe中的System Variable桥接起来,从而读取OpenSCENARIO的设定值并导入到DYNA4模型中进行渲染。
图7:Scenario Engine中的Python脚本
图8:OpenSCENARIO中的变量关联
举例如下:
>
通过bind_signal_source接口将OpenSCENARIO中的Variable绑定到System Variable桥中;
>
通过VariableAction接口将OpenSCENARIO中预定义的Parameter值传导给Variable;
>
DYNA4接收到初始化指令,按照系统变量中的坐标值初始化自车,根据OpenSCENARIO中交通参与者的参数初始化交通参与者。
2)、自车启动
驾驶员通过加速踏板、制动踏板和方向盘操控自车,自车的行为会通过RTK设备测量,结果会通过总线传给CANoe,再关联到DYAN4中进行实时渲染。
3)、实现碰撞点
交通参与者会通过自车的位置和速度,在定义的时刻开启运动,并实现碰撞。
4)、分析结果
测试结束后,测试数据会被记录以用于后续分析:
RTK设备的总线记录文件中会记录自车的位置、速度信息;
DYNA4中的Traffic Sensor模块会记录目标物和自车之间的相对距离、相对速度、相对加速度、TTC;
XCP接口读取到的ECU内部变量,可以记录控制器内部算法运行的结果;
DYNAanimation中可以进行仿真画面的回放。
总体效果如下:
总结与展望
基于CANoe软件和DYNA4软件可以实现车辆在环仿真的基本框架,同时具有很强的可拓展性,后续可以基于基础框架,进一步拓展。后续拓展的可能性有:
>
定制化传感器模型:例如图像传感器,DYNA4团队可以基于客户参数定制化畸变模型;
>
多种传输协议:CANoe软件支持多种总线协议,如CAN、LIN、FlexRay、Ethernet等,还可以根据客户需求集成DDS、ZMQ等传输协议。
Vector致力于在ADAS测试领域努力满足客户和行业的测试需求,提供高质量的一站式服务。