Перейти к содержимому
31
Система параметров ArduPilot

Система параметров ArduPilot

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

Имена параметров строятся по схеме «префикс подсистемы + функция». Научившись их разбирать, вы будете понимать назначение незнакомого параметра ещё до чтения описания.

Содержание

1. Цели урока

После этого урока вы будете понимать:

  • где в программе искать и править любой параметр
  • как расшифровывать имена параметров по префиксам
  • почему имена меняются между версиями прошивки и как с этим жить
  • как работать с файлами .param и применять их частично
  • какие параметры нельзя переносить между аппаратами
  • что такое MAVFtp и почему он ускоряет подключение
↑ К оглавлению

2. Система параметров ArduPilot

Всё поведение автопилота определяется таблицей параметров, хранящейся в энергонезависимой памяти контроллера. Их от 900 до 1500 в зависимости от прошивки и включённых функций.

Где живут параметры в программе

Основное рабочее место — CONFIG → Full Parameter List. Это единственное место, где доступны все параметры без исключения. Специализированные страницы (Extended Tuning, GeoFence, Initial Tune Parameters) правят те же значения, но показывают лишь малую их часть.

ГдеЧто можноКогда пользоваться
CONFIG → Full Parameter List Все параметры, поиск, дерево префиксов, работа с файлами Всегда, когда знаете имя параметра
CONFIG → Extended Tuning PID контуров, фильтры, WPNav Настройка регуляторов по группам
CONFIG → User Params Личная подборка избранных параметров То, что правите на площадке регулярно
SETUP → Mandatory / Optional Hardware Параметры конкретной подсистемы под понятными подписями Первичная настройка оборудования

Порядок правки в Full Parameter List всегда один:

  1. Найти строку: ввести имя в поле Search либо выбрать ветку в дереве префиксов слева.
  2. Изменить число в колонке Value.
  3. Нажать Write Params — до этого правка живёт только в окне.
  4. Если в описании есть пометка о необходимости перезапуска — перезагрузить автопилот.
Поиск понимает регулярные выражения: поле Search ищет без учёта регистра сразу по имени, значению и описанию, срабатывая от двух символов. Символ вертикальной черты работает как «или»: запрос HNTCH|GYRO_FILTER покажет параметры режекторного фильтра и фильтра гироскопа вместе. Звёздочка работает как в регулярных выражениях, а не как в именах файлов.

Анатомия имени параметра

Имена строятся по принципу «префикс подсистемы + функция»:

ATC_RAT_RLL_P
  │   │   │   └── коэффициент P
  │   │   └────── ось roll (крен)
  │   └────────── rate controller (контур угловой скорости)
  └────────────── Attitude Control (управление ориентацией)

  INS_HNTCH_FREQ
  │   │     └──── центральная частота
  │   └────────── Harmonic Notch (гармонический режекторный фильтр)
  └────────────── Inertial Sensors (инерциальные датчики)

  BATT2_CAPACITY
  │   │  └─────── ёмкость
  │   └────────── второй экземпляр монитора батареи
  └────────────── Battery monitor

Основные префиксы, которые нужно узнавать с первого взгляда:

ПрефиксПодсистемаТипичное применение
ATC_ Attitude Control PID контуров углов и угловых скоростей
PSC_ Position Control Контуры положения и скорости (Copter)
INS_ Inertial Sensors Гироскопы, акселерометры, фильтрация
AHRS_ Attitude Heading Reference System Ориентация платы, магнитное склонение
EK3_ EKF3 Настройка расширенного фильтра Калмана
GPS_ GNSS Тип приёмника, автопереключение, RTK
COMPASS_ Магнитометры Смещения, приоритеты, декларация
MOT_ Motors Пределы тяги, кривая газа, PWM
SERVOn_ Выходы Функция, диапазон, реверс каждого канала
RCn_ Каналы приёмника Диапазоны, реверс, назначение
FS_ / BATT_FS_ Failsafe Реакции на отказы
WPNAV_ (с 4.7 WP_) Waypoint Navigation Скорости и ускорения в миссии (Copter)
TECS_ Total Energy Control Связка «высота — скорость» (Plane)
NAVL1_ / NPFG_ Навигация по траектории (Plane) Агрессивность выхода на линию пути
Q_ QuadPlane Всё, что касается вертикального взлёта у самолётов
LOG_ Логирование Что и когда писать в бортовой лог
SR0_SR3_ (с 4.7 MAV1_MAV4_) Stream Rates Частоты потоков телеметрии по каналам связи
SERIALn_ Последовательные порты Протокол и скорость каждого порта
BRD_ Board Настройки платы, safety switch, питание периферии
SCR_ Scripting Встроенные Lua-скрипты

Метаданные: описание, диапазон, единицы

Каждый параметр в прошивке снабжён описанием, диапазоном допустимых значений, единицами измерения и признаком «требуется перезагрузка». Mission Planner загружает эти метаданные и показывает их в колонках справа от значения, а также во всплывающей подсказке при наведении на имя.

Если подсказка пустая: программа не смогла скачать описания для вашей версии прошивки. Проверьте интернет-соединение или обновите Mission Planner. Работать с параметром вслепую не стоит: без диапазона легко записать значение, которое прошивка молча обрежет или воспримет как отключение функции.
↑ К оглавлению

3. Имена параметров меняются между версиями

Разработчики ArduPilot периодически переименовывают параметры: приводят единицы к системе СИ и делают префиксы единообразными. Крупнейшая такая переработка прошла в версии 4.7.

Само значение при обновлении прошивки переносится автоматически — при первой загрузке новая прошивка находит старый параметр и записывает его значение в новый. Но имена в статьях, чужих конфигурациях, скриптах и обучающих видео остаются старыми. Отсюда типовая ситуация: в инструкции написано одно, а поиск в Full Parameter List ничего не находит.

Что переименовано в 4.7

Наиболее заметные для оператора переименования. Полный официальный список — на странице документации ArduPilot «Parameter Name Changes».

Параметр (4.6.x)Параметр (4.7+)Что задаёт
WPNAV_SPEED WP_SPD Скорость по маршруту
WPNAV_RADIUS WP_RADIUS_M Радиус достижения точки
WPNAV_ACCEL WP_ACC Ускорение в миссии
RTL_ALT RTL_ALT_M Высота возврата домой
LAND_SPEED LAND_SPD_MS Скорость снижения при посадке
LOIT_SPEED LOIT_SPEED_MS Скорость в режиме удержания
CIRCLE_RADIUS CIRCLE_RADIUS_M Радиус облёта по кругу
ANGLE_MAX ATC_ANGLE_MAX Максимальный угол наклона
ATC_ACCEL_R_MAX ATC_ACC_R_MAX Предел углового ускорения по крену
PSC_POSXY_P PSC_NE_POS_P Контур положения в горизонте
PSC_VELXY_P PSC_NE_VEL_P Контур скорости в горизонте
PSC_ACCZ_P PSC_D_ACC_P Контур вертикального ускорения
SYSID_THISMAV MAV_SYSID Идентификатор аппарата
SYSID_MYGCS MAV_GCS_SYSID Идентификатор наземной станции
SR0_EXTRA1SR9_* MAV1_EXTRA1MAV10_* Частоты потоков телеметрии
ARMING_CHECK ARMING_SKIPCHK Набор предполётных проверок
Приём поиска на любой прошивке: вместо того чтобы гадать, введите в Search оба варианта через вертикальную черту — WPNAV|WP_SPD или SYSID|MAV_SYSID. Найдётся то, что есть в вашей версии. Если не находится ни то ни другое — параметр относится к другому типу аппарата либо к неактивной функции.

Случаи, где меняется не только имя

Часть параметров сменила ещё и единицы измерения или масштаб. Если вы переносите значение из старой инструкции вручную, число нужно пересчитать.

ПараметрБыло (4.6.x)Стало (4.7+)
Скорость по маршруту WPNAV_SPEED = 1000 (см/с) WP_SPD = 10 (м/с)
Высота возврата RTL_ALT = 3000 (см) RTL_ALT_M = 30 (м)
Максимальный наклон ANGLE_MAX = 3000 (сантиградусы) ATC_ANGLE_MAX = 30 (градусы)
Вертикальное ускорение PSC_ACCZ_P PSC_D_ACC_P — значение в 10 раз меньше
Предел интегратора скорости PSC_VELXY_IMAX PSC_NE_VEL_IMAX — значение в 100 раз меньше
ARMING_CHECK и ARMING_SKIPCHK — не переименование, а инверсия смысла. Старый параметр перечисляет проверки, которые надо выполнять; новый перечисляет те, которые надо пропустить. Значения битов противоположны. Официальная документация отдельно предупреждает, что автоматическая конверсия здесь может дать неожиданный результат. После перехода на 4.7 обязательно откройте CONFIG → Full Parameter List, найдите ARMING_SKIPCHK и проверьте значение вручную: ошибка означает отключённые предполётные проверки.
↑ К оглавлению

4. Работа с файлами параметров

Файл .param — обычный текстовый файл вида:

#NOTE: 28.07.2026 14:32:11 Saved from Mission Planner 1.3.83
  ATC_ANG_PIT_P,7.500000
  ATC_ANG_RLL_P,7.500000
  ATC_ANG_YAW_P,4.500000
  ATC_RAT_PIT_D,0.004200
  ATC_RAT_PIT_I,0.098000
  ATC_RAT_PIT_P,0.098000
  INS_GYRO_FILTER,20.000000
  INS_HNTCH_ENABLE,1.000000
  INS_HNTCH_FREQ,96.000000
  MOT_THST_HOVER,0.283100

Из этого следуют полезные приёмы.

Частичное применение. Можно создать файл с десятком строк и загрузить его — Mission Planner применит только перечисленные параметры, остальные не тронет. Это удобно для типовых наборов: «фильтрация для 7-дюймовых винтов», «набор failsafe для съёмочных полётов».

Diff между конфигурациями. Любой инструмент сравнения текста покажет, чем отличаются два аппарата или две настройки одного аппарата.

Версионирование. Файлы параметров отлично ложатся в git. Для парка аппаратов это лучший способ отслеживать историю настроек.

Кнопки Full Parameter List

Все операции с файлами собраны на той же странице CONFIG → Full Parameter List, в колонке кнопок справа.

КнопкаЧто делаетКогда нужна
Save to file Выгружает весь набор в файл .param Перед любыми изменениями
Load from file Загружает значения из файла в таблицу Восстановление и частичное применение
Compare Params Сравнивает текущий набор с файлом и показывает различия Понять, что изменилось за сессию
Write Params Записывает изменения в автопилот После каждой правки
Refresh Params Перечитывает весь набор из аппарата Если сомневаетесь в актуальности показанного
Load Presaved Загружает типовой набор из комплекта программы Стартовая конфигурация нового аппарата
Reset to Default Сбрасывает все параметры к заводским Крайняя мера при запутанной конфигурации
Галочки Modified и None Default Показать только изменённые либо только отличающиеся от заводских Быстро увидеть, что трогали на этом аппарате
Схема именования бэкапов: Используйте единый формат: [аппарат]_[дата]_[этап].param. Например, hexa900_2026-07-28_after_autotune.param. Через полгода вы не вспомните, что означало params_new_2_final.param.
Загрузка файла не равна записи в аппарат: Load from file только подставляет значения в таблицу на экране, подсвечивая изменённые строки. Пока не нажата Write Params, в автопилоте остаются прежние значения. Это удобно: между загрузкой и записью можно просмотреть, что именно изменится.

Что не переносится между аппаратами

Файл параметров нельзя целиком заливать на другой экземпляр даже той же модели. Индивидуальны:

  • калибровки акселерометров INS_ACC*OFFS_*, INS_ACC*SCAL_*;
  • калибровки компасов COMPASS_OFS_*, COMPASS_DIA_*, COMPASS_ODI_*;
  • калибровка приёмника RCn_MIN, RCn_MAX, RCn_TRIM;
  • калибровка датчика тока BATT_AMP_PERVLT, BATT_VOLT_MULT;
  • зависящий от конкретной сборки MOT_THST_HOVER.
Клонирование настроек: Перенося конфигурацию с аппарата на аппарат, залейте файл целиком, а затем обязательно заново выполните все калибровки из SETUP → Mandatory Hardware. Чужие смещения акселерометра — прямой путь к уводу в сторону при взлёте.
↑ К оглавлению

5. MAVFtp и скорость обмена

Начиная с ArduPilot 4.1, Mission Planner использует MAVFtp — файловый протокол поверх MAVLink — для загрузки таблицы параметров одним блоком вместо тысячи отдельных пакетов. Это ускоряет подключение в разы, особенно на медленном радиоканале.

Механизм срабатывает автоматически при выполнении двух условий: прошивка сообщила о поддержке FTP, и режим не отключён в настройках программы. Отдельной галочки в интерфейсе для этого нет — параметры грузятся через MAVFtp по умолчанию.

Если параметры грузятся мучительно долго, проверьте:

  • SERIALx_PROTOCOL = 2 (MAVLink 2) на используемом порту — MAVFtp требует второй версии протокола. Правится в SETUP → Mandatory Hardware → Serial Ports либо в CONFIG → Full Parameter List;
  • прошивка не старше 4.1;
  • модем не режет длинные пакеты — в настройках SiK должен быть включён MAVLink framing (SETUP → Optional Hardware → Sik Radio).
Не путайте с разделом MAVFtp: одноимённый пункт CONFIG → MAVFtp — это файловый менеджер SD-карты автопилота, разобранный в уроке 5. Ускорение загрузки параметров работает независимо от него и не требует открывать этот раздел. Общий у них только транспортный протокол.
Галочка MAVFTP на экране PLAN — третье применение того же протокола: она включает обмен миссией файлом вместо построчной передачи. Полезно для длинных маршрутов на слабом канале.
↑ К оглавлению

6. Команды и подтверждения

Когда вы нажимаете кнопку в интерфейсе, программа отправляет COMMAND_LONG или COMMAND_INT. Автопилот отвечает COMMAND_ACK с кодом результата.

Код ответаЗначение
ACCEPTED Команда принята и выполняется
TEMPORARILY_REJECTED Сейчас нельзя, попробуйте позже (например, идёт калибровка)
DENIED Команда запрещена в текущем состоянии
UNSUPPORTED Прошивка не знает такой команды
FAILED Попытка выполнения не удалась

Mission Planner показывает результат всплывающим окном или строкой в Messages. Если команда «не сработала» и никакого сообщения нет — скорее всего, она вообще не дошла: проверьте канал.

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

7. Практика

Задания выполняются в симуляторе SITL и не требуют реального аппарата. Выполните их до перехода к следующему уроку.

Задание 7.1. Ориентирование в списке параметров

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • Откройте CONFIG → Full Parameter List и найдите ветку INS_ в дереве префиксов слева.
  • Через поле Search найдите параметры режекторного фильтра запросом HNTCH.
  • Наведите курсор на INS_HNTCH_FREQ и прочитайте описание, диапазон и единицы.
  • Определите, какие параметры вашей прошивки отвечают за скорость по маршруту и высоту возврата: запросы WPNAV|WP_SPD и RTL_ALT.
  • Включите галочку None Default и посмотрите, что в симуляторе отличается от заводских значений.

Задание 7.2. Работа с файлами

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • Сохраните полный набор параметров симулятора кнопкой Save to file.
  • Создайте вручную текстовый файл из трёх строк, меняющих скорость по маршруту, ускорение и высоту возврата. Имена возьмите те, что нашли в задании 7.1.
  • Загрузите его кнопкой Load from file и убедитесь, что изменённые строки подсветились, но в аппарат ещё ничего не ушло.
  • Нажмите Write Params, затем сравните результат с исходным файлом через Compare Params.
  • Составьте список параметров, которые нельзя переносить между аппаратами, и объясните почему.
↑ К оглавлению

8. Проверьте себя

Сформулируйте ответ своими словами, прежде чем сверяться со справочником ответов.

  1. В каком разделе программы доступны все параметры без исключения и чем он отличается от специализированных страниц настройки?
  2. Расшифруйте по частям имена параметров PSC_VELXY_I, EK3_SRC1_YAW, Q_ASSIST_SPEED.
  3. Почему инструкция может ссылаться на параметр, которого нет в вашем списке, и как его найти?
  4. Чем опасен перенос значения WPNAV_SPEED из старой инструкции в поле WP_SPD без пересчёта?
  5. Почему замена ARMING_CHECK на ARMING_SKIPCHK требует ручной проверки после обновления?
  6. В каких случаях полезно загружать файл параметров, содержащий лишь несколько строк?
  7. Что происходит при нажатии Load from file и почему этого недостаточно для изменения настроек аппарата?
  8. Какую роль играет MAVFtp при подключении и от чего зависит его работоспособность?
↑ К оглавлению

9. Чек-лист самопроверки

Урок освоен, если каждый пункт выполнен на практике:

  • Умею найти любой параметр в CONFIG → Full Parameter List по имени и по дереву префиксов
  • Узнаю основные префиксы: ATC_, INS_, MOT_, EK3_, FS_
  • Знаю, какие параметры переименованы в 4.7, и умею искать оба варианта сразу
  • Сохранён бэкап параметров с осмысленным именем файла
  • Знаю, какие калибровочные параметры индивидуальны для экземпляра
  • Умею применить файл из нескольких строк, не трогая остальное
Результат: все пункты выполнены — переходите к следующему уроку.
↑ К оглавлению

10. Что дальше

↑ К оглавлению
  • мод. : Понедельник, 17 августа 2026
Система параметров ArduPilot