从R2017a开始,MathWorks发布了自动驾驶工具箱——Automated Driving Toolbox。今天我们来聊一下Simulink——>Automated Driving Toolbox中一个很有趣的工具——Driving Scenario Designer,主要针对MATLAB R2019b。在一众场景软件中,它应该是属于一朵奇葩——
定位独特的轻量化场景构建工具
。文中涉及MathWorks公司的一些图片和视频,如果MathWorks公司觉得不妥,可以联系删除。
我们先来看一段用Driving Scenario Designer构建场景和传感器的视频。
Driving Scenario Designer操作视频
总结下Driving Scenario Designer的主要特点,稍后再仔细分析。1、使用
拖放操作
创建道路和交通参与者,快速构建场景2、使用低保真度的视觉和雷达传感器模型,
直接输出检测到的目标列表3、支持将场景导出成MATLAB Function,再通过修改MATLAB Function实现
批量化生成场景4、支持将场景和传感器
导出成Simulink模块5、支持导入
OpenDrive路网文件,支持
基于记录的实车数据构建场景6、提供了
预构建场景,可供用户直接使用,包括:
- 符合Euro NCAP要求的AEB、ELK和LKA测试场景
- 交叉路口、转弯和掉头的测试场景
01
拖放操作,块状参与者
从视频中可以发现,Driving Scenario Designer中所有的交通参与者(汽车、卡车、行人等)几乎都是以长方体块状形式来表现的,而且场景中的元素种类比较少,没有红绿灯、绿化带、交通标志等等。可以这么说,与其他大多数的场景软件相比,Driving Scenario Designer真的是简单到简陋的程度。不过, 这种极简设计反倒体现了MathWorks在产品定位方面的独特之处,MathWorks设计这款场景软件针对的是Control-in-loop的算法验证(融合、规划、决策、控制),而非Perception-in-loop的算法验证 。对于Perception-in-loop的应用,MATLAB提供了另外一套方案(与虚幻引擎Unreal Engine结合),此文我们暂且不详述。Control-in-loop的应用,比如验证AEB、ACC、LKA或者自动变道的控制算法,目前的Driving Scenario Designer基本上能够满足需求。针对此类应用,Driving Scenario Designer的优势是可以 非常高效地构建场景 ,有效提升测试效率。02
低保真度的传感器模型,输出目标列表
Driving Scenario Designer提供 两种传感器模型——单目相机Camera和毫米波雷达Radar。 Driving Scenario Designer的传感器模型Driving Scenario Designer中交通参与者被称为Actor,本车被称为Ego Vehicle,具体如何在本车上添加传感器,可见上面的视频。在软件中,可以设置Camera和Radar的内参外参,以及人为加上一些测量误差以尽量模拟真实传感器的状态。这两个传感器模型直接输出目标列表,因此除了验证控制算法,也可以基于Driving Scenario Designer来验证目标层的传感器融合算法。 基于传感器融合和车道检测的车道跟随demo视频03
支持批量生成场景
对于某个算法的测试,可能需要多至上百个测试场景进行全面的测试。如果要逐一手动搭建这么多场景,那将会是非常巨大的工作量,这时候就很需要批量生成场景的功能。比如AEB算法,需要从不同的碰撞覆盖面积,不同的碰撞角度来对算法进行测试。如果能在场景中设置变量(比如碰撞中前车的横向坐标),通过循环修改该变量来批量生成碰撞场景,那就太棒了。