ArduPilot: GPS есть, а Loiter уводит в сторону — как читать EKF и лог

Коротко. Если в Stabilize аппарат держится предсказуемо, а после включения Loiter начинает уходить в сторону, это не повод сразу менять PID или поднимать пороги EKF. Сначала нужно отделить четыре разных сценария: обычный дрейф без удержания позиции, плохую оценку GPS/EKF, ошибку курса из-за компаса и проблему, которая появляется вместе с газом.

Число спутников, надпись 3D Fix и даже хороший на вид HDOP не доказывают, что Loiter получил надёжную оценку положения и скорости. В этой статье разберём, что записать до изменения параметров, какие сообщения сопоставить во временном окне и как не перепутать GPS-проблему с магнитными помехами.

Схема EKF ArduPilot с объединением данных датчиков
EKF объединяет данные IMU, GPS, компаса и других датчиков в оценку состояния. Источник: ArduPilot documentation.
⚠️ Безопасность. Диагностируй Loiter только на открытой площадке, с заранее проверенным ручным режимом и готовностью немедленно его включить. Не проверяй уход аппарата над людьми, дорогами, водой или рядом с препятствиями. Если аппарат уходит сразу после взлёта, не пытайся «поймать» его переключением режимов — прерывай тест и сохраняй лог.

Что означает симптом «Stabilize нормально, Loiter уводит»

Stabilize стабилизирует углы, но не обязан удерживать точку по горизонтали. Loiter, PosHold, RTL и AUTO используют оценку положения и курса. Поэтому различие между режимами полезно как ориентир, но не является готовым диагнозом.

  • Увод есть уже в Stabilize или AltHold. Начинай с рамы, пропеллеров, направления моторов, уровня автопилота, вибраций и питания. Параметры GPS не исправят механическую проблему.
  • Увод появляется только в Loiter/PosHold/RTL. Проверяй GPS, EKF, курс и источник горизонтальной позиции. Отдельно зафиксируй, круговой ли это уход или почти прямая линия.
  • Проблема начинается после набора высоты. Это может совпасть с изменением магнитного поля от силовой части, ухудшением GPS-условий, сменой источника оценки или ростом вибраций.
  • Направление меняется при развороте корпуса. Подозрение смещается к курсу, ориентации компаса или магнитным помехам, а не только к координатам GPS.
Сноска 1. В практических обсуждениях ArduPilot отдельно подчёркивают: наличие 3D Fix ещё не означает, что EKF уже доволен оценкой скорости и может безопасно удерживать точку. Это полезное правило диагностики, а не универсальный порог для всех прошивок и аппаратов.

Что собрать до изменения параметров

Один полёт без контекста редко отвечает на вопрос «почему уводит». Сначала запиши исходные условия:

  1. Прошивку и тип рамы, режим в момент появления симптома, высоту и время от запуска GPS.
  2. Точный текст сообщений GCS и момент, когда начался уход. Не пересказывай сообщение своими словами.
  3. Режимы, в которых аппарат стабилен и нестабилен: Stabilize, AltHold, Loiter, PosHold, RTL.
  4. DataFlash-лог до, во время и после события. Не обрезай окно до одной секунды вокруг ошибки.
Сигнал в логе Зачем смотреть Ограничение
MODE Фактический режим и момент перехода в Loiter/RTL. Команда переключения не доказывает, что режим реально удерживался.
GPS Fix, число спутников, HDOP и изменение координат/скорости. Один хороший показатель не отменяет скачки или несогласованность данных.
NKF/XKF Оценки EKF и инновации, если соответствующее семейство сообщений записано в этом логе. Набор полей зависит от версии, типа рамы и числа EKF-ядер; не копируй чужие пороги.
VIBE Вибрации и clipping до начала ухода. Нормальный VIBE не подтверждает исправность GPS или компаса.
ERR/EV События failsafe, переключения и другие маркеры времени, если они присутствуют. Сначала сверяй фактические сообщения конкретной сборки ArduPilot.

Смотри не отдельную точку, а последовательность: что изменилось первым, что сделал режим и какой датчик первым стал расходиться с оценкой. В Mission Planner полезно сопоставлять временную шкалу сообщений с графиками GPS, EKF, MODE и VIBE.

Параметры: только сверить, не копировать вслепую

Для обычной GPS-конфигурации значения источников часто выглядят так, но это не универсальный пресет. Если используется Optical Flow, ExternalNav, GPS для yaw или несколько наборов источников, картина будет другой.

Параметр Типичный смысл значения Что проверить
EK3_SRC1_POSXY 3 — GPS как источник горизонтальной позиции. Не меняй источник, если альтернативный датчик не настроен и не проверен.
EK3_SRC1_VELXY 3 — GPS как источник горизонтальной скорости. Сверь с фактической схемой EKF и типом навигации.
EK3_SRC1_POSZ 1 — барометр как основной источник высоты. Не лечит горизонтальный увод; не меняй ради симптома Loiter.
EK3_SRC1_YAW 1 — компас как обычный источник курса. При GPS yaw, ExternalNav или compass-less конфигурации значение и проверки будут другими.
Сноска 2. В официальной документации ArduPilot источники EKF задаются раздельно для позиции, скорости, высоты и yaw. Поэтому «GPS работает» не описывает всю конфигурацию: GPS может быть выбран для позиции, а курс и высота могут приходить из других источников.

Интерактивная диагностика

Выбери сначала наблюдаемое поведение, затем ближайшее подтверждение из лога или полевого теста. Результат не меняет параметры и не заменяет анализ лога: он задаёт безопасный порядок проверки.

Диагностика по симптому

Почему Loiter уводит аппарат?

Сначала выбери поведение, затем признак, который уже виден в логе или тесте.

Шаг 1 из 2

Шаг 1: выбери одно наблюдаемое поведение.

1. Что именно происходит?

Порядок проверки перед следующим полётом

  1. Пропеллеры сняты. Проверь ориентацию рамы, моторы, тяги, крепление автопилота, компас и разъёмы. Для тестов двигателя используй отдельную безопасную процедуру.
  2. GPS и EKF успели инициализироваться. Запиши время запуска и сообщения GCS. Не считай первый 3D Fix достаточным доказательством готовности Loiter.
  3. Короткий ручной участок. Убедись, что аппарат предсказуем в Stabilize/AltHold и что ручной режим доступен на переключателе.
  4. Короткий Loiter на открытой площадке. Не начинай с RTL и не проверяй уход там, где невозможно безопасно посадить аппарат.
  5. Лог до настроек. Сохрани DataFlash и параметр-файл. Меняй одну причину за раз, иначе улучшение невозможно связать с действием.
Сноска 3. Официальная документация связывает магнитные помехи с круговым уходом в Loiter, RTL и AUTO и рекомендует физически удалять внешний компас от источников поля. Это отдельная ветка проверки, а не доказательство, что любой уход вызван компасом.

Источники

Проверено 02.08.2026. Названия полей лога и доступные параметры сверяй с полной таблицей своей версии ArduPilot и типом аппарата.

Прокрутить вверх