Unity自动驾驶仿真

3

主题

8

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2023-3-5 09:32:40 | 显示全部楼层
禁止私自转载,转载请联系作者
目前的开源仿真工具主要是基于Unreal和Unity完成的。前者的代表有Carla和Arisim,后者的代表有lgsvl simulator 和 AriSim_Unity。lgsvl是一个非常好的仿真器,我以后会专门在介绍它。
本篇主要关注基于Unity的自动驾驶仿真开源资源,从wiki和其他网络资源收集而来,重点放在工具总结上面,希望可以作为一个粗略的资源列表。
为什么要做一个新的模拟器

市面上有一些优秀的商业软件,如Prescan,VTD等,但它们非常昂贵。也已有一些开源项目,但它们往往不是基于现代引擎开发的,因而它的图形和通用软件环境可能有些过时。所以基于Unreal或Unity自己搭建一个就是一件比较有意思的事情了,搭建时需要注意以下几点:

  • 不要重复造轮子,要在游戏引擎的基础上构建
  • 要利用成熟的3D游戏工作流、技术、硬件和技术社区
  • 开源
  • 要有可扩展性
  • 要模块化(包括各种输入输出设备,AI,传感器等)
  • 能足够灵活进行原型设计,驱动评估,自动测试
为什么选择Unity

因为它是Unity,就是这么简单,好吧,认真来说,因为Unity

  • 版本迭代稳定
  • 已经有很多基于Unity的项目,有众多游戏和开源项目使用的都是Unity
  • 集成有动画、粒子系统、导航网格、物理、occlusion等各种功能
  • 可以使用C#,Mono等成熟的脚本
  • 可以在win/Linux/Mac等多平台上使用
  • 有良好的社区氛围(众多开发者和素材)
  • 有好的文档支持,包括但不限于官方文档,论坛,第三方教程,youtube等
  • 是创新硬件产品的首选平台(Oculus Rift一种虚拟现实设备, Hydra Razer体感控制器, Leap)
  • 免费/价格较低
  • 不开源,但是可扩展(编写脚本,low level dll等)
为什么建立在游戏平台上

游戏是软件3D软件的集大成者,有大量资源和人力被投入进来改进游戏的技术,可编程着色器、物理引擎、预照明、导航网格、动画混合系统等功能都是游戏引擎支持的,加速家属的应用也可以让游戏软件以实时帧率运行。游戏产业也推动了硬件创新,比如英特尔的GPU开发、罗技G27\G29、TrackIR头部跟踪器、Leap手势传感器、Oculus  Rift和低延迟传感器等输入控制器硬件。利用这种低成本的硬件进行模拟也将允许更多的观众访问功能、价格合理的模拟器。
<hr/>资源 环境搭建

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中直接导入较为困难,可以考虑OSM-CityEngine-Unity3D 的工具链
  • 从点云信息,3D地图建立,发展中。
<hr/>交通流架构

交通流仿真对自动驾驶仿真来说是极其重要的,自动驾驶需要落地,不能永远活在封闭测试场里,它要上路,要面临那些千奇百怪的交通装况。
一些online资源网站


  • Vehicle Traffic Simulation with Unity
  • Martin Treibe  交通计量经济学、建模与统计研究所
  • gamma 该网站可仔细钻研
  • Unity中的A*算法
关于交通流仿真的书


  • 《Fundamentals of Traffic Simulation》
  • 《Verkehrsdynamik und -simulation: Daten, Modelle und Anwendungen der Verkehrsflussdynamik》
  • 《Traffic Flow Dynamics》
非Unity的交通流仿真工具

  • PTV VISSIM

  • PTV VisWalk可以提供给行人仿真(包括人群,对象,路径规划,冲撞避免等)。
  • PTV Balance提供了基于绿波的实时交通数据的自适应信号控制,
  • PTV Optima 大规模交通可视化,态势感知,预测,事件检测。
  • PTV Visum Safety 事故数据分析与检测,分析事故集群


  • SUMO
    SUMO是一种开源的、微观的、多模式的交通模拟仿真器,它允许模拟由单个车辆组成的给定交通流如何通过给定的路网。该模拟允许处理大量的交通情景。它是纯微观的:每一辆车都被明确建模,有自己的路线,并单独通过网络移动。
假如你下载SUMO的包,你会发现它包含许多除去SUMO之外的应用,这是用来导入和预处理路网的,以及它能为SUMO提供一些前期数据准备。
Unity自带的交通流工具


  • iRDS
  • UnitySteer
  • Auto21 Traffic Modeling and Simulation
  • Verkeerstalent
<hr/>天气天时架构

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


  • 太阳位置(仰角,方位角)控制
  • 阳光的颜色和强度由角度和大气散射调制
  • 太阳在低角度会产生眩光效应
  • 天空背景沙河动画(或者至少白天黑夜之间有差别)
  • 通常至少有几个云层
  • 云可以由程序生成和形成动画天气特点
  • 降雨效应
  • 地面效应(滴溅系统、颗粒系统)(积雪融化)
  • 更多效果(吹风,树叶降落)
  • 闪电和纹理(有疑问,不懂)
  • 各种天气的声音
车辆&物理(动力学)、NPC触发、传感器仿真、数据记录

这几项功能是构建一个自动驾驶仿真的必备方式。之后我会基于lgsvl专门再介绍。

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

  • AriSim中的ML Agents工具
  • Arisim_indridge-city
  • synthia-dataset
  • Unity_重构真实世界(用于构建静态测试场景)
  • Unity_simvz
回复

举报 使用道具

6

主题

11

帖子

23

积分

新手上路

Rank: 1

积分
23
发表于 2023-3-5 09:33:40 | 显示全部楼层
文章是机翻么?如果不是的话,“罗技G27车轮”应该算笔误吧
回复

举报 使用道具

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-3-5 09:34:12 | 显示全部楼层
最开始内容比较杂,机翻了五分之一,感谢提醒,我明天修改后再检查一遍。
回复

举报 使用道具

3

主题

5

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2023-3-5 09:34:56 | 显示全部楼层
谢谢作者,对我项目很有帮助!
回复

举报 使用道具

1

主题

5

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-3-5 09:35:35 | 显示全部楼层
感谢认可~
回复

举报 使用道具

0

主题

4

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2023-3-5 09:35:40 | 显示全部楼层
请问楼主,关于unity的数据获取这些,你有文章吗
回复

举报 使用道具

您需要登录后才可以回帖 登录 | 立即注册
快速回复 返回顶部 返回列表