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


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

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

    image


    📌 目录

    1. 环境要求
    2. 软件安装
    3. AirSim 配置
    4. PX4 配置
    5. 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 必需组件

    image

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

    软件安装

    1. Visual Studio 2022

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

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

    2. Unreal Engine 4.27

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

    3. WSL Ubuntu 安装

    查看可用发行版

    wsl --list --online
    

    安装 Ubuntu

    wsl --install -d Ubuntu-22.04
    

    离线安装方式

    下载离线包:

    # 创建安装目录
    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 中运行

    cd AirSim-1.8.1-windows
    build.cmd
    

    配置 settings.json

    配置文件位置:C:\Users\<你的用户名>\Documents\AirSim\settings.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 项目

    \AirSim-1.8.1-windows\Unreal\Environments\Blocks\Blocks.uproject
    

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

    成功连接显示:
    image


    PX4 配置

    1. 复制并解压 PX4 源码

    # 从 Windows 复制到 WSL
    sudo mv /mnt/c/Users/<用户名>/Desktop/px4v1.15.2.zip ~/
    
    # 解压
    unzip px4v1.15.2.zip -d ~/
    cd ~/px4v1.15.2
    

    2. 安装系统依赖

    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 虚拟环境

    # 创建虚拟环境
    python3 -m venv venv
    
    # 激活虚拟环境
    source venv/bin/activate
    
    # 安装 Python 依赖
    pip install kconfiglib empy packaging jinja2 jsonschema toml pyros-genmsg pyyaml future
    

    4. 运行 PX4 安装脚本

    bash ./Tools/setup/ubuntu.sh
    

    5. 编译 PX4

    make px4_sitl_default none_iris
    

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


    QGC 配置

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

    打开 Windows 版 QGroundControl:
    image
    进入 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 常用控制命令

    # 在 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
      image

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

    [wsl2]
    networkingMode=mirrored
    dnsTunneling=true
    firewall=true
    autoProxy=true
    

    问题2:pip installexternally-managed-environment

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

    解决方案

    # 方案一:使用 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 版本过高

    解决方案

    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 启动前设置:
      export PX4_SIM_HOSTNAME=
      

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

    解决方案

    # 在 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 被占用错误

    解决方案

    # Windows PowerShell 中
    netstat -ano | findstr :4560
    taskkill /PID  /F
    wsl --shutdown
    

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

    解决方案

    1. 确保飞机已连接
    2. QGC 设置中勾选"虚拟摇杆"
    3. 检查 PX4 参数:
      param set COM_RC_IN_MODE 1
      

    参考资源

    视频教程

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

    资源下载

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

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

    关键路径汇总

    组件 路径
    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

  • 相关阅读:
    交换机和路由器技术-36-端口镜像
    008_第一代软件系统架构
    提取Android盒子dtb文件
    DHCP动态主机配置协议
    【HTML】元婴篇
    python基础开发篇3——线上环境部署Django项目
    Java前端知识积累——CSS样式知识积累
    FL STUDIO水果21版本新主题、插件、功能介绍
    SEO优化的许多好处是与流量有直接关系
    设计模式:里氏代换原则(Liskov Substitution Principle,LSP)介绍
  • 原文地址:https://www.cnblogs.com/tokepson/p/20063912