Skip to content

Симуляція кількох рухомих засобів з JMAVSim

Ця тема пояснює, як моделювати кілька БПЛА (багатовертольотних) транспортних засобів, використовуючи JMAVSim та SITL. Усі екземпляри транспортних засобів починають рух з однакової позиції в симуляції.

TIP

Це найлегший спосіб симулювати одночасний рух кількох транспортних засобів PX4. Це підходить для тестування підтримки кількох транспортних засобів у QGroundControl (або у MAVSDK, тощо). Багатофункціональне моделювання транспортних засобів з Gazebo слід використовувати для імітації рою з багатьма транспортними засобами або для тестування функцій, таких як комп'ютерне зорове спостереження, які підтримуються лише Gazebo.

Як розпочати кілька екземплярів

Для запуску кількох екземплярів (на окремих портах):

  1. Збірка PX4

    sh
    make px4_sitl_default
  2. Виконайте sitl_multiple_run.sh, вказавши кількість екземплярів для запуску (наприклад, 2):

    sh
    ./Tools/sitl_multiple_run.sh 2
  3. Запустіть перший екземпляр в тому ж терміналі (це буде працювати на передньому плані):

    sh
    ./Tools/simulation/jmavsim/jmavsim_run.sh -l
  4. Відкрийте новий термінал для кожного наступного екземпляру, вказавши симуляційний 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, а також перезапустити кожний з індивідуальних екземплярів у їх власних терміналах.

Додаткові ресурси

  • Дивіться Симуляція для отримання додаткової інформації щодо налаштування порту.