УПРАВЛЕНИЕ РОБОТОМ С МОНОКУЛЯРНЫМ ЗРЕНИЕМ *
В.В. Киселев
Описывается иерархическая система управления автономным роботом с монокулярным зрением. Система построена на базе нечеткой логики и теории нечетких множеств.
Ключевые слова: нечеткая логика, робот, управление.
1. Введение
Построение мобильного автономного робота, который может выполнять простейшие задачи, является актуальной проблемой. Большинство построенных устройств являются сложным симбиозом контроллеров, сенсоров, процессорных плат и батарей. Но благодаря очень высокой сложности разработки алгоритмов управления и навигации для малоизвестных контроллеров и процессоров, заложенный в них потенциал обычно не раскрывается полностью [1]. Именно поэтому создание робота без излишних и сложных в подключении и интерпретации их результатов сенсоров представляется интересной задачей.
В данной работе описывается робот, использующий в качестве основного вычислительного устройства компоненты стандартного компьютера - интегрированную материнскую плату стандарта Micro-АТХ и процессор Celeron 766, В качестве основного и единственного сенсора была выбрана качественная web-камера Creative WebCam 3, которая подключается к основному блоку по интерфейсу USB, Питание комплекса осуществляется стандартным блоком питания АТХ в совокупности с Back UPS-450,
Был разработан и использованы ряд алгоритмов обработки изображений и вычисления оптического потока, В ходе выполнения рабо-
* Работа выполнена при поддержке РФФИ (грант JY4 00-01-00018).
ты была построена трехуровневая система управления роботом, основанная на нечеткой логике и теории нечетких систем управления,
2. Постановка задачи
В начальный момент времени четырехколесный робот (два колеса являются ведущими и приводятся во вращение каждый своим двигателем, два других колеса являются опорными) находится в заранее известной точке прямоугольной комнаты с координатами (хо,уо).
Его задача — достичь другой точки комнаты, отмеченной на полу комнаты цветным кругом или мячом. При этом роботу может быть заранее не известна позиция точки назначения (в этом случае он должен найти ее по соответствующей отметке на полу).
Кроме робота, в комнате присутствует ряд естественных препятствий (стулья, диван, несколько разбросанных по полу коробок), столкновения с которыми в процессе движения робот должен избегать.
Очевидно, что для успешного выполнения поставленной задачи робот должен знать (хотя бы приблизительно) в каждый момент времени свои пространственные координаты, запоминать те места комнаты, где он уже побывал и успешно уклоняться от столкновения со стенами и многочисленными препятствиями. Следует отметить, что постановка задачи не требует оптимального времени обхода препятствий или гарантированного отсутствия столкновений с ними. Также не требуется гарантированность и оптимальность достижения точки назначения,
3. Используемые подходы
Система управления роботом является трехуровневой.
3.1. Система первого уровня
Первым уровнем системы управления является нечеткая система управления, отвечающая непосредственно за движение робота (подачу управляющих сигналов микросхеме управления двигателями).
Уравнения движения робота хорошо аппроксимируются уравнениями движения соответствующей двухколесной тележки.
Обозначим через 01,02 — углы поворота первого и второго колеса соответственно, 1\ — радиус колес, 2Ь - длина оси, соединяющей колеса, (р - угол, задающий ориентацию робота, х, у — координаты центра тяжести робота (з — перемещение центра тяжести робота).
При малых перемещениях первого и второго колес робота на углы А01 и А02 соответственно центр тяжести тележки сместится на величину Аз = так как пути, пройденные колесами, соста-
вят ПА01 и ПА02 соответственно.
Таким образом, при отсутствии проскальзывания ё =
Пусть а = ^ н и = ип (некоторой константе), тогда если а =
то Й = ® Ш = />('!,:) = ■ Отсюда <р = 1^5. Таким
образом, видим, что и отвечает за радиус кривизны поворота тележки (в частности, р = ^), и = 0 соответствует движению тележки по одной линии,
К сожалению, на практике использование данных уравнений движения очень ограниченно. Проскальзывание и другие явления приводят к очень ощутимым погрешностям, К тому же приходится управлять не непосредственно угловыми скоростями колес робота, а напряжением на клеммах каждого из двигателей (//1. и-,}.
Уже через минуту после начала движения, отслеживая непосредственное перемещение каждого из колес с помощью энкодеров (датчиков, подсчитывающих величину поворота колес за единицу времени), можно определить новую позицию робота, только с довольно большой погрешностью [1],
Система нечеткого управления первого уровня имеет 6 входных лингвистических переменных и две выходных лингвистических переменных [4], (напряжения на каждом из двигателей). Входные переменные: тип действия в данный момент (торможение, разгон, движение,
разворот на месте, уклонение, подозрение на препятствие), величина осуществляемого действия, данные с первого и второго энкодеров, данные напряжений в предыдущий момент времени. Каждая из входных переменных имеет от 3 до 8 термов. Две выходные переменные имеют по 7 термов (от “отрицательное большое”, до “положительное большое”),
3.2. Система второго уровня
Система второго уровня ответственна за принятие тактических решений и в отличие от системы первого уровня имеет полный доступ к данным всех сенсоров (как энкодеров, так и видеокамеры).
Основными данными для тактической системы нечеткого управления является после довательность видеокадров, поступающая от видеокамеры с частотой 15 кадров в секунду. Именно на основе этих данных производится построение оптического потока. Понятие оптического потока возникает при рассмотрении последовательности кадров, снятых неподвижной камерой на движущимся роботе При перемещении робота окружающие объекты движутся относительно камеры, аналогично движутся и точки, представляющие эти объекты на кадрах, полученных с камеры. Оптический поток характеризует направление движения этих точек и величину их смещения за определенный интерв ал времени (обычно за время одного кадра). Вектор оптического потока в данной точке изображения можно вычислить, сопоставив небольшую область изображения в округ этой точки в предыдущем кадре с областями такого же размера, находящимися недалеко от этой точки в текущем кадре. Вычислить вектор оптического потока получается не всегда из-за того, что разрешение камеры небольшое и из-за того, что камера воспринимает всего лишь немного искаженную оптикой 2Б проекцию трехмерной картины.
Был предложен быстрый алгоритм расчета оптического потока (до 15 кадров в секунду для кадра 320x240), использующий предсказание и вычисления с чередованием точек расчета, кроме этого широко используется необходимость расчета потока только выше горизонтальной линии, представляющей расстояние до ближайшего препятствия.
Задачей системы управления второго уровня является приближенное определение координат (хс, ус) точки (7, находящейся на пересечении двух прямых (горизонтальной и вертикальной) и подача команд системе первого уровня. Данная точка должна быть расположена следующим образом: координата ус определяет расстояние до ближайшего препятствия (чем выше точка расположена , тем дальше находится препятствие), координата хс должна “балансировать” оптический поток в области слева и выше точки С и оптический поток в области справа и выше точки С,
Кроме этого, для более точного определения координаты ус робот использует лазерную подсветку, состоящую из трех красных лазеров, расположенных на горизонтальной подставке с углом в 15 градусов между лучом центрального и любого из двух боковых лазеров. Расстояние до препятствия вычисляется системой нечеткого управления с использованием величины и отношения расстояний от центральной до двух боковых отметок на изображении. Иногда отметки попадают на отражающую или красную поверхность - в этом случае вспомогательная система СНУ не использует их данные. Кроме меток и простых методов выделения препятствий, вспомогательная система широко использует методы определения препятствий на основе “балансировки” оптического потока.
Основная система нечеткого управления (СНУ) имеет пять входных и две выходных переменных. Входные лингвистические переменные - расстояние, пройденное роботом с момента предыдущего расчета СНУ, угол поворота робота с момента предыдущего расчета СНУ, предварительное расстояние до препятствия (координата , вычисляется вспомогательной СНУ с использованием лазерных меток и алгоритма выделения препятствий [3]), возмущение оптического потока слева от центра кадра, возмущение оптического потока справа от центра кадра, минимальный тормозной путь при данной скорости, корректировка уклонения (вычисляется на основе величины хс). Выходными переменными являются: вид действия для системы первого уровня (торможение, уклонение и т.п.) и величина осуществляемого действия.
3.3. Система третьего уровня
Система третьего уровня осуществляет стратегическое планирование и распознавание момента окончания миссии робота.
Как мы уже говорили в начале статьи, попытка определить текущее положение робота, используя показания энкодеров и интегрирование уравнений движения, приводит к существенным погрешностям. Поэтому робот должен уметь определять свое положение в комнате с точностью до десятков сантиметров, основываясь на другой информации.
Для определения текущего положения было предложено использовать набор заранее готовых образцов (в отличие от подхода, принятого в [2]) изображений камеры робота, имеющих привязку к точным координатам в комнате. Изображения снимались в узлах прямоугольной сетки (с расстоянием между ними порядка 40см), в каждом узле делалось 8 снимков (при последовательных поворотах робота на 45 градусов). На каждом изображении автоматически выделились характерные участки фиксированного размера 8x8 пикселей (обычно это высоко контрастные части изображений, за исключением трех фиксированных областей внизу кадра), каждому из участков ставится в соответствие принадлежность одному из пять нечетких классов по ряду параметров (по цветности, относительной яркости, контрастности и т.п.), В итоге каждое изображение представляет собой набор нечетких правил, количество которых равно числу выделенных характерных участков изображений (в предложении каждого из правил используются и термы с центрами в соответствующих координатах центра участка).
Пример одного правила - if (х=”100[40]’) and (у=”30[30]”) and (brighness=”brigh”) and (contrast=”low”) and (appearance=”diagonal”) then weight=100.
Также с каждым изображением записывается и расстояние до ближайшего препятствия, вычисленное автоматически с использованием вспомогательной СНУ второго уровня.
Через фиксированные моменты времени система третьего уровня сопоставляет текущий кадр с набором правил для фрагментов изоб-
ражеиий из точек сетки соседних с точкой сетки, ближайшей к координатам робота в предыдущий момент расчета.
Из всех изображений выбираются три наиболее близких кандидата, после чего через три кадра расчет повторяется и из трех кандидатов выбирается один лучший.
Автоматически корректируются координаты робота и угол ориентации в пространстве (угол (р), Если степень соответствия изображения набору правил высока (больше заданной константы о), то данная точка сетки помечается как уже посещенная роботом. После определения точки сетки, где предположительно находится робот, система третьего уровня может осуществить коррекцию траектории движения путем обращения непосредственно к СНУ первого уровня (используются действия - торможение и разворот на месте). Коррекция траектории осуществляется в случае, если ближайшая точка сетки, лежащая на пути робота, уже посещалась; в случае, когда система обнаружила пункт назначения (мячик яркого цвета, лежащий на полу); или в случае наезда на препятствие (определяется по несоответствию показаний энкодеров на колесах ожидаемым величинам),
4. Заключение
Построенная система управления автономным колесным роботом представляет собой симбиоз иерархической нечеткой системы управления (в сумме, насчитывающей более 20 лингвистических переменных и сотни термов) и системы распознавания и сравнения образов, основанной на нечеткой логике.
Система показала свою пригодность для управления роботом с монокулярным зрением, тем не менее, система проходит постоянную доработку и отладку. Особое внимание обращается на нахождение расстояния до сложных для определения препятствий (таких, как стулья) и построению надежной системы распознавания изображений (к сожалению, системы распознавания могут работать неадекватно в помещениях с малым количеством уникальных деталей, например, в учебных аудиториях). Еще одним недостатком системы является необхо-
дпмоеть предварительной съемки помещения, поэтому основным направлением совершенствования является создание автоматической системы для определения положения робота в пространстве помещения. Кроме построения ряда систем нечеткого управления были разработаны оптимизированные версии алгоритмов быстрого расчета оптического потока и определения препятствий.
Список литературы
1, Everett H.R. Sensors for Mobile Robots: Theory and Application.
AK Peters, 1995,
2, Ulrich I., and Nourbakhsh. Appearance-Based Place Recognition for Topological Localization. In Proceedings of the IEEE International Conference on Robotics and Automation, Proceedings of the AAAI National Conference on Artificial Intelligence, Austin, TX, July/August, 2000,
3, Ulrich I., and Nourbakhsh. Appearance-Based Obstacle Detection with Monocular Color Vision. Proceedings of the AAAI National Conference on Artificial Intelligence, Austin, TX, Julv/August6 2000,
4, Zadeh L. Fuzzy Sets. Information And Control // 1965, № 8, P. 338353.
Челябинский государственный университет, [email protected]