Навигация всегда была и есть нетривиальной и сложной системой мобильного робота. Именно от выбора системы навигации зависит общая конструкция робота, его технико-тактические характеристики и цена. Последний критерий играет, пожалуй, самую значительную роль, так как машины даже с хорошей навигацией, но высокой ценой не получают массового распространения. Существует множество подходов к решению вопроса ориентации мобильного робота, и чаще всего используется комплексный метод, включающий в себя всевозможные датчики, дальномеры, камеры, тепловизоры и прочее. Как правило, получившиеся роботы уникальны, их тяжело, невыгодно и сложно тиражировать. Использование же систем навигации из коммерческих образцов (например, роботов-пылесосов, игрушек) в транспортной машине не представляется адекватным.
В данной работе предлагается достаточно новый и оригинальный способ навигации – монокулярное зрение. Основная идея – использовать в качестве источника информации об окружающем мире всего лишь одну видеокамеру. Вся сложность навигации при этом ложится на программное обеспечение, но максимально упрощается и удешевляется конструкция робота, появляется возможность его массового тиражирования.
Впервые метод монокулярной навигации был предложен в [1]. Суть алгоритма заключалась в следующем:
1.полученное с камеры изображение переводится в HSI-шкалу
2.трапециевидный участок перед роботом учитывается как беспрепятственный и по нему строится гистограмма частоты появления цветов (то есть три массива H, S и I по 255 элементов в каждом)
3.происходит «прогон» всего изображения и составляющие цвета каждого пикселя сравнивается с гистограммой: если они превышают некоторый порог (threshold), то пиксель является свободной зоной, иначе объявляется препятствием
Со временем данный алгоритм был дополнен и слегка модифицирован. Так, вместо HSI-шкалы в [2] предлагается использовать C1C2C3-шкалу. Это позволяет нивелировать тени от сторонних объектов и блики от солнца. Но даже C1C2C3 не является идеальной цветовой схемой, так как она не решает проблемы «зашумленности» изображения и невозможность распознавания препятствий на поверхностях со сложной текстурой.
Мною были протестированы различные методы определения препятствий: нормализованный и ненормализованный RGB, HSI, HSL, C1C2C3, H-method, Sobel, Sharr. Прежде всего, для ровных монотонных поверхностей вместо C1C2C3 гораздо лучше использовать метод Собеля (Sobel method): фильтрация изображения специальной маской и разбиение на чёрные-белые точки. Ниже представлены рисунки для сравнения методов (рис.1-4).
Рис. 1. Базовое изображение |
Рис. 2. Метод HSI |
Рис. 3. Метод C1C2C3 |
Рис. 4. Метод Собеля |
Для поверхностей с текстурой нужен другой метод, не учитывающий интенсивность цвета и позволяющий брать диапазон от среднего значения. Таким стал H-method. Дело в том, что гомогенные поверхности с текстурой (паркет, линолеум, трава) характеризуются равномерным распределением оттенка на небольшом промежутке в пределах среднего значения. В H-методе изображение переводится в шкалу HSI, создаётся один массив по составляющей Hue, и пиксели, оттенок которых попадает в диапазон ±5% от среднего значения, объявляются свободными от препятствий. Ниже показан сравнительный пример использования H-метода, HSI и C1C2C3 (рис.5-8).
Рис. 5. Базовое изображение |
Рис. 6. Метод HSI |
Рис. 7. Метод C1C2C3 |
Рис. 8. H-метод |
После разбиения изображения на препятствия и свободные зоны робот должен определить траекторию пути. Сделать это можно двумя способами. Первый способ – классический, заключается в построении декартовых систем локальной и глобальной карт. Для этого принимается допущение, что поверхность пола – ровная, и не имеет подъёмов и спусков, внутри помещений это правило выполняется полностью. Далее можно заметить, что первая чёрная линия снизу обязательно является препятствием. Чтобы найти расстояние до этого препятствия, нужно знать лишь следующие параметры робота: высоту камеры (CamHeight), угол наклона (CamSlant) к горизонту, угловое (CamResolutionY и CamResolutionX) и пиксельное разрешение камеры по вертикали (ScreenHeight) и горизонтали (ScreenHeight). Расстояния до объекта c координатами ScreenY и ScreenX по осям Y и X считаются по следующим формулам:
Изображение на рис.5, отображённое в двумерную локальную карту при масштабе 1 пиксель = 1 сантиметр показано на рис.9. Штриховыми линиями обозначен угол обзора камеры робота. Большинство бюджетных веб-камер имеют низкое угловое разрешение (порядка 200 по вертикали и 400 по горизонтали), поэтому их нужно укреплять как можно ближе к полу. Это способствует уменьшению «слепой зоны» робота и позволяет более точно позиционировать препятствия. Недостатками этого способа построения траекторий являются отсутствие универсальности (только условия плоского пола), требования к наличию информации о геометрических характеристиках робота, скоростях движения и разворота, либо наличие алгоритма определения их эмпирическим путём.
Второй способ построения траектории движения заключается в непосредственной связи распознанного изображения с сервоприводами робота через минимальные манипуляции с данными. Подобная методика была опробована в [2]. По изображению робот определяет возможные пути движения и совмещает их с данными, полученными от глобального навигационного устройства (например, GPS). В классической теории построения искусственного интеллекта последний должен обладать внутренней моделью мира (локальной или глобальной картой), здесь же предлагается парадигма: «мир – лучшая модель себя». В самом деле, с учётом зашумленности достаточно сложно построить точную карту местности по одному изображению и практически нереально определить на ней высоты. С другой стороны, можно просто определить вероятные вектора движения, последовательно анализируя участки распознанного изображения, и сопоставить их с глобальным направлением перемещения робота. Основным недостатком такого метода является возможность возникновения тупиковых ситуаций – например, езда по кругу. Но в целом его можно использовать в открытом пространстве: на дорогах, насыпях, трассах.
Результатом данного исследования стало создание транспортного робота «Циклоп» (рис. 10-11). Его основными компонентами являются: транспортная тележка с двумя сервоприводами, ноутбук, плата расширения Arduino, блок питания из 6 элементов АА и веб-камера. Низкая скорость движения (15 см/с) и относительно небольшие размеры (460х330х200мм) позволили тестировать робота как внутри помещения, так и снаружи.
Робот показал лучшие возможности навигации на асфальте, в условиях открытого пространства. Не было допущено ни одной ошибки первого рода (не распознаётся препятствие) и минимальное, около 5%, ошибок второго рода (свободный участок распознается как препятствие), которые не являются критичными. Скорость распознавания и построения траектории движения в среднем составила 120 мс, т.е. около 8 раз в секунду. При размере локальной карты в 2,5 метра это могло бы позволить роботу развить максимальную безопасную скорость в 8-10 м/с (28-36 км/ч).
Рис. 10-11 Робот «Циклоп» |
В помещении при передвижении по линолеуму робот достаточно часто избирал неправильный маршрут, локальная карта строилась неточно. Кроме того, из-за различной скорости работы сервоприводов, возникли сложности с позиционированием: так на 2,5 пройденных метра отклонение от намеченного маршрута составило 12 сантиметров (4.8%).
В целом, представленная методика навигации показала высокую эффективность, прежде всего в условиях городской асфальтовой дороги. Незначительное усовершенствование алгоритмов обнаружение препятствий позволило бы внедрить данную систему в управление легковыми транспортными средствами. На первоначальном этапе, это могла бы быть система помощи водителю, а в дальнейшем – полное автопилотирование автомобилем.
Литература
- I. Ulrich and I. Nourbakhsh, “Appearance-based obstacle detection with monocular color vision,” in Proc. AAAI Nat. Conf. on Artificial Intell., Austin, TX, 2000.
- D.Song, Hyan Nam Lee, “Vision-based Motion Planning for an Autonomous Motorcycle on Ill-Structured Road”, Dept. of Computer Science, Texas A&M University