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
讀者如有其他關于資源的建議,歡迎在評論區留言。后續本文如有更新,也會更新在評論區里。
總結
以上是生活随笔為你收集整理的Unity自动驾驶仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何玩转kvm切换器
- 下一篇: FPGA_PCB 设计之一3.3V-LV