跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

AirSim 无人机仿真入门:实现起飞与降落

综述由AI生成AirSim 是基于虚幻引擎的开源飞行模拟器。在 Windows 环境下安装 Epic Games 平台、UE4.27.2、Visual Studio 及 AirSim 插件的步骤。通过创建虚幻工程并配置多旋翼模式,结合 Python 脚本调用 AirSim API,实现了无人机的自动起飞与降落控制。同时提供了摄像头窗口设置及端口通信的配置说明,帮助开发者快速搭建仿真环境并进行基础控制测试。

嘘发布于 2026/4/5更新于 2026/6/642 浏览
AirSim 无人机仿真入门:实现起飞与降落

AirSim 无人机仿真入门:实现起飞与降落

1 安装 AirSim

1.2 内容梳理

Epic Games 是一家游戏公司,Unreal Engine(简称 UE)是 Epic Games 开发的一款游戏引擎。AirSim 是基于 Unreal Engine 开发的一个模拟器,它主要用来模拟无人机(Drone)和自动驾驶汽车的运行环境。

1.3 步骤总结

建议按照相关教程一步一步安装。

  1. 安装 Epic 平台: 记得注册账号。
  2. 下载 UE: 点击 Epic 平台左边的'虚幻引擎'菜单,'库'里面有不同的虚幻引擎版本,选择 4.27.2 版本进行安装,这个版本比较适配 AirSim。
  3. 安装 VS Community 2022: 记得勾选'C++ 桌面开发'、'Windows 10 SDK 10.0.19041',并在'单个组件'选项卡下选择最新的'.NET Framework SDK'。
  4. 安装 git bash 工具。
  5. 克隆 AirSim 工程: 进入要安装 AirSim 的磁盘,执行 git clone。进入目录 build.cmd。编译好之后会在 AirSim\Unreal 文件夹中生成 Plugins 文件夹。这个 Plugins 文件夹非常重要。

检验虚拟引擎和 AirSim 是否安装成功: 使用 AirSim 自带的 Block 环境进行测试。

至此,AirSim 全部安装完成,下面可以直接使用 AirSim 做仿真了。

2 开始使用 AirSim

2.2 内容梳理

从虚幻商城选择一个场景创建工程,把 AirSim 作为插件导入这个工程中。

2.3 步骤总结

  1. 创建工程: 从虚幻商城中找到场景,创建工程,得到.uproject 文件。
  2. 新建 C++ 类: 双击.uproject 文件进入关卡编辑器,新建 C++ 类,等待编译完成(这一步耗时较长,而且要关注 VS2022 的左下角的编译进度),得到.sln 文件,至此'山脉景观'场景工程创建完成。
  3. 添加 AirSim 插件: 复制 AirSim\Unreal\Plugins 文件夹到 LandscapeMountains 文件夹中。
  4. 修改文件: 修改 LandscapeMountains.uproject 文件,修改 LandscapeMountains\Config\DefaultGame.ini 文件。
  5. 创建 VS 工程: 右键点击 LandscapeMountains.uproject 文件,选择'Generate Visual Studio project files'选项,会生成.sln 工程文件。
  6. 改成多旋翼模式: 把 settings.json 文件中的仿真模式改为多旋翼。
{"SettingsVersion":1.2, "SimMode":"Multirotor"}
  1. 进入工程: 双击打开 LandscapeMountains.sln,设置编译选项为'DebugGame Editor'和'Win64',同时将 设为启动项,点击'调试'->'开始调试',或者直接点击'本地 Windows 调试器',这时会自动打开虚幻引擎的关卡编辑器。此时,虚幻引擎编辑器右下角出现了'新插件可用'的提示,说明虚幻引擎已经能够识别到 AirSim 插件了。
LandscapeMountains
  • 设置游戏模式为 AirSim: 在关卡编辑器中,将右侧'世界场景设置'中的'游戏模式重载'设置为'AirSimGameMode',点击'保存当前关卡'。
  • 运行: 点击绿色三角开始仿真。
  • 至此 AirSim 插件已经加载到虚幻引擎场景工程中了。

    3 撰写 python 控制程序

    3.2 内容梳理

    安装好 python 的运行环境,主要使用 conda 虚拟环境的 python 解释器,pycharm 充当编辑器的作用。使用 AirSim 官方提供的 python API,与无人机建立联系,控制无人机的起飞和降落。

    3.3 步骤总结

    1. 安装 Anaconda 并创建环境: 创建虚拟环境,并在该环境中安装必需的包。
    pip install msgpack-rpc-python
    pip install airsim
    
    1. 安装 pycharm: 安装了社区版,是免费的,目前功能够用。
    2. 创建工程: pycharm 中创建一个新的 python 工程,解释器选择上面新建的 conda 环境中的 python 解释器:conda 的安装路径\envs\airsim\python.exe。
    3. 创建 python 文件: 在新建的 python 工程中新建一个 python File,将下面的代码复制进去:
    import airsim
    
    # 与 AirSim 仿真器建立连接,并且返回句柄
    client = airsim.MultirotorClient()
    client.confirmConnection()
    
    # 获得控制权
    client.enableApiControl(True)
    
    # 解锁无人机
    client.armDisarm(True)
    
    # Async 函数在执行的时候会立即返回。此时有可能任务还没执行完。在后面加上.join(),就可以让当前函数执行完才执行下一行
    client.takeoffAsync().join()
    client.landAsync().join()
    
    # 上锁
    client.armDisarm(False)
    # 释放控制权
    client.enableApiControl(False)
    

    python 与 AirSim 的通信机制: AirSim API 使用的是 TCP/IP 中的 msgpack-rpc 协议,可以用两台不同的电脑来做仿真,一台跑 AirSim 和 Unreal(仿真),另一台跑 python 程序(算法)。当 AirSim 开始仿真的时候,会打开 41451 端口,并监听这个端口的需求。python 程序使用 msgpack serialization 格式向这个端口发送 RPC 包,就可以与 AirSim 进行通信了。如果 41451 端口已经被其他程序使用了,那么可以通过 settings 文件改变 AirSim 使用的端口号。使用这种网络通信协议的方式,可以将 AirSim 和 python 程序隔离,互不干扰。所以不需要修改 AirSim 的任何源代码,就可以满足非常多的仿真需求;而且即使 python 程序中断了,AirSim 的仿真也可以继续进行。

    示例:一台跑仿真,一台跑 python 程序

    server_ip = "192.168.0.10" # 示例 IP 地址
    port = 41451
    client = airsim.MultirotorClient(ip=server_ip, port=port)
    

    运行代码: 在右上角点击绿色三角形运行 python 程序,仿真中的四旋翼会先起飞到一定高度,然后降落。

    4 注意事项

    问题: 我发现进行仿真的时候,我的 UE 界面没有显示三个摄像头的画面,跟原教程截图的不一样。

    解决方法: 修改 settings.json 文件打开无人机的三个摄像头窗口。

    "SubWindows":[{"WindowID":0, "ImageType":0, "CameraName":"front_center", "Visible": true}, {"WindowID":1, "ImageType":3, "CameraName":"front_center", "Visible": true}, {"WindowID":2, "ImageType":5, "CameraName":"front_center", "Visible": true}]
    

    其中,ImageType 的值表示图像类型。

    CameraName 的值表示是哪一个相机。

    至此,AirSim 环境已成功安装,并实现了使用 Python 程序控制无人机的功能。这可以视作 AirSim 入门的'Hello World'示例。

    目录

    1. AirSim 无人机仿真入门:实现起飞与降落
    2. 1 安装 AirSim
    3. 1.2 内容梳理
    4. 1.3 步骤总结
    5. 2 开始使用 AirSim
    6. 2.2 内容梳理
    7. 2.3 步骤总结
    8. 3 撰写 python 控制程序
    9. 3.2 内容梳理
    10. 3.3 步骤总结
    11. 与 AirSim 仿真器建立连接,并且返回句柄
    12. 获得控制权
    13. 解锁无人机
    14. Async 函数在执行的时候会立即返回。此时有可能任务还没执行完。在后面加上.join(),就可以让当前函数执行完才执行下一行
    15. 上锁
    16. 释放控制权
    17. 4 注意事项
    • 💰 8折买阿里云服务器限时8折了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 🤖 一键搭建Deepseek满血版了解详情
    • 一键打造专属AI 智能体了解详情
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • Ubuntu 22.04 下 libwebkit2gtk-4.1-0 依赖安装问题解析
    • Qwen-Image-Edit-2511 与 Stable Diffusion 图像编辑能力对比
    • Java 手写 AI Agent:ZenoAgent 实战笔记
    • Star-Office-UI: 像素风格 AI 办公室看板,可视化 AI 助手工作状态
    • Python 爬虫实战:豆瓣电影 Top250 封面图片采集
    • 使用 Layui 框架解决 Unity WebGL 渲染在 Tab 切换时黑屏问题
    • CATE 条件平均处理效应估计:五大方法原理详解与 Python 实战
    • C++ 多态的概念、实现与原理详解
    • Windows 系统 WSL2 部署 OpenClaw 实战指南
    • 主流 Computer Use Agent 项目汇总与 Agentic AI 技术解析
    • 无人机航拍小目标检测:基于 YOLO11 的实战方案
    • Oracle 迁移 KingbaseES:SQL 语法快速兼容实战指南
    • Cube Studio 云原生 AI 平台入门与实战指南
    • RK3588 Linux RGA 使用教程
    • GitHub Copilot 与 Claude Code 深度对比:如何选择 AI 编程助手
    • 基于 LangChain 和 Milvus 从零搭建 LLM 应用
    • 基于 Document Picture-in-Picture API 实现视频小窗与主页面同步控制
    • AI 大模型学习路线:从基础到进阶的系统指南
    • Continuable Promises 解析:C++ 构建类似 JavaScript Promise.all 组合子
    • 大模型在传统 NLP 文本分类任务中的应用实践

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • curl 转代码

      解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online