Ardupilot
Библиотека блоков предназначена для косимуляции Engee с автопилотом Ardupilot в режиме SITL (Software In The Loop).
В режиме косимуляции обязанности разделены: модель Engee рассчитывает физику аппарата (динамику, сенсоры), а Ardupilot — логику управления. Ardupilot в режиме SITL работает в режиме расчета физических параметров симуляции из внешнего источника: он не моделирует аппарат сам, а отправляет в Engee ШИМ-сигналы на моторы и получает в ответ данные сенсоров (угловые скорости, ускорения, положение, ориентацию, скорость). Блоки библиотеки Ardupilot обслуживают этот обмен, а телеметрию автопилота можно параллельно принимать блоками библиотеки MAVLink.
Для работы с блоками библиотеки Ardupilot установите/обновите пакет поддержки оборудования.
Как пользоваться блоками
Обмен строится вокруг UDP-моста, который создает блок Ardupilot Setup:
-
блок Ardupilot Setup открывает UDP-сокет на порту
9002, слушает ШИМ-кадры Ardupilot и выводит дескриптор соединения; -
дескриптор подается на вход conn блоков Ardupilot RX и Ardupilot TX — они работают через этот общий мост;
-
блок Ardupilot RX принимает ШИМ-сигналы автопилота (управление моторами);
-
блок Ardupilot TX отправляет автопилоту данные сенсоров, рассчитанные моделью.
Обмен синхронизирован (lockstep): новый ШИМ-кадр от Ardupilot приходит только после того, как блок Ardupilot TX отправил очередной кадр сенсоров, поэтому частота шагов расчета модели должна соответствовать частоте цикла автопилота.
Для запуска блоков нужен Ardupilot SITL в режиме расчета физических параметров симуляции. Готовый Docker-контейнер с Ardupilot SITL и MAVProxy входит в состав примеров пакета поддержки — см. статью ArduPilot SITL: инфраструктура для запуска косимуляции.
- Ardupilot RX
-
Прием ШИМ-сигналов от автопилота.
- Ardupilot Setup
-
Настройка UDP-моста с Ardupilot SITL.
- Ardupilot TX
-
Отправка данных сенсоров автопилоту.