編者薦語:
在自動駕駛技術加速落地的今天,CARLA 仿真引擎憑借其開源生態與高保真仿真能力,已成為全球開發者構建智能駕駛算法的核心工具之一。隨著虛幻引擎 5.5 的全面升級,CARLA 0.10.0 版本實現了視覺革命:Lumen 全局光照與 Nanite 虛擬幾何體技術讓場景細節逼近真實,深信科創打造的?越野露天礦地圖?更填補了非結構化道路測試的空白;生成式 AI 交通模型(Inverted AI)與原生 ROS2 接口的加入,則讓復雜交通場景的仿真效率與真實性邁上新臺階。
然而,CARLA 強大的功能背后也伴隨著陡峭的學習曲線。從多 GPU 配置優化到傳感器數據同步,從動力學參數調試到聯合仿真框架搭建,開發者在實踐過程中常面臨 “知其然不知其所以然”的困境。為此,深信科創技術團隊系統梳理了來自 CARLA 社群、GitHub、Discord、知乎專欄、CSDN 等平臺開發者們提出的的?常見技術問題,結合最新版本特性與開發經驗,將其歸納為?地圖與場景構建、車輛與模型、傳感器與數據采集、API 與開發接口、仿真控制與算法、多機與分布式仿真、聯合仿真與工具集成、擴展與自定義開發?等模塊。在本次和后續的系列文章中逐次進行分析并解答。很多基礎問題也可以通過查閱官方文檔解決,CARLA 官方文檔指導性很強。建議新手小白多看文檔。
地圖與場景構建
📦基礎操作類
Q1:Carla 中怎么獲取地圖中任意一點的世界坐標?
直接啟動?manual_control
,手動操控車到指定地點,就能讀取坐標。也可以通過ROS來運行。
ROS具體步驟:
-
確保 CARLA 正在運行后啟動 ROS 橋;
-
生成對象,啟動?
carla_manual_control
節點。 -
要手動控制車輛,請按 'B' 鍵。按 'H' 鍵查看說明。
#?ROS 1
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch
#?ROS 2
ros2 launch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch.py
Q2:有沒有 Carla 的地圖,簡單的多車道,有停車位的?
參考 Carla 地圖文檔,提供了每張地圖的俯視圖和具體特征,可以查看符合需求的地圖。例如Town05中就具有多車道和停車位:
https://carla.readthedocs.io/en/latest/map_town05/
Q3:Carla 是否支持 .xodr 格式的地圖?
支持,可參考這篇微信文章實現:Carla中如何加載OpenDrive地圖?
Q4:導入 OpenDrive 時如何增加一個大地以防止車輛掉下去?
增加碰撞體。可參考官方文檔:https://carla.readthedocs.io/en/latest/tuto_D_generate_colliders/#generate-detailed-colliders
創建?物理碰撞體?的視頻教程:CARLA常見技術問題集錦(一)地圖與場景構建篇?視頻見原文,CSDN上傳受限。
Q5:在CARLA中執行make import、make package和make launch命令時,是否會為行人專門生成一個用于導航的地面mesh?
是的,CARLA中的地面使用的是mesh而非landscape地形系統。在執行這些命令時,會生成一個專門的navigation mesh(導航網格),這個navmesh會被Traffic Manager(TM)和行人導航系統使用。其中包含專門為行人優化的路徑信息。
??地圖導入與基礎功能
Q6:Carla 目前是否支持導航地圖(非高精地圖)?
Carla 僅支持 OpenDrive 格式的高精地圖,導航地圖需自行定義。地圖導航和自定義生成導航地圖參考官方文檔:https://carla.readthedocs.io/en/latest/core_map/#custom-maps
以下視頻解釋了將地圖導入 CARLA 可用的某些方法:CARLA常見技術問題集錦(一)地圖與場景構建篇?視頻見原文,CSDN上傳受限。
Q7:CARLA 街景地圖里面有隧道場景嗎?
Town03地圖中有地下通道,如下面圖片所示。另外深信科創也有做。
Q8:如何將自定義 HD 地圖數據通過 RoadRunner 導入 Carla,并添加建筑物等資產?
將地圖文件(xodr 和 fbx)放到 Import 目錄,運行make import
,可使用 RoadRunner 構建道路網絡(Road Network)并導出地圖,然后在 Carla 中添加建筑物等資產。具體操作參考官方文檔中Add New Map
部分:https://carla.readthedocs.io/en/latest/tuto_M_add_map_alternative/#roadrunner-plugin-import
Q9:導入的自定義地圖在 UE4 中運行后,如何集成到 CarlaUE4.sh 環境中并通過 Python 調用?
使用make package
命令將地圖打包,具體操作參考官方文檔:https://carla.readthedocs.io/en/latest/tuto_M_add_map_package/#ingesting-maps-in-a-carla-package
Q10:如何在Carla中加載外部制作的OpenDRIVE文件并顯示對應的建筑模型?我的OpenDRIVE文件由其他軟件(如VTD)生成,模型文件也是外部的。目前僅能顯示道路,但希望復用原有模型(如VTD中的配置)。
要在Carla中加載外部制作的OpenDRIVE文件并顯示建筑模型,需注意OpenDRIVE本身僅描述道路信息,無法直接加載模型,但可通過object
標簽存儲建筑信息,再借助工具構建地圖模型(如VTD通過名稱匹配模型文件和配置文件實現加載)。由于Carla要求外部模型必須導入其素材庫(如FBX、OBJ格式)才能引用,因此需將原有模型轉換為Carla支持的格式并關聯OpenDRIVE中的對象名稱。對于少量地圖可手動擺放模型,而大規模地圖建議使用程序化生成工具(如Carla最新版本的功能或深信科創的OpenDRIVE工具鏈)批量處理,以復用VTD等平臺的模型配置并適配Carla的素材庫體系。
🗺? 進階功能與疑難解決
Q11:如何在 Carla 道路上貼一張圖片?
通過源碼編譯 Carla,在 Carla UE5 中操作:創建材質、添加紋理貼圖并應用材質,參考 UE 文檔:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/texture-asset-editor-in-unreal-engine?
如何在UE5中混合材質的教學視頻見原文:?CARLA常見技術問題集錦(一)地圖與場景構建篇
Q12:OpenDRIVE 獨立模式中車道標線無法渲染,如何解決?
是的,因為沒有生成車道線網格體。深信科創有opendrive生成路面(包括車道線)的工具。
Q13:Carla 自定義地圖,make import 后無法導入 .xodr 中自定義 surface 的 OpenCRG 屬性,如何解決?
Carla 目前不支持道路 OpenCRG 屬性的導入。
Q14:Carla 加載的 .xodr 地圖如何顯示車道線信息?現在有沒有比較好的方案?
深信科創2024年開發的新特性中,CARLA已經可以支持導入加載xodr后生成各種樣式的車道線,包括黃白色的單實線、單虛線、雙實線等。(暫未開源)
Q15:在 Roadrunner 中,有些資產是 .fbx_rxx 格式,有些是 .fbx 格式,.fbx_rxx 格式的資產可以通過 make import 導入,但其他 .fbx 格式的資產無法導入,這是什么原因?如何解決?
在 Roadrunner 中,基于同樣的道路分別添加 .fbx 和 .fbx_rrx 格式的模型構建場景后,使用 Export->CarlaFilmBox 導出選項,均可以通過 Carla 的 make import 命令生成地圖關卡文件,并且可以通過 Python 腳本測試。如果 .fbx 格式的資產無法導入,建議提供更詳細的錯誤信息以便進一步排查問題。通常情況下,確保資產格式和導出選項正確,可以解決導入問題。
Q16:如何為 Carla 制作實景地圖?RoadRunner 和 OpenStreetMap 似乎無法完全解決這個問題。
unisim換了視角車輪子不轉光照沒影響,也會覺得與真實世界不一樣。用人眼判斷仿真真實度是一種非常主觀的方式,GAN也能生成人眼看著真,但就是可以擾亂神經網絡輸出的圖像,這種情況到底算不算真實,就看測試對象是什么了。只要肯投人投錢投機器,天花板還是很高的。
Q17:在CARLA 0.10.0中,Towns 1-9、11-13和15未被升級且未包含,但Town10已升級。舊版本的部分資源仍可在內容庫中使用。我的項目需要使用Town04或Town05,但當前版本可能不完全支持。是否可以通過從源碼構建CARLA來恢復對Town04或Town05的訪問?若可以,請提供相關指導或文檔(是否需要FBX文件重建)?此外,如何訪問由routeplanner.cpp
生成的樣條點(路由生成時無藍圖類)?
1.?重建舊版本Town:
-
?非大地圖(如Town04/05)需大量修改:啟用Nanite需將大型網格(如建筑)拆分為小塊,并分離透明/非透明材質。還需設置新的"CarlaWeather"。
-
參考下方視頻教程:按路由規劃器的方式處理路徑點。CARLA常見技術問題集錦(一)地圖與場景構建篇?視頻見原文,CSDN上傳受限。
-
大地圖(LargeMaps)暫不支持,需研究世界分區(World Partition)實現。
2.?訪問樣條點:
-
? 通過C++代碼中的
AOpenDriveActor::BuildRoutes
(位于OpenDriveActor.cpp
)生成路由。 -
? 具體操作:仿照
OpenDriveActor.cpp
第235行的路由規劃器邏輯,生成位置點并添加到樣條網格(Spline Mesh)。
本文主要是簡述了在使用CARLA過程中遇到的關于地圖與場景構建的一些常見問題。未來CARLA問題總結系列文章將會持續更新關于車輛與模型、傳感器與數據采集、API 與開發接口、仿真控制與算法、多機與分布式仿真、聯合仿真與工具集成、擴展與自定義開發等常見問題。關注作者,了解更多CARLA硬核知識!
若需詳細了解文中所提及的深信科創自主開發的工具,或者加入CARLA開發者交流群,在CSDN后臺私信我們吧!
CARLA AI助手上線!你的24小時仿真顧問!
以上問題已全部錄入「CARLA AI助手」知識庫!現在起,只需提問即可獲得:
??精準解答:覆蓋安裝、API開發、場景設計全流程
??代碼生成:一鍵輸出環境配置腳本與調試命令
??實時更新:同步官方文檔與社群最新解決方案
立即體驗:在「CARLA引擎中文站」聊天框直接輸入問題或點擊菜單欄「AI助手」開啟智能問答!
互動話題
你在使用CARLA時還遇到過哪些“玄學”問題?歡迎留言討論!點贊最高的問題,我們將優先安排技術解析~
往期精品內容推薦:
【直播回顧】CARLA新版本解讀會
CARLA 0.10.0正式發布!帶來UE5.5升級、首個越野露天礦地圖、ROS2原生接口、集成交通流與SCENIC3等新亮點!
一文看懂 | OASIS SIM V3.0交通流如何為自動駕駛算法提供CornerCase挑戰
OASIS SIM V3.0 全新升級上線!AI重塑端到端自動駕駛仿真!