在實際的開發過程中很少會只用 AirSim 自帶的 Blocks 場景,通常需要用到自定義的一些環境和模型,依托于強大的 UE 引擎可以較為逼真地完成場景渲染。這篇博客記錄了如何從頭開始導入一個自定義場景并加載 AirSim 插件。
【Note】:由于 UE Editor 和商店的版本迭代,有些按鈕或工具位置會有變動,我這里使用的是 5.5.1
+ UE5
的組合。
核對以下軟件版本:
- Windows 10;
- UE Launcher + UE5;
- Visual Studio 2022;
- AirSim / Cosys-AirSim;
當前所有操作都在Windows上完成,后面會介紹 PX4 和 MAVLINK 在不同設備上通訊。
因為我本身不是做 UE 的,只是工作中需要用到 UE,這篇博客是站在一個機器人算法工程師角度展開,因此部分內容可能不太專業,如果存在錯誤還請在評論區留言,我會在第一時間處理。
1. 從 Epic 商店中選擇場景素材
雖然可以直接從瀏覽器的方式進入商店,但我個人習慣從本地的 Launcher 進入商店,可以少占用一個瀏覽器的收藏位。
啟動 Epic Game Launcher
后按照順序執行以下操作:
- 進入 “庫” 標簽頁;
- 下拉到軟件最下面找到 “Fab 庫” 的位置;
- 點擊黃色的 “請訪問 Fab.com” 鏈接;
在 2025年06月05日 的在線商店長下面這個樣子:
往下拉一些找到 Environments
標簽,這個標簽里都是可下載的環境,對于初學 AirSim 來說里面的免費資源足夠折騰了。
進入頁面后可以在上方的 Price
篩選器中勾選 Free
篩選出免費的場景素材:
這里以 Downtown West Modular Park
資源為例,選中并點擊進去:
因為我已經將這個資源添加到我的庫里了,所以頁面右側顯示 “已添加”,如果你之前沒有操作過應該可以看見 Add to My Library
按鈕,點擊并添加到自己的庫中,然后刷新頁面就可以看見 View in Launcher
按鈕。
【Note】:在我寫這篇博客的時候點擊 View in Launcher
按鈕只會自動打開 Epic Launcher,并不會自動添加到本地,需要點擊 View in My Library
按鈕后手動下載。
在彈出的 Epic Launcher 中有時候會自動刷新,如果你沒看見新加的場景則可以手動刷新一下:
因為這里添加的是 素材 而不是 工程,所以我們需要自己新建一個工程并將這個素材添加到工程中。
2. 新建一個空白工程
在上一步的 Epic Launcher 中選擇右上角的 啟動 Unreal Engine 5.5.1
按鈕先將UE引擎啟動。
【Note】:這里每個人安裝的 UE 引擎版本不一樣因此可能會存在差異,但這一步的操作都是為了啟動引擎創建新的工程。
在啟動后按照下面的流程新建一個工程:
- 點擊
SIMULATION
標簽; - 選擇一個存放工程的位置;
- 【可選】在
Project Name
中修改你的工程名,這里我偷懶就不修改了; - 點擊
Create
創建工程;
創建工程按鈕被點擊后 UE 會進行一些基礎元素的編譯與構建,這一步會花費一點時間,然后自動彈出以下畫面,到達這一步至少說明你的 UE 引擎都正常,沒有缺少必要的庫或文件。
3. 將場景添加到工程中
3.1 下載資源庫場景
先將上面彈出的操作界面關閉,回到 Epic Launcher 中點擊 添加到工程
按鈕
在彈出的頁面中按照以下順序操作:
- 勾選
顯示所有工程
; - 選擇剛才創建的工程
MyProject
; - 如果你的引擎和我的一樣是
UE 5.5.1
那么需要以兼容的形式運行,在選擇版本
中選擇一個版本號差距最小的; - 點擊
添加到工程
;
確認后 Epic Launcher 會自動下載這個資源,等待下載完成即可:
下載完成后會自動打開新建的工程,這里建議先將下載好的資源備份一份,以免誤操作導致損壞文件導致重新下載。位置就在你的工程目錄下的 Content
文件夾中,以我的路徑為例 C:\Users\Lucks\Desktop\AirSim-Self-Env\MyProject\Content
3.2 導入場景到操作界面中
返回到 UE Editor 中開始導入場景,按照下面的步驟依次操作:
- 打開 左下角 的資源抽屜
Content Drawer
; - 將左側文件目錄展開,這里使用的是
Downtown_West
; - 進入到
Maps
文件夾中; - 雙擊
Demo_Enviroment
等待場景加載完成;
【Note】:不同的資源文件在第3、4步可能存在文件選擇差異,但只要是制作合規的場景都有 Level 標簽。
通常情況下會自動遞歸加載需要的場景文件,如果你發現顯示的不全可以手動進入 Sub-Level
文件加載一些其他場景,這個資源里的子文件中有不同的天空背景,感興趣的可以多嘗試下。
在場景正確加載后必須檢查一下是否可用,點擊上方綠色的 Play
按鈕進入環境,想要退出的話點擊 Esc
即可結束仿真。
3.3 設置工程默認關卡
在確認環境能正確加載并運行后 Ctrl
+ S
保存,此時如果你直接退出,然后再在 Launcher 中打開的話仍然顯示的是空白場景,這是因為沒有設置 默認關卡,按照下面的步驟設置默認關卡:
- 在上方工具欄中點擊
Edit
,然后在下拉菜單欄中點擊Project Settings
; - 彈出窗口的左側選擇
Maps & Models
; - 在 Default Maps 中的
Editor Starup Map
中選擇 Demo_Enviroment 場景; - 在下面的
Game Default Map
中也選擇 Demo_Enviroment 場景;
經過上述操作后下一次打開就是默認的這個場景了。
4. 創建空的 C++ 類
【Note】:有些工程自帶一個空的 C++類 就不需要執行這一步,如果你的下拉菜單中 Generate Visual Studio Project
是灰色不可選中的,那么需要手動創建。這個類基本用不上,是為了引導 UE 生成 Visual Stuido 工程用的。
點擊上方工具欄中的 Tools
,在下拉菜單中選擇 New C++ Class
。
在彈出的頁面中點擊 Next
:
類名可以隨意起,用默認也無所謂,點擊 Create Class
:
等走完進度條后先不要打開編輯器,選擇 No
即可:
此時你的 工程目錄下應該會自動生成一個 MyProject,.sln
文件:
然后關閉 Editor 準備編譯 AirSim 插件。
5. 編譯 AirSim 插件
這里無論你使用的是 AirSim 還是 Cosys-AirSim 都需要先找到對應的插件位置,但好在兩個庫的結構基本一致,所以 UE 插件路徑也相似。
5.1 復制 Plugins/AirSim 文件夾
我這里以我用的 Cosys-AirSim
為例,其 UE 插件位置在 C:\Users\Lucks\Desktop\Cosys-AirSim\Unreal\Plugins
:
然后前往你的工程目錄,我這里是 C:\Users\Lucks\Desktop\AirSim-Self-Env\MyProject
,如果你的工程目錄中有 Plugins
文件夾則直接進去并粘貼上一步復制的 AirSim 文件夾,如果沒有就手動創建并復制進去。
5.2 編輯 MyProject.uproject 文件
回到你的工程目錄中使用文本編輯器打開你的 MyProject.uproject
文件并進行編輯:
然后在 “Plugins” 元素中添加以下字段:
{"Name": "AirSim","Enabled": true
}
修改完成就保存并關閉。
5.3 生成 Visual Studio 工程文件
回到工程目錄中,右鍵點擊 MyProject.uproject
在彈出的菜單中選擇 Generate Visual Studio project file
等待生成結束。
[可選] 6. 配置 Visual Studio 工程
如果你想要在這個工程上驗證一下官方的無人機起降Demo可以按照下面的流程進行,官方 Demo 的核心是里面的一個 cpp 文件,執行了無人機起飛、運動幾米、拍照、降落這幾個動作。
在上面工程文件成功生成后就可以雙擊打開 MyProject.sln
啟動 Visual Stuido:
6.1 新建一個空白工程
右鍵 Games
然后在 Add
中新建一個空白工程 New Project
:
在彈出的窗口中直接選擇 Empty Project
就夠用了,我這里給工程起名為 SelfDemo
:
6.2 復制 HelloSpawnedDrones.cpp 文件
前往你的 AirSim 或 Cosys-AirSim 的安裝路徑,找到 HelloSpawnedDrones.cpp
文件,這個文件就是用來生成一個可用的無人機入口,對于我而言這個文件在 C:\Users\Lucks\Desktop\Cosys-AirSim\HelloSpawnedDrones\HelloSpawnedDrones.cpp
然后將這個文件復制到剛才新建的空白工程目錄下 Source\MyProject
文件夾中,對我而言就是在路徑 C:\Users\Lucks\Desktop\AirSim-Self-Env\MyProject\SelfDemo
下
在 Visual Stduo 中將這個文件添加到項目中,瀏覽文件將其加入到編譯隊列里:
6.3 設置工程為啟動項
右鍵新建的工程,并在彈出的菜單中選擇 Set as Startup Project
。
然后就是傳統的配置 Visual Stduio 項目步驟了。
6.4 添加包含目錄
找到你剛才復制進來的 Plugins/AirSim
的插件文件夾,并將以下三個路徑復制進去:
- Plugins\AirSim\Source\AirLib\include;
- Plugins\AirSim\Source\AirLib\deps\eigen3;
- Plugins\AirSim\Source\AirLib\deps\rpclib\include;
效果如下:
6.5 添加附加庫目錄
附加庫目錄需要根據當前編譯條件修改,本質是下面三個路徑:
- Plugins\AirSim\Source\AirLib\lib
- Plugins\AirSim\Source\AirLib\deps\rpclib\lib
- Plugins\AirSim\Source\AirLib\deps\MavLinkCom\lib
次數還需要手動修改路徑末尾的信息,為上面的路徑添加 $(Platform)\$(Configuration)
結尾,最終效果如下:
6.6 添加附加依賴項
添加附加依賴項基本和上面一致,將 *.lib
加上即可:
最終效果如下:
7. 編譯工程
7.1 編譯 Visual Studio 工程
以 Debug
+ x64
的組合編譯工程 MyProject
:
如果編譯有報錯,大概率是 6.4
、6.5
、6.6
沒有配置好,仔細檢查路徑是否正確。
如果確認上面的配置都沒有問題,但仍然報錯沒有找到頭文件,你需要去 MyProject
中查看是不是把 HelloSpawnedDrones.cpp
文件放到了工程里,這個文件應該在新建的項目中添加。
7.2 編譯 UE 工程
雙擊打開 MyProject.uproject
然后點擊確認即可。
等待 UE Editor 完全啟動后在右上角點擊 Settings
-> World Settings
:
在更新后的右邊導航欄中選擇 Game Mode 中的 Game Mode Override
-> AirSimGameMode
:
然后點擊 Play 按鈕就可以看見無人機生成了: