Оптический поток

Кратко

Оптический поток (optical flow) — видимое движение картинки: когда наблюдатель и сцена движутся друг относительно друга, яркостный узор изображения «плывёт», и это смещение можно измерить. Для БПЛА это способ чувствовать собственную скорость без спутников: направленная вниз камера следит, как под аппаратом плывёт текстура земли, и вместе с дальномером даёт оценку скорости — основу удержания позиции там, где GNSS недоступна.

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

  • Полёт без спутников: удержание позиции и висение в помещениях, под мостами, в «тени» зданий — везде, где спутниковой навигации нет или она ненадёжна.
  • Визуальная одометрия и навигация роботов: оценка собственного движения по камере — базовый приём робототехники, родственный SLAM.
  • За пределами дронов: оценка движения между кадрами используется при сжатии видео, а оптическая компьютерная мышь — самый массовый датчик оптического потока в мире.

Как работает

Идея старше дронов: современная формулировка оптического потока родилась из исследований зрения пилотов во время Второй мировой войны, а термин «optic flow» ввёл психолог Джеймс Гибсон в 1950 году. Классические алгоритмы вычисления — метод Лукаса—Канаде (следит за смещением небольших фрагментов кадра) и метод Хорна—Шанка (строит гладкое поле скоростей для всего изображения); сегодня к ним добавились нейросетевые методы вроде RAFT.

Сенсор оптического потока на дроне устроен просто: маленькая камера смотрит вертикально вниз и измеряет, как смещается картинка между кадрами. Но одного смещения мало — чтобы пересчитать его в скорость аппарата, нужна дистанция до поверхности, поэтому рядом с камерой ставится направленный вниз дальномер. В PX4 эти данные вливаются в общий фильтр оценки состояния EKF2 (параметр EKF2_OF_CTRL) вместе с показаниями IMU; в ArduPilot сенсоры потока работают на коптерах, самолётах и наземных роверах.

У метода есть честные ограничения: камере нужна текстура. Над однородной поверхностью без видимых деталей зацепиться взгляду не за что, и качество оценки падает; освещение тоже имеет значение.

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

  • Камера, направленная вниз — источник картинки; в готовых модулях это миниатюрный сенсор.
  • Дальномер, направленный вниз — дистанция до поверхности для пересчёта потока в скорость; часто лазерный (лидарного типа).
  • Вычислитель — считает поток прямо на модуле или на автопилоте.
  • Автопилот — объединяет скорость по потоку с данными IMU в оценке состояния.

Примеры

  • PX4FLOW — классический смарт-модуль: камера, обработка на борту модуля.
  • Модули на сенсоре PMW3901 — недорогие компактные датчики для малых аппаратов.
  • ARK Flow, HereFlow, Cheerson CX-OF — примеры из более чем десятка моделей, поддерживаемых ArduPilot; во многих корпусах камера и дальномер уже собраны вместе.

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

Источники

  • Wikipedia — Optical flow — определение, история, методы вычисления, применения.
  • ArduPilot Documentation — сенсоры потока, скорость относительно земли, поддерживаемые модели.
  • PX4 User Guide — камера + дальномер, полёт без GPS, интеграция с EKF2.

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