跳至内容

使用 JMAVSim 进行多车模拟

本主题介绍如何使用以下工具模拟多个无人飞行器(多旋翼)飞行器 JMAVSim 和 SITL。所有载具实例都从模拟中的同一位置开始。

TIP

这是模拟多载具运行 PX4 的最简单方法。它适用于在以下系统中测试多载具支持 QGroundControl (或 MAVSDK等)。 带仿真场景Gazebo的多车模拟 应该用于有许多载具的蜂群模拟,或者用于测试只有 Gazebo 才支持的计算机视觉等功能。

如何启动多个实例

要启动多个实例(在不同的端口上):

  1. 建造 PX4

    生产 px4_sitl_default
  2. 运行 sitl_multiple_run.sh,指定要启动的实例数(如 2):

    ./Tools/sitl_multiple_run.sh 2
  3. 在同一终端启动第一个实例(将在前台运行):

    ./Tools/simulation/jmavsim/jmavsim_run.sh -l
  4. 为每个后续实例打开一个新终端,指定 仿真 实例的 TCP 端口:

    ./Tools/simulation/jmavsim/jmavsim_run.sh -p 4560 -l

    端口应设置为 4560+i 其中 i 迭代每个实例(从 0N-1)

QGroundControl 会自动连接到所有新的载具实例(所有 GCS 流量都会发送到 PX4'remote UDP 端口): 14550 所有实例)。当前正在控制的载具会显示在应用程序运行栏中;您可以选择该载具文本,以显示所有(模拟)已连接载具实例的选择列表 (载具 1, 载具 2等),并选择一辆新的载具进行控制。

开发人员应用程序接口,如 MAVSDK马弗罗斯 可通过监听按顺序分配的 PX4 远程 UDP 端口连接到单个实例,从 14540 (一审)至 14549.其他实例 一应俱全 连接到端口 14549.

提示 sitl_multiple_run.sh 脚本会为每辆车启动一个单独的进程。要在杀死其中一辆车后重新启动模拟,必须调用 sitl_multiple_run.sh 并在各自的终端中重新启动每个实例。

其他资源

  • 参见 模拟 了解有关端口配置的更多信息。