Васильев Иван
Анатольевич
Санкт-Петербург, ЦНИИ РТК, нач.
лаб., к.т.н
применение
системы технического зрения для решения
проблемы ЛОКАЛИЗАЦИи мобильнОГО роботА
Для управления мобильными роботами в
автономном режиме главной задачей является задача определения текущих координат
этого робота [1]. Основными сенсорами в таких роботах всегда являются одометры
– датчики колёс.
Но для локализации робота недостаточно
показаний датчиков колёс, по причине того, что колёса имеют тенденцию
проскальзывать при криволинейных движениях [2]. Для решения задачи локализации
при криволинейных движениях применяются разные датчики. В статье рассмотрены
способы локализации, основанные на использовании системы технического зрения
(СТЗ).
Те разработчики роботов, кто использует
техническое зрение для локализации, чаще всего применяют разные искусственно
созданные или естественные маркеры (ориентиры).
В данной работе показан ещё один способ,
очень простой, который, как показала практика, более устойчив, так как
использует не отдельные части изображения, где система нашла маркеры или
ориентиры, а интегрировано всё изображение, что гарантирует от случайных
ошибок.
Описание
кадра изображения.
Цифровая телевизионная картинка (кадр)
представляет собой двумерный массив байт, каждый из которых отвечает за
интенсивность одного цвета для определённой точки изображения (пикселя).
Телевизионная цветная картинка, как
правило, имеет несколько базовых цветов, из которых формируется любой требуемый
цвет. Без потери общности будем считать, что их три – красный (Red), зелёный (Green) и
синий (Blue), отсюда такой формат цветов называется, как
известно, RGB. Существуют и другие форматы,
подробно описанные, например в [3], но для описания алгоритма локализации вид
цветовой кодировки значения не имеет.
Итак, для каждой точки (пикселя)
изображения в массиве отводятся три байта, по байту на каждый базовый цвет. То
есть, всего может быть 2563=16 777 216 цветов. Если все
три байта имеют одинаковое значение, то пиксель имеет градации серого, от
белого цвета (значения, соответственно, по 255 единиц) до чёрного (значения 0,
0, 0). Если значения разные – это кодирует разные цвета цветовой диаграммы.
Телевизионная камера имеет частоту смены
кадров в несколько герц, чего вполне хватает для задач управления транспортными
средствами.
Описание
обработки кадра изображения
Для того чтобы интегрировано
использовать весь двумерный кадр предлагается создать для каждого из цветов по
два одномерных массива, представляющие из себя набор ячеек, в которых находятся
усреднённые значения по некоторым областям кадра.
Области кадра могут быть выбраны в
зависимости от решаемой задачи. Вид осреднения тоже может быть выбран разным.
Для навигации робота, в качестве таких областей, используем для первого массива
вертикальные столбцы пикселей, а для второго – горизонтальные строки.
То есть, если двумерный массив кадра
обозначен как Pi,j, где
i и j –
соответственно номера строк и столбцов, то преобразование выглядит так:
где: h – массив,
отвечающий за средние значения, среди столбцов изображения;
v – массив, отвечающий за средние значения среди строк
изображения;
m ´ n – размер самого изображения в пикселях.
Разумеется, такая пара массивов должна
быть создана для каждого цвета.
Для иллюстрации [4] приведём сам кадр и
график того массива, который получается после усреднения столбцов – см. рисунок
1.
Описание
алгоритма локализации
Известно, что для прямолинейного
движения в качестве основного датчика локализации хорошо работают датчики колёс
(одометры) [5]. Поэтому будем использовать одометрию для прямолинейного
движения, а СТЗ – для поворота на месте.
Следовательно, наша СТЗ будет определять
лишь угол поворота робота. Это осуществляется сравнением двух кадров:
полученного в настоящий такт управления и в предыдущий. Рассмотрим два
изображения одной сцены, снятых под разными углами фотокамеры – см. рисунок 2.
а б
Рис. 1. Кадр изображения (а)
и график среднего по одному цвету (б)
Рис. 2. Два изображения
одной сцены
Рис. 3. Графики массивов,
полученные из изображений с рис. 2
На рисунке 3 приведены графики,
построенные для этих двух изображений. Здесь видно, что сдвигом на определённое
количество пикселей эти графики можно совместить (может быть, отбросив крайние
столбцы). Это количество пикселей и определяет поворот телекамеры.
Математически это можно выразить следующим образом:
где h2 и h1 – предыдущий и текущий кадры изображения.
Соответственно, найденное значение j, при
котором данная сумма минимальна и есть сдвиг изображений, соответствующий
повороту робота вокруг своей оси.
Определить угол, которому соответствует
такое смещение (т.е. произвести калибровку телекамеры), довольно просто. Для
этого следует повернуть телекамеру на известный угол и посмотреть, сколько
пикселей смещения вычисляет алгоритм. Делением этого угла на количество
пикселей получаем коэффициент пересчёта.
Исходя из вышеизложенного приведём
формулы, по которым осуществляется локализация робота, двигающегося по ломаной
линии. Пусть текущие координаты робота обозначаются буквами Xt, Yt и At – абсцисса, ордината и
курсовой угол, соотвественно; пусть также координаты на предыдущем такте
управления обозначаются Xt-1, Yt-1 и At-1. Пусть начальные
координаты имеют обохначение X0,
Y0 и A0.
Если обозначить символами Δl, Δa линейное перемещение и
изменение ориентации робота на текущем такте управления, то текущие координаты вычисляются
рекурсивно:
Xt = Xt-1 +
Δl sin At-1
Yt = Yt-1 +
Δl cos At-1
At = At-1 + Δa.
При вычислении линейных координат
учитывается угол с предыдущего такта управления по причине того, что на одном
такте робот либо едет прямолинейно (т.е. At
= At-1), либо – поворачивает на месте (т.е. Xt = Xt-1 и Yt = Yt-1).
Практическая
отработка
Практическая отработка проводилась на
колёсном мобильном роботе МИГ (разработка ЦНИИ РТК – см. рис. 4), снабжённом
обычной веб-камерой.
Рис. 4. Мобильный робот для
отработки алгоритма локализации
Эксперименты проводились в помещениях ЦНИИ
РТК, имеющих разную конфигурацию и на открытом воздухе. Выяснилось, что
подавляющее количество современных веб-камер имеют встроенные функции наведения
на резкость и выставки баланса белого. При отключении этих функций было
установлено, что приведённые алгоритмы имеют высокую устойчивость, которая объясняется
учетом всего кадра, а не отдельных
выделенных объектов интереса.
Также выяснилось, что на обработку
одного кадра тратится не более 15-20 мс, что позволяет обрабатывать 50 кадров
всекунду. Робот, при этом, может поворачивать со скоростью, не превосходящей 1
рад/сек.
Метод имеет ограничение. Картина,
наблюдаемая телекамерой должна сильно меняться при движении робота, чтобы можно
было найти чёткий минимум для наложения двух графиков друг на друга. То есть,
этот алгоритм не работает в кустах и траве и очень плохо работает в лесу.
Вместе с тем, выяснилось, что
динамичесие объекты, попадающие в кадр, практически не влияют на точность –
минимум в любом случае будет находиться в нужном месте! Правда, это верно для
случая, когда динамические объекты не превышают 10-15% от площади кадра и/или
не имеют интенсивности отражённого/генерируемого света сильно выделяющих их на
кадре.
Также для определения курсового угла
мало влияет на точность и неровности подстилающей поверхности, по которой
перемещается робот.
1.
Springer handbook of robotics // под. ред. Bruno
Siciliano, Oussama Khatib,
«Springer», 2008.
2. Lyashin A. M., Vasilyev I. A.
Localization and trajectory motion control of a mobile robot with tank-like
chassis setup, equipped with laser rangefinder and machine vision system. // Сб. материалов «Mechatronics
& Robotics ‘04» Aachen – Germany. P.
469-470.
3. Фисенко
В. Т., Фисенко Т. Ю. Компьютерная обработка и распознавание изображений.
Учебное пособие. ИТМО. СПб, 2008.
4. Васильев
И. А. Управление траекторным движением мобильных роботов разных колёсных
схем. // «Экстремальная робототехника». Сборник докладов международной
научно-технической конференции, 23-25 ноября 2011
5. Бурдаков
С. Ф., Мирошник И. В., Стельмаков Р. Э. Системы управления движением
колесных роботов. СПб; «Наука», 2001.