Unity自动驾驶仿真
最近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
读者如有其他关于资源的建议,欢迎在评论区留言。后续本文如有更新,也会更新在评论区里。
-
汽车测试网V课堂
-
微信公众号
-
汽车测试网手机站
编辑推荐
最新资讯
-
荷兰Zepp氢燃料电池卡车-Europa
2024-12-22 10:13
-
NCACFE -车队油耗经济性报告(2024版)
2024-12-22 10:11
-
R54法规对商用车轮胎的要求(上)
2024-12-22 10:10
-
蔚来ET9数字架构解析
2024-12-22 09:53
-
4G/5G网络新时代的高效紧急呼叫系统NG-eCal
2024-12-20 22:33