
AirSim Blocks 环境搭建指南基于 Unreal Engine 的轻量级仿真环境配置与运行【免费下载链接】AirSimOpen source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI Research项目地址: https://gitcode.com/gh_mirrors/ai/AirSimBlocks 是 AirSim 官方内置在仓库中的一套轻量级 Unreal Engine 仿真环境位于Unreal/Environments/Blocks目录下专为快速上手而设计场景素材极简、启动速度快但已完整接入 AirSim 插件并支持多旋翼与汽车的仿真能力。本文以官方文档docs/unreal_blocks.md为主体结合仓库源码与配套脚本系统讲解在 Windows 与 Linux 上搭建、运行、重新编译 Blocks 环境以及切换仿真载具类型的完整流程读完后你将能够独立完成 AirSim Unreal 环境的从零启动与日常迭代开发。Blocks 环境是什么Blocks 环境随 AirSim 仓库一起分发目录结构如下Unreal/Environments/Blocks/Blocks.uprojectUnreal 项目文件声明引擎版本与启用插件Unreal/Environments/Blocks/Source/项目 C 源码模块Blocks.Build.cs、Blocks.cpp、Blocks.h与 Target 文件Unreal/Environments/Blocks/Config/引擎与项目配置DefaultEngine.ini、DefaultGame.ini、DefaultInput.ini等Unreal/Environments/Blocks/Content/场景资源包括FlyingCPP/Maps/FlyingExampleMap.umap默认关卡与基础几何体、材质Unreal/Environments/Blocks/GenerateProjectFiles.bat、clean.bat、package.bat、update_from_git.bat等构建辅助脚本。从官方描述看Blocks 环境刻意保持轻量lightweight in sizevery basic but fast——它不追求画面精致度而是以最快的速度让你跑通 AirSim 的完整链路仿真引擎、飞行/驾驶物理、传感器、RPC API。默认关卡为FlyingExampleMap见 Unreal/Environments/Blocks/Config/DefaultEngine.ini 中的GameDefaultMap/Game/FlyingCPP/Maps/FlyingExampleMap并配置了BlocksGameMode作为默认游戏模式同时包含从 UE 模板TP_Flying重定向到Blocks的类名重定向BlocksPawn、BlocksGameMode。环境准备先完成 AirSim 本体构建Blocks 环境本身不包含 AirSim 的编译产物它依赖 Unreal 插件目录下的 AirSim 插件。因此在打开 Blocks 项目之前必须先完成 AirSim 本体的构建Windows 用户请参照 docs/build_windows.md安装 Unreal Engine 4.27本仓库的Blocks.uproject中EngineAssociation声明为4.27、安装 Visual Studio 2022勾选 Desktop Development with C 与 Windows 10 SDK然后在 Developer Command Prompt 中执行build.cmd构建产物会输出到Unreal/Plugins文件夹可被任何 Unreal 项目复用。Linux 用户请参照 docs/build_linux.md从 Epic Games 源码仓库克隆并编译 Unreal Engine推荐 4.27 分支随后在 AirSim 根目录依次执行./setup.sh与./build.sh调试构建使用./build.sh --debug。值得注意的是Linux 的 build.sh 在构建完成后会自动把插件与 AirLib 产物同步到Unreal/Environments/*下所有环境项目遍历每个环境目录执行clean.sh并rsync覆盖Plugins/AirSim。也就是说只要 AirSim 构建成功Blocks 项目就自动带上了最新的插件二进制无需手工复制。Windows 上运行 Blocks 环境打开并启动项目确保已按 docs/build_windows.md 完成 Unreal 与 AirSim 的构建。进入Unreal/Environments/Blocks目录双击Blocks.sln用 Visual Studio 打开。该项目默认面向 Visual Studio 2019 生成如果你希望完整支持 Visual Studio 2022可在 Unreal Editor 中通过Edit - Editor Preferences - Source Code将 Source Code Editor 设为Visual Studio 2022之后重新生成解决方案即可。如果目录中没有.sln文件说明上一步构建未完成——也可运行目录下的GenerateProjectFiles.bat它会读取系统注册表中Unreal.ProjectFile关联的 UnrealBuildTool 路径为当前目录下的.uproject生成工程文件。确认Blocks为启动项目Startup Project构建配置选DebugGame_Editor平台选Win64按 F5 启动。Unreal Editor 加载完成后会以编辑器模式运行游戏该配置只编译游戏模块的 DebugGame 版本、跳过引擎调试符号因此编译更快。在 Unreal Editor 中按下 Play 按钮即可看到 Blocks 场景中默认生成的 AirSim 多旋翼载具。官方演示画面见 docs/images/blocks_video.png。修改代码与重新构建WindowsWindows 下最常见的迭代方式是在 Visual Studio 中直接修改 AirLib 或Unreal/Plugins下的插件代码然后按 F5 重新编译运行——DebugGame_Editor配置下增量编译很快适合频繁改代码、看效果的开发循环。此外Unreal/Environments/Blocks目录下提供了多个配套批处理脚本用于管理代码同步与清理update_from_git.bat从 AirSim 仓库根目录同步最新代码到 Blocks 项目。脚本默认认为 AirSim 根目录相对位于..\..\..即从Unreal/Environments/Blocks向上三级也可传入自定义路径作为第一个参数update_from_git.bat AirSimPath。它会用robocopy /MIR镜像复制Unreal\Plugins\AirSim到Plugins\AirSim、复制AirLib到Plugins\AirSim\Source\AirLib并同步仓库中的.bat/.sh脚本最后自动执行clean.bat与GenerateProjectFiles.bat。clean.bat删除Build、Binaries、Intermediate、Saved目录及Plugins\AirSim下的编译中间产物和生成的.sln相当于回到干净状态适合在遇到难以排查的构建问题时彻底重来。package.bat调用 Unreal 的RunUAT BuildCookRun将 Blocks 打包为独立可执行程序。用法为package.bat 输出目录 Engine\Build\BatchFiles路径 UE版本默认输出到D:\AirSimBuilds打包成功后还会在输出目录生成一个run.bat用于一键启动。仓库中package.bat默认UEVer4.24请根据你实际安装的引擎版本调整第三个参数。Linux 上运行 Blocks 环境打开并启动项目确保已按 docs/build_linux.md 完成 Unreal Engine 与 AirSim 的构建。进入 UnrealEngine 仓库目录运行Engine/Binaries/Linux/UE4Editor启动 Unreal Editor。首次启动时编辑器可能看不到任何项目点击Projects标签页的Browse按钮导航到AirSim/Unreal/Environments/Blocks/Blocks.uproject打开。也可以直接用命令行方式打开例如./Engine/Binaries/Linux/UE4Editor AirSim路径/Unreal/Environments/Blocks/Blocks.uproject。如果弹出引擎版本不兼容的转换提示在 More 选项下选择In-place conversion就地转换如果提示缺失模块务必选择No不要退出。当提示是否构建 AirSim 时选择Yes。首次构建需要编译 AirLib 与插件耗时较长请耐心等待。构建完成后在 Unreal Editor 中按下 Play 按钮即可在 Blocks 场景中运行 AirSim。修改代码与重新构建LinuxLinux 下修改代码的位置通常有两处AirLib 核心库AirLib目录与 Unreal 插件Unreal/Plugins目录。修改后在 AirSim 仓库根目录运行./build.sh该脚本完成以下关键步骤详见 build.sh默认使用 clang 8 编译可通过--gcc切换到 gcc-8--debug生成调试构建检查setup.sh安装的依赖rpclib 2.3.0、Eigen3 库、本地 cmake以 CMake 构建 AirLib、MavLinkCom、rpc 等静态库并输出到build_release/或build_debug/把编译产物复制回AirLib/lib、AirLib/deps并把整个AirLib目录rsync同步进Unreal/Plugins/AirSim/Source随后删除src源码子目录以减小体积遍历Unreal/Environments/*对每个环境包括 Blocks执行clean.sh并同步最新的Plugins/AirSim。因此./build.sh完成后Blocks 环境已包含最新编译产物可再次启动 Unreal Editor 按上述步骤运行。选择载具Car 还是 Multirotor默认情况下 AirSim 在 Blocks 环境中生成的是多旋翼multirotor。若要切换为汽车并使用 AirSim 全部功能如碰撞检测、5 个车载相机、键盘驾驶请参考 docs/using_car.md 与 docs/settings.md在settings.json中设置SimMode。settings.json的查找位置在 docs/settings.md 有明确说明Linux 下为~/Documents/AirSim/settings.jsonWindows 下为Documents\AirSim\settings.json此外还包括二进制目录与 AirSim 子目录等层级。{ SettingsVersion: 1.2, SimMode: Car }各取值含义见 docs/settings.mdSimMode 取值行为缺省默认使用多旋翼Car启动时自动生成汽车载具Multirotor启动时自动生成多旋翼启动时弹出选择界面由用户选择载具类型切到汽车后默认视角为从后方跟随SpringArmChase可按 F 键切换到 FPV 视角、按/键切回按 F1 查看全部快捷键键盘方向键驾驶空格键为手刹档位默认处于自动挡。若希望手动遥控多旋翼飞行可参考 docs/remote_control.md 配置遥控器或直接使用 docs/apis.md 中的 Python/C API 进行程序化控制。常见问题FAQ提示_BuitData file is missing之类的警告这类_BuiltData文件是 Unreal 引擎生成的中间构建产物Lightmap/静态光照烘焙数据等丢失并不影响运行时功能可以安全忽略。如果介意重新打开项目让编辑器重新生成即可。为什么打开项目提示插件缺失或需要转换这通常是引擎版本不一致导致的。请确认你安装的引擎版本与本仓库Blocks.uproject声明的EngineAssociation4.27一致转换时选择 In-place conversion插件缺失提示选择 No 继续等待构建完成。.sln文件不存在.sln由 Unreal 构建系统根据.uproject生成。请先完成 AirSim 的build.cmd/./build.sh或运行Unreal/Environments/Blocks/GenerateProjectFiles.batWindows重新生成。运行缓慢或后台掉帧官方构建文档建议在 Unreal Editor 的Edit - Editor Preferences中搜索CPU取消勾选 Use Less CPU when in Background避免后台降频影响仿真实时性详见 docs/build_windows.md 与 docs/build_linux.md 中的提示。进阶从 Blocks 到自定义环境Blocks 作为轻量级参考环境其项目结构Blocks.uprojectSource/模块 Config/配置是搭建自定义 Unreal 环境的模板Blocks.uproject中Plugins一节启用了AirSim插件、禁用了SteamVR与OculusVRModules.AdditionalDependencies声明了对AirSim的依赖Blocks.Build.cs则声明了Core、CoreUObject、Engine、InputCore四个公共依赖并启用了 C 异常支持Linux 下关闭。如果你需要更复杂的地图、更多几何体或自定义游戏模式可以参考 docs/unreal_proj.md 的 Setting Up Unreal Environment 章节从 Blocks 复制一份并逐步扩展。理解 Blocks 的构建脚本与.uproject结构也是后续排查 AirSim 插件加载、编译和打包问题的基础。【免费下载链接】AirSimOpen source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI Research项目地址: https://gitcode.com/gh_mirrors/ai/AirSim创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考