Перейти к содержимому

Статья

INAV Programming Framework и Logic Conditions с нуля

Безопасное знакомство с автоматизацией INAV: операнды, Logic Conditions, Global Variables, действия и пошаговая проверка одного сценария.

Редакция WARPfly2 мин чтения0 просмотров

Programming Framework позволяет связать данные, логические условия и действия без изменения исходного кода прошивки. Его сила одновременно является риском: одна неочевидная зависимость может изменить управление в полёте. Начинай с наблюдаемого сценария, который ничего критичного не включает.

INAV Programming Framework и Logic Conditions с нуля — обложка WARPfly
INAV Programming Framework и Logic Conditions с нуля — обложка WARPfly. Оригинальная графика WARPfly.

Опиши правило обычным языком

До конфигуратора запиши: «когда выполняются условия A и B, вычислить C; если C истинно, показать или записать результат». Укажи единицы, допустимый диапазон и поведение при отсутствии датчика. Если правило нельзя объяснить одной фразой, раздели его на несколько этапов.

INAV Programming Framework и Logic Conditions с нуля — карта материала
INAV Programming Framework и Logic Conditions с нуля — карта материала. Оригинальная графика WARPfly.

Разбери строительные блоки

  • Операнды предоставляют значения: канал, датчик, константа или переменная.
  • Операции сравнивают, вычисляют или объединяют значения.
  • Logic Conditions дают проверяемый результат.
  • Global Variables хранят промежуточное состояние.
  • Actions меняют поведение системы и требуют особой осторожности.

Точные доступные операнды и действия зависят от версии INAV. Пользуйся документацией той ветки, которая установлена на контроллере, и сохраняй backup до изменений.

Первый сценарий сделай неопасным

Выбери условие, которое можно переключать на столе, и направь результат в наблюдаемую переменную или индикацию. Не начинай с управления мотором, сервой, ARM или навигационным режимом. Проверь ложь, истину, границу и исчезновение источника данных.

Ищи скрытые состояния

  1. Что происходит сразу после загрузки контроллера?
  2. Сохраняется ли результат после исчезновения условия?
  3. Как обрабатывается равенство порогу и дрожание около него?
  4. Может ли другое правило записать ту же переменную или действие?
  5. Как пилот отменит автоматическое действие?

Добавляй действие через лестницу тестов

Сначала наблюдение, затем безопасное действие без пропеллеров, затем наземная проверка с реальными датчиками и только потом короткий полёт в простом режиме. Логируй входы, результат условия и фактическое действие. У каждого правила должен быть ручной выход и состояние по умолчанию, которое не ухудшает безопасность.

Сохрани конфигурацию, текстовое описание правила и таблицу тестов. Programming Framework становится поддерживаемым инструментом только тогда, когда другой человек может воспроизвести причину каждого срабатывания.

Критерий готовности

Правило готово к полёту, если все его входы наблюдаемы, границы проверены в обе стороны, потеря данных приводит к безопасному результату, а пилот может отменить действие одним заранее отработанным способом. Повторяй этот набор после изменения порядка условий, sensor source или версии INAV: прежний успешный тест не покрывает новую схему.

Была ли статья полезна?

#INAV Programming Framework#Logic Conditions#Global Variables#automations#INAV сценарии

Примените знания на практике

Подберите совместимые комплектующие или изучите готовые сборки пилотов.