Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов Карпов Алексей Владимирович

Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов
<
Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Карпов Алексей Владимирович. Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов : Дис. ... канд. техн. наук : 05.13.01 Москва, 2006 131 с. РГБ ОД, 61:06-5/3328

Содержание к диссертации

Введение

1. Анализ построения программного управления роботами 9

1.1 Основные компоненты робота 12

1.2 Описание модулей (компонентов) робота 13

1.3 Архитектура программного обеспечения 22

1.4 Описание основных модулей программы управления роботами 24

Выводы 27

2. Алгоритмы обработки информации, поступающей от различных датчиков робота 28

2.1 Алгоритмы обработки информации, полученной от ультразвукового дальномера 28

Определение параметров дальномера 28

Обработка показаний дальномера 30

2.2 Калибровка цифровой видеокамеры: теория и алгоритмы 33

Параметры камеры 33

Определение параметров камеры 34

2.3 Алгоритмы определения геометрии стереоизображений и реконструкции трехмерного объекта 41

Эпиполярная геометрия 41

Фундаментальная матрица 44

Установление соответствий между точками стереоизображений 49

Реконструкция трехмерной сцены по системе изображений 59

Выводы 64

3. Алгоритмы и программное обеспечение поиска оптимального пути робота 65

3.1 Задача поиска оптимального пути робота 65

Волновой алгоритм 67

Трапецеидальный план 70

Модель движения точечного робота 70

Модель движения робота-многоугольника 71

Алгоритм поиска кратчайшего пути 72

Алгоритм вычисления графа видимости .74

Алгоритм нахождения кратчайшего пути 78

3.2 Задача размещения маяков в системе помещений 79

Разбиение многоугольника на монотонные части 81

Триангуляция монотонного многоугольника 82

Выводы 86

4. Предложения по практическому использованию разработанного программного обеспечения для управления роботами 87

4.1 Построение карты местности с помощью мобильного робота и дальномера 87

4.2 Ориентация в пространстве по маякам 92

Распознавание маяка 94

Определение параметров маяка 97

4.3 Примеры разработанных роботов 100

Выводы 107

Заключение 108

Список литературы 111

Приложение №1 120

Введение к работе

Актуальность темы. Использование роботов на производстве и в быту получает все большее распространение в современном мире. Роботы могут иметь широкий спектр применения: охрана и наблюдение за помещением, выполнение каких-либо рутинных операций, игровые и обучающие роботы. В последнее десятилетие в разработку гражданских и военных роботов вкладываются крупные средства, появились новые технологии и существенно снизились габариты компонентов роботов (двигатели, видеокамеры, дальномеры), однако, их распространение в России ограничено их высокой стоимостью для российских потребителей и спецификой ориентации зарубежных продуктов на внутренний рынок. Российское гражданское роботостроение не продвинулось столь далеко, хотя ситуация постепенно улучшается благодаря возрастающему спросу на эти разработки. В связи с тем, что рынок робототехнических устройств по всему миру и, в частности, в России расширяется и требует инвестиций в эту область, необходимо уделять особое внимание отечественным разработкам.

Одна из основных задач робототехники заключается в создании автономных (с точки зрения управления) роботов, т.е. роботов, которым можно сказать, что нужно сделать, не говоря о том, как это делать. Такое требование в частности подразумевает, что робот умеет планировать свое движение, фактически решать задачи навигации. Для планирования перемещения робот должен обладать некоторыми знаниями относительно окружения, в котором он находится. Так, мобильный робот, движущийся по заводу, должен знать, где находятся различные препятствия. Часть этой информации, например, где находятся стены и расположены станки, может быть задана планом помещения объекта. Другая информация может поступать к нему от различных устройств - датчиков. Он должен обнаруживать препятствия, которые не содержатся на плане помещения объекта, например, людей. Используя данные об окружающей обстановке, робот должен уметь двигаться к цели, не наталкиваясь на препятст- вия. Такого типа задача навигации должна быть решена для любого робота, перемещающегося в физическом пространстве.

Интерес к задачам навигации постоянно возрастает, что связано, во-первых, с повышением требований к эффективности и надежности, а во-вторых, с появлением новых технических устройств и разработкой новых алгоритмов. Технические средства решения описанного круга задач существенно зависят от области применения и поставленных целей. В настоящее время в гражданской робототехнике широко используются такие устройства, как дальномеры (ультразвуковой, лазерный), видеокамеры с механической обратной связью, стерео видеокамеры.

Системный анализ и программное обеспечение, необходимое для обработки данных, поступающих с указанных технических устройств, подразумевает выбор подходящих алгоритмов решения задач навигации, реализацию этих алгоритмов в виде программ, анализ и сравнение их работы по эффективности и надежности функционирования (робастности).

Кроме этих специфических задач навигации программное обеспечение робота должно выполнять и общие задачи управления и совместного функционирования всех устройств, входящих в состав робота (двигатели, шасси, датчики, дальномер, видеокамера и т.д.), причем типы и количество этих устройств могут меняться в зависимости от модификации робота и поставленных целей. Для расширения области применения программного обеспечения необходима поддержка нескольких наиболее популярных операционных систем: Windows и Linux. Применение существующих программных продуктов (ERSP,CENTEYE), решающих отдельные задачи, затруднено их, как правило, узкой специализацией, ограниченностью программных интерфейсов и отсутствием доступа к исходным кодам. В связи с этим актуальной и своевременной является задача анализа, выбора и оптимизации существующих алгоритмов и создание единого, стандартизированного программного обеспечения, решающего описанный круг задач и имеющего открытый исходный код, который позволяет проводить его модернизацию и адаптацию к конкретной реализации и используемым техническим устройствам.

Изложенное определило актуальность данной работы и ее цель.

Цель работы: решение научной задачи по созданию гибкого программного обеспечения с открытым исходным кодом для дистанционного и/или автономного управления многофункциональным семейством мобильных роботов на основе системного анализа, выбора и оптимизации методов и алгоритмов навигации по критерию минимизации времени расчета.

В соответствии с целью работы определены следующие задачи исследования: системный анализ аппаратных и программных средств, используемых при автономном управлении роботом - охранником, роботом - сторожем и беспилотным летательным аппаратом (БПЛА); обоснование выбора и оптимизация алгоритмов и программных средств обработки информации, поступающих от различных датчиков робота; применение алгоритмов и разработка программных средств построения карты местности и поиска кратчайшего пути; разработка предложений по практическому применению использованных алгоритмов и программных средств управления роботами.

Методы исследования. Для решения поставленных задач были использованы численные методы математического моделирования (методы поиска экстремумов, методы линейной алгебры), методы принятия решения (метод взвешенной суммы оценок критериев), методы аналитической и вычислительной геометрии, методы программного управления, программные средства создания графических объектов.

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

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

Практическая значимость результатов. Разработанный автором на основе исследованных методов комплекс программ использован для дистанционного и автономного управления серией роботов, созданных в ЗАО НТЦ «РИС-СА», выполняющих различные функции: робота-сторожа для охраны помещений, домашнего робота-охранника, разведчика в труднодоступных и опасных местах, игрового и обучающего робота, беспилотного летательного аппарата (БПЛА). Практическая значимость диссертации подтверждается актом о внедрении результатов исследования в ЗАО НТЦ «РИССА».

Созданный на основе модульной архитектуры программный комплекс может применяться для управления и, в частности, для обеспечения навигации широкого класса мобильных роботов, так как открытость предлагаемого программного обеспечения и его «независимость» от операционной системы (Windows, Linux) позволяют легко адаптировать его к конкретной задаче.

Апробация работы. Основные результаты работы докладывались на 3-ей Международной научно-технической конференции «Радиотехника и связь», г. Саратов, СГТУ, 2006, обсуждались на научных семинарах в Московской академии рынка труда и информационных технологий, а также были опубликованы в Вестнике Московской академии рынка труда и информационных технологий и в сборнике трудов конференции "Радиотехника и связь", г. Саратов, СГТУ, 2006.

Действующие модели многофункционального семейства роботов демонстрировались на выставках: Московская международная выставка «Школа 2001» (2001 г.), «Хобби - планета увлечений'02» (2002 г.), «Робототехника'04» (2004 г.), «Интеллектуальные и адаптивные роботы» (2005 г.), проходивших в городе Москве на ВВЦ и в других выставочных комплексах. Разработанные модели роботов были отмечены следующими наградами: лауреат выставки «Школа 2001» за разработку комплексной обучающей системы на базе семейства минироботов «MyRo», «Гран - при» в номинации Игрушка XXI века на выставке «Хобби - планета увлечений'02» и медалью 2-ой специализированной выставки Робототехника'04.

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

Публикации. Материалы диссертации опубликованы в 7 печатных работах, из них 5 статей, 2 - материалы научно-технических конференций.

Структура и объем диссертации. Диссертация состоит из введения, 4 глав, заключения и списка литературы. Объем диссертации составляет 127 страниц, в том числе 64 рисунка, 8 таблиц и библиография из 141 наименования.

Первая глава посвящена системному анализу построения программного управления роботами. Описаны основные механические и электронные компоненты робота, изложена концепция модульной архитектуры программного обеспечения.

Во второй главе обсуждаются возможности использования дальномеров и видеокамер в качестве датчиков для решения задачи автономного управления роботом, предлагаются алгоритмы определения параметров этих устройств и методы обработки информации, поступающей от них.

В третьей главе рассмотрены геометрические аспекты движения роботов. Решаются задачи нахождения кратчайшего пути робота и оптимального размещения маяков для ориентации робота в помещении с известным расположением и формой препятствий.

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

В Заключении кратко сформулированы основные результаты работы.

В Приложении №1 приводится текст кода программной реализации алгоритма распознавания маяков с помощью видеокамеры.

Описание основных модулей программы управления роботами

Управляющая программа. Данный модуль представляет собой программу управления всеми остальными модулями, а также содержит все основные параметры и настройки системы, отвечает за их запись и восстановление между сеансами работы. При запуске программы модуль опрашивает наличие и конфигурацию объектов, доступных для управления и при их обнаружении пытается подключить их к системе. В зависимости от конфигурации подключаемых объектов изменяется внешний вид программы и ее функционал: наличие одной или двух видеокамер, наличие ультразвукового радара и т.д. Также с помощью данного модуля происходит связь с остальными блоками системы и синхронизация различных процессов: получение и обработка видео, посылка команд и т.д.

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

Модуль обработки данных двигателей - осуществляет обработку, накопление и анализ данных, поступающих с двигателей.

Модуль управления видео. Этот модуль разработан для получения данных с видеокамеры и посылки команд управления. Информация с видеокамеры может быть получена двумя способами: в виде аналогового сигнала и оцифрована на базовой станции или в виде цифровых данных (оцифровка происходит на роботе, и данные передаются по цифровому каналу). Последний вариант позволяет добиться более высокого качества, и для роботов с обработкой видеосигналов ему отдавалось предпочтение.

Модуль обработки видео предназначен для обработки получаемых с видеокамер данных. Блок может выполнять различные функции: от простого вывода видеоданных на экран пользователя до навигации по стереоизображениям. Одной из задач, решаемых с помощью данного блока, является ориентация робота в пространстве по маякам. Эта задача в качестве примера работы блока приводится в разделе 4.2.

Модуль управления дальномером отвечает за выполнение команд управления ультразвуковым дальномером: поворот, включение/выключение и т.д.

Модуль обработки данных дальномера получает и анализирует данные дальномера. Полученная информация используется для системы навигации, а также для вывода информации на интерфейс пользователя. Работа этого блока проиллюстрирована на примере построения карты местности в разделе 4.1.

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

Модуль планирования движения рассчитывает оптимальный маршрут с учетом параметров ориентации в пространстве и отклонения от расчетного маршрута.

HTTP/WAP - Сервер (управление через GSM/GPRS). Модуль позволяет управлять роботом удаленно через Интернет. Этот режим дает возможность общения с роботом с помощью любого мобильного телефона или смартфона, поддерживающего WAP 1.2/2.0 и подключенного к Интернет. Протокол управления полностью реализован на WAP, что исключает необходимость установки какого-либо дополнительного программного обеспечения. Чтобы подключиться к управлению роботом, нужно с помощью WAP - броузера зайти на страницу сервера робота, указав логин и пароль, защищающий от несанкционированного доступа. Этот режим также может использоваться для слежения за помещением (робот - охранник, робот - няня).

Модуль управления портом RS232. Управление роботом полностью происходит через порт RS232. Через него осуществляется посылка команд и получение информации от робота о приеме и выполнении команд, а также данных с датчиков и других систем, контролирующих состояние робота. Протокол обмена данными является текстовым, за счет чего управление роботом можно осуществлять с помощью любой программы работы с СОМ-портом, например, HyperTerminal. Благодаря этому возможен визуальный контроль корректности работы робота на этапе отладки. Преимущество данного подхода заключается также в простоте добавления и модификации команд в протоколе.

Интерфейс пользователя. Этот модуль обеспечивает взаимодействие с пользователем, визуализацию данных и команд управления роботом. Примеры некоторых реализаций интерфейса показаны на рис. 4.17 - 4.23. Было создано несколько различных модификаций интерфейсов, применяемых в различных условиях и выполняющих различные задачи (раздел 4.3).

Алгоритмы определения геометрии стереоизображений и реконструкции трехмерного объекта

Наиболее эффективным способом обеспечения навигации мобильного робота является использование стереоизображений [20, 30, 105, 109, 118, 127, 131]. Обработка стереоизображений включает несколько задач. Основные из них: определение геометрии стереопары или эпиполярной геометрии, нахождение соответствия между изображениями и восстановление трехмерной картины расположения объектов [14, 56,124].

Эпиполярная геометрия

Эпиполярная геометрия устанавливает связь между стереоизображениями, вытекающую из внутренних параметров камер и их взаимного располо жения. Рассмотрим систему из двух камер (рис. 2.7), посредством которой получают стереоизображения pup пространственной точки Р на экранах камер. Обозначим через О и О оптические центры камер и свяжем с ними две декартовы системы координат с осями z, направленными по оптическим осям. Величины, относящиеся ко второй камере, будем отмечать штрихом, так что базисы систем координат есть (i,j,k) = (i1,i2,i3) и (і ,/,к ) = (і,І2»із)- Обозначим через Гу компоненты матрицы R поворота второго базиса относительно первого

через t = 00 - вектор, соединяющий центры камер. Пусть компоненты этого вектора в системе координат первой камеры равны (tx,t ,tz). Изображение е

оптического центра второй камеры на экране первой камеры называется точкой эпиполюса. Координаты эпиполюса равны:

Здесь itc, vc, fu, fv - внутренние параметры первой камеры. Аналогичные соотношения (со штрихованными величинами) можно записать для эпиполюса первой камеры в системе координат второй камеры. Пусть теперь точка Р объекта (рис. 2.7) имеет для первой камеры координаты (X,Y,Z), а для второй (Xі, Y , Z ), а их изображения на экранах первой и второй камер имеют соответственно координаты:

Можно показать [33]; что между этими координатами имеется связь:

Здесь векторы w и w имеют компоненты (w,v,l) и {Ji, ,\) соответственно и введены обозначения:

й = {и-ис)//и, v = (v-vc)//v, i? = (u -u c)/fv, v = (v -v )// v.

Существенная матрица имеет нулевой определитель и зависит от шести параметров: три компоненты вектора смещения и три независимых параметра матрицы вращения. Соотношение (2.19) говорит о том, что точке на первом изображении соответствует прямая линия {эпилиния) на втором и наоборот. Если зафиксировать точку (й ,ї7) на втором изображении, то координаты (w,v) точек первого изображения лежат на эпилиний:

(E]fi + E2lv+Eu)u + (Ei2V + E22V + Ei2)v + (Eliu + E2iV + En) = 0

Аналогично, если зафиксировать точку (w,v) первого изображения, то координаты (и, v) точек второго изображения лежат на эпилиний:

(Епй + EnV + Еи)1Ґ + (Е2ій + E22v + ЕхУ? + (Я31й + Env + Еп) = 0

Все эпилиний проходят через соответствующие эпиполюса. Так как уравнение (2.19) однородное, то расположение эпиполюсов и эпилиний зависит от 5 параметров (например, длину вектора смещения можно считать единичной). Фундаментальная матрица

Пусть параметры камер и их взаимное расположение неизвестны. Как было показано выше, стереоизображения обладают следующими свойствами: если точке М реального объекта на левом изображении (рис. 2.8) отвечает точка т с координатами (w,v), то луч, соединяющий эти точки, на правом изображении представляет собой линию вида:

Модель движения робота-многоугольника

В этом случае конфигурационное пространство препятствий не совпадает с их размерами в рабочей области (рис. 3.8) и запрещенная область Cforb

вычисляется через суммы Минковского [17] (рис. 3.9): запрещенная область есть объединение препятствий с

Здесь используется обозначение R(x,y) для робота, находящегося в точке (х,у). Алгоритм построения сумм Минковского изложен, например, в [17]. По еле этого можно действовать точно так же, как и для точечного робота: строим разбиение области на трапеции и карту дорог. Далее, по заданным начальному и конечному положениям робота, находятся соответствующие трапеции в конфигурационном пространстве и путь робота по карте.

Если робот может изменять свою ориентацию в процессе движения, то конфигурационное пространство становится трехмерным с координатами (х,у,ф). Однако, можно рассмотреть алгоритм построения траектории, сводящийся к предыдущему [17, 31]. Будем считать, что робот поворачивается только в конечном числе точек траектории, так что движение между двумя такими точками выполняется с постоянной ориентацией. Тогда для каждой ориентации робота можно найти свободное пространство и карту дорог. Можно представлять эти карты как сечения-плоскости, параллельные плоскости (х,у) и отвечающие различным значениям угла ориентации (р. Движение между точками поворота выполняется по одной карте, а при повороте происходит переход точки, изображающей робота в конфигурационном пространстве, с одной карты на другую.

Алгоритм поиска кратчайшего пути

На построенной выще карте дорог, вообще говоря, может существовать несколько путей, ведущих из начального положения робота в конечное. Чтобы найти путь с минимальной длиной, можно было бы приписать дугам графа поиска веса, пропорциональные длинам участков пути, а затем искать кратчайший путь на карте дорог. Однако такой путь может не быть кратчайшим на самом деле (рис. ЗЛО). Чтобы понять, как устроен самый короткий путь, рассмотрим некоторый путь из точки pstart в точку pgoal (рис. 3.11). Представим, что вдоль этого пути натянута резиновая лента. Если мы отпустим ее, она будет сокращаться, пытаясь стать как можно короче, пока не встретит препятствие. Таким образом, кратчайший путь робота между системой S препятствий-многоугольников должен быть ломаной линией, состоящей из отрезков, точки излома которой совпадают с вершинами многоугольников препятствии.

Рис. ЗЛО. Кратчайший путь не содержится в карте дорог

На основе этих соображений можно построить карту дорог, содержащую кратчайший путь между точками. Эта карта дорог представляет собой граф видимости [17, 98, 101] в системе препятствий S, который мы будем обозначать через Gvis(S). Узлами его служат вершины препятствий S, причем два узла v и w соединены дугой, если соответствующие вершины могут видеть друг друга, т.е. отрезок vw не пересекает ни одного из препятствий. Отрезок, соединяющий такие узлы, называется ребром видимости. Отметим, что соседние вершины многоугольников препятствий всегда видят друг друга, так что ребра препятствий входят в граф видимости. Чтобы получить кратчайший путь, нужно в графе видимости к множеству вершин препятствий добавить начальную pslart и конечную pgoal точки (рис. 3.12).

Итак, мы приходим к следующему алгоритму построения кратчайшего пути между двумя точками: Алгоритм ShortestPath(S, pstart, pgoal)

Входные величины: Набор S многоугольных препятствий и две точки pslarl и Pgoai в свободной области.

Ориентация в пространстве по маякам

Проблема определения собственного положения в пространстве возникает при разработке практически любого робота, так как является неотъемлемой частью системы автономного управления движением. Решение данной задачи зависит от доступного для использования оборудования, установленного на роботе, а также от технических требований к точности и скорости определения собственного положения.

Одним из примеров решения данной задачи является ориентирование по маякам. Этот вид ориентирования подразумевает известной следующую информацию:

определена карта помещения, в котором будет происходить ориентирование;

известно расположение маяков на карте помещения;

каждый маяк имеет уникальный идентификатор, по которому можно определить номер маяка.

Решение первой задачи изложено ранее в разделе 4.1, где рассматривался алгоритм построения карты местности с помощью мобильного робота и дальномера. Распознавание маяков производится с помощью видеокамеры [14]. Разрешение и качество камеры, а также размеры используемых маяков определяют дальность и качество распознавания. При разработке программного обеспечения были использованы маяки размером 10x10 см., разрешение камеры составляло 640x480 пикселей. Данные параметры позволяли определять наличие и характеристики маяка на расстоянии до трех метров. Структура используемого маяка может быть произвольной, однако, при его создании следует исходить из следующих принципов:

изображение маяка должно быть контрастным (например, черно-белым);

кодировка номера маяка должна быть проста для распознавания и не зависить от угла наклона (рис. 4.8).

Одним из примеров изображения маяка может служить образец, показанный на рис. 4.9. Черная рамка сделана для повышения контрастности маяка, серый квадрат - для определения ориентации маяка, внутренние квадраты размера (3x3) предназначены для кодирования номера маяка, цифра 2 - номер маяка (изображена для наглядности). Преимуществом данного вида маяка можно считать наличие широкой границы, что повышает вероятность увидеть его на большем расстоянии и однозначное кодирование номера, не чувствительное к наклонам относительно видеокамеры.

Распознавание маяка

Алгоритм распознавания маяка состоит из следующих последовательных этапов:

запоминание параметров видеокамеры (направление, угол наклона), при которых был получен кадр;

получение изображения с видеокамеры;

первичная обработка изображения;

локализация всех возможных областей положений маяков, т.е. нахождение по некоторым параметрам всех областей, которые можно было бы считать маяками;

последовательная проверка каждой из областей на соответствие правилам, определяющим правильность нахождения маяка;

запоминание и передача для последующей обработки параметров области расположения маяка, а также его номера.

С целью повышения скорости работы и стандартизации кода многие функции были реализованы с помощью библиотеки с открытым исходным кодом OpenCV [102]. Ее использование позволило заниматься разработкой программного обеспечения на более высоком уровне. В данной библиотеке реализованы такие функции, как захват видеокадра, обработка изображений и т.д.

Остановимся более подробно на каждом из этапов алгоритма поиска маяков.

На первом этапе происходит запоминание параметров положения видеокамеры, необходимое для последующего анализа опознанных маяков и определения параметров навигации. К параметрам, которые необходимо запомнить, относятся: углы поворота и наклона относительно робота и коэффициент приближения во время съемки. Эти параметры сообщает система управления видеокамерой.

Далее необходимо получить изображение с видеокамеры, которое мы будем анализировать в дальнейшем. Условия, при которых было получено это изображение, будут во многом определять качество распознавания маяков и уровень ошибки при распознавании и последующем анализе. Непосредственно изображение получается с помощью функции cvQueryFrame библиотеки OpenCV [102]. Данная функция возвращает массив пикселей полученного изображения. Обработка изображения подразумевает преобразование цветного изображения в монохромное, нормализацию изображения по яркости и т.д. Данные функции успешно реализованы в используемой библиотеке: cvMerge, imgThreshold и т.д.

Одним из самых сложных этапов алгоритма является задача поиска всех возможных областей нахождения маяка. Решением данной задачи является выделение на изображении всех замкнутых контуров, состоящих из четырех линий, одинаковой длины. Дополнительным ограничением являлось ограничение по минимальному и максимальному размеру контура (площади). С точки зрения разработки на OpenCV решение было найдено в использовании функции cvFindContours, которая находит все связанные контуры на изображении, и последующем наложением вышеописанных правил на каждый найденный контур. Для проверки замкнутости контура была использована функция cvCheckContourConvexity, а для определения площади cvContourArea.

Похожие диссертации на Системный анализ алгоритмов и программного обеспечения для управления многофункциональным семейством роботов