Skip to content

使用 FlightGear 进行多飞行器仿真

WARNING

此仿真器由社区提供支持和维护(详见社区支持的仿真器)。 它可能与当前版本的 PX4 兼容,也可能不兼容。

有关核心开发团队支持的开发环境和工具的信息,请参阅工具链安装

本主题介绍如何在软件在环(SITL)仿真中使用 FlightGear 模拟多架飞行器。所有飞行器实例的参数均由其启动脚本定义。

INFO

这是模拟多架运行 PX4 的飞行器的最接近真实环境的方法,并且可以轻松测试多种不同类型的飞行器。 它适用于测试 QGroundControlMAVSDK 等对多飞行器的支持情况。

如果要进行大量飞行器的集群仿真,或者测试只有 Gazebo Classic 支持的计算机视觉等功能,则应使用使用 Gazebo Classic 进行多飞行器仿真

如何启动多个实例

要启动多个实例(使用不同的端口和 ID):

  1. 检出 支持多飞行器的 PX4 分支(位于 ThunderFly-aerospace 仓库):

    sh
    git clone https://github.com/ThunderFly-aerospace/PX4Firmware.git
    cd PX4Firmware
    git checkout flightgear-multi
  2. 使用标准工具链(已安装 FlightGear)构建 PX4 固件。

  3. 使用预定义脚本启动第一个实例:

    sh
    cd ./Tools/flightgear_bridge/scripts
    ./vehicle1.sh
  4. 使用另一个脚本启动后续实例:

    sh
    ./vehicle2.sh

每个实例都应有自己的启动脚本,这些脚本可以代表完全不同类型的飞行器。使用准备好的脚本,你应该会看到如下视图。

使用 PX4 SITL 和 FlightGear 进行多飞行器仿真

QGroundControl 这样的地面站通过常规 UDP 端口 14550 连接到所有实例(所有流量都流向同一端口)。

同时运行的实例数量主要受计算机资源限制。FlightGear 是单线程应用程序,但空气动力学求解器会消耗大量内存。因此,可能需要将仿真拆分到多台计算机上,并使用多人服务器来运行大量飞行器实例。

额外资源

  • 有关端口配置的更多信息,请参阅仿真