-
实时仿真用户案例
Crank-嵌入式GUI设计和开发用户案例
021-64886750
-
实时目标机
Simulink模型库
Demo套件
info@yisuworld.com
RoadRunner在自动驾驶实时仿真测试中的应用
前言
实时仿真测试是在实时环境下对相关算法、控制器进行功能和性能测试的一种手段。自动驾驶领域的实时仿真测试,借助实时系统模拟真实车辆状态、驾驶场景,在这种高保真的环境下对被测对象进行有效测试。相比实车测试,基于场景的实时仿真测试具有诸多优点,包括测试成本低、场景可复用、corner case易实现等。
因此,驾驶场景对于自动驾驶实时仿真测试系统而言意义重大,构建驾驶场景也成了搭建测试系统的一项重要工作。在这方面,存在一个普遍的难题——如何高效地构建逼真的场景。针对该难题,MathWorks最近发布了一个自动驾驶场景构建工具——RoadRunner,该工具操作简便、功能强大、素材丰富,极大地提升了场景构建的效率和质量。RoadRunner的推出使得MathWorks在自动驾驶领域如虎添翼,让用户在搭建测试系统时更加游刃有余。
1. RoadRunner的基本介绍
RoadRunner 是一个交互式编辑器,可用于针对自动驾驶系统仿真和测试设计三维场景。您可以创建区域特定的道路标志和标记以自定义道路场景。您可以插入标志、信号、护栏和道路损坏,以及绿化、建筑物和其他三维模型。RoadRunner 还提供工具,用于设置和配置交叉路口处的交通信号配时、相位和行车路径。
2. RoadRunner的特点
2.1 使用方便,功能强大
RoadRunner入门难度低、操作简便、功能强大,提供如下的丰富操作工具。
l 道路工具。功能包括:构建各种类型的道路,编辑道路的高度、宽度、截面形状等等。
l 交叉路口工具。功能包括:自定义交叉路口连接形式,部署交通灯,编辑拐角形状、交通逻辑等。
l 车道工具。功能包括:添加、删除、分割、截断车道,编辑车道宽度、分支、形状等。
l 标记工具。功能包括:部署点状、线形、区域标记,标记车位、人行道,编辑车道线等。
l 道具工具。功能包括:部署点状、线形、区域道具,编辑道具跨度,编辑路牌等。
2.2 素材丰富
RoadRunner本身自带一个简单的素材库,同时MathWorks还发布了一个插件——RoadRunner Asset Library,提供了丰富的素材以构建复杂场景。
RoadRunner Asset Library提供的主要素材有:
l 道路类型。用户可采用Asset库中现成道路类型,也可基于这些类型自定义道路,并将自定义道路保存为一种道路类型,方便复用。
l 道路栏杆、路面污损、路牌。
l 交通信号灯、交通标志、路面交通符号。
l 材料纹理。可用自带的,也可从外部导入。
l 建筑、车辆、树。
l 组件。用户可自行将一些零件组合成一个组件(如杆子+交通信号灯+路灯),方便复用。
2.3 兼容性好
RoadRunner 支持导入激光雷达点云、航拍图像和GIS数据。用户可使用OpenDRIVE导入和导出道路网络。使用RoadRunner 构建的三维场景可导出为 FBX、glTF、OpenFlight、OpenSceneGraph、OBJ 和 USD 格式。导出的场景可在自动驾驶仿真器和游戏引擎中使用,包括 CARLA、Vires VTD、NVIDIA DRIVE Sim、LGSVL、百度Apollo、Unity和虚幻引擎 (Unreal Engine)。
3. RoadRunner导出到虚幻引擎(Unreal Engine)
虚幻引擎(Unreal Engine)是Epic Games开发的商业游戏引擎。在MathWorks的工具链中,RoadRunner和虚幻引擎结合使用,两者各有分工:RoadRunner用以构建驾驶场景;虚幻引擎对RoadRunner构建的场景做逼真的渲染,而且最终与Simulink进行联合仿真的也是虚幻引擎。因此,用户无须直接在虚幻引擎中搭建场景(这个工作的入门难度较高)。
在RoadRunner中构建好场景后,可将场景导出成FBX文件。
在虚幻引擎的Unreal Editor中,从内容浏览器界面导入该FBX文件。
通过以上两步,便能实现从RoadRunner导出场景到虚幻引擎。下图右侧是RoadRunner构建的场景,左侧是导出到虚幻引擎后的场景。
MathWorks的这套方案,充分发挥了RoadRunner和虚幻引擎的优点,解决了高效构建逼真场景的难题。
4. 虚幻引擎与Simulink联合仿真
虚幻引擎与Simulink的联合仿真,主要借助于Mathworks产品:车辆动力学工具箱Vehicle Dynamics Blockset的Simulation 3D Scene Configuration模块。
该模块对于场景来源(Scene source)有三个选项:Default Scenes,Unreal Executable和Unreal Editor。前者使用的是MathWorks提供的自带参考场景,后两者可使用自定义场景。Unreal Editor和Unreal Executable正好对应使用自定义场景进行联合仿真的两种模式。
- Unreal Editor。 这种模式下,Unreal Editor加载RoadRunner构建的场景后,直接与Simulink联合仿真。在联合仿真的过程中,Unreal Editor一直是运行状态。在测试早期,用户可能需要根据测试需求调整场景设置,那么便适用于这种模式。
- Unreal Executable。当测试场景基本固定之后,用户可在Unreal Editor中将场景打包成一个可执行文件,并在Simulation 3D Scene Configuration模块中加载该文件,实现与Simulink联合仿真。这种模式下,联合仿真过程中不再需要打开Unreal Editor,场景是以独立窗口的形式来呈现及运行的,可减少对电脑资源的消耗。
5. 基于RoadRunner的自动驾驶实时仿真测试实例
基于RoadRunner构建的场景,结合MATLAB、虚幻引擎和Speedgoat实时硬件,我们构建了一套自动驾驶实时仿真测试系统。其中,Speedgoat是MathWorks官方硬件平台,支持实时运行车辆模型或自动驾驶算法。Simulink模型可一键编译、下载、运行到Speedgoat实时硬件。
整个系统的组成如下图:
硬件主要包括:
- 上位机电脑,运行场景和传感器模型。
- 驾驶操纵平台,模拟驾驶员对车辆的操纵。
- Speedgoat原型控制器——Baseline Real-Time Target Machine,运行融合、决策、控制算法。
规格参数如下:
名称 |
Baseline-S |
Baseline-M |
CPU |
Intel Celeron 2GHz 4cores |
Intel Celeron 2GHz 4cores |
实时操作系统 |
Simulink Real-Time |
Simulink Real-Time |
内存 |
4GB DDR3 RAM |
4GB DDR3 RAM |
存储空间 |
32GB SSD |
32GB SSD |
上位机接口Ethernet |
1 |
1 |
千兆网口,用于 Real-Time UDP、TCP/IP等 |
2 |
2 |
IO板卡安装插槽 |
4 x mPCIe |
4 x mPCIe 2 x XMC/PMC/CMC |
- Speedgoat高性能实时仿真设备——Performance Real-Time Target Machine,运行车辆模型。
规格参数如下:
名称 |
Performance |
20-core Performance |
CPU |
Intel Core i7 4.2GHz 4cores |
Intel Xeon 3.1GHz 20cores |
实时操作系统 |
Simulink Real-Time |
Simulink Real-Time |
内存 |
4GB DDR4 RAM |
16GB DDR4 RAM |
存储空间 |
120GB SSD |
120GB SSD |
上位机接口Ethernet |
1 |
1 |
千兆网口,用于 Real-Time UDP、TCP/IP等 |
1 |
1 |
IO板卡安装插槽(可扩展) |
3 x PCI 4 x PCIe Gen3 (2x8, 2x4) |
4 x PCIe Gen3 (3x8, 1x4) 1 x PCIe Gen2 (1x4) |
软件主要包括:
- MATLAB R2020a。
- RoadRunner,用以构建驾驶场景。
- 虚幻引擎(Unreal Engine),加载RoadRunner构建的场景文件,渲染场景,与Simulink交互。
- Speedgoat驱动库,以Simulink工具箱的形式呈现,提供IO、CAN、UDP等的Simulink驱动模块。
主要相关的工具箱如下表:
运行平台 |
工具箱名称 |
工具箱作用 |
上位机电脑 |
Automated Driving Toolbox |
提供传感器模型 |
Speedgoat 原型控制器 |
Sensor Fusion and Tracking Toolbox |
传感器融合与目标跟踪 |
Model Predictive Control Toolbox |
车辆控制 |
|
Simulink Real-Time |
支持Speedgoat实时仿真 |
|
Speedgoat 高性能实时仿真设备 |
Vehicle Dynamics Blockset |
车辆动力学部分建模 |
Powertrain Blockset |
车辆传动系统建模 |
|
Simulink Real-Time |
支持Speedgoat实时仿真 |
基于上述系统,可实现对不同级别自动驾驶功能的测试,以下述两种应用为例。
1.基础的驾驶员在环测试
自定义构建各种驾驶场景,测试车辆动态控制等算法。关于驾驶员在环系统的搭建,可参见speedgoat公众号的一篇文章:
2.自动紧急制动(AEB)的实时仿真测试
该系统中,Speedgoat Baseline Real-Time Target Machine运行AEB算法(算法参考自MATLAB的AEB demo),Speedgoat Performance Real-Time Target Machine运行车辆模型(模型参考MATLAB的示例整车模型)。
-
电力电子(含控制器和被控对象模型)
凭借多年在电力电子行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
轨道交通(含控制器和被控对象模型)
凭借多年在轨道交通行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
信号调理系统
在HIL测试中,硬件在环设备起到模拟被测ECU被控对象的作用。需要根据ECU的PIN脚信息,模拟相应信号。这类设备的核心为实时系统,实时系统会提供相应IO通道,处理信号的产生和采集。但这类IO通道一般为标准规格,比如数字通道为TTL规格,模拟通道只是测电压等;这与被测ECU所需的信号规格有较大差异,故需要一套信号调理系统,负责两者之间信号的转接。¥ 0.00立即购买
-
电机控制Demo套件
使用Simulink和Speedgoat转动无刷直流电机。¥ 0.00立即购买
实时目标机
仿真测试应用场景
学习与支持
关注熠速微信公众号
仿真测试解决方案
I/O接口模块
通讯协议模块
FPGA技术
被控部件仿真
Simulink模型库
Demo套件
测量测试解决方案