Unity自动驾驶仿真
編者按:
最近Unity上市了,網(wǎng)上也有一種自動駕駛仿真第一股的說法。其實這個說法蹭熱度的嫌疑居大,畢竟仿真只是Unity眾多業(yè)務(wù)中的一個而已。但話又說回來,Unity做自動駕駛仿真是天經(jīng)地義的事情,和Unreal等相似,它的技術(shù)儲備和仿真所需要的技術(shù)棧基本上是完美重合的。
目前的開源仿真工具主要是基于Unreal和Unity完成的。前者的代表有Carla和Arisim,后者的代表有l(wèi)gsvl simulator 和 AriSim_Unity。
本篇主要關(guān)注基于Unity的自動駕駛仿真開源資源。這些資源是從wiki和其他網(wǎng)絡(luò)資源收集而來,分享的重點放在工具總結(jié)本身,希望其可以作為一個粗略的資源列表。
Unity為什么適合自動駕駛仿真?
市面上有一些優(yōu)秀的商業(yè)軟件,如Prescan、VTD、51Simone等,但它們非常昂貴。網(wǎng)絡(luò)上也有一些開源項目,但它們中有一大部分不是基于現(xiàn)代引擎開發(fā)的,因而其圖形和通用軟件環(huán)境可能有些過時。考慮以上原因,尤其是對于一些初創(chuàng)公司,基于Unreal或Unity自己搭建一個仿真引擎就是一件比較有意思的事了。
如果真的要基于物理引擎搭建一個自動駕駛仿真軟件,首要的,要注意以下幾點:
不要重復(fù)造輪子,在游戲引擎的基礎(chǔ)上構(gòu)建
利用成熟的3D游戲工作流、技術(shù)、硬件和技術(shù)社區(qū)
要有可擴展性
要模塊化(包括各種輸入輸出設(shè)備,AI,傳感器等)
能足夠靈活進行原型設(shè)計,驅(qū)動評估,自動測試
為什么建立在游戲平臺上?
游戲是3D軟件的集大成者,近些年有大量資源和人力被投入進來以改進游戲的技術(shù)。可編程著色器、物理引擎、預(yù)照明、導(dǎo)航網(wǎng)格、動畫混合系統(tǒng)等功能都是游戲引擎支持的,加速技術(shù)的應(yīng)用也可以讓游戲軟件以實時幀率運行。
游戲產(chǎn)業(yè)也推動了硬件創(chuàng)新,比如英特爾的GPU開發(fā)、羅技G27\G29、TrackIR頭部跟蹤器、Leap手勢傳感器、Oculus ?Rift和低延遲傳感器等輸入控制器硬件。利用這種低成本的硬件進行模擬也將允許更多的觀眾使用功能齊全、價格合理的模擬器。
為什么選擇Unity?
其實在我個人看來,Unreal和Unity都是很好的引擎,網(wǎng)絡(luò)上關(guān)于它們的優(yōu)劣對比文章也很多,在此不再贅述。在這篇文章中我們把注意力放在Unity上。
Unity本身有如下特點:
版本迭代穩(wěn)定
已經(jīng)有很多基于Unity的項目,有眾多游戲和開源項目使用的都是Unity
集成有動畫、粒子系統(tǒng)、導(dǎo)航網(wǎng)格、物理、occlusion等各種功能
可以使用C#,Mono等成熟的腳本
可以在win/Linux/Mac等多平臺上使用
有良好的社區(qū)氛圍(眾多開發(fā)者和素材)
有好的文檔支持,包括但不限于官方文檔,論壇,第三方教程,youtube等
是創(chuàng)新硬件產(chǎn)品的首選平臺(Oculus Rift等虛擬現(xiàn)實設(shè)備, Hydra Razer體感控制器, Leap)
免費/價格較低
不開源,但是可擴展(編寫腳本,low level dll等)
資源?
這一節(jié)是這篇文章的核心,類似下文描述的資源有很多,但我精力有限,不打算全部列出。有好的建議可以在評論區(qū)列出。
環(huán)境搭建
Unity本身并不是一個建模工具。它是一個“場景裝配”工具和實時游戲引擎。所以詳細的3D建模一般都需要在其他工具中完成。
Unity中現(xiàn)成的素材可以很容易地統(tǒng)一起來。在“ 3D Models Category of the Unity Asset ? store”里可以用免費或很少的錢購買到Unity中的大量產(chǎn)品。如果你正在尋找一些相關(guān)的模型,在資產(chǎn)存儲搜索“pack”,例如 Vegetation pack, City pack等等。對于資源包的搜索,網(wǎng)上有大量的整理博客,這里就不再贅述了。當(dāng)然,你也可以自己建模解決問題。
以下大致提一下地形構(gòu)建、城市(建筑物)構(gòu)建、路網(wǎng)(道路)構(gòu)建的資源。
[地形] Terrain Toolkit,YoutubeDemo
[地形] WorldComposer,可以從真實環(huán)境中構(gòu)建數(shù)據(jù)城市(建筑物)構(gòu)建
[城市] CityEngine 快速生成城市模型的軟件,功能很強大
[城市] ViziCIties 它使用了開放地圖數(shù)據(jù),結(jié)合3d生成的建筑物進行縮放,混合了從英國政府、環(huán)保機構(gòu)到Twitter等各種來源的大數(shù)據(jù)。
[路網(wǎng)] VTP 主要用于基于路網(wǎng)建設(shè)的城市,支持較多道路設(shè)計文件格式。路網(wǎng)(道路)構(gòu)建
[路網(wǎng)] Road ?Architect 以動態(tài)交叉口、橋梁等多種道路物體為特色,是非常專業(yè)的道路建設(shè)軟件
[路網(wǎng)] EasyRoads3D 特點是能建立眾多跟道路相關(guān)的對象如柵欄,墻,樹等。
[路網(wǎng)] 借用OSM-CityEngine-Unity3D 的工具鏈
[路網(wǎng)] RoadRunner,可翻看以前的文章參考
[路網(wǎng)]?基于點云信息,3D地圖建立,這種反而是和開發(fā)生產(chǎn)環(huán)境耦合最緊密的方法。
天氣天時架構(gòu)
Unity中提供了一些簡單的天時控制和天氣控制
太陽位置(仰角,方位角)控制
通過調(diào)整角度和大氣散射參數(shù)調(diào)制陽光的顏色和強度
太陽在低角度會產(chǎn)生眩光效應(yīng)
天空背景沙河動畫(或者至少白天黑夜之間有差別)
通常至少有幾個云層
云可以由程序生成和形成動畫天氣特點
降雨效應(yīng)
地面效應(yīng)(滴濺系統(tǒng)、顆粒系統(tǒng))(積雪融化)
吹風(fēng),樹葉降落等其他效果
閃電等
交通流架構(gòu)
交通流仿真對自動駕駛仿真來說是極其重要的。這個在我們以前的文章也專門介紹過,可以翻回去回溯。這里首先一些online資源網(wǎng)站
Unity-Traffic-Simulation
Martin Treibe ?交通計量經(jīng)濟學(xué)、建模與統(tǒng)計研究所
gamma 該網(wǎng)站可仔細鉆研
Unity中的A*算法
關(guān)于交通流仿真的書
《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可以提供給行人仿真(包括人群,對象,路徑規(guī)劃,沖撞避免等)。
PTV Balance提供了基于綠波的實時交通數(shù)據(jù)的自適應(yīng)信號控制,
PTV Optima 大規(guī)模交通可視化,態(tài)勢感知,預(yù)測,事件檢測。
PTV Visum Safety 事故數(shù)據(jù)分析與檢測,分析事故集群
SUMO
Unity自帶的交通流工具
iRDS
UnitySteer
Auto21 Traffic Modeling and Simulation
Verkeerstalent
Unity官方支持的自動駕駛仿真項目和工具
AriSim中的ML Agents工具
Unity Windridge-city
synthia-dataset
攝影制圖法工作流程指南?
Unity_simvz
讀者如有其他關(guān)于資源的建議,歡迎在評論區(qū)留言。后續(xù)本文如有更新,也會更新在評論區(qū)里。
總結(jié)
以上是生活随笔為你收集整理的Unity自动驾驶仿真的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何玩转kvm切换器
- 下一篇: 政策解读 | 杜绝“大数据杀熟” 《个人