Урок 27 из 43 · Модуль 3. EKF3: как автопилот определяет своё положение
Mission Planner для технического персонала · Урок 27 из 43 · Модуль 3. Тюнинг и автономный полёт
Принцип работы фильтра Калмана, диагностика по дисперсиям и гибкая настройка источников навигационных данных.
Дисперсии EKF — самый ранний индикатор проблемы. Они растут задолго до того, как аппарат начнёт вести себя странно.
Содержание
1. Цели урока
После этого урока вы будете понимать:
- из каких этапов состоит цикл работы EKF
- как читать дисперсии и что означает каждая
- как настроить наборы источников EK3_SRC*
- как определять курс без компаса через GSF
2. Что делает EKF
Расширенный фильтр Калмана (Extended Kalman Filter, EKF) объединяет данные разнородных датчиков в единую оценку состояния аппарата: положение, скорость, ориентацию, а также смещения гироскопов и акселерометров.
Логика работы:
- Предсказание. По данным IMU (интегрирование ускорений и угловых скоростей) фильтр предсказывает, где аппарат окажется через шаг времени. Точно на коротком интервале, но накапливает ошибку.
- Коррекция. Приходят измерения от GPS, компаса, барометра, дальномера. Фильтр корректирует предсказание, взвешивая источники по их предполагаемой точности.
- Оценка доверия. Для каждой оценки вычисляется дисперсия — мера неуверенности. Именно она отображается в индикаторе EKF.
ArduPilot запускает несколько экземпляров EKF3 (по одному на каждый IMU) и выбирает наиболее «здоровый» — это защита от отказа отдельного датчика.
↑ К оглавлению3. Дисперсии как диагностический инструмент
В DATA → Status и в логе (XKF4, NKF4) доступны:
| Величина | Что означает | Норма |
|---|---|---|
| Velocity Variance | Расхождение оценки скорости с измерениями GPS | ≤ 0,5 |
| Pos Horiz Variance | Расхождение горизонтального положения | ≤ 0,5 |
| Pos Vert Variance | Расхождение по высоте (барометр против GPS) | ≤ 0,5 |
| Compass Variance | Расхождение курса по компасу с оценкой по движению | ≤ 0,5 |
| Terrain Alt Variance | Расхождение высоты над рельефом | ≤ 0,5 |
Значение выше 0,8 означает, что фильтр серьёзно сомневается в соответствующем источнике. При превышении FS_EKF_THRESH срабатывает failsafe.
| Что растёт | Вероятная причина |
|---|---|
| Compass Variance | Магнитные помехи, неверная калибровка, влияние тока |
| Velocity Variance | Вибрации (акселерометры «врут»), потеря спутников, многолучёвость |
| Pos Vert Variance | Барометр «дует» от воздушного потока, негерметичный корпус, резкие перепады давления |
| Pos Horiz Variance | Плохой приём GPS, отражения от зданий |
| Все сразу | Сильные вибрации или clipping акселерометра |
4. Система источников EKF3
Начиная с ArduPilot 4.1, источники данных для EKF настраиваются гибко: до трёх наборов, переключаемых в полёте.
| Параметр | Назначение |
|---|---|
EK3_SRC1_POSXY | Источник горизонтального положения: 0 — нет, 3 — GPS, 4 — Beacon, 6 — ExternalNav |
EK3_SRC1_VELXY | Горизонтальная скорость: 0 — нет, 3 — GPS, 5 — OpticalFlow, 6 — ExternalNav, 7 — WheelEncoder |
EK3_SRC1_POSZ | Высота: 1 — Baro, 2 — RangeFinder, 3 — GPS, 4 — Beacon, 6 — ExternalNav |
EK3_SRC1_VELZ | Вертикальная скорость: 0 — нет, 3 — GPS, 6 — ExternalNav |
EK3_SRC1_YAW | Курс: 1 — Compass, 2 — GPS, 3 — GPS с компасом как резерв, 6 — ExternalNav, 8 — GSF |
EK3_SRC2_*, EK3_SRC3_* | Второй и третий наборы источников |
EK3_SRC_OPTIONS | Опции комбинирования |
Переключение наборов в полёте назначается на канал: RCn_OPTION = 90 (EKF Source Set).
Типовые конфигурации
Обычный полёт на открытой местности:
Полёт в помещении с оптическим потоком и лидаром:
Полёт при сильных магнитных помехах (GPS-Yaw / moving baseline RTK):
EK3_SRC1_YAW = 8 включает Gaussian Sum Filter: автопилот определяет курс по несоответствию между направлением ускорения и направлением движения по GPS. Работает только в движении и требует манёвров для сходимости, но полностью снимает зависимость от компаса. Полезно для аппаратов с непреодолимыми магнитными помехами.5. Чек-лист самопроверки
Урок освоен, если каждый пункт выполнен на практике:
- Умею открыть панель EKF и прочитать составляющие
- Знаю, какая дисперсия за что отвечает
- Понимаю логику настройки EK3_SRC1_*
- Знаю, когда применять GSF вместо компаса
6. Что дальше
- Предыдущий урок: 26. Failsafe: реакции на отказы и организация безопасности
- Следующий урок: 28. RTK, дальномеры и оптический поток
- Полный перечень тем — в статье «Содержание курса».
- Четверг, 30 июля 2026