编者按:

最近Unity上市了,网上也有一种自动驾驶仿真第一股的说法。其实这个说法蹭热度的嫌疑居大,毕竟仿真只是Unity众多业务中的一个而已。但话又说回来,Unity做自动驾驶仿真是天经地义的事情,和Unreal等相似,它的技术储备和仿真所需要的技术栈基本上是完美重合的。

目前的开源仿真工具主要是基于Unreal和Unity完成的。前者的代表有Carla和Arisim,后者的代表有lgsvl simulator 和 AriSim_Unity。

本篇主要关注基于Unity的自动驾驶仿真开源资源。这些资源是从wiki和其他网络资源收集而来,分享的重点放在工具总结本身,希望其可以作为一个粗略的资源列表。

Unity为什么适合自动驾驶仿真?

市面上有一些优秀的商业软件,如Prescan、VTD、51Simone等,但它们非常昂贵。网络上也有一些开源项目,但它们中有一大部分不是基于现代引擎开发的,因而其图形和通用软件环境可能有些过时。考虑以上原因,尤其是对于一些初创公司,基于Unreal或Unity自己搭建一个仿真引擎就是一件比较有意思的事了。

如果真的要基于物理引擎搭建一个自动驾驶仿真软件,首要的,要注意以下几点:

  • 不要重复造轮子,在游戏引擎的基础上构建

  • 利用成熟的3D游戏工作流、技术、硬件和技术社区

  • 要有可扩展性

  • 要模块化(包括各种输入输出设备,AI,传感器等)

  • 能足够灵活进行原型设计,驱动评估,自动测试

为什么建立在游戏平台上?

游戏是3D软件的集大成者,近些年有大量资源和人力被投入进来以改进游戏的技术。可编程着色器、物理引擎、预照明、导航网格、动画混合系统等功能都是游戏引擎支持的,加速技术的应用也可以让游戏软件以实时帧率运行。

游戏产业也推动了硬件创新,比如英特尔的GPU开发、罗技G27\G29、TrackIR头部跟踪器、Leap手势传感器、Oculus  Rift和低延迟传感器等输入控制器硬件。利用这种低成本的硬件进行模拟也将允许更多的观众使用功能齐全、价格合理的模拟器。

为什么选择Unity?

其实在我个人看来,Unreal和Unity都是很好的引擎,网络上关于它们的优劣对比文章也很多,在此不再赘述。在这篇文章中我们把注意力放在Unity上。

Unity本身有如下特点:

  • 版本迭代稳定

  • 已经有很多基于Unity的项目,有众多游戏和开源项目使用的都是Unity

  • 集成有动画、粒子系统、导航网格、物理、occlusion等各种功能

  • 可以使用C#,Mono等成熟的脚本

  • 可以在win/Linux/Mac等多平台上使用

  • 有良好的社区氛围(众多开发者和素材)

  • 有好的文档支持,包括但不限于官方文档,论坛,第三方教程,youtube等

  • 是创新硬件产品的首选平台(Oculus Rift等虚拟现实设备, Hydra Razer体感控制器, Leap)

  • 免费/价格较低

  • 不开源,但是可扩展(编写脚本,low level dll等)

资源 

这一节是这篇文章的核心,类似下文描述的资源有很多,但我精力有限,不打算全部列出。有好的建议可以在评论区列出。

环境搭建

Unity本身并不是一个建模工具。它是一个“场景装配”工具和实时游戏引擎。所以详细的3D建模一般都需要在其他工具中完成。

Unity中现成的素材可以很容易地统一起来。在“ 3D Models Category of the Unity Asset   store”里可以用免费或很少的钱购买到Unity中的大量产品。如果你正在寻找一些相关的模型,在资产存储搜索“pack”,例如 Vegetation pack, City pack等等。对于资源包的搜索,网上有大量的整理博客,这里就不再赘述了。当然,你也可以自己建模解决问题。

以下大致提一下地形构建、城市(建筑物)构建、路网(道路)构建的资源。

  • [地形] Terrain Toolkit,YoutubeDemo

  • [地形] WorldComposer,可以从真实环境中构建数据城市(建筑物)构建

  • [城市] CityEngine 快速生成城市模型的软件,功能很强大

  • [城市] ViziCIties 它使用了开放地图数据,结合3d生成的建筑物进行缩放,混合了从英国政府、环保机构到Twitter等各种来源的大数据。

  • [路网] VTP 主要用于基于路网建设的城市,支持较多道路设计文件格式。路网(道路)构建

  • [路网] Road  Architect 以动态交叉口、桥梁等多种道路物体为特色,是非常专业的道路建设软件

  • [路网] EasyRoads3D 特点是能建立众多跟道路相关的对象如栅栏,墙,树等。

  • [路网] 借用OSM-CityEngine-Unity3D 的工具链

  • [路网] RoadRunner,可翻看以前的文章参考

  • [路网] 基于点云信息,3D地图建立,这种反而是和开发生产环境耦合最紧密的方法。


天气天时架构

Unity中提供了一些简单的天时控制和天气控制

  • 太阳位置(仰角,方位角)控制

  • 通过调整角度和大气散射参数调制阳光的颜色和强度

  • 太阳在低角度会产生眩光效应

  • 天空背景沙河动画(或者至少白天黑夜之间有差别)

  • 通常至少有几个云层

  • 云可以由程序生成和形成动画天气特点

  • 降雨效应

  • 地面效应(滴溅系统、颗粒系统)(积雪融化)

  • 吹风,树叶降落等其他效果

  • 闪电等



交通流架构

交通流仿真对自动驾驶仿真来说是极其重要的。这个在我们以前的文章也专门介绍过,可以翻回去回溯。这里首先一些online资源网站

  • Unity-Traffic-Simulation

  • Martin Treibe  交通计量经济学、建模与统计研究所

  • gamma 该网站可仔细钻研

  • Unity中的A*算法

关于交通流仿真的书

  • 《Fundamentals of Traffic Simulation》

  • 《Traffic Flow Dynamics》

  • 《Unity: A General Platform for Intelligent Agents》

  • 《Connection of the SUMO Microscopic Traffic Simulator and the Unity 3D Game Engine to Evaluate V2X Communication-Based Systems》

非Unity的交通流仿真工具

  • PTV VISSIM

  • PTV VisWalk可以提供给行人仿真(包括人群,对象,路径规划,冲撞避免等)。

  • PTV Balance提供了基于绿波的实时交通数据的自适应信号控制,

  • PTV Optima 大规模交通可视化,态势感知,预测,事件检测。

  • PTV Visum Safety 事故数据分析与检测,分析事故集群

  • SUMO

Unity自带的交通流工具

  • iRDS

  • UnitySteer

  • Auto21 Traffic Modeling and Simulation

  • Verkeerstalent


Unity官方支持的自动驾驶仿真项目和工具

  • AriSim中的ML Agents工具

  • Unity Windridge-city

  • synthia-dataset

  • 摄影制图法工作流程指南

  • Unity_simvz

读者如有其他关于资源的建议,欢迎在评论区留言。后续本文如有更新,也会更新在评论区里。

Unity自动驾驶仿真相关推荐

  1. Airsim+UnrealEngine4 搭建无人车/无人机自动驾驶仿真环境

    文章目录 1. Airsim 概述 2. Unreal Engine 概述 3. 在Linux下环境搭建 3.1. 手动 编译安装 UnrealEngine 3.2 编译airsim 插件 3.3 使 ...

  2. python仿真智能驾驶_自动驾驶仿真工程师

    禁止私自转载,转载请联系作者. 想要做一个自动驾驶仿真工程师,我们要学的还远远不够. 对自动驾驶仿真工程师这个岗位,相关介绍还是少了些.有些公司是直接把它纳入到基础架构组里,有些是单独招聘这个岗位,还 ...

  3. 简析LGSVL自动驾驶仿真系统

    文章目录 摘要 1 引言 2 软件架构 2.1 自动驾驶算法引擎接口 2.2 仿真引擎 2.3 传感器和主车模型 2.4 3D环境和高精度地图 2.5 场景数据管理 3 软件应用领域 3.1 SIL和 ...

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

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

  5. 自动驾驶仿真测试标准ASAM OpenX简介

    声明:偶尔转载的文章出于非商业性的教育和科研目的,并不意味着支持其观点或证实其内容的实行,欢迎大家评论发表自己的意见.版权归原作者所有,如转载稿涉及版权等问题,请立即联系我们,我们会予以更改或删除相关 ...

  6. 介绍一款开源的自动驾驶仿真模拟器-Carla

    大家好,我是李慢慢. 不管你是一个自动驾驶的算法工程师,还是仿真工程师,不管你是业界大佬还是小白,我都建议你了解甚至使用一下这个软件. 目录: 0.前言 1.Carla简介 2.Carla的官方资源 ...

  7. 对自动驾驶仿真软件研发方向的看法

    快毕业了,计划入职的公司的产品经理,让我写一下关于使用Carla的使用心得,所以就简单得写了一下,我个人对自动驾驶仿真软件的看法. 对自动驾驶软件的个人看法 在介绍Carla的基本功能前,我想先说一下 ...

  8. 自动驾驶系统入门(八)- 自动驾驶仿真技术

    1.什么是自动驾驶汽车 1.1 基本概念定义 1)自动驾驶汽车是通过搭载先进的车载传感器.控制器和数据处理器.执行机构等装置,借助车联网.5G和V2X等现代移动通信与网络技术实现交通参与物与彼此间的互 ...

  9. 北京内推 | 华为诺亚方舟实验室招聘自动驾驶仿真实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 华为 诺亚方舟实验室(Noah's Ark Lab)是华为公司从事人工智能 ...

最新文章

  1. ebnf描述c语言语句结构,EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则...
  2. 【强烈推荐】国土档案管理信息系统产品使用说明书系列目录【附下载地址】...
  3. 深入了解WM_SIZE
  4. GDCM:重写ELSCINT1 / PMSCT_RGB1压缩图像的测试程序
  5. linux关闭沙盒模式,打开或关闭沙盒模式以禁用宏
  6. 95-190-742-源码-WindowFunction-AllWindowFunction
  7. 教你三种Model(AR)中自定义验证规则的方法
  8. linux proc目录 是什么意思,linux 下proc目录里面有什么
  9. haskell 基础题解(20)
  10. Android高仿微信图片多选功能
  11. #Paper Reading# Implicit Neural Representations with Periodic Activation Functions
  12. Redis分片入门案例
  13. 计算机打不开guest用户,老司机应对win10系统打不开guest账户的恢复步骤
  14. 高防CDN如何防护CC攻击
  15. 永磁同步电机矢量控制中的双闭环是什么意思_电机控制发展方向
  16. 本体创始人李俊:公链和跨界是未来区块链发展的关键(GBCAX)
  17. 音乐剪辑软件哪个比较好用?
  18. ppst技术视频——spring3.0 注解定时任务配置
  19. 2D游戏入门——小狐狸系列(六)为人物添加动画
  20. 一种室内定位免采集室内店铺Wi-Fi指纹填充算法

热门文章

  1. 常用图标(ICON)清单
  2. C语言编程>第十二周 ③ 已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数。
  3. 模拟摄像头CCD板机揭秘
  4. Windows系统忘记开机密码解决方案
  5. IDA*算法实现的数字拼图游戏
  6. GEE (Google Earth Engine)高阶学习一 影像分割
  7. 学生机房随堂测试软件,全智能考试系统——随堂评测考试系统
  8. K8S 集群部署(快速部署一个 K8S 集群)
  9. 计算机连接网络被限制,wifi连接被限制怎么办,教您wifi显示网络受限如何解决
  10. 数据上采样和下采样_采样不足以配置您的ml数据