ADAS系统的实车及实验室验证

2018-05-15 10:42:53·  来源:Vector维克多  
   
驾驶辅助系统通过各种传感器捕获行车环境。基于对象识别算法的正确结果,给驾驶员信息提示,或者自动/半自动干预驾驶状态。本文指出了目标数据(ObjectData)验证和图像处理算法测试中的典型问题。XCP协议能够保证在测量和标定过程中对大数据吞吐量的要求。
驾驶辅助系统通过各种传感器捕获行车环境。基于对象识别算法的正确结果,给驾驶员信息提示,或者自动/半自动干预驾驶状态。本文指出了目标数据(ObjectData)验证和图像处理算法测试中的典型问题。XCP协议能够保证在测量和标定过程中对大数据吞吐量的要求。

驾驶员通过他们的感官系统——眼睛和耳朵——感知周围的环境,获取信息,并由大脑收集处理这些信息,并决定相关的动作。例如道路一旁是否有足够的空间可以停车,或者与前方车距是否需要调整。驾驶辅助系统(高级驾驶辅助系统,AdvancedDriver Assistance Systems,简称“ADAS”)能够帮助驾驶员作出此类决定,由此加强安全性,改进舒适性、便捷性以及经济性。

传感器和算法数据的访问
辅助驾驶系统必须能够可靠地监测环境,就像一个注意力集中的乘客。雷达、超声波、视频传感器常常被用来向ECU提供驾驶状态和车辆环境方面的信息。ECU内复杂的算法处理传感器的数据,如交通信号、停放的车辆、其它交通参与者等对象,然后发出控制指令。

为了验证传感器系统,就要充分而简便地测量算法的结果,并把它们同实际数据比较。以自适应巡航控制系统的测距雷达为例:传感器通过反射的雷达波束来检测对象。ECU提供每个对象的距离信息作为坐标,这种情况下,不需要传感器捕获所有的反射光束,但是算法所有的输入变量必须被测量和记录以用作后续的实验室内的分析或者用作激励信号源。这样,测量超过100,000个信号,每秒数兆个字节的数据吞吐就非常常见了。

带有视频传感器的图像处理ECU用于道路信号检测系统或者辅助车道保持,通过视频图像分析算法来检测道路信号或者车道标识,这需要ECU具有高性能的微处理器。另一方面,无论传感器数据是来自摄像头还是雷达,均需要高性能的测量设备来满足大数据传输的要求。在对算法的评估和优化中,测量设备必须能够获取到算法所有的输入和输出变量,以及所有的必要的中间变量,而又产生额外的控制器负载(图1)。



串行总线系统,比如CAN和FlexRay,遇到了它们数据吞吐速率方面的性能瓶颈。因此,控制器的特定接口,如Nexus,DAP或Aurora,被用来传输大量的测量数据。实事证明,使用现有标准比针对每种控制器定制开发测量设备更有意义。Vector的测量和标定硬件VX1000是一种理想的解决方案,它通过一个小的PCB(plug-on device or POD)将数据从控制器接口传输到基础模块,而基础模块将这些数据转换成标准化的XCPon Ethernet数据流,再传给PC。这个过程实现了高速率的数据吞吐。

传感器数据和真实数据的对比验证
ECU的目标对象检测的结果必须对照真实数据进行验证。例如,距离前车的实际距离是45.5米吗?要比较传感器数据和实际数据,首先要获取这一实际数据,这可以通过一个独立于车载传感器之外的摄像头来记录驾驶环境。开发人员就能将ECU检测的对象和视频图像进行对比,从而快速、可靠地验证ECU的目标检测算法。Vector公司的测量和标定软件CANape加上驾驶辅助的Option,能够将对象数据叠加到视频图像上。开发者能够精确确定检测到了什么,且哪些是有意义的。在(图2) 中,图像中的“X”这一点代表了传感器获取的数据。传感器能检测到前方目标的坐标,如距离及相对一侧的角度,然后将它们转换成视频图像上的像素坐标,显示在电脑上。



验证和优化算法
如果在对比检测到的对象与实际对象存在偏差时,就需要对算法进行优化,这可以通过修改系统的标定参数来完成。这些参数需要在代码中进行定义,从而使它们在程序运行时位于RAM区,并能够进行读写访问。XCP协议的测量和标定机制可用于标定这些参数。运行时,开发人员修改的参数值能够得到即时的效果反馈。XCP不仅仅局限于ECU,如策略算法以DLL的方式运行在作为快速原型的PC上,可以将DLL当作一个虚拟ECU,通过XCP对其进行标定测量。

把XCP驱动程序集成到DLL文件中,最便捷的方式是什么?如何把输入信号和DLL相关联?如果使用Simulink进行开发,Matlab的“Simulink的编码器”能够将模型生成用于不同平台的代码,Vector的CANape也是一种目标平台。那么在生成用于CANape的代码的过程中,XCP驱动被自动集成进去。最后,会获得一个包含XCP驱动的DLL文件以及一个A2L格式的ECU描述文件。两者导入CANape,并将输入输出端口和实际信号关联。测量启动后,CANape把测量的传感器数据作为输入量给算法,然后虚拟ECU计算出结果。同时,标定参数能够像真实ECU那样进行优化标定。CANape也提供了一个C++工程,这样手工代码也能够得到如上所述的结果。

传感器数据作为激励信号
传感器系统开发人员面临两个问题:
实际的数据一般在车上才有,而实验室内缺少必要的环境;
需要付出巨大的人力物力才能复现传感器数据。
正因如此,使用记录的传感器数据给ECU提供激励是开发过程中的关键一环—无论是真实的还是虚拟的ECU。数据可以绕过信号输入,直接写入ECU内存。VX1000系列设备也提供了所需的带宽。当然也可以通过传感器为ECU提供输入(图3)。

对一个虚拟ECU而言,激励的数据流,也就是从测量文件过来的视频或者信号,可以直接关联到CANape的输入端口中。对于真实的ECU,需要通过物理接口实现。例如视频传感器的信号可以发送到接收其数据的的总线中,这样ECU就能够以相同的方式接收到激励信号,这和使用实际的传感器一样。从而保证了数据的复现。算法行为的任何变化仅仅是标定的结果而非输入量的改变。对于虚拟或者真实的ECU而言,激励不只局限于赋值给输入,还可以通过XCP设置必要的状态和条件。



总结

ECU的标定优化需要大量的工作,测量和标定工具与ECU进行通信,并且不需要使用代码工具,仅需定义好A2L描述文件和其它文件的生成流程,这都是独立于ECU的开发的。XCP是一个标准解决方案;它能够很好地使用于所有类型的ECU。尽管就数据量和性能而言,驾驶辅助系统会涉及很多特殊需求,但是使用现有的基于XCP的工具——例如CANape和VX系列设备——对ADAS ECU也是一个方便的解决方案。这是现有工具(CANape)的高级功能开发很自然的一部,即与现有的研发流程无缝集成——以支持视频数据,使用快速原型平台来开发图像处理算法。 
 

编辑推荐