使用 JMAVSim 进行多车模拟
本主题介绍如何使用以下工具模拟多个无人飞行器(多旋翼)飞行器 JMAVSim 和 SITL。所有载具实例都从模拟中的同一位置开始。
TIP
这是模拟多载具运行 PX4 的最简单方法。它适用于在以下系统中测试多载具支持 QGroundControl (或 MAVSDK等)。 带仿真场景Gazebo的多车模拟 应该用于有许多载具的蜂群模拟,或者用于测试只有 Gazebo 才支持的计算机视觉等功能。
如何启动多个实例
要启动多个实例(在不同的端口上):
建造 PX4
吁生产 px4_sitl_default
运行 sitl_multiple_run.sh,指定要启动的实例数(如 2):
吁./Tools/sitl_multiple_run.sh 2
在同一终端启动第一个实例(将在前台运行):
吁./Tools/simulation/jmavsim/jmavsim_run.sh -l
为每个后续实例打开一个新终端,指定 仿真 实例的 TCP 端口:
吁./Tools/simulation/jmavsim/jmavsim_run.sh -p 4560 -l
端口应设置为
4560+i
其中i
迭代每个实例(从0
至N-1
)
QGroundControl 会自动连接到所有新的载具实例(所有 GCS 流量都会发送到 PX4'remote UDP 端口): 14550
所有实例)。当前正在控制的载具会显示在应用程序运行栏中;您可以选择该载具文本,以显示所有(模拟)已连接载具实例的选择列表 (载具 1
, 载具 2
等),并选择一辆新的载具进行控制。
开发人员应用程序接口,如 MAVSDK 或 马弗罗斯 可通过监听按顺序分配的 PX4 远程 UDP 端口连接到单个实例,从 14540
(一审)至 14549
.其他实例 一应俱全 连接到端口 14549
.
提示 sitl_multiple_run.sh 脚本会为每辆车启动一个单独的进程。要在杀死其中一辆车后重新启动模拟,必须调用 sitl_multiple_run.sh 并在各自的终端中重新启动每个实例。
其他资源
- 参见 模拟 了解有关端口配置的更多信息。