Программная система визуального контроля горизонтальной скорости беспилотного вертолета
Основным источником данных о путевой и угловой скорости беспилотных дистанционно управляемых вертолетов (летающих мобильных роботов) является система глобального позиционирования (GPS).
Но в местах с ограниченным приемом радиоволн от спутников система GPS дает значительные погрешности оценки скорости, что создает необходимость в определении этого параметра при помощи резервной системы. Возможна альтернативная система навигации на основе измерения и вычисления направления и скорости движения видеоизображения в поле зрения видеокамеры, установленной на вертолете и ориентированной на поверхность земли. На основании данных анализа изображений, показаний датчиков высоты и ориентации вертолета может быть построена кинематическая модель движения вертолета относительно поверхности земли. Для решения данной задачи была разработана программа вычисления оптического потока видеоизображений OptFlow [121,289]. Программа работает в реальном времени с видеопотоком передаваемом камерой вертолета. Данная программа может использоваться в качестве экспериментальной дублирующей системы оценки горизонтальной путевой и угловой скорости беспилотного, дистанционно управляемого вертолета.Архитектура, структура и блочное построение системы обработки изображения программы OptFlowконтроля положения и скорости мобильных роботов и программы UWScanконтроля дефектов по данным видеосистемы подводного
робота полностью аналогичны и описаны в разделах 7.1.1 и 7.1.2.
Оптический поток - наблюдаемое видеокамерой движение яркостной картинки местности связан определенными функциональными зависимостями с угловой и линейной скоростью движения вертолета. Изучение и анализ биологических методов навигации и движения насекомых показывает, что обработка получаемого с видеокамеры оптического потока, позволяет также центрировать положение мобильных роботов (в том числе и летающих) при их движении в туннелях и коридорах, изменять скорость и направление движения при появлении препятствий и приземлении, определять расстояния до препятствий или мест приземления, а также весь пройденный путь.
В программе OptFlowдля вычисления оптического потока в следующих друг за другом видеокадрах использован метод Лукаса-Канаде[158]. Оптический поток вычислялся для некоторого массива фиксированных точек изображения - для каждой точки вычислялся вектор скорости. Полученные вектора скорости точек изображения обрабатываются совместно с кинематической моделью движения вертолета для определения его поступательной и вращательной скорости движения в горизонтальной плоскости.
Для вычисления оценки вектора горизонтальной скорости вертолета использовался фильтр Калмана, который позволял уменьшить влияние погрешностей и шума во входных данных на значение скорости вертолета. Это позволило получить адекватные оценки скорости при существенном уровне помех. Помехой, например, являлось движение точек видеоизображения из-за возмущений на земной поверхности от воздушного потока главного винта вертолета. Фильтр Калмана позволил также определить достоверность измерения горизонтальной скорости вертолета (оценить уровень шума во входных данных). Данные анализа скорости оптического потока, совмещенные с показаниями высоты от высотомера и гирокомпаса вертолета, позволяют определить уточненные значения его горизонтальной скорости.
Область предварительного просмотра главного окна программы (рис.7.9) используется для демонстрации результатов анализа видеопотока. Первоначально в ней отображается исходное видеоизображение. Результаты анализа оптического потока отображаются как в цифровом, так и графическом виде. При графическом отображении (рис.7.10) в окне предварительного просмотра показываются точки, для которых вычислен оптический поток. Для каждой точки отображается вычисленный вектор локального оптического потока в виде линии. Направление линии показывает направление локального оптического потока, а 334
длина линии — его скорость. Центральная точка и вектор используются, чтобы показать среднее значение оптического потока, полученное после обработки всех локальных измерений с использованием фильтра Калмана.
Линия на изображении оптического потока показывает ориентацию вертолета (т.е., поворот одной системы координат относительно другой, для которой вычисляется оптический поток). При изменении ориентации, линия поворачивается вокруг центральной точки на соответствующий угол.
Рис.7.9. Главное окно программы OptFlow
Алгоритм обработки видеоизображений реализован в виде обрабатывающего графа разработанного с использованием представленной выше системы обработки изображений. На вход обрабатывающего графа с помощью фильтра источника (использующего функции библиотеки DirectShow) подается видео- поток в виде следующих друг за другом видеокадров. Видеокадры обрабатываются последовательно тремя фильтрами: GRAYLEVEL (перевод цветного изображения в изображение в тонах серого), SOBELDIR (фильтр выделения контуров в изображении с вычислением нормалей к контурам) и фильтр OPTFLOW (фильтр вычисления видеопотока, основанный на методе Лукаса-Канаде. Схема обработки видеокадров в разработанной программе показана на рис. 7.11.
Таким образом, разработанная и апробированная программная система для вычисления в реальном времени оптического потока, фиксируемого видеока-
мерой, установленной на мобильном роботе, может использоваться в качестве дублирующего датчика скорости беспилотного вертолета.
Рис. 7.11. Схема процесса обработки изображения в программе «Optflow»
7.3.