Симуляція з апаратним забезпеченням в контурі (HITL)
HITL
підтримується та утримується спільнотою. Це може працювати або не працювати з поточними версіями PX4.
Дивіться Встановлення інструментарію для інформації про середовища та інструменти, які підтримуються основною розробницькою командою.
Апаратне забезпечення в контурі (HITL або HIL) режим симуляції в якому звичайна прошивка PX4 виконується на реальному пристрої польотного контролера. Цей підхід має перевагу у вигляді можливості тестування більшості коду для польоту на реальному апаратному забезпеченні.
PX4 підтримує HITL для мультикоптерів (за допомогою jMAVSim або Gazebo Classic) та ВЗІП (за допомогою Gazebo Classic).
Планери сумісні з HITL
Поточний набір сумісних планерів проти симуляторів:
Планер | SYS_AUTOSTART | Gazebo Classic | jMAVSim |
---|---|---|---|
HIL квадрокоптер у конфігурації X | 1001 | Y | Y |
HIL ВЗІП квадроплан стандартний | 1002 | Y | |
Загальний квадрокоптер у конфігурації X | 4001 | Y | Y |
Середовище симуляції HITL
У симуляції з апаратним забезпеченням у контурі (HITL) звичайна прошивка PX4 виконується на реальному обладнані. JMAVSim або Gazebo Classic (які працюють на комп'ютері розробки) підключені до пристрою польотного контролера через USB/UART. Симулятор діє як шлюз для спільного використання даних MAVLink між PX4 та QGroundControl.
Симулятор також може бути підключений за допомогою UDP якщо політний контролер має підтримку мережі та використовує стабільне з'єднання з низькою затримкою (наприклад дротове Ethernet підключення, WiFi підключення зазвичай недостатньо надійне). Наприклад, ця конфігурація була перевірена з PX4, що виконується на Raspberry Pi який підключений через Ethernet до комп'ютера (налаштування запуску яке включає команди для запуску jMAVSim можна знайти тут).
Діаграма нижче показує середовище симуляції:
- Обрано конфігурацію HITL (у QGroundControl), яка не запускає ніяких реальних датчиків.
- jMAVSim або Gazebo Classic підключені до політного контролера через USB.
- Симулятор підключено до QGroundControl через UDP і передає повідомлення MAVLink до PX4.
- Gazebo Classic та jMAVSim можуть також підключатися до зовнішнього API та передавати повідомлення MAVLink до PX4.
- (Необов'язково) Для підключення джойстика/геймпада через QGroundControl може бути використано послідовне з'єднання.
HITL у порівнянні з SITL
SITL працює на комп'ютері розробки в модельованому середовищі та використовує прошивку спеціально створену для цього середовища. Крім драйверів симуляції для забезпечення підроблених даних середовища від симулятора система поводиться як зазвичай.
На противагу, HITL виконує звичайну прошивку PX4 в "режимі HITL" на звичайному обладнані. Дані симуляції потрапляють в систему в іншій точці ніж для SITL. Основні модулі на кшталт командного або датчиків мають режими HITL, що оминають частину звичайної функціональності при старті.
Підсумовуючи, HITL виконує PX4 на реальному обладнанні за допомогою стандартної прошивки, а SITL фактично більше виконує стандартний системний код.
Налаштування HITL
Налаштування PX4
З'єднайте автопілот безпосередньо з QGroundControl за допомогою USB.
Увімкніть режим HITL
Відкрийте розділ Налаштування > Безпека.
Увімкніть режим HITL обравши Увімкнено в переліку HITL увімкнено:
Оберіть планер
Відкрийте Налаштування > Планери
Оберіть сумісний планер який потрібно перевірити. Потім натисніть Застосувати та перезапустити у верхній правій частині сторінки Налаштування планера.
При необхідності відкалібруйте пульт РК або джойстик.
Налаштування UDP
У вкладці Загальне меню налаштувань приберіть усі прапорці AutoConnect окрім UDP.
(Необов'язково) Налаштуйте джойстик та запобіжник відмови. Встановіть наступні параметри для того щоб використовувати джойстик замість передавача РК пульту:
- COM_RC_IN_MODE у "Joystick/No RC Checks". Це дозволить керування джойстиком та відключить перевірки пульту РК.
- NAV_RCL_ACT у "Вимкнено". Це гарантує, що ніякі дії запобігання відмові не будуть перешкоджати коли не виконується HITL з радіо керуванням.
TIP
Посібник користувача QGroundControl має інструкції для налаштування Джойстика та Віртуального джойстика.
Як тільки налаштування завершене, закрийте QGroundControl та від'єднайте політний контролер від комп'ютера.
Налаштування відповідних симуляторів
Дотримуйтесь відповідних кроків для певного симулятора в наступних розділах.
Gazebo Classic
Переконайтеся, що QGroundControl не запущено!
Зберіть PX4 з Gazebo Classic (щоб зібрати плагіни Gazebo Classic).
shcd <Firmware_clone> DONT_RUN=1 make px4_sitl_default gazebo-classic
Відкрийте sdf файл моделі рухомого засобу (наприклад Tools/simulation/gazebo-classic/sitl_gazebo-classic/models/iris_hitl/iris_hitl.sdf).
Якщо необхідно, замінить параметр
serialDevice
(/dev/ttyACM0
).Пристрій послідовного порту залежить від порту, що використано для під'єднання засобу до комп'ютера (зазвичай це
/dev/ttyACM0
). Простий спосіб перевірити це на Ubuntu - під'єднати автопілот, відкрити термінал та ввестиdmesg | grep "tty"
. Останній показаний пристрій і буде тим що потрібно.
:::
Налаштуйте змінні середовища:
shsource Tools/simulation/gazebo-classic/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
та запустіть Gazebo Classic в режимі HITL:
shgazebo Tools/simulation/gazebo-classic/sitl_gazebo-classic/worlds/hitl_iris.world
Запустіть QGroundControl. Воно повинно автоматично підключитися до PX4 та Gazebo Classic.
jMAVSim (тільки квадрокоптер)
Переконайтеся, що QGroundControl не запущено!
Під'єднайте політний контролер до комп'ютера та дочекайтесь коли він завантажиться.
Запустіть jMAVSim в режимі HITL:
sh./Tools/simulation/jmavsim/jmavsim_run.sh -q -s -d /dev/ttyACM0 -b 921600 -r 250
Замінить ім'я послідовного порту
/dev/ttyACM0
на відповідний. На macOS цей порт буде/dev/tty.usbmodem1
. На Windows (включно з Cygwin) це буде COM1 або інший порт - перевірте з'єднання в менеджері пристроїв Windows.
:::
- Запустіть QGroundControl. Воно повинно автоматично підключитися до PX4 та jMAVSim.
Політ за автономним завданням у HITL
Ви повинні мати можливість використовувати QGroundControl для запуску політних завдань та іншим чином керувати рухомим засобом.