使用 FlightGear 进行多飞行器仿真
本主题介绍如何在软件在环(SITL)仿真中使用 FlightGear 模拟多架飞行器。所有飞行器实例的参数均由其启动脚本定义。
INFO
这是模拟多架运行 PX4 的飞行器的最接近真实环境的方法,并且可以轻松测试多种不同类型的飞行器。 它适用于测试 QGroundControl、MAVSDK 等对多飞行器的支持情况。
如果要进行大量飞行器的集群仿真,或者测试只有 Gazebo Classic 支持的计算机视觉等功能,则应使用使用 Gazebo Classic 进行多飞行器仿真。
如何启动多个实例
要启动多个实例(使用不同的端口和 ID):
检出 支持多飞行器的 PX4 分支(位于 ThunderFly-aerospace 仓库):
shgit clone https://github.com/ThunderFly-aerospace/PX4Firmware.git cd PX4Firmware git checkout flightgear-multi
使用标准工具链(已安装 FlightGear)构建 PX4 固件。
使用预定义脚本启动第一个实例:
shcd ./Tools/flightgear_bridge/scripts ./vehicle1.sh
使用另一个脚本启动后续实例:
sh./vehicle2.sh
每个实例都应有自己的启动脚本,这些脚本可以代表完全不同类型的飞行器。使用准备好的脚本,你应该会看到如下视图。
像 QGroundControl 这样的地面站通过常规 UDP 端口 14550 连接到所有实例(所有流量都流向同一端口)。
同时运行的实例数量主要受计算机资源限制。FlightGear 是单线程应用程序,但空气动力学求解器会消耗大量内存。因此,可能需要将仿真拆分到多台计算机上,并使用多人服务器来运行大量飞行器实例。
额外资源
- 有关端口配置的更多信息,请参阅仿真。