Васильев Иван
Анатольевич
Санкт-Петербург, ЦНИИ
РТК, нач. лаб., к.т.н
ПРИМЕНЕНИЕ
СИСТЕМЫ ТЕХНИЧЕСКОГО ЗРЕНИЯ ДЛЯ ОБЪЕЗДА ПРЕПЯТСТВИЙ МОБИЛЬНЫМ РОБОТОМ
При управлении мобильным роботом
возникают три главных задачи: определение текущих координат робота, построение
траекторий движения на карте окружающего пространства и построение (уточнение)
самой карты [1].
В задаче построения траекторий движения
существует автономная подзадача: объезд препятствий (уклонение от столкновений
с препятствиями). Это связано с тем, что даже хорошо построенную траекторию
робот отрабатывает с погрешностями и для упрощения не применяют сложные
регуляторы для точного следования по найденной траектории, а применяют
алгоритмы объезда препятствий. Тем более, что в реальных ситуациях карта может
не соотвествовать реальной текущей конфигурации рабочего пространства.
Для унификации разных систем управления
(СУ) роботами желательно иметь малое количество датчиков (сенсоров), которые
могут решать все три вышеперечисленные задачи. Это связано с разными
выичслительными возможностями бортовых компьютеров роботов.
Обычно для этих целей применяют
дальномеры разного вида. Дальномеры имеют большое число минусов, главный из
которых тот, что дальномер может ориентироваться лишь на конфигурацию рабочей
зоны и задачи локализации (определения координат) может решать с погрешностями.
Идеальным сенсором для решения ВСЕХ задач является система технического зрения
(СТЗ), а точнее – телекамера. Доказательством подобного утверждения может
служить зрительная система человека.
В последнее время телекамеры всё чаще
используются для подобных целей. Здесь применяется либо единственная телекамера
со сложной (и, соотвественно, ресурсоёмкой) обработкой изображения, либо
применяются две (а то и три) телекамеры для создания так называемого
стереозрения. Стереозрение имеет свои минусы, главный из которых – сопоставление
и очень сложная совместная обработка уже двух изображений. Более того, часто
авторы таких методов упрощают обработку, создавая искусственные маркеры, в том
числе применяя разного вида структурированную подстветку.
Довольно подробный обзор существующих
методов приведён в диссертации [2].
В природе же, живые организмы успешно
ориентируются лишь на один сенсор – зрение. Более того, даже лишённые одного
глаза успешно ориентируются в пространстве.
В данной статье приводится предварительное
описание идеи, как посредством единственной телекамеры с
примитивной обработкой изображения, решить задачу уклонения от столкновений с препятствием.
Описание
кадра изображения.
Цифровая телевизионная картинка (кадр)
представляет собой двумерный массив байт, каждый из которых отвечает за
интенсивность одного цвета для определённой точки изображения (пикселя).
Телевизионная цветная картинка, как
правило, имеет несколько базовых цветов, из которых формируется любой требуемый
цвет. Без потери общности будем считать, что их три – красный (Red), зелёный (Green) и
синий (Blue), отсюда такой формат цветов называется, как
известно, RGB. Существуют и другие форматы,
подробно описанные, например в [3], но для описания алгоритма идентификации
приближения препятствий вид цветовой кодировки значения не имеет.
Итак, для каждой точки (пикселя)
изображения в массиве отводятся три байта, по байту на каждый базовый цвет. То
есть, всего может быть 2563=16 777 216 цветов. Если все
три байта имеют одинаковое значение, то пиксель имеет градации серого, от
белого цвета (значения, соответственно, по 255 единиц) до чёрного (значения 0,
0, 0). Если значения разные – это кодирует разные цвета цветовой диаграммы.
Телевизионная камера имеет частоту смены
кадров в несколько герц, чего вполне хватает для задач управления транспортными
средствами.
Описание
обработки кадра изображения
Рассмотрим как изменяются изображения
предметов, находящихся в обозреваемой зоне при движении робота. Для этого
рассмотрим рисунок 1.
На рисунке 1.а это вид сверху. Здесь
показаны два положения телекамеры, положение 1 и положение 2. Тонкими линиями с
буквами в кружочках показаны направления на края контуров препятствий. Аналогичный
рисунок 1.б. Это вид сверху, направления на края контуров обозначаются цифрами
в кружочках. Для первоначального положения (1) всё показано сплошными линиями,
а для положения 2 – пунктиром.
Если смоделировать то, что видит
телекамера и объединить эти схемы для двух положений, то должно получиться
что-то похожее на схему на рисунке 2.
а б
Рисунок 1 – Схема взаимного
расположения телекамеры и препятствий
Рисунок 2 – Схема изображения
На рисунке 2 вертикальными линиями
обозначены края контуров препятствий с вида сверху (рис. 1.а) и горизонтальными
– с вида сбоку (рис. 1.б). Заштрихованные прямоугольники – это объединения
контуров препятствий для двух изображений, а однотонные – их пересечения.
Представим себе, что кадр телекамеры
идеален, т.е. на нём нет обычных «плаваний» яркости. Тогда простым вычитанием
одного изображения из другого можно получить достаточно информации, чтобы
понять, приближается ли препятствие и как быстро это происходит. Если
рассмотреть рисунок 2, то при таком вычитании точки, соответствующие изменению
кадра будут находиться только в заштрихованных областях, так как только в них
есть изменения по отношению к предыдущему кадру. Назовём картину разностей двух
изображений разностной картинкой.
Рассмотрим реальную ситуацию – см.
последовательность рисунков 3.а, 3.б и 4, как разницу между 3.а и 3.6.
а б
Рисунок 3 – Два кадра для
двух положений телекамеры
Рисунок 4 – Разностная
картинка
В этом примере изображения не «чистились»
а производилось вычитание по каждому из трёх цветов в каждом пикселе, а затем
производилось извлечение корня из суммы квадратов разниц значений пикселей.
На рисунке 4 уже видно, что предмет,
находящийся ближе всего (бутылка минералки) больше всего изменяется, что
соответствует геометрическим соображениям. При чём, даже если телекамера
движется не строго по прямой (что соответствует эксперименту: робот даже
по ровному полу никогда не едет строго
прямо), то объекты, находящиеся ближе будут изменяться на разностной картинке
сильнее объектов, находящихся дальше.
Методами поиска линий на изображении
(Хафа и пр. [4, 5]), или ещё как то проще, можно найти все линии в разностной
картинке и получить их ширину. Если какие-то линии по своей ширине превосходят
стандартное отклонение ширины, то требуется проследить за ними подробнее. Если
ширина меняется быстро, стоит оценить расстояния до препятствия. Это и будет
сенсор, идентифицирующий приближение к препятствию.
Описание алгоритма
уклонения от препятствий
Итак, робот должен приехать в целевое
положение. У робота есть некоторые средства навигации, то есть робот знает своё
текущее положение в любой момент времени, робот строит траекторию и
отрабатывает её.
Наша задача написать ту часть алгоритма,
которая отвечает только за уклонение от препятствий. Этот алгоритм довольно
прост:
1.
Вначале проверяется
расстояние до цели и, если оно меньше некоторого, то считается, что цель
достигнута;
2.
Если цель не достигнута,
то производится доворот робота на цель;
3.
Далее производится
движение по прямой на 1 метр, после чего переход к п. 1, либо пока расстояние
до непреодолимого препятствия не станет меньше некоторого заданного расстояния;
4.
Маневрируем для объезда
препятствия: если слева от робота большее расстояние (т.е. нет препятствия в
непосредственной близости), то едем влево, если справа – вправо, пока нет
возможности проехать, т.е. если по центру нет препятствия, в этом случае
переход к п. 3. Если во всех трёх направлениях нет возможности движения, то
переход к п. 5;
5.
Обзор препятствий. В этом случае робот
производит разворот на 360 угловых градусов и находит объезд препятствия,
который находится ближе всего к направлению на цель. Поворот робота на
найденный угол и переход к п. 1.
Выводы.
Видны ограничения метода. Фон, то есть
то, что находится по отношению к ближайшим препятствиям за ними, должен быть
статическим. То есть, там не допускается дрожание травы и кустов от ветра и
движения автомобилей по магистрали.
В то же самое время, слишком большие
изменения на разностной картинке могут привести к понятию того, что объект
движется по отношению к неподвижному фону. Можно ли при этом оценить расстояние
до него требует дальнейших исследований.
Метод примитивно прост. Вычисление
разностной картинки производится настолько быстро даже на слабых компьютерах,
что это может позволить выполнять сотню вычитаний в секунду. Это позволяет
надеяться на практическую применимость метода.
В тоже время, методы нахождения самих
линий и/или оценки их ширины могут быть более ресурсоёмкими. Это требует
дальнейших исследований.
1.
Springer handbook of robotics // под. ред. Bruno Siciliano, Oussama Khatib, «Springer», 2008.
2. Володин
Ю.С. Телевизионная система объёмного зрения для управления движением
мобильного робота. // Диссертация на соискание учёной степени кандидата технических
наук, МГТУ им. Баумана, 2011.
3. Фисенко
В. Т., Фисенко Т. Ю. Компьютерная обработка и распознавание изображений.
Учебное пособие. СПб, ИТМО, 2008.
4. Шапиро
Л., Стокман Дж. Компьютерное зрение. М., «Бином», 2006.
5. Форсайт
Д., Понс Ж. Компьютерное зрение. Современный подход. М., «Вильямс», 2004
6. Васильев
И. А. Управление траекторным движением мобильных роботов разных колёсных
схем. // «Экстремальная робототехника». Сборник докладов международной
научно-технической конференции, 23-25 ноября 2011
5. Бурдаков
С. Ф., Мирошник И. В., Стельмаков Р. Э. Системы управления движением
колесных роботов. СПб; «Наука», 2001.