Симуляція кількох рухомих засобів з JMAVSim
Ця тема пояснює, як моделювати кілька БПЛА (багатовертольотних) транспортних засобів, використовуючи JMAVSim та SITL. Усі екземпляри транспортних засобів починають рух з однакової позиції в симуляції.
TIP
Це найлегший спосіб симулювати одночасний рух кількох транспортних засобів PX4. Це підходить для тестування підтримки кількох транспортних засобів у QGroundControl (або у MAVSDK, тощо). Багатофункціональне моделювання транспортних засобів з Gazebo слід використовувати для імітації рою з багатьма транспортними засобами або для тестування функцій, таких як комп'ютерне зорове спостереження, які підтримуються лише Gazebo.
Як розпочати кілька екземплярів
Для запуску кількох екземплярів (на окремих портах):
Збірка PX4
shmake px4_sitl_default
Виконайте sitl_multiple_run.sh, вказавши кількість екземплярів для запуску (наприклад, 2):
sh./Tools/sitl_multiple_run.sh 2
Запустіть перший екземпляр в тому ж терміналі (це буде працювати на передньому плані):
sh./Tools/simulation/jmavsim/jmavsim_run.sh -l
Відкрийте новий термінал для кожного наступного екземпляру, вказавши симуляційний TCP-порт для екземпляру:
sh./Tools/simulation/jmavsim/jmavsim_run.sh -p 4560 -l
Порт повинен бути встановлений на
4560+i
, деi
ітерується для кожного екземпляра (від0
доN-1
)
QGroundControl повинен автоматично підключатися до всіх нових екземплярів транспортних засобів (весь трафік GCS надсилається на віддалений UDP-порт PX4: 14550
з усіх екземплярів). Транспортний засіб, яким у даний момент керується, відображається в програмі на панелі; ви можете вибрати цей текст транспортного засобу, щоб відобразити список вибору всіх (симульованих) підключених екземплярів транспортних засобів (Транспортний засіб 1
, Транспортний засіб 2
тощо) та вибрати новий транспортний засіб для керування.
API розробника, такі як MAVSDK або MAVROS, можуть підключатися до окремих екземплярів, прослуховуючи послідовно виділені віддалені UDP-порти PX4 від 14540
(перший екземпляр) до 14549
. Додаткові екземпляри всі підключаються до порту 14549
.
Порада Сценарій sitl_multiple_run.sh запускає окремий процес для кожного транспортного засобу. Щоб перезапустити симуляції після вбивства одного з них, вам потрібно знову викликати sitl_multiple_run.sh, а також перезапустити кожний з індивідуальних екземплярів у їх власних терміналах.
Додаткові ресурси
- Дивіться Симуляція для отримання додаткової інформації щодо налаштування порту.