Расширенный фильтр Калмана (EKF)

Кратко

EKF (extended Kalman filter, расширенный фильтр Калмана) — алгоритм, который сводит показания всех сенсоров аппарата в единую наилучшую оценку его состояния: где он, с какой скоростью движется и как ориентирован. Каждый сенсор врёт по-своему — IMU дрейфует, GNSS шумит, барометр реагирует на погоду, — а EKF взвешивает их показания и выдаёт согласованную картину. Это ядро навигации и ArduPilot, и PX4.

Для чего используется

  • Навигация: оценка положения, скорости и ориентации — то, чем пользуются полётные режимы и автоматика.
  • Слияние сенсоров (sensor fusion): IMU, GNSS, компас, барометр, дальномер, оптический поток, VIO — в одну оценку.
  • Отбраковка сбоев: объединяя измерения, фильтр отклоняет данные сенсора, выпадающие из общей картины.
  • Инерциальная навигация между обновлениями GNSS — и продолжение счисления при кратких пропаданиях спутников.

Как работает

Идея фильтра Калмана — чередовать два шага, как штурман на корабле:

  1. Предсказание. По модели движения и данным IMU фильтр прогнозирует, где аппарат окажется через мгновение, — и честно оценивает, насколько прогнозу можно верить (ковариацию ошибки).
  2. Коррекция. Пришло измерение (например, координата GNSS) — фильтр сравнивает его с прогнозом. Разница называется невязкой (инновацией); насколько сильно ей верить, решает коэффициент усиления Калмана: точному сенсору — больше веса, шумному — меньше.

Классический фильтр Калмана (Р. Э. Калман, 1960) работает с линейными системами. Движение летающего аппарата нелинейно, поэтому применяется расширенная версия — EKF: модель линеаризуется вокруг текущей оценки (через матрицы Якоби), после чего работают стандартные уравнения. EKF — фактический стандарт нелинейной оценки состояния в навигационных системах и GPS.

У подхода есть ограничения: для сильно нелинейных систем EKF не оптимален, при плохой инициализации или неточной модели может расходиться. Альтернативы — UKF (несцентированный фильтр, без линеаризации) и фильтры частиц, но в бортовой навигации доминирует EKF.

Основные компоненты

  • Вектор состояния. EKF2 в PX4 оценивает 24 величины: кватернион ориентации, скорость, положение, смещения гироскопа и акселерометра, магнитное поле Земли и магнитное смещение корпуса, скорость ветра, высоту рельефа.
  • Входы: IMU (не менее 100 Гц), GNSS, магнитометр (не менее 5 Гц), барометр, дальномер, оптический поток, VIO, датчик воздушной скорости.
  • Буферы задержек. Данные сенсоров приходят с разным запаздыванием; EKF2 буферизует их (FIFO) и учитывает с правильной временной меткой (параметры EKF2_*_DELAY).
  • Резервирование. PX4 запускает параллельные экземпляры фильтра по комбинациям IMU × магнитометр (multi-EKF, теоретически до 16); ArduPilot (EKF3) при нескольких IMU ведёт несколько «ядер» и выбирает то, где данные согласованнее (lane switching), с резервным алгоритмом DCM.

Примеры

  • В ArduPilot EKF3 оценивает положение, скорость и ориентацию по гироскопам, акселерометру, компасу, GPS, датчику воздушной скорости и барометру.
  • В PX4 фильтр называется ECL EKF (EKF2) и реализован в error-state формулировке — так устойчивее оценивается ориентация.
  • Подключение оптического потока или VIO к EKF даёт навигацию без GNSS — в помещениях и под мостами.

Связанные темы

Источники

Обновлено: 2026-07-09