有些朋友也许已经发现了,MATLAB R2020a新推出了一个工具——RoadRunner。这个工具是什么,怎么用,有什么特点?今天我们就根据了解到的信息及亲身使用体验,来对它做一个介绍。
01 背景介绍

MathWorks官网的RoadRunner界面
RoadRunner——Design 3D scenes for automated driving simulation,这是MathWorks对RoadRunner的定位。可以看出,RoadRunner是为自动驾驶仿真测试而服务的。在V流程中,自动驾驶仿真测试包括MIL、SIL、HIL等环节。这三个测试环节都包含了三个要素:
· 车辆模型
· 驾驶场景和传感器模型
· 相关算法(感知、规划、控制等)

自动驾驶仿真测试系统
驾驶场景构建和模拟是自动驾驶仿真测试中非常重要的一个环节,也很大程度上影响着仿真测试的效果。关于驾驶场景构建,市面上已有不少工具,MathWorks也有一定的布局。针对不同的仿真测试需求,MathWorks提供了以下两套方案。

MathWorks的场景方案
第一套方案采用的场景表达工具是MathWorks自己开发的Driving Scenario Designer,可构建“方块式”驾驶场景。它的优点是构建场景方便快捷,与Simulink无缝衔接,不足是构建的场景不逼真,适用于对融合、规划和控制算法的测试。
第二套方案采用的场景表达工具是Epic Games开发的虚幻引擎Unreal Engine。它的优点是构建的场景非常接近真实场景,不足是构建场景不方便、入门难度高。正因为它能模拟出高保真的驾驶场景,所以它也适用于对感知算法进行测试。
从上述可知,MathWorks的这两套方案都是存在一定不足的。MathWorks在2017年推出自动驾驶工具箱Automated Driving Toolbox,并且在之后的每一年都投入了不少精力去完善这个工具箱。由此可以看出,MathWorks很重视自动驾驶相关业务。在笔者看来,MathWorks在自动驾驶方面的耕耘,主要专注于两个领域:自动驾驶算法开发和自动驾驶仿真测试。前者继承MATLAB/Simulink/Stateflow在控制算法开发方面的优势,工具链完整且高质量;后者而言,在收购RoadRunner之前,MathWorks的方案并没有达到优秀的标准。很明显,MathWorks之前的两套场景方案是匹配不上他们想在自动驾驶领域有所建树的期望的。笔者猜测,正是基于这个原因,MathWorks收购了RoadRunner,以弥补自动驾驶仿真测试工具链的不足。

RoadRunner构建的场景
02 RoadRunner是什么
关于RoadRunner是什么,我们直接引用MathWorks对RoadRunner的描述。
RoadRunner 是一个交互式器,可用于针对自动驾驶系统仿真和测试设计三维场景。您可以创建区域特定的道路标志和标记以自定义道路场景。您可以插入标志、信号、护栏和道路损坏,以及绿化、建筑物和其他三维模型。RoadRunner 还提供工具,用于设置和配置交叉路口处的交通信号配时、相位和行车路径。

RoadRunner的界面及元素
借助 RoadRunner Asset Library,您可以使用多种逼真且视觉一致的三维模型快速填充三维场景。
03 RoadRunner有什么特点
笔者在使用RoadRunner一段时间后,初步总结了它的4个特点。
3.1 使用方便,功能强大
RoadRunner操作方便、功能强大、入门难度低。主要的工具如下。
3.1.1 道路工具

从左到右,依次是
· 常规道路部署工具
· 环形道路工具
· 道路界面工具
· 道路高度工具
· 道路截断工具
· 桥梁工具
· 道路滑移工具(包括匝道)
· 道路偏移工具
3.1.2 交叉路口工具

从左到右,依次是:
· 自定义交叉路口工具(两条及以上道路间,自定义构建交叉路口)
· 道路拐角工具(拐角形状)
· 交叉路口表面工具
· 交通走向工具
· 交通灯部署工具
3.1.3 车道工具

从左到右,依次是:
· 车道工具(删除车道,修改车道方向)
· 车道宽度工具
· 车道偏移工具
· Lane add tool
· Lane form tool
· Lane carve tool
· 车道截断工具
· 车道分割工具(将一条宽车道分割成两条窄车道)
Lane add tool、Lane form tool和Lane carve tool的区别可见下图。

3.1.4 标记工具

从左到右,依次是:
· 车道线工具(修改车道线类型,删除整条或者部分车道线,延长车道线等)
· 点状标记工具(添加、删除、点状标记,比如限速标记、方向标记)
· 线形标记工具(添加、删除、线形标记,比如限速路面油污)
· 区域标记工具((添加、删除、区域标记,比如匝道标记)
· 车位标记工具
· 人行道标记工具
3.1.5 道具工具

从左到右,依次是:
· 点状道具工具(点状部署道具,操作一次则部署一个道具)
· 线形道具工具(线形部署道具,操作一次则部署一串道具)
· 区域道具工具(区域部署道具,操作一次则部署一个区域的道具)
· 道具跨度工具(道具间隔)
· 标牌工具(标牌的内容,支持图形、包括中文在内的多种语言)
具体的操作,推荐观看以下视频。
3.2 素材丰富
RoadRunner本身自带一个简单的素材库,同时它还提供了一个插件——RoadRunner Asset Library,提供了丰富素材以构建逼真场景。RoadRunner Asset Library提供的素材有:
· 组件。可自行将一些零件组合成一个组件(如杆子+交通信号灯+路灯),方便复用。

· 建筑。

· Dmage。模拟道路的损坏、污渍等。

· 道路栏杆。

· Marking。包括各种类型的车道线及人行道。

· 材料纹理。

· 树。

· 道路类型。可采用Asset库中现成的道路类型,也可基于这些道路修改成自定义的道路,并将自定义道路保存为一种道路类型,方便复用。

· 交通信号灯。

· 交通标志。

· 交通管控物件。

· 路面交通符号。

· 车辆。

3.3 兼容性好
RoadRunner 支持激光雷达点云、航拍图像和 GIS 数据的可视化。您可以使用OpenDRIVE® 导入和导出道路网络。使用 RoadRunner 构建的三维场景可导出为 FBX®、glTF™、OpenFlight、OpenSceneGraph、OBJ 和 USD 格式。导出的场景可在自动驾驶仿真器和游戏引擎中使用,包括 CARLA、Vires VTD、NVIDIADRIVE Sim®、LGSVL、百度 Apollo®、Unity® 和虚幻引擎 (Unreal® Engine)。
3.3.1 导入GIS数据
3.3.2 导入OpenDRIVE数据
3.3.3 导入FBX文件

3.3.4 导入SVG文件

3.3.5 导出到Unity

百度阿波罗也在使用RoadRunner创建场景并导出到Unity。
“我们目前使用的是RoadRunner,它由VectorZero来开发的。这个软件的功能非常强大,它可以很轻易地各种复杂的路网。
RoadRunner有一个很重要的功能是:它可以导出OpenDRIVE的地图格式,OpenDRIVE是现在比较通用的高精地图格式。我们可以使用脚本把OpenDRIVE地图格式转化成百度阿波罗的高精地图格式。
我们不仅需要每个路有不同车道,还需要这些车道的连接关系。哪个车道能转向哪个车道,哪个车道不能转向哪个车道,这些连接关系RoadRunner都可以帮我们生成,这对自动驾驶模拟是非常重要的。”
3.3.6 导出到虚幻引擎 (Unreal Engine)

3.3.7 导出到LGSVL

3.3.8 导出到CARLA

3.4 性价比不错
对企业而言,相比其他自动驾驶仿真商业软件,RoadRunner的价格不算高。对高校而言,据笔者了解,RoadRunner的价格很低,相当有吸引力。可以在链接(https://ww2.mathworks.cn/help/roadrunner/)中申请试用版,笔者现在用的就是试用版。
04 RoadRunner怎么用
本节不是介绍RoadRunner具体怎么操作,而是介绍RoadRunner怎么结合MATLAB/Simulink的工具链使用。RoadRunner构建的场景可以导出到Driving Scenario Designer和虚幻引擎Unreal Engine。

RoadRunner与MATLAB/Simulink的结合
4.1 RoadRunner结合Driving Scenario Designer
RoadRunner构建的场景可以导出成OpenDRIVE文件,MathWorks的Driving Scenario Designer可以加载该OpenDRIVE文件,从而打通了RoadRunner和Driving Scenario Designer。
4.2 RoadRunner结合Unreal Engine
RoadRunner构建的场景可以导出成FBX文件,Unreal Engine可以加载该FBX文件,复现场景并做逼真的渲染。RoadRunner与Unreal Engine的结合,既实现了方便快捷地构建场景,又实现了对场景的高保真度模拟。同时,Simulink的自动驾驶工具箱Automated Driving Toolbox提供了与Unreal Engine场景交互的摄像头、激光雷达、毫米波雷达等传感器模型,去覆盖Perception-in-loop的应用。

自动驾驶工具箱提供的针对Unreal Engine的传感器模型
05 小结
从笔者的使用体验而言,RoadRunner确实是一个优秀的自动驾驶场景构建工具。在自动驾驶仿真领域,它将掀起多大波澜、占据多少市场,我们拭目以待。
来源:自动驾驶仿真