Урок 34 из 43 · Модуль 4. Lua-скрипты и компаньон-компьютер
Mission Planner для технического персонала · Урок 34 из 43 · Модуль 4. Эксплуатация и диагностика
Два способа добавить свою логику: бортовые скрипты на Lua и внешний одноплатный компьютер, управляющий аппаратом по MAVLink.
Скрипт с ошибкой, управляющий аппаратом в GUIDED, — это летающий баг. Тестирование в SITL и возможность перехвата с пульта обязательны.
Содержание
1. Цели урока
После этого урока вы будете понимать:
- как включить и загрузить Lua-скрипты на автопилот
- какие задачи разумно решать скриптом
- как настроить порт для компаньон-компьютера
- базовый пример управления через pymavlink
2. Lua-скрипты на борту
Начиная с ArduPilot 4.0, автопилот умеет выполнять пользовательские скрипты на Lua. Это способ добавить свою логику без пересборки прошивки.
Включение
После перезагрузки автопилот будет искать скрипты в папке APM/scripts/ на SD-карте.
Что можно делать
- реагировать на события телеметрии и менять параметры на лету;
- реализовывать нестандартные последовательности взлёта и посадки;
- добавлять драйверы для нового оборудования (гиростабилизаторы, EFI, генераторы);
- вести собственные проверки перед армированием;
- управлять полезной нагрузкой по сложным условиям;
- отправлять свои сообщения в наземную станцию.
Пример: скрипт, который отправляет предупреждение при превышении заданной вибрации.
Загрузка скриптов через Mission Planner: CONFIG → MAVFtp позволяет копировать файлы на SD-карту без её извлечения.
PM.Load и не превышайте разумной сложности.Готовые примеры
В репозитории ArduPilot (libraries/AP_Scripting/applets/ и examples/) есть десятки готовых скриптов: расчёт остатка заряда, драйверы подвесов, автоматическое переключение батарей, режимы следования и многое другое.
3. Компаньон-компьютер
Одноплатный компьютер (Raspberry Pi, Jetson, Odroid) на борту, соединённый с автопилотом по последовательному порту или Ethernet.
Настройка порта
Стек ПО на компаньоне
| Слой | Варианты |
|---|---|
| Библиотека MAVLink | pymavlink, MAVSDK, DroneKit (устарел) |
| Маршрутизация | mavlink-routerd, MAVProxy |
| Высокоуровневый API | MAVSDK-Python, ROS 2 + mavros |
| Видео | GStreamer, RTSP-сервер |
Простейший пример управления через pymavlink:
FS_GCS_ENABLE), возможность мгновенного перехвата управления с пульта, геозона как последний рубеж.4. Чек-лист самопроверки
Урок освоен, если каждый пункт выполнен на практике:
- Понимаю границу между задачами Lua и компаньона
- Знаю, как контролировать нагрузку через PM.Load
- Настроен GCS-failsafe при работе через GUIDED
5. Что дальше
- Предыдущий урок: 33. SITL из командной строки и отработка сценариев
- Следующий урок: 35. Подвесы, обход препятствий, точная посадка и группы
- Полный перечень тем — в статье «Содержание курса».
- Четверг, 30 июля 2026