# JMAVSim 다중 차량 시뮬레이션
이 항목에서는 JMAVSim과 SITL을 사용하여 다중 UAV(멀티콥터) 차량을 시뮬레이션 방법을 설명합니다. 모든 차량 인스턴스는 시뮬레이션의 동일한 위치에서 시작합니다.
PX4 다중 차량을 시뮬레이션하는 가장 편리한 방법입니다. *QGroundControl*(또는 [MAVSDK](https://mavsdk.mavlink.io/) 등)에서 다중 차량 지원을 테스트하는 데 적합합니다. [Gazebo를 사용한 다중 차량 시뮬레이션](../simulation/multi-vehicle-simulation.md)은 많은 차량이 있는 무리 시뮬레이션이나 Gazebo에서만 지원되는 컴퓨터 비전과 같은 기능을 테스트하는 데 사용하여야 합니다.
# 다중 인스턴스 시작 방법
다중 인스턴스를 시작하려면(별도의 포트에서):
- PX4를 빌드합니다.
make 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
[0, N-1]
의i
에 대하여4560+i
로 설정되어야 합니다.
QGroundControl should automatically connect to all the new vehicle instances (all GCS traffic is sent to PX4's remote UDP port: 14550
from all instances). The vehicle that is currently being controlled is displayed in the application to bar; you can select this vehicle text to display a selection list of all of the (simulated) connected vehicle instances (Vehicle 1
, Vehicle 2
, etc.) and choose a new vehicle to control.
MAVSDK 또는 MAVROS와 같은 개발자 API는 14540
(첫 번째 인스턴스)에서 14549</1까지 순차적으로 할당된 PX4 원격 UDP 포트에서 수신 대기합니다. 추가 인스턴스 <em x-id="3">모두</em>는 <code>14549
포트에 연결됩니다.
Tip The sitl_multiple_run.sh script starts a separate process for each vehicle. To restart the simulations after killing one of them, you must call sitl_multiple_run.sh again, and also restart each of the individual instances in their own terminals.
# 추가 자료
- 포트 설정에 대한 자세한 내용은 시뮬레이션을 참고하십시오.