【第1篇-环境安装】unreal engine + airsim
📅 2026/7/12 22:29:53
👁️ 阅读次数
📝 编程学习
- ❌linux UE4.27教程:ubuntu22.04安装ue和airsim - 知乎
- linux好处:编译比vs2022方便,但linux端的渲染比较卡顿;还是建议windows端解决;
- 消息✔️WindowsUE
- win + unreal engine + vs2022编译airsim + 导出blocks.exe 即可;
- 源码方式渲染卡顿,但编译导出为场景后,渲染速度OK;
- 目的:① 飞行仿真系统+yolo检测+3D定位/3D航迹;② 数据标注,从物理尺寸反推标注;
一、windows端unreal engine + airsim编译环境搭建
- UE4.27 Launcher版本稳定; 用 Epic Games Launcher
下载虚幻引擎 - Unreal Engine(+科学上网 秒下载 更快) UE5❌-坑更多
- 下载airsim
git clone GitHub - microsoft/AirSim: Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research · GitHub
编译airsim:下载后,打开vs2022的devloper commnad prompt工具,去执行build.cmd
在ureal\environment\blocks文件夹执行update_from_git.bat 才有blocks.sln解决方案airsim下的build.cmd是整个airsim的环境。
blocks才是环境下面的。
编译脚本:BUG1的脚本,生成Blocks.exe编译
3. 启动blocks.sln vs2022 编译 不是airsim.sln❌ 是blocks.sln✔️
把无人机放进去场景里面;然后点击.uproject,UE项目中插入airsim插件;
二、安装python airsim客户端
- 目的:为了写python脚本可以直接调用Blocks.exe里面的相机实现读图像、拉流等操作;
- C++的接口也有的;在ros中也有;
- 简单说:pip install 安装python包失败了,需要从源码去安装
cd E:\Airsim\AirSim-main\PythonClient pip install -e . # 这中间会出现tornado环境依赖问题,以及SSL网络无法连接的问题2.1 修复windows certifi证书
建议修复 Windows 证书库(治本):
- 打开
certmgr.msc,检查「受信任的根证书颁发机构」是否有损坏/空证书 - 或在 PowerShell(管理员)运行:
certutil -generateSSTFromWU roots.sst更新根证书
注意:环境中同时存在rpc-msgpack(需要 tornado>=6.1)和msgpack-rpc-python(需要 tornado<5),二者冲突。如果其他项目不需要rpc-msgpack,可以考虑卸载它。
三、从windows导出固定的Blocks.exe的方法
- 待补充。
BUG1:build.cmd构建blocks.sln不成功
解决✔️:用一个新bat就可以搞定,内容检后面
下面是现象!
E:\Airsim\AirSim-main\Unreal\Environments\Blocks>rd /s/q Build 系统找不到指定的文件。 E:\Airsim\AirSim-main\Unreal\Environments\Blocks>rd /s/q Binaries 系统找不到指定的文件。 E:\Airsim\AirSim-main\Unreal\Environments\Blocks>rd /s/q Intermediate 系统找不到指定的文件。 E:\Airsim\AirSim-main\Unreal\Environments\Blocks>rd /s/q Saved E:\Airsim\AirSim-main\Unreal\Environments\Blocks>mkdir Saved\logs E:\Airsim\AirSim-main\Unreal\Environments\Blocks>rd /s/q Plugins\AirSim\Binaries 系统找不到指定的文件。 E:\Airsim\AirSim-main\Unreal\Environments\Blocks>rd /s/q Plugins\AirSim\Intermediate 系统找不到指定的文件。 E:\Airsim\AirSim-main\Unreal\Environments\Blocks>rd /s/q Plugins\AirSim\Saved 系统找不到指定的文件。 E:\Airsim\AirSim-main\Unreal\Environments\Blocks>del *.sln 找不到 E:\Airsim\AirSim-main\Unreal\Environments\Blocks\*.sln E:\Airsim\AirSim-main\Unreal\Environments\Blocks>setlocal E:\Airsim\AirSim-main\Unreal\Environments\Blocks>del /q gen_temp.txt 找不到 E:\Airsim\AirSim-main\Unreal\Environments\Blocks\gen_temp.txt E:\Airsim\AirSim-main\Unreal\Environments\Blocks>powershell -command "& { (Get-ItemProperty 'Registry::HKEY_CLASSES_ROOT\Unreal.ProjectFile\shell\rungenproj' -Name 'Icon' ).'Icon' } > gen_temp.tmp" Get-ItemProperty : 找不到路径“HKEY_CLASSES_ROOT\Unreal.ProjectFile\shell\rungenproj”,因为该路径不存在。 所在位置 行:1 字符: 6 + & { (Get-ItemProperty 'Registry::HKEY_CLASSES_ROOT\Unreal.ProjectFile ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (HKEY_CLASSES_RO...hell\rungenproj:String) [Get-ItemProperty], ItemNotFo undException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand E:\Airsim\AirSim-main\Unreal\Environments\Blocks>type gen_temp.tmp 1>gen_temp.txt E:\Airsim\AirSim-main\Unreal\Environments\Blocks>set /p gen_bin= 0<gen_temp.txt E:\Airsim\AirSim-main\Unreal\Environments\Blocks>del /q gen_temp.tmp E:\Airsim\AirSim-main\Unreal\Environments\Blocks>del /q gen_temp.txt E:\Airsim\AirSim-main\Unreal\Environments\Blocks>for %f in (*.uproject) do ( echo Generating files for %f /projectfiles "E:\Airsim\AirSim-main\Unreal\Environments\Blocks\%f" ) E:\Airsim\AirSim-main\Unreal\Environments\Blocks>( echo Generating files for Blocks.uproject /projectfiles "E:\Airsim\AirSim-main\Unreal\Environments\Blocks\Blocks.uproject" ) Generating files for Blocks.uproject '/projectfiles' 不是内部或外部命令,也不是可运行的程序 或批处理文件。下面是在Airsim\Unreal|Environments\Blocks文件夹下,执行的.bat帮助生成Blocks.sln解决方案,然后去编译。
@echo off setlocal enabledelayedexpansion cd /d E:\Airsim\AirSim-main\Unreal\Environments\Blocks echo Cleaning old build files... rd /s/q Build 2>nul rd /s/q Binaries 2>nul rd /s/q Intermediate 2>nul rd /s/q Saved 2>nul mkdir Saved\logs 2>nul echo Cleaning plugin files... rd /s/q Plugins\AirSim\Binaries 2>nul rd /s/q Plugins\AirSim\Intermediate 2>nul rd /s/q Plugins\AirSim\Saved 2>nul echo Deleting solution files... del *.sln 2>nul echo Generating project files... REM 设置您的UE路径 - 修改这里! set UE_PATH=E:\UE_4.27 REM 检查UE是否存在 if not exist "%UE_PATH%\Engine\Binaries\DotNET\UnrealBuildTool.exe" ( echo ERROR: Unreal Engine not found at %UE_PATH% echo Please update UE_PATH variable in this script. pause exit /b 1 ) REM 生成项目文件 "%UE_PATH%\Engine\Binaries\DotNET\UnrealBuildTool.exe" -projectfiles -project="%CD%\Blocks.uproject" -game -engine -rocket if %errorlevel% == 0 ( echo Project files generated successfully! ) else ( echo Failed to generate project files. ) pause关键的是:UE_PATH\....\UnrealBuildTool.exe .....
设置UE路径,然后调用构建工程的工具;
编程学习
技术分享
实战经验