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

iNavFlight Missions

Технику БПЛА
Разработчику
Вторник, 20 января 2026

Содержание

 

1. Обзор

INAV поддерживает автономный полет по путевым точкам (Waypoints). Чтобы использовать эту возможность, может потребоваться использование и настройка некоторых вспомогательных технологий, в том числе:

  • Наземная станция управления (GCS) / INAV Configurator. GCS обычно предоставляет функции для создания миссий по путевым точкам (WP), загрузки миссий в полетный контроллер (ПК), проверки (валидации) миссии, выполнения и записи (логгирования) миссии;
  • Оборудование телеметрии. Для передачи миссии в ПК (перед армингом) и, возможно, для мониторинга миссии в реальном времени во время её выполнения, необходимо установить и настроить систему телеметрии между GCS и мультикоптером.

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

Проверки безопасности навигации

Прежде чем приступить к выполнению миссии по точкам, вы должны понимать ожидания системы. А именно: какие условия необходимы для того, чтобы путевые точки загрузились в ПК, и ПК разрешил вам выполнить АРМИНГ (взведение) без сообщения "Navigation Is Unsafe" (Навигация небезопасна). Если после загрузки миссии вы видите это сообщение, причиной является одно из следующего:

  • Вы настроили режимы WP/PH/RTH или Failsafe RTH, но у вас нет достаточной точности GPS фикса.
  • Вы пытаетесь заармиться сразу в режимах RTH/PH/WP.
  • У вас в памяти есть миссия по точкам, и первая точка находится слишком далеко от вашей текущей позиции.
  • Слишком высокое значение HDOP.

Допустимое расстояние до первой путевой точки по умолчанию настраивается параметром nav_wp_safe_distance (по умолчанию 10000 см,  100 метров).

Сообщения протокола MSP (MultiWii Serial Protocol), определяющие навигацию миссий, задокументированы здесь. Этот набор сообщений поддерживается наземными станциями Mission Planner for INAV и mwp. Документация протокола описывает любые необязательные параметры для управления поведением миссии.

↑ К оглавлению

2. Наземные станции управления (GCS)

В настоящее время широко используются два приложения для управления миссиями INAV: INAV Configurator (кроссплатформенный инструмент) и mwp для различных версий Linux, Windows (через WSL) и FreeBSD. В будущем могут появиться другие варианты, особенно по мере внедрения поддержки протокола MAVLink в INAV. Однако инструменты на базе MAVLink будут обеспечивать только мониторинг.

mwp (Linux / FreeBSD / Windows)

mwp можно скачать с Github. mwp имеет открытый исходный код (GPL 3). Доступен только в виде исходного кода, поэтому необходимо скомпилировать и установить приложение. Инструкции по сборке и зависимости предоставлены для Ubuntu и Fedora. Пользователи Arch Linux могут установить mwp из AUR (Arch User Repository).

Помимо планирования миссий и логгера, mwp также поддерживает воспроизведение логов черного ящика (blackbox) на фоне карты местности (требуется blackbox-tools). mwp также включает множество слабо документированных скриптов для анализа миссий и черного ящика, а также чрезвычайно подробное руководство пользователя.

Существует форум поддержки на RC Groups.

Для использования в MS Windows требуется Cygwin или WSL (или виртуальная машина).

INAV Configurator

С версии 1.9.2 конфигуратор INAV предоставляет базовые возможности планирования миссий. С версии 2.2 он может сохранять и восстанавливать миссии из файловой системы. Использование INAV в связке с LuaTelemetry и подходящей аппаратурой (например, серии Taranis), использующей SmartPort, устраняет необходимость в отдельной радиосистеме телеметрии и отправляет все данные телеметрии непосредственно на ЖК-экран передатчика.

Telemetry Viewer (Android)

Telemetry Viewer — это Android-приложение, позволяющее отслеживать данные телеметрии и GPS-координаты. Оно имеет функцию записи и воспроизведения логов, что позволяет отследить местоположение вашего дрона. Работает через Bluetooth-модуль в вашем передатчике (если в передатчике нет встроенного BT, можно купить внешний модуль и подключить к TX). Поддерживаются R9M, CrossFire (Lite и стандартная версии), Mavlink и LTM. В последних версиях также можно подключиться к передатчику через USB-кабель. Больше информации на странице GitHub.

Варианты для других платформ

impload — это кроссплатформенное приложение командной строки для загрузки / скачивания / сохранения / восстановления миссий в различных форматах на полетный контроллер INAV. Поддерживаемые форматы включают:

  • MW XML файлы миссий (используются mwp, ezgui, mission planner for INAV, INAV configurator);
  • файлы миссий apmplanner / qgroundcontrol (формат QGC WP 110);
  • GPX файлы (треки, маршруты, точки);
  • KML, KMZ файлы;
  • Простые текстовые CSV файлы.

Пожалуйста, ознакомьтесь с руководством пользователя impload в вики для получения дополнительной информации и описания формата CSV.

mwp может быть запущен на виртуальной машине в MS Windows и OSX / macOS, используя инструменты виртуализации, такие как VirtualBox и Parallels.

WinGUI — это программа для Windows, разработанная для Multiwii-nav. В настоящее время она практически заброшена, но могла бы стать хорошей основой для разработки Windows-приложения для навигации INAV (или, что еще лучше, для поддержки и Multiwii, и INAV, как это делают другие описанные здесь инструменты). Если кто-то захочет спасти это прекрасное приложение, исходный код (GPL v3) можно найти в архиве Google Code.

↑ К оглавлению

3. Оборудование телеметрии

Для передачи миссий с GCS на полетный контроллер, а также для мониторинга / записи полетных данных, необходимо установить канал передачи данных между GCS и мультикоптером. Популярные технологии включают:

  • Bluetooth
  • 3DR (433МГц / 915МГц)
  • WiFi (ESP8266)
  • HC-12 (433МГц, аналог 3DR)
  • Устройства Openlrs/Openlrsng (например, комбо tx/rx OrangeRX 433)
  • LoRA (опции 868 / 433 МГц)
  • mLRS (опции 433 / 868,915 / 2.4ГГц)

Bluetooth

Bluetooth — самое простое решение, требующее минимум усилий. Дешевого модуля HC-06 BT вполне достаточно (на наземной станции используется встроенный BT телефона или ноутбука). Недостатком является дальность действия: у большинства пользователей потеря данных начинается после 20 метров. Это полезно для проверки конфигураций, но ограничение по дальности заставит многих искать другое решение. Инструкция.

3DR

Радиомодемы 3DR работают в регионально безлицензионных диапазонах 433МГц и 900МГц. Они широко доступны в интернет-магазинах. Подробная документация доступна на Ardupilot.org. Стандартная прошивка 3DR разработана для протокола MAVLink. Хотя существует форк прошивки для MSP (Multiwii Serial Protocol), он не поддерживает последние нововведения INAV (MSPv2, LTM); текущая рекомендация — использовать стандартную прошивку с отключенными опциями MAVLink.

3DR — это технология средней дальности, как минимум до 1 км. Дальность в некоторой степени зависит от скорости передачи данных (baud rate) и хорошо задокументирована. Расширенная настройка для 3DR подробно описана в конце этой страницы.

ESP8266

ESP8266 — это маленький мост WiFi-Serial. Его можно использовать для передачи данных последовательного порта через WiFi. Он предлагает приемлемую дальность (около 300 м) и удобство. Автор не видел доказательств интерференции между устройствами ESP8266 и радиоуправлением 2.4ГГц.

Расширенная настройка для ESP8266 подробно описана в конце этой страницы. Посты на форумах демонстрируют отличное покрытие до 150 метров при использовании mwp, модулей ESP07 и ESP01 и стандартной прошивки производителя. Модуль ESP07 хорошо работает с внешней антенной.

Существует инструкция для ezgui по устройствам ESP8266. Другая, очень подробная инструкция для ESP8266 и Cleanflight/Baseflight/INAV сообщает о плохих результатах, возможно, из-за нативных возможностей WiFi в телефоне.

HC-12

HC-12 — это радиотехнология, сравнимая с 3DR по дальности и характеристикам производительности. Ее настройка и использование с INAV хорошо задокументированы [1] [2]. Описанная конфигурация будет одинаково хорошо работать как в ezgui, так и в mwp. Эти маленькие радиомодемы работают действительно хорошо с хорошей дальностью в режиме FU3 / 9600 бод (и они очень дешевые).

Openlrsng

Openlrsng — это полноценная система радиоуправления, используемая в основном для LRS (систем дальней связи). Она поддерживает радиомаяк для потерянных моделей, failsafe и другие характеристики.

Для данных телеметрии она предлагает двунаправленный канал, допускаются Frsky, S.Port (оба — эмулированные протоколы) и прозрачная последовательная (serial transparent) телеметрия. Дальность телеметрии в этой системе зависит от мощности, антенн и скорости передачи (baudrate). При снижении скорости и хороших антеннах на наземной станции можно достичь очень больших расстояний с полной телеметрией.

Openlrsng можно комбинировать с Bluetooth-устройствами на GCS, так что вы можете подключиться к летящей модели с помощью телефона, планшета или ПК.

LoRA

LoRA предоставляет возможность телеметрии с низким энергопотреблением и большой дальностью, используя схожие с 3DR и HC-12 схемы, но с возможностью увеличенной дальности. Описание рабочей установки и сравнение дальности есть в вики mwptools.

Другие решения включают Dragonlink. 

ИНСТРУКЦИЯ ПО DRAGONLINK:

Настройте ваш Dragonlink согласно официальной инструкции.

Я не включал декодирование mavlink и установил все на скорость 57600 бод. В общем, я использую функцию DL "Radio Modem" и без контроля потока (flow control). Я также использую USB-подключение от передатчика DL (TX) к ПК с Win 10, на котором запущен iNAV.

Я настроил приемник DL 1W RX UEXP3 (средний разъем) так:

  • Pin 2: Serial In
  • Pin 3: Serial Out
  • Pin 4: Vector Telemetry (ПРИМЕЧАНИЕ: ЭТОТ ПРОВОД ФИЗИЧЕСКИ НЕ ПОДКЛЮЧЕН К F722)
  • Pin 5: SBUS

Примечание: Приемнику 1W DL RX требуется минимум 5В, площадка 4v5 моего F722-WING не выдавала достаточной мощности для питания DL RX, поэтому я просто протянул серво-кабель «папа-папа» от шины PWM приемника DL RX к шине PWM на F722-WING. Пины 1, 4, 6 разъема UEXP3 физически не были подключены. НЕ ПИТАЙТЕ ПРИЕМНИК БОЛЕЕ ЧЕМ ИЗ ОДНОГО ИСТОЧНИКА!

Я не рекомендую использовать переключатель "wireless" (беспроводной режим) в INAV Configurator, это вызывало значительную задержку при начальном подключении. Просто установите в INAV правильный порт и скорость (57600) и нажмите connect.

Подключение выполнено к Matek F722-WING, используя аппаратный UART1 MSP2 на скорости 57600 на последней стабильной версии iNAV по состоянию на 15.01.2020.

Я проверил, что команды CLI работают, однако это вызывает перезагрузку ПК и разрыв соединения. Я также провел тест с выключением питания передатчика DL, и он без проблем переподключился после отключения примерно на 30 секунд.

↑ К оглавлению

4. Протоколы телеметрии

Данные передаются между GCS и ПК с использованием «протокола телеметрии». В настоящее время INAV предлагает два протокола (MSP и LTM), оба из которых поддерживаются ezgui и mwp. Также существует минимальная реализация MAVLink (mwp уже поддерживает это подмножество MAVLink), это позволит использовать другие инструменты, такие как кроссплатформенный QGroundControl. Реализация MAVLink поддерживает только push-телеметрию (т.е. мониторинг миссии, но не планирование).

MSP - MultiWii Serial Protocol

MSP — это «родной» протокол сообщений для INAV. Он хорошо поддерживается конфигуратором, ezgui, mwp и многими OSD. Это все, что вам нужно для загрузки миссий и мониторинга полетов. Его единственный недостаток для мониторинга миссий заключается в том, что это опрашиваемый (polled) протокол: GCS должна запрашивать данные, а затем ПК отвечает. Это не является проблемой для некоторых каналов связи, таких как BT и WiFi, но полудуплексная природа радиомодемов 3DR ограничивает производительность.

mwp может смягчить это падение производительности, используя MSP для конфигурации перед армингом, а при правильной настройке в ПК — переключаясь на LTM для мониторинга миссии после арминга. Это переключение происходит автоматически.

LTM - Light Telemetry

LTM — это протокол «push» телеметрии; то есть ПК отправляет данные в GCS без запроса. Это позволяет избежать штрафа по времени из-за «полудуплекса» MSP на радиомодемах 3DR. В отличие от MSP, LTM предоставляет только полетные данные. Если вам нужно загружать путевые точки, необходимо разделить последовательный порт на ПК между MSP и LTM: MSP используется, когда аппарат не заармлен, а LTM — когда заармлен. И ezgui, и mwp обрабатывают переключение автоматически. Документация.

LTM будет эффективно работать на низкоскоростных каналах связи (от 4800 бод). INAV предоставляет опции настройки для «средней» и «медленной» скорости LTM.

MAVLink — это полнофункциональный, высокоэффективный протокол, используемый платформами PX4, PIXHAWK, APM. Реализация для INAV представляет собой только «push-телеметрию», она может использоваться только для мониторинга полета. Первоначальная реализация поддерживается ezgui, Droid Planner 2, mwp. Сообщается, что Tower (Droid Planner 3) не работает.

↑ К оглавлению

5. Настройка полетного контроллера

Порты и совместное использование

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

  • Большинство пользователей захотят MSP на UART1 на скорости 115200 (или выше) для типично общего USB-подключения для прошивки и настройки;
  • Для надежной работы GPS рекомендуется запускать GPS на аппаратном последовательном порту;
  • Логгер Blackbox обычно требует высокой скорости передачи данных;
  • Вы можете включить MSP только на двух портах;
  • Телеметрия может работать на низкой скорости, даже на SoftSerial (программном порту).

Примеры конфигурации

Исходя из этого, вот несколько примеров конфигурации; оба примера предполагают использование PPM приемника:

Простой, малая дальность, «для полетов в парке»

  • UART1: MSP (USB и Bluetooth), одинаковая скорость передачи (обычно 115200)
  • UART2: GPS

Продвинутый, черный ящик и телеметрия: оборудование F1

  • UART1: MSP (когда не заармлен), Blackbox (когда заармлен). Скорости могут отличаться (например, 115200 MSP, 250000 BBox)
  • UART2: GPS
  • Softserial: MSP и LTM (MSP — дизарм, LTM — арм), максимум 19200 бод

Продвинутый, черный ящик и телеметрия: оборудование F3

  • UART1: MSP (дизарм), Blackbox (арм).
  • UART2: GPS
  • UART3: MSP и LTM (MSP — дизарм, LTM — арм). Нет ограничения скорости.

Использование приемника Serial RX сложнее, особенно для устройств F1. Для устройств F3 можно подключить Serial RX на UART3 и использовать SoftSerial для MSP+LTM.

↑ К оглавлению

6. Планирование и мониторинг миссии

INAV в настоящее время поддерживает подмножество «спецификаций» MSP для WP / Миссий. Доступны следующие типы путевых точек (INAV 1.1 или новее, как указано).

  • Waypoint (путевая точка, с добавлением скорости на участке)
  • Infinite position hold (бесконечное удержание позиции)
  • RTH (автопосадка доступна с 1.2 RC1)
  • Timed Position Hold (удержание позиции по времени, 2.5+)
  • Set POI (установить точку интереса, 2.6+)
  • Jump (переход/прыжок к точке, 2.5+)
  • Set Heading (установить курс, 2.6+)
  • Land (посадка, 2.5+)

ezgui и mwp поддерживают навигацию по точкам INAV. Они предоставляют интерактивное редактирование WP на фоне карты и загрузку/выгрузку миссии. Вы не должны пытаться лететь по миссии, если она не прошла валидацию.

На платах F1 можно определить 30 путевых точек, для F3 и более мощных ПК — 60.

Миссии инициируются переключением тумблера на пульте управления. Миссию также можно прервать в любой момент, выключив этот переключатель (NAV WP).

Миссия завершается автоматически при выполнении RTH, бесконечного удержания позиции или достижении конца списка путевых точек. Полет по миссии «в процессе» может быть прерван путем выключения режима WP или включения RTH.

Мониторинг миссии / полета

Перед включением любого автоматического режима рекомендуется убедиться, что у вас приемлемое качество приема спутников. Даже при 10+ спутниках и HDOP ‹1.5 существует небольшая вероятность того, что у вас может случиться «день плохих спутников» [URL]. Простой способ убедиться в хорошем покрытии — попробовать режим POSHOLD перед выполнением миссии.

Режим путевых точек (Waypoint Mode)

Как только INAV начинает участок миссии WP, он пытается достичь высоты этого участка. Высота не принимается во внимание при определении того, достигнута ли путевая точка (учитываются только широта и долгота).

Режим WP отключается только при следующих обстоятельствах:

  1. Потерян GPS (переключится на аварийную посадку и приземлится).
  2. Сработал Failsafe (потеряна радиосвязь).
  3. Пилот вручную отключил режим WP, выключив тумблер или включив RTH.
  4. Достигнут конец миссии.
↑ К оглавлению

7. Расширенная настройка (Advanced)

3DR

Оборудование

Радиомодули 3DR продаются либо парой «воздушная станция / наземная станция», либо по отдельности. Функционально воздушные и наземные радиомодули идентичны, на воздушной стороне имеется tty/серийное соединение, а на наземной — USB-интерфейс для подключения к компьютеру. Для ezgui (и mwp) удобнее использовать Bluetooth-мост. Этот мост также рекомендуется для mwp, поскольку он предотвращает возможные помехи от USB-кабеля и позволяет более гибко размещать наземную антенну.

Для использования моста 3DR / BT необходимо иметь на обоих концах связи устройства «воздушного типа». Затем требуется соединить «последовательно» наземный 3DR и BT-устройство (пример полевой сборки) и подать питание. Подойдет стабилизатор напряжения и старая LiPo-батарея. Описание HR-12 содержит каноническую схему подключения. Можно использовать 5-вольтовый стабилизатор или BEC.

Прошивка

Радиомодемы 3DR поставляются с версией прошивки Sik, оптимизированной для MAVLink. Существует форк для MSP, однако его использование больше не рекомендуется, так как он не понимает MSPv2 или LTM.

Конфигурация

Перед использованием рекомендуется настроить радиомодем 3DR в соответствии с местными нормами для безлицензионного использования частот, а также оптимизировать скорость передачи данных по радиоканалу (air speed) для достижения максимальной дальности связи.
Это можно сделать либо через графический интерфейс, либо через терминал последовательного порта с помощью таких утилит, как picocom, screen или putty. Графическая утилита запускается в Linux с использованием среды 'mono'. В дальнейшем описании используется набор AT-команд.
Настройку можно выполнить через GUI или AT-команды. Примеры AT-команд:

Если вы используете модифицированную прошивку с поддержкой MSP (или для отключения кадрирования):

ATS6 = 1  # MSP кадрирование
ATS6 = 2  # MSP кадрирование + статус
ATS6 = 0  # Отключить кадрирование (рекомендуется)
Bash

Дальность связи увеличивается при использовании более низких скоростей. Также хорошей практикой считается установка близких значений скорости передачи по радиоканалу (air speed) и скорости соединения с компьютером (ground speed), чтобы минимизировать вероятность переполнения буфера последовательного порта.

В примере ниже мы установим air speed на 24000 бод, а ground speed — на 19200 бод. На самом деле, поскольку скорость передачи данных невелика (и они помещаются в буферы устройства), это не критично; связка из air speed 24000 бод и ground speed 115200 бод также будет работать нормально.

ATS1 = 19
ATS2 = 24
Bash

Настройка MAX_WINDOW (ATS15). Для MSP только (минимум 33 для минимизации задержки):

ATS15 = 33
Bash

Если используете LTM, установите максимальное значение для пропускной способности:

ATS15 = 131
Bash

Отключение коррекции ошибок (так как MSP/LTM имеют свои контрольные суммы):

ATS5 = 0
Bash

Сохранение настроек для удаленного (RT) и локального (AT) устройства:

RTS15 = 131
RT&W
RTZ

ATS15 = 131
AT&W
ATZ
Bash

Если вы используете Linux и наземный модуль, подключенный через USB (а не через мост USB/BT), вы можете воспользоваться службой udev для назначения имени устройства.
Вам понадобится команда lsusb, чтобы найти серийные параметры (идентификаторы) вашего устройства. Приведенное ниже правило связывает (создает ссылку) имя /dev/ttyUSBx с /dev/3dr.
Правила udev для Linux (для назначения имени устройства):

### /etc/udev/rules.d/66-3dr.rules
# Hextronic radio
KERNEL=="ttyUSB*", ATTRS{serial}=="A7032PAY", SYMLINK+="3dr"

# GLB radio
KERNEL=="ttyUSB*", ATTRS{serial}=="A8005McD", SYMLINK+="3dr"
Bash

ESP8266

Прошивка

Модули ESP8266 обычно поставляются с заводской прошивкой. Перейдите по ссылке к разделу SDK и найдите последнюю версию ESP8266_NONOS_SDK. Для прошивки существует специальная утилита под Windows, либо можно воспользоваться портативной версией программы.
Данная прошивка рекомендуется для работы с mwp, так как она позволяет использовать устройство в качестве прозрачного моста UDP/Serial (хотя можно использовать и стороннюю прошивку с поддержкой моста TCP).
Для ezgui рекомендуется использовать стороннюю прошивку, которая обеспечивает прозрачный мост TCP/Serial. Эту прошивку также можно использовать в mwp.

Конфигурация

Настройка стороннего TCP-моста описана в инструкции к ezgui. Для mwp это устройство задается в формате:

tcp://host:port

Пример: tcp://192.168.4.1:23

Для заводской прошивки при использовании UDP-соединения настройте устройство как точку доступа (AP) с собственным именем сети (ESSID) и надежным паролем. Необходимо задать как локальный, так и удаленный UDP-порты (в данном примере — 14014).

Описание AT-команд см. в документации к последней версии прошивки:

AT+CWSAP_DEF="I'mMandyFlyMe","correct horse battery staple",11,4,2,1
AT+CWDHCP=2,0
AT+CWMODE_DEF=2
AT+CIPAP_DEF="192.168.100.100",,"255.255.255.0"
AT+SAVETRANSLINK=1,"192.168.100.101",14014,"UDP",14014
AT+UART_DEF=57600,8,1,0,0
AT+RFPOWER=60
Bash

Затем в mwp задайте строку подключения следующим образом (где esp-air — это имя хоста устройства, установленного на летательном аппарате):

udp://:14014/esp-air:14014

Доступ к CLI через WiFi

Через Wi-Fi можно получить доступ к интерфейсу командной строки (CLI), а применив некоторые приемы с утилитой socat — и к конфигуратору, что очень удобно для настройки в полевых условиях.

Доступ через UDP соединение:

nc -p 14014 -u esp-air 14014
Bash

Доступ через TCP соединение:

nc 192.168.4.1 23
Bash

Доступ к конфигуратору через socat

Подключиться к конфигуратору несколько сложнее: для этого используется socat, который создает псевдоустройство (псевдотерминал), привязанное к IP-соединению. Затем в конфигураторе необходимо подключиться к порту через «Manual Selection» (Ручной выбор), указав путь /tmp/vc0.

Создание псевдо-терминала для UDP (esp-air — это ESP8266 на борту, esp-gcs — компьютер / имя хоста WLAN-интерфейса):

socat pty,link=/tmp/vc0,raw udp-datagram:esp-air:14014,bind=esp-gcs:14014
Bash

Для TCP:

socat pty,link=/tmp/vc0,raw tcp:192.168.4.1:23
Bash

Необходимо убить процесс socat, чтобы снова использовать телеметрию.

↑ К оглавлению
iNavFlight Missions ID 141