软件在环(SIL)测试简介

来源:孙工 自动驾驶仿真测试 侵删

这是孙工自动驾驶的第17篇原创。

本文先通过与实车测试的对比引出软件在环测试的内容,然后分别介绍软件在环测试的不同模块,最后介绍通过集成开发搭建完整测试环境的思路。可能有疏漏,供大家批评。

注:《MIL、SIL、PIL和HIL是个啥》中描述了各种XIL手段,但是本文采用相对粗糙的分类方法,认为被测对象为算法软件而不是控制器硬件的测试都为软件在环测试。

01

概述

(1)实车测试的组成

自动驾驶车辆在实际道路进行测试,包含自动驾驶车辆、道路环境和交通参与者等要素。

软件在环(SIL)测试简介

(2)软件在环测试的组成

软件在环测试的被测对象为自动驾驶算法(也就是“软件”),需要在仿真环境下模拟实车测试的各项要素,使算法能够闭环运行(也就是“在环”)。

软件在环(SIL)测试简介

具体架构可以用下图描述:仿真软件模拟各项测试要素,通过中间件与算法交互,为算法提供运行环境;自动化测试、评价和管理模块实现测试自动化;场景库中包含进行测试的各项场景,充分覆盖实车运行的工况。

软件在环(SIL)测试简介

(3)常见仿真测试软件

大体上常见的仿真软件可以分为三类:商用软件、开源软件和自研软件。据我观察,主机厂背景倾向商用软件,互联网背景倾向自研软件。

软件在环(SIL)测试简介

02

车辆与驾驶员模型

(1)车辆与驾驶员模型的作用

车辆模型根据驾驶员模型/算法的控制和道路情况,计算车辆动态信息,并把相关信息输出给自动驾驶算法。

驾驶员模型有两个功能:①在自动驾驶算法功能不启动时,控制本车按照一定轨迹/速度/行为行驶;②控制交通车辆按照预定轨迹/速度/行为行驶。

软件在环(SIL)测试简介

(2)车辆模型

根据模型精度的不同,可以将车辆模型(不严格)的分为两种:运动学模型和动力学模型。

运动学模型:仅考虑几何因素,计算车辆的运动状态。可能误差较大,但是计算速度快。

动力学模型:考虑力和质量等因素,计算车辆的运动状态。又可分为两种:①系统级,将系统(如悬架、制动)作为计算单元,采用特性曲线描述系统或关键零件特性,典型软件如CarSim;②将零件(如弹簧、衬套)作为计算单元,采用详细参数,计算系统特性,典型软件如ADAMS和Simpack。

由于自动驾驶算法测试,不特别关注零件级的响应,更关注系统级或整车级的响应,一般会选择系统级的动力学模型,有的时候甚至会使用运动学模型描述交通车辆。

下图是CarSim软件界面:

软件在环(SIL)测试简介

(3)驾驶员模型

驾驶员模型向车辆模型输出加速/制动踏板、方向盘等控制命令,实现加速、减速、换道、跟车等行为。为更好的模拟交通车辆的行为,还可设置多种类型,如普通型、激进型、保守型,并对具体的参数(如目标车速、切换踏板的间隔、最大加速度/减速度、跟车距离)进行设置。

下图分别是CarMaker软件和VTD软件中的驾驶员参数设置界面:

软件在环(SIL)测试简介

03

传感器模型

(1)传感器模型的作用和类型

传感器模型的作用是模拟各种传感器,探测仿真环境中的目标信息,并输出给自动驾驶算法。根据模拟的内容的不同,可分为理想模型和详细模型。

软件在环(SIL)测试简介

理想模型:不考虑实际传感器类型或物理原理,一般作为规划模块的输入或者感知结果的真值信息。从而支持规划控制算法的仿真测试。

详细模型:考虑实际传感器类型和物理原理,可作为感知模块的输入。从而支持包含感知模块的完整算法的测试。

(2)各种传感器仿真模型示例

理想模型一般有物体传感器、交通标志传感器、车道线传感器、道路传感器、碰撞传感器等,就如它们的名称所示,可以探测仿真场景中不同类型元素的信息,发送给自动驾驶算法使用。

下图是CarMaker软件中一些传感器的示例:

软件在环(SIL)测试简介

详细传感器可根据实际不同传感器类型划分,如:

–激光雷达,可配置不同个数和安装位置,并设置不同激光线数、点云形态、FOV等,发送周围环境和交通参与者的点云信息;

–毫米波雷达,可配置不同个数和安装位置,设置探测距离/速度、角度、探测精度、目标RCS、FOV等,发送探测到目标物的目标列表;

–摄像头,可配置不同个数和安装位置,设置摄像头雷达的FOV、畸变、色差等,发送图片/视频信息。

下图是VTD软件中激光雷达和摄像头的示例:

软件在环(SIL)测试简介

软件在环(SIL)测试简介

04

道路交通仿真

(1)道路交通仿真的作用

道路交通仿真用于模拟自动驾驶车辆在实际道路运行时可能遇到的各种场景,对算法进行充分测试,可分为道路环境和交通场景两个部分:

道路环境:静态的部分,比如在高速还是城市道路、路口有无红绿灯;

交通场景:动态的部分,比如遇到了车辆还是行人、车辆如何动作、行人轨迹如何。

下图是PanoSim软件停车场和城市道路场景的示例,可对比了解道路交通模型的各项要素:

软件在环(SIL)测试简介

(2)道路环境

用于描述场景中静态的部分,包括路网、交通设施、临时改变、路侧物体等:

软件在环(SIL)测试简介

软件在环(SIL)测试简介

仿真软件一般都会提供图形化的编辑和可视化界面,用于道路编辑:

软件在环(SIL)测试简介

(3)交通场景

用于描述场景中动态的部分,包括车辆、行人、动物和运动物体等:

软件在环(SIL)测试简介

对于交通参与者的行为,一般可通过行为(相对较长时间的状态)、动作(行为的切换)和触发(动作发生的条件)来描述:

软件在环(SIL)测试简介

仿真软件一般也会提供图形化的场景编辑器,进行交通参与者添加,并设置行为和动作等:

软件在环(SIL)测试简介

05

自动化测试与评价

(1)自动化测试

自动化测试的目的是用程序测试程序,用自动化测试代替手工测试,提高测试效率和可重复性。

要实现自动化测试,大体上可分为四个内容:

①选工具,选择合适的自动化测试工具;

②接环境,基于仿真软件提供的api,把自动化工具与仿真环境连接,实现自动化调用;

③写用例,在测试工具中编写测试用例和对应的评价指标;

④做测试,进行自动化测试,测试可根据需求人工触发或者与CI集成。

需要注意的是,实现自动化测试需要增加很多工作量,需要评估投入产出比和周期要求。

下图是在自动化测试软件ECU-TEST中的示例:

软件在环(SIL)测试简介

(2)自动化评价与可视化

自动化测试设计的场景数量庞大,需要:

①对每个场景进行自动化的评价、输出结果;

②对完整测试场景库的执行情况进行统计、可视化显示和输出报告,方便结果评估。

软件在环(SIL)测试简介

06

软件在环集成开发

(1)内容和步骤

软件在环集成开发的内容可分为软件环境集成和算法集成两个方面:

软件环境集成:由于软件环境大多情况下由来源不同的多个模块或软件构成,需要通过开发中间件,将选择的多种工具集成为有机的整体。

算法集成:通过开发中间件,将算法与软件环境集成,能够实现功能触发和运行。

集成开发一般可分为定对象、画框图、辨数据和开发调试等四步:

–定对象,测试对象是完整算法、感知算法还是规划控制算法?

–画框图,根据实车情况,画出与被测对象有关的完整框图,标明算法有哪些模块构成、有哪些输入和输出、各模块如何联系?

–辨数据,根据选择的被测对象,确定哪些模块需要模拟、数据流是什么样的?

–开发调试,可按照先开环调试,再闭环调试的思路分步实现。

软件在环(SIL)测试简介

(2)开环和闭环调试

开环调试:不接入算法,确认模拟的信号是想要的。如目标列表信号可以用调试工具读取、且正确,控制信号确实可以正确控制车辆动作。

闭环调试:接入算法,确认算法能正确触发和运行。如算法可以识别前方车辆并跟车行驶、可以识别前方行人并紧急制动。

来源:ICVS自动驾驶商业化

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月1日
下一篇 2022年5月1日

相关推荐