AirSIM+PX4+QGC无人机仿真环境

PX4 + AirSim + QGC 仿真环境搭建完整指南

本文档记录了在 Windows 11 + WSL2 (Ubuntu 22.04/24.04) 环境下,从零开始搭建 PX4 v1.15.2、AirSim v1.8.1 和 QGC 仿真环境的完整过程。


📌 目录

  1. 环境要求
  2. 软件安装
  3. [AirSim 配置](#AirSim 配置)
  4. [PX4 配置](#PX4 配置)
  5. [QGC 配置](#QGC 配置)
  6. 启动流程
  7. 常见问题与解决方案
  8. 参考资源

环境要求

项目 要求
系统 Windows 11
磁盘空间 80GB+
WSL WSL2 (Ubuntu 22.04/24.04)
仿真引擎 Unreal Engine 4.27
IDE Visual Studio 2022
飞控固件 PX4 v1.15.2
仿真插件 AirSim v1.8.1
地面站 QGroundControl

VS2022 必需组件

  • ✅ .NET 桌面应用开发
  • ✅ 使用 C++ 的桌面应用开发

软件安装

1. Visual Studio 2022

下载并安装 VS2022,安装时勾选:

  • ".NET 桌面应用开发"
  • "使用 C++ 的桌面应用开发"

2. Unreal Engine 4.27

  • 从整合包直接安装,选择 UE 4.27 版本引擎
  • 或通过 Epic Games Launcher 安装

3. WSL Ubuntu 安装

查看可用发行版

powershell 复制代码
wsl --list --online

安装 Ubuntu

powershell 复制代码
wsl --install -d Ubuntu-22.04

离线安装方式

下载离线包:

powershell 复制代码
# 创建安装目录
mkdir C:\WSL\Ubuntu2204

# 导入镜像
wsl --import Ubuntu-22.04 C:\WSL\Ubuntu2204 "下载路径\ubuntu-22.04.5-wsl-amd64.wsl" --version 2

# 启动并创建用户
wsl -d Ubuntu-22.04 -u root
adduser <用户名>
passwd <用户名>

# 以普通用户登录
wsl -d Ubuntu-22.04 -u <用户名>

AirSim 配置

编译 AirSim

重要 :必须在 x64 Native Tools Command Prompt for VS 2022 中运行

cmd 复制代码
cd AirSim-1.8.1-windows
build.cmd

配置 settings.json

配置文件位置:C:\Users\<你的用户名>\Documents\AirSim\settings.json

json 复制代码
{
    "SettingsVersion": 1.2,
    "SimMode": "Multirotor",
    "ClockType": "SteppableClock",
    "Vehicles": {
        "PX4": {
            "VehicleType": "PX4Multirotor",
            "UseTcp": true,
            "TcpPort": 4560,
            "LockStep": true,
            "LocalHostIp": "0.0.0.0"   // 关键:监听所有接口
        }
    }
}

或(将整合包里的setting内容黏贴进去,将"LocalHostIp"改成"0.0.0.0")

打开 Unreal 项目

cmd 复制代码
\AirSim-1.8.1-windows\Unreal\Environments\Blocks\Blocks.uproject

用 UE4 打开,点击运行即可。

成功连接显示:


PX4 配置

1. 复制并解压 PX4 源码

bash 复制代码
# 从 Windows 复制到 WSL
sudo mv /mnt/c/Users/<用户名>/Desktop/px4v1.15.2.zip ~/

# 解压
unzip px4v1.15.2.zip -d ~/
cd ~/px4v1.15.2

2. 安装系统依赖

bash 复制代码
sudo apt update
sudo apt install -y \
    python3-empy python3-packaging python3-kconfiglib \
    python3-jinja2 python3-jsonschema python3-toml \
    python3-serial python3-numpy python3-pyparsing \
    python3-yaml python3-argcomplete \
    cmake gcc g++ ninja-build git make \
    net-tools python3-venv

3. 创建 Python 虚拟环境

bash 复制代码
# 创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
source venv/bin/activate

# 安装 Python 依赖
pip install kconfiglib empy packaging jinja2 jsonschema toml pyros-genmsg pyyaml future

4. 运行 PX4 安装脚本

bash 复制代码
bash ./Tools/setup/ubuntu.sh

5. 编译 PX4

bash 复制代码
make px4_sitl_default none_iris

成功标志 :出现 pxh> 或 px4> 提示符


QGC 配置

  • 下载 Windows 版 QGroundControl
  • 直接安装运行
  1. 连接 QGC

打开 Windows 版 QGroundControl:

进入 Application Settings (应用设置) → Comm Links (通信连接)

点击 Add (添加)

配置:

Name: WSL_PX4

Type: UDP

Port: 14550

Server Address: 留空(或填 127.0.0.1)

点击 Connect


启动流程

标准启动顺序(重要!)

顺序 操作 说明
1 启动 AirSim (UE4) 双击 Blocks.uproject 或按 F5
2 等待 AirSim 加载 看到 3D 场景出现
3 启动 PX4 make px4_sitl_default none_iris
4 等待连接成功 出现 pxh> 提示符
5 启动 MAVLink mavlink start -p -u 14550 -t 172.25.143.255
6 连接 QGC UDP 端口 14550
7 解锁起飞 在 QGC 中操作

PX4 常用控制命令

bash 复制代码
# 在 pxh> 提示符下输入
commander takeoff    # 起飞
commander land       # 降落
commander arm        # 解锁
commander disarm     # 上锁
vehicle status       # 查看状态
mavlink status       # 查看 MAVLink 状态

QGC 虚拟摇杆开启

  1. 连接飞机后,点击左上角 Q 图标 → 应用设置
  2. 勾选 "虚拟摇杆" (Virtual Joystick)
  3. 返回飞行界面即可看到摇杆

常见问题与解决方案

问题1:WSL 网络不通 / apt update 超时

现象 :ping 8.8.8.8 不通,apt update 卡住

解决方案:

  1. 关闭 Hyper-V 防火墙
  2. 或在 WSL 设置中将网络模式改为 Net

WSL 网络配置 :C:\Users\<用户名>\.wslconfig

ini 复制代码
[wsl2]
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

问题2:pip install 报 externally-managed-environment

原因:Ubuntu 24.04 的 PEP 668 保护机制

解决方案:

bash 复制代码
# 方案一:使用 apt 安装
sudo apt install python3-<包名>

# 方案二:使用虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate
pip install <包名>

# 方案三:强制安装(不推荐)
pip install --break-system-packages <包名>

问题3:编译错误 module 'em' has no attribute 'RAW_OPT'

原因 :empy 版本过高

解决方案:

bash 复制代码
pip uninstall empy em
pip install empy==3.3.4

问题4:AirSim 连接不上 PX4

现象 :PX4 显示 Waiting for simulator to accept connection on TCP port 4560

解决方案:

  1. 确保 AirSim 先启动

  2. 修改 settings.json 中 "LocalHostIp": "0.0.0.0"

  3. 在 PX4 启动前设置:

    bash 复制代码
    export PX4_SIM_HOSTNAME=<Windows主机IP>

问题5:QGC 无法连接 / 无数据显示

解决方案:

bash 复制代码
# 在 PX4 控制台中执行
param set MAV_0_BROADCAST 1
mavlink stop-all
mavlink start -p -u 14550 -t 172.25.143.255

问题6:AirSim 中无人机显示为汽车

解决方案 :修改 settings.json 中的 "SimMode": "Multirotor"

问题7:端口 4560 被占用错误

解决方案:

powershell 复制代码
# Windows PowerShell 中
netstat -ano | findstr :4560
taskkill /PID <PID> /F
wsl --shutdown

问题8:QGC 中没有虚拟摇杆

解决方案:

  1. 确保飞机已连接

  2. QGC 设置中勾选"虚拟摇杆"

  3. 检查 PX4 参数:

    bash 复制代码
    param set COM_RC_IN_MODE 1

参考资源

视频教程

保姆级教程!AirSIM+PX4+QGC从零开始搭建无人机仿真环境

资源下载

UP主准备了环境部署包,可关注后下载:

百度网盘:https://pan.baidu.com/s/1OE0Zxqfb_kOniaRDCZMDXQ?pwd=ytjy

关键路径汇总

组件 路径
AirSim 源码 D:\install\AirSim-1.8.1-windows
AirSim 配置 C:\Users\<用户名>\Documents\AirSim\settings.json
Unreal 项目 ...\AirSim-1.8.1-windows\Unreal\Environments\Blocks\Blocks.uproject
PX4 源码 ~/px4v1.15.2 (WSL 中)
QGC Windows 桌面应用
WSL 网络配置 C:\Users\<用户名>\.wslconfig

成功标志

当所有组件正常运行后,你应该看到:

组件 状态指示
AirSim 3D 场景显示,无人机模型
PX4 终端 pxh> 提示符,Simulator connected
MAVLink mavlink status 显示广播地址
QGC 实时数据(姿态、高度、卫星数),虚拟摇杆可用
通信 可执行起飞、降落命令

文档版本 :1.0
最后更新 :2026-05-17
测试环境:Windows 11 + WSL2 Ubuntu 24.04 + PX4 v1.15.2 + AirSim v1.8.1 + UE4.27

相关推荐
GlobalInfo4 小时前
2026年全球无人机清洗系统市场深度分析:规模、竞争格局与AI自主作业演进趋势
大数据·人工智能·ai·无人机
zzlyx995 小时前
无人机侦测反制系统
无人机
蓝悦无人机8 小时前
无人机系列之飞控算法:从PID到AI,飞行控制的核心进化
人工智能·算法·无人机·飞控系统
坐看风云变幻9 小时前
Betaflight 开发环境搭建保姆级教程(Ubuntu / Windows+WSL / Docker 三方案 + 官方网址大全)
windows·ubuntu·docker·无人机·飞控·betaflight
YOLO数据集集合10 小时前
遥感滑坡图像识别数据集 | 滑坡识别 遥感影像 语义分割 灾害监测 无人机航拍 目标检测 深度学习数据集 计算机视觉9172期
人工智能·yolo·目标检测·计算机视觉·无人机·滑坡
零基础1231 天前
卡车—无人机协同路径规划:八篇前沿论文选读
无人机
QYR-分析1 天前
算力下沉,低空新支点:全球无人机机载计算盒市场竞争与发展研判
云计算·无人机
YOLO数据集集合1 天前
道路与桥梁灾后损伤检测数据集 | 道路损伤 桥梁损坏 灾后评估 无人机巡检 目标检测 YOLO格式 深度学习数据集 计算机视觉10551期
yolo·目标检测·计算机视觉·无人机·桥梁损害·灾后评估
菜鸟1号!!2 天前
无人机仿真与真机开发基础_小白友好版
无人机