Mission Planner на Ubuntu: установка и настройка

Запуск Mission Planner на Ubuntu упирается в одну фундаментальную особенность: программа изначально написана под Windows на .NET Framework, поэтому в Linux её приходится запускать через прослойку Mono, и не все функции работают корректно. Первое, что стоит проверить перед установкой — какая версия Mono доступна в вашей системе, поскольку именно от неё зависит, запустится ли интерфейс планировщика вообще.

Несмотря на ограничения, связка Mission Planner + Ubuntu активно используется операторами дронов на автопилотах ArduPilot и PX4: для базовых задач — подключения к полётному контроллеру, загрузки прошивки, планирования миссий и просмотра телеметрии — этого достаточно. Ниже разберём установку, настройку портов и типичные проблемы.

Почему Mission Planner не имеет нативной версии для Linux

Mission Planner построен на технологиях Windows: интерфейс использует WinForms, а часть функций опирается на специфичные для Windows библиотеки. Разработчики проекта официально поддерживают только Windows-сборку, а запуск на Linux возможен благодаря открытой реализации .NET — проекту Mono.

Из-за этого часть возможностей работает с ограничениями или не работает вовсе. Как правило, под Mono могут некорректно отображаться отдельные элементы интерфейса, возникают проблемы с видеопотоком и некоторыми плагинами. Точный список неработающих функций зависит от версии Mission Planner и Mono, поэтому перед полевыми работами конфигурацию стоит проверить заранее.

Подготовка системы: установка Mono и зависимостей

Первый шаг — установить Mono из официального репозитория проекта или из репозитория вашего дистрибутива. Вариант из штатных репозиториев Ubuntu проще, но версия там может быть устаревшей; репозиторий проекта Mono обычно содержит более свежие сборки. Общий порядок для штатного варианта выглядит так:

sudo apt update

sudo apt install mono-complete

После установки проверьте версию командой mono --version. Если Mission Planner позже откажется запускаться или будет падать с ошибками, первым делом попробуйте обновить Mono до актуальной версии из официального репозитория проекта — инструкция по его подключению публикуется на сайте Mono и может меняться, поэтому сверяйтесь с актуальной документацией.

  • 🔧 Установите пакет mono-complete, а не минимальный рантайм — нужны все библиотеки.
  • 🔍 Проверьте версию командой mono --version сразу после установки.
  • 📦 При ошибках запуска обновите Mono из официального репозитория проекта.
  • 👤 Добавьте пользователя в группу dialout для доступа к последовательным портам.
⚠️ Внимание: без добавления пользователя в группу dialout Mission Planner не увидит подключённый по USB автопилот. Команда: sudo usermod -a -G dialout $USER, после чего требуется выйти из сессии и войти снова — иначе изменения не применятся.

Загрузка и запуск Mission Planner

Дистрибутив Mission Planner распространяется в виде ZIP-архива с официального сайта проекта ArduPilot. Скачайте архив, распакуйте его в отдельную папку, например ~/MissionPlanner, и запустите исполняемый файл через Mono:

cd ~/MissionPlanner

mono MissionPlanner.exe

Если программа запустилась, но окно выглядит «сломанным» — съехали элементы, не прорисовались кнопки — это типичное поведение WinForms под Mono. Часто помогает обновление Mono, а иногда — запуск с другими параметрами отрисовки. Полностью проблему отрисовки это не всегда решает, к таким особенностям стоит быть готовым.

☑️ Первый запуск Mission Planner на Ubuntu

Выполнено: 0 / 5
📊 Как вы запускаете Mission Planner на Ubuntu?
Через Mono — работает стабильно
Через Mono, но есть глюки интерфейса
Использую QGroundControl вместо него
Запускаю Windows в виртуальной машине

Подключение автопилота: порты и права доступа

При подключении полётного контроллера по USB в Ubuntu появляется устройство вида /dev/ttyACM0 или /dev/ttyUSB0 — в зависимости от типа адаптера. Убедиться, что система увидела контроллер, можно командой dmesg | tail сразу после подключения кабеля: в выводе появится строка о регистрации нового последовательного порта.

В Mission Planner порт выбирается в выпадающем списке рядом с кнопкой Connect в правом верхнем углу. Стандартная скорость для USB-подключения к ArduPilot — 115200 бод, для телеметрийных радиомодемов — чаще 57600. Если соединение не устанавливается, проверьте по порядку: виден ли порт в системе, есть ли права на него, выбрана ли правильная скорость.

Как узнать, какой порт занял автопилот

Выполните в терминале команду ls /dev/ttyACM* /dev/ttyUSB* до и после подключения контроллера — новое устройство в списке и есть нужный порт. Альтернатива: команда dmesg | grep tty сразу после подключения покажет строку регистрации устройства.

Типичные проблемы и их решения

Наиболее частая жалоба — Mission Planner не запускается вообще, выдавая исключение в терминале. Возможные причины: устаревшая версия Mono, нехватка отдельных библиотек или повреждённый архив программы. Порядок действий простой: обновить Mono, перекачать архив заново, запустить снова и посмотреть текст ошибки — он обычно указывает на конкретную недостающую сборку.

Вторая типичная ситуация — программа запускается, но не видит порт или обрывает соединение. Здесь виновником может быть правило ModemManager: эта служба Ubuntu при подключении устройства пытается опросить его как модем и мешает обмену данными. При подобных симптомах службу можно остановить командой sudo systemctl stop ModemManager и проверить соединение повторно.

ПроблемаВероятная причинаЧто проверить
Программа не запускаетсяСтарая версия MonoВывод mono --version, обновление
Нет порта в спискеНет прав на устройствоГруппа dialout, повторный вход
Соединение обрываетсяКонфликт с ModemManagerОстановка службы, повторное подключение
Искажённый интерфейсОграничения WinForms в MonoОбновление Mono, масштабирование системы
Не загружается прошивкаОграничения версии под MonoПрошивка через Windows-машину или QGroundControl
⚠️ Внимание: загрузка прошивки на автопилот — критичная операция. Если Mission Planner под Mono ведёт себя нестабильно именно на этапе прошивки, не экспериментируйте: выполните обновление прошивки с машины под Windows или через нативный инструмент, чтобы не рисковать полётным контроллером.

Альтернативы: QGroundControl и виртуализация

Если ограничения Mono мешают работе, есть два обходных пути. Первый — QGroundControl: этот планировщик имеет нативную версию для Linux, распространяется в формате AppImage и поддерживает автопилоты ArduPilot и PX4. Для планирования миссий, телеметрии и настройки параметров его возможностей большинству пользователей хватает, хотя часть специфических функций Mission Planner в нём отсутствует.

Второй вариант — запуск Windows в виртуальной машине (VirtualBox, VMware) с пробросом USB-устройства внутрь гостевой системы. Это даёт полноценный Mission Planner со всеми функциями, но требует больше ресурсов и аккуратной настройки проброса портов, иначе контроллер не будет виден внутри виртуальной машины.

  • 🖥️ QGroundControl — нативный запуск, стабильный интерфейс, поддержка ArduPilot и PX4.
  • 💻 Виртуальная машина с Windows — полная функциональность Mission Planner ценой ресурсов.
  • 🔌 Проброс USB в ВМ настраивается в параметрах виртуальной машины, контроллер должен определяться внутри гостевой ОС.

Часто задаваемые вопросы

Работает ли Mission Planner на Ubuntu так же стабильно, как на Windows?

Полностью идентичной работы ждать не стоит: запуск идёт через Mono, поэтому возможны искажения интерфейса и недоступность отдельных функций. Базовые задачи — подключение, телеметрия, планирование миссий — обычно выполняются, но конфигурацию стоит проверить до выезда в поле.

Почему Mission Planner не видит автопилот, хотя кабель подключён?

Чаще всего причина в правах доступа: пользователь не входит в группу dialout. Проверьте членство командой groups, добавьте себя в группу и перезайдите в сессию. Также убедитесь, что порт вообще появился в системе — командой dmesg | tail сразу после подключения.

Можно ли обновить прошивку автопилота через Mission Planner на Ubuntu?

Технически функция доступна, но под Mono она может работать нестабильно. Поскольку сбой при прошивке рискован для контроллера, надёжнее выполнять обновление с Windows-машины или через нативный инструмент, например QGroundControl.

Что лучше для Ubuntu: Mission Planner или QGroundControl?

Зависит от задач. QGroundControl работает нативно и стабильнее, его достаточно для полётов, телеметрии и миссий. Mission Planner через Mono нужен, когда требуются его специфические инструменты конфигурации ArduPilot, которых нет в QGroundControl.

Нужно ли отключать ModemManager для работы с автопилотом?

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