AirSim Blocks 环境搭建指南:基于 Unreal Engine 的轻量级仿真环境配置与运行
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),仅供参考

相关新闻

Apache MXNet 异常处理与自定义错误类型:C++ 后端到 Python 前端的错误类型注册机制

Apache MXNet 异常处理与自定义错误类型:C++ 后端到 Python 前端的错误类型注册机制

深度学习人工智能机器学习分布式训练 【免费下载链接】mxnet Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more 项目地址: https:/…

2026/9/21 16:30:30 阅读更多 →
Ragas CLI 实战:用 judge_alignment 模板度量 LLM-as-judge 与人类评估标准的对齐度

Ragas CLI 实战:用 judge_alignment 模板度量 LLM-as-judge 与人类评估标准的对齐度

Ragas CLI 实战:用 judge_alignment 模板度量 LLM-as-judge 与人类评估标准的对齐度 【免费下载链接】ragas Supercharge Your LLM Application Evaluations 🚀 项目地址: https://gitcode.com/gh_mirrors/ra/ragas 导读 judge_alignment 是 Rag…

2026/9/21 16:30:30 阅读更多 →
lightweight-charts 时间轴(Time Scale)完全指南:可见范围、逻辑索引与图表边距控制

lightweight-charts 时间轴(Time Scale)完全指南:可见范围、逻辑索引与图表边距控制

前端图表库金融科技数据可视化 【免费下载链接】lightweight-charts Performant financial charts built with HTML5 canvas 项目地址: https://gitcode.com/gh_mirrors/li/lightweight-charts 点击查看 免费下载 导读 时间轴(Time scale,又…

2026/9/21 16:30:30 阅读更多 →

最新新闻

CopyTranslator 复制即翻译外文阅读辅助:核心用法、功能特性与源码实现解析

CopyTranslator 复制即翻译外文阅读辅助:核心用法、功能特性与源码实现解析

桌面应用人工智能 【免费下载链接】CopyTranslator 🔠Foreign language reading and translation assistant based on copy and translate. 项目地址: https://gitcode.com/gh_mirrors/co/CopyTranslator 点击查看 免费下载 CopyTranslator 是一款基于&…

2026/9/21 18:48:38 阅读更多 →
TanStack Table 的 HeaderGroup 接口详解:表头分组模型、深度层级与渲染实践

TanStack Table 的 HeaderGroup 接口详解:表头分组模型、深度层级与渲染实践

前端UI组件 【免费下载链接】table 🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table 项目地址: https://gitcode.com/gh_mirrors/ta/table 点击查看 免费下载 HeaderGrou…

2026/9/21 18:48:38 阅读更多 →
React Native Vector Icons FontAwesomeFreeSolid 包演进史:从 FontAwesome 7 迁移到 Expo 配置插件的完整版本解读

React Native Vector Icons FontAwesomeFreeSolid 包演进史:从 FontAwesome 7 迁移到 Expo 配置插件的完整版本解读

UI组件移动开发 【免费下载链接】react-native-vector-icons Customizable Icons for React Native with support for image source and full styling. 项目地址: https://gitcode.com/gh_mirrors/re/react-native-vector-icons 点击查看 免费下载 react-native-ve…

2026/9/21 18:48:38 阅读更多 →
Nix 构建性能调优:深入理解 `cores` 与 `max-jobs` 的协同机制

Nix 构建性能调优:深入理解 `cores` 与 `max-jobs` 的协同机制

开发工具CLI 【免费下载链接】nix Nix, the purely functional package manager 项目地址: https://gitcode.com/gh_mirrors/ni/nix 点击查看 免费下载 Nix 是纯粹函数式包管理器,其构建调度完全由两个相互独立又彼此耦合的配置项驱动:max-j…

2026/9/21 18:48:38 阅读更多 →
Nix Archive (NAR) 格式完全规范:Nix 纯函数包管理器的文件系统对象序列化格式解析

Nix Archive (NAR) 格式完全规范:Nix 纯函数包管理器的文件系统对象序列化格式解析

Nix Archive (NAR) 格式完全规范:Nix 纯函数包管理器的文件系统对象序列化格式解析 【免费下载链接】nix Nix, the purely functional package manager 项目地址: https://gitcode.com/gh_mirrors/ni/nix Nix Archive(简称 NAR)是 Nix…

2026/9/21 18:48:37 阅读更多 →
微信视频聊天没有声音保姆级教程

微信视频聊天没有声音保姆级教程

5步搞定微信视频无声,源码解析背后的音频链路 配置环境就卡半天,视频画面有了,声音却像被静音,这种抓狂感每个搞过音视频开发的都懂。别急着重启手机,这背后是音频采集、编码、传输、解码到播放的全链路问题。今天咱们不整虚的,直接扒开微信的…

2026/9/21 18:47:37 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →