之前的文章《MATLAB/Simulink自动驾驶工具箱之Driving Scenario Designer》提到了MathWorks自己开发的场景构建工具Driving Scenario Designer主要是用作Control-in-loop应用的测试和验证,不适用于构建逼真的驾驶场景。对于Perception-in-loop的应用,需要高保真度的场景和传感器模型,需要能够合成逼真的图像和激光雷达点云数据等等。

市面上有不少能满足Perception-in-loop应用的场景软件,这些软件一般都提供了Simulink的接口,可以与Simulink进行联合仿真。这些软件的Simulink接口,多是软件公司自主开发的,所以MATLAB/Simulink更多的是作为一个兼容平台,对于场景和传感器模型这块,MathWorks的直接参与度并不高。

但其实,MathWorks对于构建高保真度的驾驶场景和传感器模型,有自己的一套解决方案:MathWorks结合游戏引擎Unreal Engine构建驾驶场景,并提供了与Unreal Engine场景交互的摄像头、激光雷达、毫米波雷达等传感器模型,去覆盖Perception-in-loop的应用

Unreal Engine与MATLAB/Simulink

所以这篇文章,我们来聊一聊MATLAB/Simulink如何结合Unreal Engine去构建高保真度的驾驶场景。先来看一段视频,视频中将真实世界的场景和Unreal Engine构建的虚拟场景放在一起作对比。你能分辨出来哪个是真实世界,哪个是虚拟世界吗?

真实场景与虚拟场景对比https://www.zhihu.com/video/1229758311593390080

当初在看这段视频的时候,真的是真真假假傻傻分不出来的。哪个真哪个假,下图来揭晓谜底。

左边是Unreal Engine构建的虚拟场景,右边是真实场景。

原版完整的视频如下链接。

NVIDIA DRIVE Constellation 提供自动驾驶汽车虚拟安全测试。​www.nvidia.cn

这个其实是英伟达介绍它的硬件在环测试平台NVIDIA DRIVE Constellation的视频。DRIVE Constellation平台包含两台服务器:第一台服务器运行 DRIVE Sim 软件,以模拟自动驾驶汽车的各种传感器,从摄像头到激光雷达和普通雷达均包括在内。强大的 GPU 可生成逼真数据流,从而创建各种测试环境和场景。第二台服务器包含一台功能强大的 DRIVE AGX Pegasus AI 车载计算机,负责处理第一台服务器合成的模拟数据,基于处理结果去控制在模拟环境中行驶的虚拟车辆,从而验证相关算法。

英伟达的描述中,它的软件叫DRIVE Sim。视频中出现的场景构建软件的画面,很明显便是Unreal Engine,而且视频截图(下图)左上角就是Unreal Engine的标志。DRIVE Sim应该是基于Unreal Engine开发的。

Unreal Engine(虚幻引擎,简称Unreal),由Epic开发,是世界知名的游戏引擎之一,占有全球商用游戏引擎很高的市场份额。Unreal开发的游戏,代表作有《战争机器》系列,《质量效应》系列,《绝地求生》……作为还停留在《魂斗罗》、《超级玛丽》、《坦克大战》的原始人,其实完全不了解这些游戏……

Unreal的强大是毋庸置疑的, @王方浩 兄台的文章提到AirSim和Carla就是用Unreal渲染的。

王方浩:自动驾驶仿真平台​zhuanlan.zhihu.com

PreScan、Carmaker、MotionDesk等软件的新版本都开始使用Unreal来渲染场景。

说了那么多,书回正传,我们还是聊回到MATLAB/Simulink和Unreal。

一、在Simulink中使用Unreal场景的三种模式

Simulink的Automated Driving Toolbox中与Unreal交互的模块主要在Simulation 3D中。

Simulink使用Unreal的场景有三种模式——Default Scenes、Unreal Executable和Unreal Editor,可以在Simulation 3D Scene Configuration模块中通过选择Scene Source来设置。

Default Scenes——直接使用MathWorks预构建的Unreal场景。

Unreal Executable——用户可以在Unreal中自行构建场景,并将构建好的场景打包成可执行文件,加载在Simulation 3D Scene Configuration模块中。仿真时无需打开Unreal Editor。

Unreal Editor——用户可以在Unreal中自行构建场景,仿真的时候需要打开Unreal Editor,实现Simulink与Unreal Editor的联合仿真,可以基于仿真结果在Unreal Editor中调整场景。

Default Scenes采用的是MathWorks预构建好的场景,Unreal Executable和Unreal Editor都支持用户自定义场景。

1、基于预构建的场景

这种方式使用方便,可以让用户快速了解如何使用Simulink和Unreal进行驾驶场景模拟仿真以及仿真效果如何。MathWorks提供了多个典型的预构建场景。

MathWorks提供的预构建Unreal场景​www.mathworks.com

值得一提的是Virtual Mcity的场景。我们之前基于这个场景搭建过一套驾驶员在环的系统。

驾驶员在环系统

驾驶效果如下视频。

Virtual Mcity的驾驶场景https://www.zhihu.com/video/1229793015729848320

2、用户自定义场景

Unreal Executable和Unreal Editor模式可以使用自行构建的驾驶场景。具体的构建方法,参见MathWorks帮助文档:

Customize 3D Scenes for Automated Driving​www.mathworks.com

总的来说分为三步:

  1. Install Support Package for Customizing Scenes
  2. Customize Scenes Using Simulink and Unreal Editor
  3. Package Custom Scenes into Executable

在构建场景之前需要先安装Unreal Engine(MATLAB R2020a对应的版本是Unreal Engine 4.23;之前的MATLAB版本对应的Unreal版本是Unreal Engine 4.19),可以通过Epic Games Launcher选择要下载的版本。

同时也要安装MATLAB的Unreal Engine插件,可以在MATLAB的add on中搜索到。

二、使用Unreal Engine搭建驾驶场景

Unreal对运行的PC是有一定要求的。

软件要求:

  • Windows® 64-bit platform
  • Visual Studio® 2017 or newer (for customizing scenes)
  • Microsoft® DirectX® — If this software is not already installed on your machine and you try to simulate in the 3D environment, Automated Driving Toolbox prompts you to install it. Once you install the software, you must restart the simulation.

最小的硬件要求:

  • Graphics card (GPU) — Virtual reality-ready with 8 GB of on-board RAM
  • Processor (CPU) — 2.60 GHz
  • Memory (RAM) — 12 GB

从英伟达的视频中,可以一窥Unreal搭建场景的大概方法(英伟达可能做了二次开发,使用应该比原版Unreal更方便)。

视频声音有点大,公共场合打开的时候请注意调节音量

https://www.zhihu.com/video/1229802743755812864

Unreal Engine提供了丰富的素材可用以创建逼真的驾驶场景。

下面这个Unreal基础教程相当不错。

UE4初学者系列教程-《基础入门合集》-全中文新手教程​www.bilibili.com

除了自行构建场景,虚幻商城上也有一些现成的道具、素材,用户可以购买使用。

虚幻商城​www.unrealengine.com

三、Simulink中针对Unreal Engine的传感器模型

以上内容,主要涉及的是驾驶场景。整个闭环中,除了驾驶场景,还需要传感器模型。MathWorks开发了针对Unreal场景的传感器模型,在Automated Driving Toolbox的Simulation 3D中。

可以直接将这些传感器模块拖拽到Simulink模型中,仿真过程中,这些传感器能输出对应的传感器信息。

一个简单的demo,以鱼眼摄像头为例,来看看这些传感器模块是怎么用的、有什么效果。

鱼眼摄像头demo​www.mathworks.com

鱼眼摄像头的Image接口输出图像RGB数据,上图中Video Viewer模块将这些数据可视化,也就是显示鱼眼摄像头拍到的图像,仿真的视频如下。视频窗口中,左侧是仿真场景,右侧是装在后车上的鱼眼摄像头拍到的图像。

鱼眼摄像头模型成像视频https://www.zhihu.com/video/1229827470427643904

鱼眼摄像头模块能输出RGB数据,而单目摄像头模块不仅能输出RGB数据,还能输出深度图和语义分割图,如下图。

毫米波雷达模块输出的是检测到的目标信息,包括位置、速度等。

激光雷达模块能输出点云数据,早在2016/2017年的时候,MathWorks就和通用合作,成功实现合成虚拟场景的Velodyne 32线激光雷达点云数据,如下图。

MathWorks也提供了合成点云数据的demo。

激光雷达传感器模型合成点云数据​www.mathworks.com

仿真结果,如下视频。

合成激光雷达点云数据https://www.zhihu.com/video/1229815262633500672

四、MathWorks提供的与Unreal Engine相关的examples

Unreal Engine Driving Scenario Simulation — Examples​www.mathworks.com

其中几个比较典型的示例有:

Highway Lane Following高速公路车道跟随​www.mathworks.com

https://www.zhihu.com/video/1229852226413211648Visualize Depth and Semantic Segmentation Data in 3D Environment​www.mathworks.com

https://www.zhihu.com/video/1229859938391740416Design Lidar SLAM Algorithm Using 3D Simulation Environment​www.mathworks.com

matlab如何打开dcm_MATLAB结合Unreal Engine构建用以自动驾驶仿真测试的逼真驾驶场景...相关推荐

  1. 基于Unreal Engine 2的救援机器人仿真平台开发(一)

    Ureal Engine(以下简称UE)是Epic Games开发的游戏引擎.他与游戏Ureal Tournament 2004(UT2004)一起发布.UE和UT2004都分别发布了Windows, ...

  2. matlab如何打开dcm_MatLab 与 visual studio 混合编程环境配置

    一.本文可以应用与以下matlab和visual studio版本: MatLab: Matlab2017a,Matlab2017b,Matlab2018a,MatLab2018b,MatLab201 ...

  3. matlab如何打开dcm_MATLAB绘图干货

    MATLAB绘图干货 作为理工科学生,在写学术论文时,需要很多的配图,毫无疑问,要想写出一篇优秀论文,精美的插图能力是必须的.插图被称作论文的眼睛,起到画龙点睛的作用.所以接下里教大家如何插入高清.优 ...

  4. matlab如何打开dcm_Matlab绘图简明手册

    1.准备数据 x matlab几大优点, 1.原生对数学库的支持(而非引入类) 2.语义化切片向量 3.自动广播函数(sin(x)即对所有x实行了sin()函数) 2.绘制 plot 注意plot会自 ...

  5. matlab您的安装可能需要执行其他配置步骤_手把手超详细介绍MATLAB+RoadRunner+Unreal Engine自动驾驶联合仿真...

    RoadRuner是MathWorks新收购的自动驾驶场景构建工具,Unreal Engine是商业游戏引擎.RoadRunner创建驾驶场景,导入到Unreal Engine,与Simulink联合 ...

  6. 腾讯TAD Sim2.0领跑自动驾驶仿真市场 双擎驱动构建新一代仿真平台

    随着自动驾驶领域硬件.算法等方面的快速发展,虚拟仿真技术在自动驾驶研发和测试领域的应用日渐广泛,成为自动驾驶量产应用的必备工具,城市智慧交通调度管理和相关法规制定的有力辅助. 在这片行业竞争新高地上, ...

  7. 智能驾驶仿真场景构建技术

    随着汽车智能化程度的不断提高,智能汽车通过环境传感器与周边行驶环境的信息交互与互联更为密切,需应对的行驶环境状况也越来越复杂,包括行驶道路.周边交通和气象条件等诸多因素,具有较强的不确定性.难以重复. ...

  8. matlab仿真超声波测距,汽车倒车雷达的Simulink仿真测试

    龙源期刊网 http://www.doczj.com/doc/bcabe4130d22590102020740be1e650e53eacf2a.html 汽车倒车雷达的Simulink仿真测试 作者: ...

  9. 回顾:鲍世强,讲述51VR自动驾驶仿真平台从0-1的开发与构建

    L3及其以上级别自动驾驶车辆的开发,在系统复杂程度.使用环境复杂程度方面均急剧增加.传统开发ADAS算法的仿真工具已无法完美解决当前更高级别的自动驾驶开发问题.仿真平台便成为自动驾驶企业的刚性需求. ...

最新文章

  1. pandas读取csv文件,变换文件格式,并转换成numpy数组,取出数据
  2. 全球投资者为阿里尖叫!阿里CEO张勇详解天猫商业新力量
  3. python基础知识整理-python爬虫基础知识点整理
  4. C#中的非托管资源释放(FinalizeDispose)
  5. Linux-sed文本处理流编辑器
  6. 在SQL 语句批量替换数据库字符串的方法
  7. static_cast、dynamic_cast、const_cast和reinterpret_cast总结
  8. 中传计算机学院考研笔记,中传考研 新闻编辑重点笔记 整理版.doc
  9. 重磅!2021年考研国家线公布!
  10. 中国电信:张志勇辞任公司执行副总裁
  11. 随手刷屏的波士顿动力机器人,用3D打印解决了哪些问题
  12. import java.io用什么写_问问各位大佬,使用了fiilewrite,为什么写入不到文件
  13. Python爬虫实战源码合集(持续更新)
  14. [渝粤教育] 西南科技大学 作物生产新理论与新技术 在线考试复习资料
  15. 一百分成3 3 4怎么用计算机算,计算机组成原理试卷三
  16. 烽火HG680-KA机顶盒 卡开机界面、救砖、强刷失败、ADB教程及固件分享
  17. 智慧城管拓展业务系统建设方案
  18. 关于区块链的一点经济学思考
  19. 毕业论文中word的使用1-代码域标公式
  20. Art of Problem Solving: Proof without Words

热门文章

  1. Emacs: 英文单词(或唐诗宋词/其它词库)补全
  2. 不同相控阵雷达天线阵列特性的MATLAB仿真分析
  3. 程序员不把肾养好,老婆跟人跑
  4. 电脑小问题:定时关机的设置
  5. pycharm更改黑色主题
  6. 《初雪之恋》唯美镜头
  7. Python入门(九)正则
  8. 2021-2027全球与中国汽车导航地图市场现状及未来发展趋势
  9. 修改金蝶加密服务器特征码,【金蝶KIS标准版】软加密用户如何查询软件特征码...
  10. 80c51定时1秒汇编语言,80C51汇编语言.ppt