УДК 004.023, 004.921, 004.932.72'1
МЕТОДЫ И АЛГОРИТМЫ ОПРЕДЕЛЕНИЯ ПОЛОЖЕНИЯ И ОРИЕНТАЦИИ БЕСПИЛОТНОГО ЛЕТАТЕЛЬНОГО АППАРАТА С ПРИМЕНЕНИЕМ БОРТОВЫХ ВИДЕОКАМЕР
(Исследования проводились в рамках работ по ГК № 07.514.11.4033, шифр заявки 2011-1.4-514-002,
и по гранту РФФИ № 12-07-00205-а)
Д.Н. Степанов, инженер-исследователь (Институт программных систем им. А.К. Айламазяна РАН, ул. Петра I, 4а, г. Переславль-Залесский, 152021, Россия, тйек1989@тай-ги)
Статья посвящена разработке программного обеспечения, предназначенного для моделирования полетов беспилотного летательного аппарата и его автономного позиционирования с использованием средств машинного зрения, компьютерной графики и параллельных вычислений. Обсуждается актуальность проблемы автономного позиционирования беспилотного летательного аппарата без использования спутниковых систем GPS или ГЛОНАСС. В качестве платформы для комплекса используется конвейерно-параллельная программная система нейросетевого контроля и диагностики, разработанная в ИПС РАН. Приведена постановка задачи автономного позиционирования. Подход к ее решению основан на использовании спутникового снимка того участка поверхности Земли, над которым аппарат совершает свои полеты. Снимок применяется и для генерации кадров видеоряда с камеры, установленной на виртуальном аппарате. Задача позиционирования беспилотного летательного аппарата сводится к вычислению параметров проективного преобразования, которое связывает снимки с искусственного спутника Земли и беспилотного летательного аппарата, для чего используются пары соответствующих точек, наблюдаемых на обоих изображениях. Описан подход, позволяющий ускорить процесс поиска таких пар. Эксперименты показали, что разработанный комплекс вполне успешно решает задачи автоматического определения положения и ориентации беспилотного летательного аппарата. Приведены различные методы вычисления положения и ориентации беспилотного летательного аппарата во время полета, а также методы повышения устойчивости работы комплекса при изменениях времени суток, погодных условий и времени года.
Ключевые слова: БПЛА, искусственный спутник Земли, особые точки, gdal2tiles, аппаратно-программный комплекс, компьютерное зрение, моделирование, эвристический алгоритм, OpenCV, пирамиды изображений.
METHODS AND ALGORITHMS FOR DETERMINING THE POSITION AND ORIENTATION UAV USING ON-BOARD VIDEOCAMERAS Stepanov D.N., Engineer of the Research (Program System Institute of RAS, 4а, Petr IAv., Pereslavl-Zalessky, 152021, Russian Federation, mitek1989@mail.ru) Abstract. The article is devoted to the development of software for simulating flying an unmanned aerial vehicle (UAV) and its autonomous positioning using computer vision, computer graphics and parallel computing. The relevance of the autonomous UAV positioning without using satellite systems GPS and GLONASS is discussed. Conveyor-parallel software system "PPS INS" is used as the basis of the "Navigator-M". This system was developed at PSI RAS. Statement of the autonomous positioning problem is described.
The approach to its solution is based on a satellite image of the part of the Earth's surface over which vehicle performs its flights. This image is also used to generate a video sequence of frames from the camera installed on the virtual vehicle. The
problem of positioning the UAV is reduced to the calculation of the projective transformation parameters. A transformation links the images from satellites (AES) and the UAV using pairs of corresponding points observed in both images. An approach that allows speeding up the search for such pairs is described. Experiments have shown that "Navigator-M" successfully solves the problem of automatic determination of the position and orientation of the UAV. Various methods of calculating the position and orientation of the UAV in flight, as well as methods to improve the stability of the system at a different time of a day, weather conditions and time of a year are described.
Keywords: UAV, artificial Earth satellite, feature points, gdal2tiles, computer appliance, computer vision, modeling, heuristics, OpenCV, image pyramids.
Важность развития технологий для беспилотных летательных аппаратов (БПЛА) переоценить невозможно. Задачи, которые ставятся перед БПЛА, обусловлены их многочисленными приложениями как в военной, так и в гражданской сферах (например, картографирование, геологоразведка, сельское хозяйство, связь, охрана границ, лесов, полицейское патрулирование, мониторинг опасных объектов и процессов, информационное сопровождение чрезвычайных ситуаций, наблюдение за линиями электропередач, газо- и нефтепроводами).
В настоящее время в мире производится широкий ряд БПЛА, от тяжелых до сверхмалых, и создание надежных систем навигации этих аппаратов является важным направлением разработок. Однако существует много проблем, связанных с управлением и навигацией БПЛА. В частности, стабильность полета большинства из них существенно зависит от качества сигналов спутниковой связи GPS/ГЛОНАСС. Поэтому создание автономной системы позиционирования, которая позволила бы БПЛА меньше зависеть (или вообще отказаться) от спутниковой навигации, является актуальной, перспективной и важной научной задачей. Консультации с известными компаниями «Эникс» (Казань), «Транзас» (Санкт-Петербург), «ZALA AERO» (Ижевск), МКБ «Компас» (Москва) и ЦАГИ (Москва) показали необходимость в полноценных системах навигации, альтернативных GPS/ГЛОНАСС.
В рамках работ по Госконтракту был разработан экспериментальный образец аппаратно-программного комплекса (ЭО АПК) «Навигатор-М», предназначенный для моделирования полета БПЛА, его автоматического позиционирования и управления (Свид. о госрегистрации программы для ЭВМ № 2012618314, авторы: В.М. Хачумов, И.П. Тищенко, Д.Н. Степанов, В.Ф. Заднепров-ский, В.П. Фраленко, Ю.Г. Емельянова, А.А. Та-лалаев, Н.С. Абрамов). Применялись как широко известные методы и алгоритмы машинного зрения, компьютерной графики и параллельных вычислений, так и разработанные в рамках НИР. Используемый язык программирования C/C++.
В качестве платформы для разработки была использована программная нейросетевая система контроля и диагностики (НСКиД) (система защищена Свидетельством о госрегистрации программы для ЭВМ № 2012613261, авторы: В.М. Хачумов, И.П. Тищенко, А.Ан. Талалаев, К.А. Кон-
стантинов, В.П. Фраленко, Ю.Г. Емельянова). Система имеет модульную архитектуру [1], ориентирована на конвейерно-параллельную обработку потока входных данных и снабжена графическим интерфейсом [2] для более удобной работы. Разработанный комплекс состоит из нескольких программных модулей, предназначенных для решения определенных задач [3] и в рамках НСКиД именуемых логическими схемами. Все схемы состоят из набора блоков (модулей), определенным образом связанных между собой. Каждый модуль принимает на вход некоторый набор данных, решает закрепленную за ним подзадачу и отправляет результаты другим модулям.
Данная статья посвящена подробностям реализации некоторых задействованных в комплексе алгоритмов, теоретическое описание которых было представлено в работе [4]. Кроме того, отражены результаты экспериментов по моделированию полета виртуального БПЛА с установленной на нем видеокамерой и по автоматическому определению его положения и ориентации. Приведены методики, которые, как ожидается, помогут усовершенствовать и развить методы автоматического позиционирования, а также приблизиться к внедрению заложенных в нем алгоритмов и идей на реальных БПЛА.
Постановка задачи автоматического позиционирования БПЛА и общий подход к ее решению
Задача автоматического определения положения и ориентации БПЛА заключается в следующем. Летательный аппарат оснащен фото- или видеокамерой, жестко закрепленной или подвижной. Известны технические характеристики камеры на БПЛА, а в случае ее подвижности - ориентация камеры относительно аппарата. Имеется спутниковый снимок местности, над которой БПЛА совершает полеты. Для снимка с искусственного спутника Земли (ИСЗ) задана географическая привязка. Известны и технические характеристики камеры на ИСЗ.
Для данного участка Земли может быть доступна карта высот - псевдоизображение, где каждому пикселю сопоставлена высота над уровнем моря той точки, проекция которой попадает в этот пиксель. Спутниковый снимок вместе с картой высот составляют трехмерную модель данного участка земной поверхности. Если карта высот от-
сутствует, считается, что участок является плоским. Применительно к задаче моделирования снимок с ИСЗ применялся для генерации снимков с камеры на виртуальном аппарате.
Во время полета камера на БПЛА порождает некоторый набор кадров. Для каждого кадра необходимо определить положение и ориентацию БПЛА, соответствующие этому кадру, без использования дополнительных датчиков (в том числе без использования GPS/ГЛОНАСС и инерциаль-ной навигационной системы). Обработка данных может выполняться на борту БПЛА или на наземной станции.
Для решения задачи был использован следующий подход: так как на каждом снимке с БПЛА запечатлен некоторый участок земной поверхности, который наблюдается и на снимке с ИСЗ, можно попытаться найти параметры проективного преобразования, связывающего два изображения, и тем самым вычислить взаимную ориентацию камер на ИСЗ (на тот момент, когда был выполнен спутниковый снимок) и БПЛА. А так как спутниковый снимок имеет географическую привязку, то при известных параметрах искомого преобразования вычисление положения и ориентации БПЛА становится тривиальной задачей. Вычислению неизвестных параметров предшествует поиск некоторого набора пар общих (соответствующих) точек, которые наблюдаемы на обоих изображениях [4]. В качестве основного инструмента для решения задачи более всего подходит программная библиотека компьютерного зрения OpenCV (http://opencv.willowgarage.com) [5].
Генерация снимков с камеры, установленной на виртуальном БПЛА
Математическая модель камеры, используемой в исследованиях, а также метод генерации снимков с БПЛА с применением спутникового снимка и так называемых матриц гомографии описаны в работе [6]. В рамках разработанного комплекса для порождения кадров с камеры на виртуальном аппарате применялись возможности программной библиотеки GDAL [7] и часть программного кода библиотеки QGIS (http://www.qgis.org/), который был подвергнут некоторой модификации. Преимущество библиотеки GDAL в том, что она позволяет осуществлять проективные преобразования изображений и при этом не надо загружать изображения целиком в оперативную память компьютера.
Генерации снимков с БПЛА предшествует этап порождения траектории полета. (Описание алгоритма создания траектории выходит за рамки данной статьи.) Входными данными для генерации является набор опорных точек, для каждой из которых известны ее трехмерные координаты. Траектория создается таким образом, что она включа-
ет в себя все опорные точки. Для опорных точек могут быть заданы и требуемые углы ориентации БПЛА при его прохождении через данную точку. Все сгенерированные кадры объединяются в видеофайл.
На рисунке 1 представлен пример спутникового снимка (его уменьшенная копия), который использовался для моделирования полета БПЛА и его автоматического пози-ционирова-ния. Реальные размеры изображения - 10 000 на 10 000 пикселей, пространственное разрешение - 1 метр на пиксель.
Оптимизация поиска пар соответствующих точек на снимке со спутника и на снимке с БПЛА
Как уже было отмечено, задача позиционирования БПЛА сводится к вычислению параметров проективного преобразования, которое связывает снимки с ИСЗ и БПЛА, для чего используются пары соответствующих точек, наблюдаемых на обоих изображениях. На первом шаге на изображениях выделяются два множества так называемых особых точек, для этого использовалась реализация алгоритма SURF [8]. На втором шаге для каждой особой точки строится ее дескриптор (описание) - набор чисел, позволяющий отличить одну особую точку от другой. Для сопоставления особых точек использовались два метода (http:// opencv.willowgarage.com): первый основан на полном переборе всех особых точек на снимке со спутника, во втором используются возможности библиотеки FLANN (http://www.cs.ubc.ca/~mari-usm/index.php/FLANN/FLANN). Библиотека предназначена для решения задачи поиска ближайшего соседа в пространствах большой размерности с применением случайных kd-деревьев (randomized kd-trees).
Главная проблема в том, что файл, соответствующий спутниковому снимку местности, над которой виртуальный БПЛА совершает полеты, имеет значительные размеры (от сотен мегабайт до нескольких десятков гигабайт и более). Даже с использованием кластерных вычислительных установок работа с такими большими файлами мо-
жет оказаться затруднительной, а в случае, если все вычисления должны выполняться на борту БПЛА, вообще невозможной.
Подход к решению проблемы подробно изложен в работе [6] и состоит в следующем:
- разбиение спутникового снимка на фрагменты, создание пирамиды спутниковых снимков, например с использованием утилиты gdal2tiles (http://www.klokan.cz/projects/gdal2tiles/) (производится однократно);
- поиск особых точек на каждом фрагменте каждого уровня пирамиды, вычисление дескрипторов всех этих точек (производится однократно);
- использование алгоритма сужения области поиска БПЛА на карте местности на основе информации о положении в предыдущий момент времени.
Рассмотрим каждый из этих пунктов.
Принципы работы утилиты gdal2tiles. Основное назначение утилиты gdal2tiles - обеспечить возможность просмотра больших и сверхбольших цифровых снимков земной поверхности с помощью обычных Web-браузеров. Пусть имеется изображение шириной в Ж пикселей и высотой в Н пикселей. Положим D=max(W, Н), тогда количество слоев в пирамиде вычисляется по
(тах(Д 256)^"
формуле N =
1ОБ2
256
+1, где под
операцией Гх! подразумевается округление числа х до ближайшего целого в большую сторону. На жестком диске компьютера создается N директорий, название каждой из них - число от 0 до N-1. Содержимое директории с номером N-1 соответствует самому нижнему уровню пирамиды, то есть исходному изображению, которое представлено в виде множества своих фрагментов. В директории под номером N-2 (если N>1) находятся фрагменты, которые в совокупности представляют собой изображение, полученное из исходного путем его уменьшения в 2 раза по ширине и высоте. В директории под номером N-3 (если N>2) - в 4 раза и т.д.
Количество фрагментов в слое пирамиды под номером к равно пхкхпук, ке{0, 1, ..., N-1}, Ж '
-К_/с_1 (разбиение по горизонтали),
256 • 2
н
-м_к_1 (по вертикали). В директории
256 • 2
под номером к создается пхк поддиректорий, имя каждой поддиректории - число в диапазоне от 0 до пхк-1, в каждой из них сохраняется пук изображений. Название каждого изображения состоит из числа в диапазоне от 0 до пук-1, а также расширения файла. Содержимое каждой поддиректории соответствует всем фрагментам, принадлежащим одному столбцу слоя под номером к. Каждый фрагмент имеет размеры 256 на 256 пикселей.
1ук
На рисунке 2 показан результат работы утилиты gdal2tiles для изображения размером 1 574 на 854 пикселя. Количество слоев N=4, количество фрагментов в самом нижнем слое - 7x4, в слое над ним - 4x2, в следующем слое - 2x1, в последнем слое - 1x1.
Рис. 2. Результат работы утилиты gdal2tiles для изображения размером 1 574 на 854 пикселя
Поиск особых точек на каждом фрагменте каждого уровня пирамиды, вычисление дескрипторов всех особых точек. Для каждого фрагмента каждого слоя пирамиды изображений, построенной на предыдущем шаге, производятся поиск особых точек на нем, вычисление дескриптора каждой особой точки и сохранение результатов на жесткий диск компьютера (в бинарном виде). Данный процесс может быть распараллелен, поскольку работа с каждым фрагментом осуществляется независимо, а система НСКиД является конвейерно-параллельной. Соответствующая логическая схема описана в разделе 10.1 статьи [3].
Данные, связанные с особыми точками на некотором фрагменте, сохраняются в виде набора файлов, названия которых имеют общий префикс следующего вида: «А_В_С», где А - номер слоя пирамиды, В - количество строк в разбиении слоя на фрагменты, С - количество столбцов.
Выбор подмножества фрагментов, необходимых для определения положения и ориентации БПЛА. В работе [6] приведено теоретическое описание алгоритма, позволяющего на спутниковом снимке выделить некоторую область в виде круга, а для определения положения и ориентации БПЛА в момент времени t использовать только те особые точки на снимке с ИСЗ, которые попадают
в эту область (алгоритм сужения области поиска). Для этого используются информация о положении и ориентации БПЛА в момент времени /-1, технические характеристики камер на ИСЗ и БПЛА и высота, с которой был выполнен спутниковый снимок, или же пространственное разрешение камеры на ИСЗ.
Вычислению радиуса исходной области предшествует выбор наиболее подходящего слоя пирамиды для решения задачи позиционирования (алгоритм также приведен в работе [6]). Всего в пирамиде N слоев, самый нижний соответствует исходному спутниковому снимку и имеет номер N-1, самый верхний уменьшен по сравнению с исходным в 2ЛГ-1 раз по ширине и высоте. Пусть наиболее подходящий слой имеет номер к, а положение БПЛА в момент времени /-1 задается тройкой чисел (X, У, 7)Т (в глобальной декартовой системе координат, привязанной к камере на ИСЗ). Если спроектировать эту точку на поверхность Земли, то получим некоторую точку с координатами Р0=(х0, у0, 1)Т на спутниковом снимке (в однородных координатах), то есть на самом нижнем слое пирамиды (под номером N-1). Точке Р0 соответствует некоторая точка Р0, лежащая на поверхности Земли. Необходимо вычислить, какие координаты имеет проекция точки Р0 на слое пирамиды под номером к.
Аналитические выкладки показали, что если некоторая точка имеет координаты q=(s, t, 1)т на слое пирамиды под номером ], то для вычисления ее координат на слое пирамиды под номером ]-1 надо воспользоваться следующим матричным преобразованием:
ГО,5 0 -0,25
t =
л
0 0.5 -0,25 + 256 ■[п,...-п
V1У
= Ajq,
0 0 1 а координаты проекции точки Р0 на к-м слое пирамиды можно вычислить, используя композицию таких преобразований:
Pk =
{x Л Ук
V 1 У
= i A * A * * A
V AN-1 aN-2 ••• Ak+1
) Po •
Далее применяем алгоритм вычисления радиуса того круга, который соответствует области поиска, пусть он равен г. Затем вычисляем номера фрагментов из к-го слоя пирамиды, которые попадают в эту область. Требуется сопоставить все особые точки, найденные на снимке с БПЛА, с особыми точками на каждом фрагменте. Для минимизации числа обращений к жесткому диску при загрузке данных об особых точках, сопоставленных каждому фрагменту спутникового снимка, был использован следующий подход. Создается очередь, каждый ее элемент - номер некоторого фрагмента. Все фрагменты на всех слоях пирамиды пронумерованы так, что номер каждого
фрагмента уникален. Максимальный размер очереди ограничен и вычисляется заранее по формулам из алгоритма сужения области поиска и исходя из средней высоты полета БПЛА. Сами же данные хранятся в ассоциативном массиве data, где ключом является номер фрагмента, а значением - набор данных об особых точках на этом фрагменте.
Вначале вся очередь просматривается на предмет того, есть ли в ней номера тех фрагментов, которые необходимы для определения положения и ориентации БПЛА в текущий момент времени (t). Если есть, то идет обращение к искомому элементу массива data для поиска пар соответствующих особых точек (без лишних обращений к жесткому диску) и его номер запоминается. Затем в цикле идет работа с оставшимися (необработанными) фрагментами. Их номера помещаются в очередь, а данные об особых точках - в массив data. Если очередь переполнена, ее последний элемент и соответствующие данные из массива data удаляются из памяти.
Фильтрация пар соответствующих точек, находящихся за пределами области поиска. Практически все алгоритмы сопоставления особых точек на изображениях основаны на эвристиках и поэтому могут выдавать некорректные результаты. Чем больше доля неправильно найденных пар, тем меньше вероятность того, что положение и ориентация БПЛА будут вычислены верно. Для уменьшения числа неправильно найденных пар предлагается следующий алгоритм: пусть имеется пара соответствующих особых точек (p, q), точка p найдена на снимке с беспилотника, точка q - на k-м слое пирамиды, построенной по спутниковому снимку. Если точка q не попадает в область поиска, пара (p, q) отбрасывается.
По аналогии с предыдущим разделом необходимо вычислить координаты всех особых точек на самом нижнем слое пирамиды (при известных координатах на k-м слое):
Po=(An-I* AN-2*...*Ak+i)-1Pk.
На рисунке 3 показаны пример снимка с БПЛА (сверху) и часть спутникового снимка (снизу), которая использовалась для позиционирования аппарата. Фрагменты снимка с ИСЗ разделены черными горизонтальными и вертикальными линиями, в данном случае количество фрагментов равно 25 (размер каждого фрагмента - 256 на 256 пикселей). Граница области поиска показана в виде окружности. Разрешение камеры на БПЛА выбрано равным 1 024 на 768 пикселей. Белыми линиями соединены пары соответствующих точек, найденных на снимке с беспилотника и на части спутникового снимка. В проведенных экспериментах количество таких пар обычно колебалось в диапазоне от 1 000 до 1 500. На рисунке 3 показаны только 50 пар.
Рис. 3. Пары соответствующих точек, найденных на снимке с БПЛА и на фрагментах спутникового снимка
Результаты экспериментов по автоматическому определению положения и ориентации БПЛА
Способ определения положения и ориентации аппарата описан в работе [6]: вычисляется матрица томографии Н, которая связывает координаты пар соответствующих точек, найденных на снимке с БПЛА и на фрагментах спутникового снимка. Далее производится ее декомпозиция на матрицу ориентации и вектор положения БПЛА [9].
В рамках экспериментальных исследований комплекса были проведены тестирования модулей, предназначенных для моделирования полета БПЛА и автоматического определения его положения и ориентации. Одним из результатов моделирования является видеофайл, для каждого его кадра необходимо вычислить положение и ориентацию камеры на беспилотном аппарате в тот момент, когда был выполнен этот кадр. Выбирались различные траектории полета (различной формы и различной длины), варьировались высота полета, скорость движения БПЛА, частота видеокадров, технические характеристики камеры на беспилот-нике.
Эксперименты показали, что максимальная ошибка в определении положения БПЛА составляла не более 6-7 метров, средняя ошибка - около 0,5 метра. Максимальная ошибка в определении ориентации аппарата по каждой из трех осей вращения (тангаж, крен и рысканье) [10] составляла не более 1 градуса, среднее - около 0,2 градуса. Следует заметить, что используемый алгоритм генерации траектории полета порождал такую траекторию, что значение крена всегда равно нулю. Также было установлено, что реализованные алгоритмы работают достаточно корректно, когда угол тангажа равен примерно 30 градусам и аппарат набирает высоту. В том случае, когда аппарат снижается, стабильная работа алгоритмов обеспечивается при угле тангажа не более 15 градусов.
Методы вычисления положения и ориентации БПЛА во время полета
В дальнейших работах планируется исследовать возможности определения положения и ориентации БПЛА при его полете над местностью, имеющей выраженный рельеф, что подразумевает использование карты высот. Аналитический обзор литературы по машинному (компьютерному) зрению показал, что можно выделить несколько методов для решения этой задачи.
Пусть на снимках с ИСЗ и БПЛА выделено N пар соответствующих особых точек. Каждой особой точке pi на снимке с беспилотника можно однозначно сопоставить трехмерную координату Pi некоторой точки на поверхности Земли, чьей проекцией на снимке с БПЛА является точка pi. Такая информация доступна, если есть возможность использовать карту высот. Глобальная система координат привязана к камере на спутнике. Если исходные данные не очень зашумлены, то задачу вычисления положения и ориентации БПЛА можно представить как решение оптимизационной задачи по методу наименьших квадратов:
F{x) = £(||а +Г)|Г)
Здесь M - матрица внутренних параметров камеры на беспилотнике (значения матрицы определяются техническими характеристиками камеры); вектор х имеет размерность 6 и определяет матрицу R (по трем углам ориентации) и вектор. Возможно определить и матрицу поворота с помощью кватерниона.
Пусть карта высот недоступна, но на снимке со спутника имеется набор опорных точек S, для которых известны их трехмерные координаты (так называемые фотограмметрические точки на местности - Ground Control Points). Предположим, что все опорные точки распределены на карте местности таким образом, что на любом снимке с БПЛА можно обнаружить хотя бы несколько таких то-
чек. Используя пары соответствующих особых точек, найденных на обоих изображениях некоторым алгоритмом выделения особых точек, можно вычислить так называемую фундаментальную матрицу [11, 12], которую тоже можно разложить на матрицу R и вектор T [13, 14]. Но в случае с фундаментальной матрицей вектор положения БПЛА можно вычислить только с точностью до некоторого неотрицательного коэффициента к, который необходимо определить, используя набор точек S.
Рассмотрим метод вычисления положения и ориентации БПЛА, в котором используется предыдущий кадр видеоряда, а также положение и ориентацию БПЛА, вычисленную для предыдущего кадра. Находим фундаментальную матрицу, связывающую предыдущий и текущий снимки, и производим ее декомпозицию на матрицу R и вектор кТ (коэффициент к пока неизвестен). Пусть ориентация аппарата в предыдущий момент времени определяется матрицей R0, а положение -вектором Т0. Если некоторая опорная точка в глобальной системе координат имеет координату P, то в системе координат, привязанной к положению и ориентации камеры на БПЛА в предыдущий момент времени, она имеет координату P1=R0P+T0. В системе координат, привязанной к положению и ориентации камеры в текущий момент времени, точка P1 имеет координату P2=RPi+kT. Подставив первое уравнение во второе, вычислим положение и ориентацию БПЛА в текущий момент времени (Rres и Tres):
P2=R(RoP+To)+kT=(RRo) P+(RTo+kT)=RresP+Tres,
Rres=RRo, Tres=RTo+ kT.
Методы повышения устойчивости работы
комплекса при изменениях времени суток, погодных условий и времени года
Алгоритмы поиска особых точек наподобие алгоритма SURF обладают инвариантностью к изменению яркости изображения, поэтому способны давать устойчивый результат при изменении условий освещенности той местности, над которой БПЛА совершает полеты. Что касается изменений времени суток, погодных условий и времени года, то такие изменения характеризуются тем, что существенно меняется текстура поверхности. Например, если взять два снимка одного и того же участка Земли, один из которых выполнен в июне, а другой в ноябре, то обнаружим на них совершенно разные наборы особых точек.
Пусть доступны несколько спутниковых снимков одного и того же участка Земли, которые выполнены в разное время года, при разных погодных условиях и т.д. Перед началом полета БПЛА можно выбрать тот снимок с ИСЗ, который наиболее точно соответствует текущим условиям. Ес-
ли же есть вероятность, что условия видеосъемки будут меняться в полете, то необходимо поменять текущую карту местности. Предположим, возникла ситуация, когда алгоритм, который должен обнаруживать множество пар соответствующих особых точек на снимке с БПЛА и на карте местности, в какой-то момент стал находить слишком мало таких пар. Или же алгоритм, отвечающий за вычисление положения и ориентации БПЛА, начинает выдавать неустойчивое решение, или же вычисленные значения положения и ориентации слишком сильно отличаются от значений, полученных в предыдущий момент времени. Тогда следует выполнить те же самые действия (поиск особых точек, их сопоставление и т.д.), но используя другой спутниковый снимок. Путем параллельной обработки ряда карт местности выбираем ту карту, которая позволяет получить устойчивое решение, и фиксируем ее.
Если же бортовое оборудование БПЛА включает в себя набор сенсоров (датчиков), позволяющих узнать текущие условия, то на основании этих данных можно выбрать подходящую карту местности и избежать перебора имеющихся спутниковых снимков.
В заключение отметим, что разработанные алгоритмы позволяют решать задачи моделирования полета БПЛА, а также автоматического определения его положения и ориентации с применением методов, средств и алгоритмов компьютерной графики, технического зрения и параллельных вычислений. Предложено направление дальнейших исследований: решение задач позиционирования БПЛА при его полете над местностью с ярко выраженным рельефом. Для генерации соответствующих снимков с камеры виртуального беспилотника планируется задействовать систему osgEarth (http://osgearth.org/) - масштабируемый набор инструментов визуализации земной поверхности. В рамках дальнейшего развития методов и алгоритмов моделирования полета БПЛА необходимо разработать и реализовать набор алгоритмов порождения траектории полета БПЛА, а также ввести обратную связь, позволяющую управлять аппаратом и корректировать курс при отклонении от заданной траектории. Созданный аппаратно-программный комплекс показал достаточную эффективность разработанных алгоритмов в решении поставленных задач.
Литература
1. Константинов К.А., Талалаев А.А., Тищенко И.П., Ха-чумов В.М. Концепция архитектуры нейросетевой системы контроля, диагностики и обработки изображений космического назначения // Авиакосмическое приборостроение. 2oo9. № 5. С. 39-47.
2. Тищенко И.П., Емельянова Ю.Г., Тимошина Н.Е., Гвоздяков Ю.А., Полтавец Ю.И., Крылов И.А. Построение интеллектуального графического интерфейса для контроля и диагностики космических подсистем // Актуальные проблемы ракетно-космического приборостроения и информационных
технологий: тр. III Всерос. науч.-технич. конф. (1-3 июня 2010 г.). М.: Радиотехника, 2011. С. 272-281.
3. Тищенко И.П., Степанов Д.Н., Фраленко В.П. Разработка системы моделирования автономного полета беспилотного летательного аппарата // Программные системы: теория и приложения. 2012. T. 3. № 3 (12). С. 3-21; URL: http://psta.psi-ras.ru/read/psta2012_3_3-21.pdf (дата обращения: 1.10.2012).
4. Гаганов В. Инвариантные алгоритмы сопоставления точечных особенностей на изображения // Компьютерная графика и мультимедиа. 2009. № 7 (1); URL: http://cgm.computer-graphics.ru/issues/issue17/invariant_features (дата обращения: 2.10.2012).
5. Bradski G., Kaehler A. Learning OpenCV. O'Reilly Media, 2008, 576 p.
6. Степанов Д.Н., Тищенко И.П., Поляков А.В., Ватутин В.М., Соболев Д.Б. Подсистема определения положения и ориентации беспилотного летательного аппарата // Актуальные проблемы ракетно-космического приборостроения и информационных технологий: тр. V Всерос. науч.-технич. конф. М.: Изд-во ОАО «Российские космические системы», 2012. С. 21-22.
7. GDAL - библиотека для работы с растровыми географическими форматами файлов данных. URL: http://gdal.org (дата обращения: 1.10.2012).
8. Bay H., Ess A., Tuytelaars T., Van Gool L. SURF: Speeded Up Robust Features, Computer Vision and Image Understanding, Oxford, Elsevier, 2008, vol. 110, no. 3, pp. 346-359.
9. Hartley R., Zisserman A. Multiple View Geometry In Computer Vision. 2nd ed., Cambridge Univ. Press, 2003, 670 p.
10. Демонова Т.В., Медведев В.П. Основы аэродинамики и гидромеханики: учеб. пособие. Таганрог: ТАВИАК, 2011. 283 с.
11. Юрин Д.В. Современный взгляд на структуру систем автоматического построения трехмерных виртуальных моделей по изображениям (обзор) // Междунар. науч. конф., посвященная 80-летию со дня рожд. акад. В.А. Мельникова: сб. докл. М.: Изд-во «НО Научный Фонд «Первая Исследовательская Лаборатория имени академика В.А. Мельникова», 2009. С. 118-121.
12. Stewenius H., Engels C., Nister D. Recent developments on direct relative orientation. ISPRS Journ. of Photogrammetry and Remote Sensing. 2006, vol. 60, iss. 4, pp. 284-294.
13. Longuet-Higgins H.C. A computer algorithm for reconstructing a scene from two projections. Nature, 1981, vol. 293, pp. 133-135.
14. Berthold K.P. Horn Recovering Baseline and Orientation from 'Essential' Matrix. Journ. of the Optical Society of America, Citeseer, January 1990, pp. 1 -10.
References
1. Konstantinov K.A., Talalaev A.A., Tishchenko I.P., Khachumov V.M. The concept of architecture of neuronet space appointment system of control, diagnostics and image processing.
Aviakosmicheskoepriborostroenie [Aerospace Instrument-Making].
Aerospace instrumentation Publ., 2009, no. 5, pp. 39-47 (in Russ.)
2. Tishchenko I.P., Emelyanova Yu.G., Timoshina N.E., Gvozdyakov Yu.A., Poltavets Yu.I., Krylov I.A. Design of intelligent graphic interface to control and diagnose space subsystems. Trudy III Vseross. nauch.-tekhnich. konf. [Proc. of the 3rd All-Russian conf. "Relevant problems of missile and space instrumentation and information technology"]. Moscow, Radiotekhnika Publ., 2011, pp. 272-281 (in Russ.).
3. Tishchenko I.P., Stepanov D.N., Fralenko V.P. Design of modeling system for autonomous flight of UAV. Programmnye sistemy: teoriya i prilozhenya [Software systems: Theory and Applications]. 2012, vol. 3, no. 3 (12), pp. 3-21, available at: http://psta.psiras.ru/read/psta2012_3_3-21.pdf (accessed 1 October 2012) (in Russ.).
4. Gaganov V. Invariant algorithms for comparing point features of images. Kompyuternaya grafika i multimedia [Computer graphics and multimedia]. 2009, no. 7 (1), available at: http://cgm. computergraphics.ru/issues/issue17/invariant_features (accessed 2 October 2012) (in Russ.).
5. Bradski G., Kaehler A. Learning OpenCV. O'Reilly Media, 2008, 576 p.
6. Stepanov D.N., Tishchenko I.P., Polyakov A.V., Vatu-tin V.M., Sobolev D.B. A subsystem for determination of the position and orientation of the UAV. Trudy 5 Vseross. nauch.-tehnich. konf. "Aktualnye problemy raketno-kosmicheskogo priborostro-eniya i informatsionnykh tekhnologiy" [Proc. of 5th All-Russian scientific conf. "Relevant problems of missile and space instrumentation and information technology"]. Moscow, 2012, pp. 21-22 (in Russ.).
7. GDAL, a translator library for raster geospatial data formats, available at: http://gdal.org (accessed 1 October 2012).
8. Bay H., Ess A., Tuytelaars T., Van Gool L. SURF: Speeded Up Robust Features. Computer Vision and Image Understanding (CVIU). 2008, vol. 110, no. 3, pp. 346-359.
9. Hartley R., Zisserman A. Multiple view geometry in computer vision. 2nd ed., Cambridge University Press, 2003, 670 p.
10. Demonova T.V., Medvedev V.P. Osnovy aerodinamiki i gidromekhaniki [The basics of aerodynamics and fluid mechanics]. Taganrog, 2011, 283 p. (in Russ.).
11. Yurin D.V. Modern view on the structure of systems for automatic building of 3D virtual models according to images. Sbornik dokladov mezhdunar. nauch. konf., posvyawennoy 80-letiyu .so dnya rozhdeniya akademika V.A. Melnikova [Proc. of int. sci. conf. dedicated to the 80th anniversary of academician V.A. Melnikov]. "Pervaya Issledovatelskaya Laboratoriya im. akad. V.A. Melnikova" Publ., Moscow, 2009, pp. 118-121 (in Russ.).
12. Stewenius H., Engels C., Nister D. Recent developments on direct relative orientation. ISPRS Journ. of Photogrammetry and Remote Sensing. 2006, vol. 60, iss. 4, pp. 284-294.
13. Longuet-Higgins H.C. A computer algorithm for reconstructing a scene from two projections. Nature Publ., 1981, vol. 293, pp. 133-135.
14. Berthold K.P. Horn Recovering Baseline and Orientation from 'Essential' Matrix. Journ. of the Optical Society of America. Citeseer, January 1990, pp. 1-10.
Уважаемые авторы!
Одобренные редакционной коллегией журнала материалы публикуются платно
в течение полугода с момента принятия решения о публикации. Заявка на публикацию оформляется по образцу, размещенному на сайте журнала
(www.swsys.ru).
Для аспиранта публикация бесплатная при условии, что он является единственным автором статьи. Статус аспиранта должен быть подтвержден справкой об учебе в аспирантуре.