Skip to content

使用 FlightGear 进行多飞行器仿真 ​

WARNING

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

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

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

INFO

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

如果要进行大量飞行器的集群仿真,或者测试只有 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 是单线程应用程序,但空气动力学求解器会消耗大量内存。因此,可能需要将仿真拆分到多台计算机上,并使用多人服务器来运行大量飞行器实例。

额外资源 ​

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