Математическая морфология.

Электронный математический и медико-биологический журнал. - Т. 12. -

Вып. 4. - 2013. - URL:

http://www.smolensk.ru/user/sgma/MMORPH/TITL.HTM

http://www.smolensk.ru/user/sgma/MMORPH/N-40-html/TITL-40.htm

http://www.smolensk.ru/user/sgma/MMORPH/N-40-html/cont.htm

 

УДК 004.021

 

ПРИМЕНЕНИЕ КОРРЕЛЯЦИИ В РОБОТОТЕХНИЧЕСКОМ ЗРЕНИИ: НАВИГАЦИЯ В ПРОСТРАНСТВЕ

 

Ó 2013 г.  Киселев К. О.

 

(kiselev.doc)

 

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

Ключевые слова: компьютерное зрение, робототехника, навигация.

 

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

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

Исходными данными для работы являются: матрицаM - план помещения(размером Ma×Na) и массив измерений дальномера.

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

ac – свободное пространство

aп – известные препятствия(стены, предметы мебели и пр.)

aн – неисследованное пространство

Массив измерений дальномера представляет собой набор точек (li, αi) – расстояния li до объекта в направлении угла αi. При этом масштаб li должен совпадать с масштабом плана помещения. По этим данным строится матрица T образа помещения.

Необходимо иметь переменную α0 – угол ориентации робота в помещении. При расчете положения обрабатываются несколько вариантов значения этого угла, если имеется информация о его предыдущем значении и максимально возможном изменении, либо перебираются все варианты от 0 до 360о с шагом Δα. Рассмотрим второй случай, тогда α0n=n*360/Δα, где n –целое число, такое, что 0a0n<360o.

Определяетсяlmax- максимальное из расстоянийli, округленное до целого числа вверх.Матрица Tn будет иметь размер M×N, где N=M=2*(lmax+2).

Зададим начало координат в точке (x0, y0) где x0=y0=lmax+2. Зададим каждому элементу матрицы значение aн.

Зададим значениеaсдля всех точек матрицы Тn, лежащих на прямой между точками (x0, y0) и (x0+li*cos(α0n+ai); y0+li*sin(α0n+ai)). Для точки (x0+li*cos(α0n+ai); y0+li*sin(α0n+ai)) матрицы Т зададим значение ап. Если известна погрешность измерения расстояния ±Δl, то имеет смысл заполнить значениями aп ячейки между точками (x0+(lil)*cos(α0n+ai); y0+(lil)*sin(α0n+ai)) и (x0+(lil)*cos(α0n+ai); y0+(lil)*sin(α0n+ai)). При этом изначально следует принять значение lmax=max(li)+Δl.

В результате получим n матриц Tn. Вычислив ВКФ матрицы M с каждой из матриц Tn, получим n матриц Cn – коэффициентов корреляции матриц Tn и M при различных взаимоположениях. Исходя из свойств коэффициента корреляции известно, что он принимает максимальное значение, когда данные на входе идентичны. И чем меньше расстояние между векторами на входе, тем выше значение коэффициента корреляции. Учитывая выражение, определяющее значение Cn(k,p)[1]:

Составим требования к значениям констант ас, ан, ап:

Если нет данных о какой-либо точке, то эта точка не должна воздействовать на значение Cn(k,p), поэтому:

ан*ас=ан*ап=ан*ан=0 (1)

Несовпадение значений в какой-либо точке должно приводить к снижению Cn(k,p), поэтому:

ан*ас<0 (2)

Совпадение значений в какой либо точке должно приводить к возрастанию Cn(k,p), поэтому:

ан*ан=ас*ас>0 (3)

Из условия (3) следует, что числа ас, ан, ап – действительные, из условия (1) aн=0, из условия (2) следует, что ас, и ап отличны от нуля и имеют противоположные знаки.

Набор матриц Сn можно представить как трехмерную матрицу С размером nx(M+Ma-1)x(N+Na-1). Найдя максимум в этой матрице получим его координаты: (аc, xc, yc).

ac – информация о угле α0 поворота робота в пространстве:

α0=ac*360/Δα

По xc, yc рассчитывают положение робота на карте по формулам:

x=x0+Ma-xc+1

y=y0+Na-yc+1

Тогда робот находится в точке M(x,y) и установлен в направлении α0. Эти координаты полностью описывают положение робота на плоскости, чего вполне достаточно для роботов, работающих внутри помещений.

Аналогичным образом возможно и определение координат в трехмерном пространстве. Входными данными при этом будет набор векторов (li,θi,φi) в трехмерной сферической системе координат, матрица M так же должна быть трехмерной.

При реализации алгоритма имеет смысл корректировать размер матриц Tn для увеличения быстродействия, т.к. если lmax значительно превосходит среднее расстояние до окружающих объектов, то значительная часть матрицы Tn останется заполненной aн и не будет принимать участия в расчете, однако размер Cn и объем расчетов при этом окажется выше необходимого. Вычисление корреляции так же эффективнее реализуется не по определению, а при помощи двумерного БПФ[3].

Проиллюстрируем работу метода моделированием в Matlab.

 

map.bmp       mapr.bmp

а                                             б

Рисунок. 1 а - изображение карты тестового помещения, б - изображение карты тестового помещения для получения набора векторов (li, αi).

 

  На рис. 1 белым обозначены области, заполненные ac, черным – aп. Карта рис.1а будет использоваться для расчета, эта карта хранится в памяти робота, используется в качестве матрицы M. Карта на рис. 1б имитирует наличие необозначенных в памяти робота препятствий: стульев, ног людей, мусорных урн и т.п.

  При моделировании робот помещается в тестовую точку с произвольными координатами(при условии, что точка свободна) и произвольным углом α0, измеряется расстояние до предметов вокруг по карте рис. 1б с шагом 3,6о. Расчет угла ведется с разрешением Δα=1о(n=360). Так же на расстояние до предметов действует шум с нормальным распределением. Используется алгоритм с вычислением корреляции с помощью БПФ по оптимизированной карте. Размер матрицы M 200x200. Расчет производился для 10 случаев, при этом каждый раз робот устанавливался в новую точку, не связанную с предыдущим расчетом. Результаты представлены в табл. 1.

Таблица 1 – Результаты моделирования

α0, рад.

α0, рад.

Вычисл.

Х

Х выч.

Y

Y выч.

Время расчета, с.

Ошибка

α0, рад.

Ошибка X

Ошибка

Y

1

1.8812

1.885

187

187

15

15

942

0.0038

0

0

2

0.5225

0.5236

30

30

175

175

575

0.0011

0

0

3

3.1297

3.1241

173

173

94

94

866

0.0056

0

0

4

1.0738

1.0821

69

69

58

58

844

0.0083

0

0

5

5.1389

5.1487

181

181

188

188

501

0.0098

0

0

6

3.4681

3.4732

167

167

103

102

503

0.0051

0

1

7

0.5715

0.576

162

162

93

93

780

0.0045

0

0

8

5.5558

5.5501

63

63

81

81

468

0.0057

0

0

9

2.1229

2.1293

30

30

171

171

599

0.0064

0

0

10

5.2929

5.2883

105

105

45

45

893

0.0046

0

0

Макс.

 

 

 

 

 

 

942

0.0098

0

1

 

  Из результатов видим стабильную работу алгоритма. Погрешность расчета координат: ±1, максимальная ошибка измерения угла 0,0098 рад = 0,56о, что меньше разрешения расчета. Главным недостатком алгоритма является его значительная вычислительная емкость: расчет одного тестового случая занимает до 16 минут на процессоре AMDAthlonx64 2.2 ГГц.

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

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

Чувствительность алгоритма задается с помощью значений ап и ас. Корреляционный максимум имеет наиболее острый пик при ап=-ас. Однако такое сочетание параметров при обнаружении не отмеченных на карте объектов может приводить к ошибкам. Поэтому в некоторых случаях имеет смысл ас задавать равныман, а ап>0.

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

  Разработанный метод позволяет получить информацию о положении робота на хранящейся в памяти карте, не имея предварительных данных о положении. Так же в процессе работы карта может дополняться и корректироваться, основываясь на показаниях дальномеров. Удачным вариантом применения алгоритма станет первоначальный расчет положения при включении робота, когда нет предварительных данных о его положении. Включение обычно производится в неподвижном состоянии, поэтому к сроку окончания расчета данные будут актуальны. Производительность может быть заметно увеличена применением технологий вычисления на GPU (Вычисление 8388608 отсчетов FFT:GPU: 0.085с, CPU: 92.851c[2]).

 

Литература

 

1.     Гансалес Р., Вудс Р. Цифровая обработка изображений. М., Техносфера, 2005.1012 с.

2.     Вычисление БПФ на GPU с использованием Java и CUDA, http://blog.eqlbin.ru/2011/08/gpu-java-cuda.html

3.     Гансалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде MATLAB. М., Техносфера, 2006. 615 с.

 

APPLICATION OF CORRELATION In Robotic Vision: NAVIGATING IN ROOM

 

Kiselev K. O.

 

The paper describes a method for determining position of the robot in the room without the use of a specialpoints. The proposed method is based on the use of information about the distances to objects for determine their own position in the room. Based on this method, implemented an algorithm determining the position of the robot in room, the plan of which is stored in memory.

 

Key words: computer vision, robotics, navigation.

 

«Национальный исследовательский университет» МЭИ»

в г. Смоленске

Поступила в редакцию 11.12.2013.