范科发 | Vector分布式系统与网络部门商业开发经理
Vector分布式系统与网络部门商业开发经理范科发表示,智驾软件需要相应版本的迭代,在做软件功能时对应的还需要进行测试迭代。如何让软件在测试端尽早运行起来? 怎样提升软件测试效率?聚焦Python, C, C++和AUTOSAR软件系统的CI/CT,以CANoe为平台的开放式模块化提供了ADAS/AD HIL解决方案、数据驱动开发、测量和回放三部分,范科发对软件技术开发和测试等过程中的具体事项进行了详细讲解。
以下为演讲内容整理:
(资料图)
基于Python, C, C++和AUTOSAR开发的软件系统CI/CT
ADAS/AD的软件研发是非常密集型的,在各个阶段都需要保证相应的算法验证。对于如何去做相应的测试,在经过多方的OEM供应商及厂商评估后,ASAM给出了完整流程。除了传统的测试工作,新增了如软件系统测试和基于数据的测试。
无论是基于SystemWeaver或Polarion的RQM/TDM系统,Vector整个测试工具链上是无缝打通的,可以在系统中进行对应抓取需求或用例,在设计时做覆盖度,满足各类流程里所需要的基于需求的测试。而且不需要传统模式手动操作,工具链是无缝对接,每一块都可以单独实现相应处理。
如何实现早期黑盒测试,就需要考虑MCU侧和SOC侧如何实现相应的虚拟化。甚至需要基于云平台,调动CI/CT,实现相应软件的快速迭代应用。如何让软件在测试端运行起来,就需要供应商和OEM软件开发组进行虚拟化持续迭代。整个测试系统闭环由测试引擎、测试仿真软件、被测算法来构建。所有的测试还会面临实现自动化测试的问题,这也就意味着要写相应的测试脚本,实现相应的测试开发,在工具层面,vTESTstudio既支持Coding的方式,如可以用Python等来做相应的测试脚本开发,也可以做测试建模方式开发。
图源:嘉宾演讲材料
软件也需要有相应的版本迭代,需要团队开发的快读集成。希望能通过借助技术手段,实现团队级的协同,所以在软件集成上,还需要考虑如何让软件黑盒运行,MCU或SOC端软件,包括相关联的其他算法,这样才能基于数据训练,实现相应的策略功能。
Vector提供了一整套完整的虚拟方案,对于MCU侧,无论是否带有相应的通讯协议栈,都能让相应的工具把应用层的软件RTE虚拟化仿真出来,使得软件模块可以直接实现级联。针对Classic Platform,Vector会给用户提供两套协议栈,对应PC的协议栈可以自动生成PC环境所需要的全部软件,所以MCU侧的软件可以放在PC环境下运行;SOC侧的软件,如果是应用层的就是以C++代码为主,可以通过技术手段实现虚拟化连接,如果是包含SOC底层中间件在内的就需要利用技术,在相应的虚拟机上做对应部署。通过工具可以把MCU侧的软件和SOC侧的软件都直接集成到相应工具里面实现对应测试。
在工具里面,使用Python开发的AI算法进行SIL测试和分析,利用工具和接口做适配之后做AI解析,然后做出判断,AI解析出来的目标和其他数据可以同步去做相应的分析应用。ADAS/AD C++算法测试应用,可以直接开发相应的功能,用软件的接口实现相应的封装,封装完之后CANoe可以感知到相应的目标,直接去做可视化。对于ECU侧的软件虚拟化,通过工具生成之后有三种方式,和客户的框架做相应的衔接。
图源:嘉宾演讲材料
Vector经过多年积累,包括在一些车厂的ADAS项目上积累开发了开源库。实现不同的设备或工具,尤其是软件互联互通应用能力。要做软件的测试,不同的软件之间会有数据交互,也会有以太网总线等等,Vector在这套库里提供了虚拟以太网等等,可以利用API把不同软件接起来,在做训练或做测试的时候,就会带有总线通讯行为,更加接近于实车环境。
图源:嘉宾演讲材料
带有 CANoe 平台的开放式和模块化 ADAS/AD HIL 解决方案
基于CANoe构建HIL系统,首先需要有相应的电源和总线信号接入后做智驾测试,Vector会提供建立相应的2D、3D场景,也会提供基于2D场景编辑相应的测试、3D场景的仿真软件。通过在仿真软件里直接建立仿真传感器模型,能更加精确的模拟传感器行为,做相应的测试验证。而且整个软件生态都是开放的,Vector在技术层面全部能够打通,保证数据实现相应闭环。
图源:嘉宾演讲材料
CANoe对E2E、车载以太网、中间件,以及联网安全方面等等的应用,在工具链里面全部能做支持。
在2D的场景,Vector创建了本车、它车及传感器配置,定义相应的场景,基于目标直接做运行,运行后在工具里做可视化,捕捉到相应的信息并做分析应用。
图源:嘉宾演讲材料
对于仿真场景的道路,Vector基于标准格式直接可以导入,不需要做转换。对于动态场景,Vector有默认的场景,通过SUMO实现交通流仿真。对于OpenSCENARIO,Vector提供实验支持,对1.2基本上能做相应的匹配,2.X也在做相应的开发工作,有些标准场景,可以通过导入的方式做相应的应用,取决于实际平台等等。
DYNA4并没有局限在一定要跟Vector的实时机搭载使用,可以部署在市面主流的HIL平台使用。在进行解耦后,DYNA4将分为设计部分DYNA4 Studio和执行部分DYNA4 Run。
同样,CANoe不仅仅是总线工具,可以做MiL、SiL、ViL、HiL、PiL等等,vTESTstudio开放的API可以耦合第三方平台执行。
图源:嘉宾演讲材料
数据驱动开发——测量和回放
采集相应的数据用于相应的算法训练,算法训练很大程度是基于云平台完成的,刚才讲到的一些工具都可以部署到云平台里,MCU侧、SOC侧的软件都需要运行起来,才能让整个系统闭环运行,并且拿到数据。
图源:嘉宾演讲材料
在数据方面,Vector提供一系列方案,把相应数据直接进行采集,存储到VP系统里面,搭配CANape实现可视化分析。
对于雷达方面的采集,包括原始数据采集,Vector提供小型系统和雷达系统衔接,采集数据,供后续的分析或者测试使用。
对于超声波有相应的方案,Vector把DSI3芯片直接做封装,一方面做相应的数据采集,另一方面做仿真传感器,把相关数据给预控,以及通过封装,记录异常,做相应的模拟。
采集到的数据如果进行数据回灌应当怎么处理,Vector会利用同样采集的硬件系统,通过替换硬件模块,加载采集数据,在系统预控级别定位和排查问题。无论是数据用于HIL的回注,还是算法训练,对接的工具都是CANoe。在回注时加载的是ECU,算法训练需要加载和处理的是SOC侧的和MCU侧的,带有通讯在内的算法,而不仅仅只是应用层的算法,因为应用层算法会跟实车有差异,会对功能排查产生较大的挑战。
(以上内容来自Vector分布式系统与网络部门商业开发经理范科发于2023年5月18-19日在吉利2023智能汽车技术论坛—智能驾驶论坛发表的《基于CANoe的智驾系统SIL、HIL和回灌解决方案》主题演讲。)