# 使用 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 的远程 UDP 端口): 14550 所有实例)。当前正在控制的载具会显示在应用程序运行栏中;您可以选择该载具文本,以显示所有(模拟)已连接载具实例的选择列表 (载具 1, 载具 2等),并选择一辆新的载具进行控制。

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

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

# 其他资源

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