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 installexternally-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

相关推荐
Evand J3 小时前
【MATLAB】多无人机编队协同控制与三维航迹规划仿真。障碍物斥力避障,输出编队误差、控制输入、三维轨迹等
开发语言·matlab·无人机
IC_157796114767 小时前
一款高性能、高集成度的射频收发器,对标ADI公司的AD9361
无人机
CS_Zero8 小时前
事件相机目标检测——无人机目标检测算法
目标检测·无人机
通信与导航10 小时前
从俄乌战场的攻防战,看无人机 GNSS 抗干扰天线的演进
无人机·抗干扰天线·8阵元抗干扰天线·16阵元抗干扰天线·12阵元抗干扰天线·9阵元抗干扰天线
Oflycomm1 天前
无人机远距离图传新选择:国产私有SDR模组O9201UDH技术解析与选型指南
人工智能·科技·物联网·无人机·模组·qogrisys
灵智实验室1 天前
PX4状态估计技术EKF2详解(四):EKF2 Output Predictor——从延迟估计到实时输出
算法·无人机·px 4
Aaron15881 天前
全频段 SDR干扰源模块解决方案(星链干扰、LORA无人机干扰)
人工智能·算法·fpga开发·硬件架构·硬件工程·无人机·信息与通信
听你说321 天前
鹏辉能源全场景电池方案亮相CIBF2026|硬核电芯覆盖消费电池、无人机电池、储能电池等全域场景
无人机·能源
AI浩1 天前
SDD-YOLO:面向地空反无人机监控的小目标检测框架与边缘高效部署
yolo·目标检测·无人机