Карпов В.Э. О некоторых особенностях применения

advertisement
О НЕКОТОРЫХ ОСОБЕННОСТЯХ ПРИМЕНЕНИЯ НЕДООПРЕДЕЛЕННЫХ
МОДЕЛЕЙ В РОБОТОТЕХНИКЕ
Карпов В.Э., в.н.с., к.т.н., доцент
НИИ Информационных технологий, Москва
e-mail: karpov_ve@mail.ru
1. ВВЕДЕНИЕ
Одним из весьма интересных и эффективных подходов, относящихся к программированию в
ограничениях, являются недоопределенные модели (Н-модели). Программирование в ограничениях является
максимально декларативным и основано не на описании алгоритма решения задачи, а на описании ее
модели. Модель представляет собой совокупность отношений («ограничений») между параметрами задачи
[1,2].
Постановка задачи в русле программирования в ограничениях формулируется следующим образом.
Пусть на переменные x1, x2 ..., xn, областями значений которых являются множества X1 , X2 , ..., Xn , заданы
ограничения Ci (x1 , x2 , ..., xn), i =1, k. Требуется найти наборы значений <a1 , a2 , ..., an> (ai  Xi), которые бы
удовлетворяли всем ограничениям одновременно.
Декларативность и вычислительная эффективность являются теми свойствами Н-моделей, которые
делают их привлекательными для решения ряда характерных задач из области робототехники. Особенно это
касается тех задач, которые, во-первых, должны решаться максимально быстро, пусть и с потерей качества,
и, во-вторых, решение которых должно быть получено гарантированно. Ниже будут рассмотрены две такие
задачи – задача определения местоположения робота по маякам и обратная кинематическая задача
многозвенного манипулятора. Но прежде рассмотрим более подробно, что представляют собой Н-модели.
2. НЕДООПРЕДЕЛЕННЫЕ МОДЕЛИ
Метод недоопределенных моделей (Н-моделей) был предложен А.С.Нариньяни еще в начале 80-x
годов и является весьма эффективной технологией решения задач удовлетворения ограничений в самой
общей постановке [2]. В Н-моделях переменной сопоставляется недоопределенное значение (или Нзначение). Недоопределенное значение является промежуточным между полной определенностью (точное
значение) и полной неопределенностью. В процессе вычислений Н-значение может становиться только
более точным, гарантируя тем самым монотонность вывода.
Каждой переменной, участвующей в описании задачи, ставится в соответствие ее недоопределенное
расширение (Н-расширение).
Недоопределенными расширениями могут быть точные значения, перечисление (множество
подмножеств), множества, интервалы (для них характерна интервальная алгебра), мультиинтервалы и т.д.
Например, если универсум некоторой переменной есть множество целочисленных значений, то ее Нрасширением может быть полная неопределенность, перечисление, интервал или мультиинтервал.
Для вычисления Н-модели обобщенная вычислительная модель строится как четверка
M = (V, W, C, R),
где V – множество объектов из заданной предметной области, R – множество ограничений на значения
объектов из V, W – множество функций присваивания (определяют новое значение объекта как функцию от
текущего и присваиваемого значений), C – множество функций проверки корректности (определяют
изменение значения объекта и проверяют правильность этого нового значения).
Каждому объекту v V сопоставлены универсум Xv и начальное значение из универсума, а также
функция присваивания Wv и функция проверки корректности Cv.
Ограничения из R должны быть функционально интерпретируемыми, т.е. всякое отношение r(x1, ,
xn) должно быть представлено набором функций fi (i=1, , n), вычисляющих значение каждой переменной
из X’ на основании заданных значений других переменных. Функция fi называется функцией интерпретации
отношения r, если
xi = fi (x1, , xi-1, xi+1, , xn ),
Такие функционально интерпретируемые отношения и называются ограничениями.
Далее модель представляется двудольным ориентированным графом, в котором выделены два типа
вершин: объекты и функции. Входящие в вершину-функцию дуги соотносят с ней объекты – входные
аргументы для функции, а исходящие указывают на объекты, в которые производится запись результатов.
Каждой объектной вершине сопоставляются тип и значение, а также функции присваивания и
проверки корректности.
Процесс вычислений имеет потоковый характер: изменение объектных вершин сети активирует
функциональные вершины, для которых эти объектные вершины являются входными аргументами, а
исполнение функциональных вершин в свою очередь может вызывать изменение результирующих
объектных вершин.
В приведенных ниже примерах решения задач используются числовые переменные; их н-расширения
представлены интервалами и мультиинтервалами. Работа этих алгоритмов представляет собой
последовательность итераций, которые продолжаются либо до тех пор, пока не будет достигнута требуемая
точность, определяемая как разность длин интервалов до итерации и после, либо по истечении наперед
заданного количества итераций.
Рассмотрим далее возможные решения двух конкретных задач.
3. ВЫЧИСЛЕНИЯ МЕСТОПОЛОЖЕНИЯ РОБОТА ПО МАЯКАМ
Пусть на плоскости (в ограниченной области) расположены N маяков с известными координатами.
Там же находится робот, оборудованный вращающимся локатором. Локатор позволяет определять углы
между собственным направлением робота (осью ориентации) и направлением на каждый из видимых
маяков. Измерения производятся с некоторой погрешностью и могут быть как неточны, так и неверны
(например, из-за помех, перекрытий области видимости и т.п.). Требуется с максимальной точностью и в
кратчайшее время определить местоположение робота – его координаты и направление (ориентацию).
4. МЕТОД ОКРУЖНОСТЕЙ
Рассмотрим для начала метод «точного» решения задачи определения местоположения робота по
маякам (А. Лоскутов, а также [3]). Пусть робот видит три маяка с заданными декартовыми координатами
T1(x1,y1), T2(x2,y2), T3(x3,y3) соответственно. Локатор определяет направления на маяки относительно оси
робота. Измеренные углы видимости маяков обозначим как 1, 2, 3. Будем считать, что робот определяет
угол между маяками. Например, угол 12 между маяками T1 и T2 (12=1–2), а угол между T2 и T3 – 23
(рис. 1).
Рис. 1. Нахождение точки по трем маякам
Зная расстояние между маяками
l1, 2 
x1  x2 2   y1  y2 2
и угол 12, под которым виден
соединяющий их отрезок, можно найти радиус окружности, проходящей через оба маяка и точку
местоположения робота (дуги пары окружностей – геометрическое место точек, из которых отрезок l1,2
виден под углом 12). По теореме синусов для треугольника M12:
l
2 R  1, 2
sin 12
Найдем координаты центров окружностей O12 и O12’. Для этого найдем окружности радиуса R,
проходящие через точки 1 и 2, или точки пересечения окружностей радиуса R с центрами в точках 1 и 2
соответственно.
Рис. 2. Нахождение центров окружностей O12 и O'12
O
x12

x1  x2
cos 12 ,
 ( y2  y1 )
2
2 sin 12
y1  y2
cos 12 .
 ( x2  x1 )
2
2 sin 12
Аналогичным образом определятся координаты других точек - центров окружностей, на пересечении
пары которых лежит искомая точка. Далее производится отбор пересекающейся пары окружностей и
определение точки пересечения методом, подобным используемому для нахождения центров окружности.
Эта точка пересечения и будет искомой точкой M(xm,ym), задающей положение центра робота (точнее,
координаты локатора). Для ее определения решается система уравнений:
( xm  x12o ) 2  ( ym  y12o ) 2  R122

o 2
o 2
2
(1)
( xm  x23 )  ( ym  y23 )  R23

o 2
o 2
2
( xm  x31 )  ( ym  y31 )  R31
O
y12

Здесь xoij, yoij – координаты центров окружностей, проходящих через пары маяков i и j и точку
местоположения робота, i, j=1,2,3, ij.
Угол ориентации  робота можно найти, например, так:
 y1  ym 
  1
 x1  xm 
  arctan 
(2)
Вычисления производятся для всех возможных троек точек. Результатом является интервалы на осях
абсцисс и ординат, включающие в себя координаты всех найденных точек.
Если координата робота (xm или ym) совпадает с соответствующей координатой сразу двух маяков, то
центр окружности, проходящей через них, будет бесконечно удален (в вычислительных экспериментах
получались величины радиуса окружности порядка 10 20), т.е. решение находится со слишком большой
погрешностью.
Итак, данный метод позволяет определить положение робота, при точно заданных углах ориентации
на маяки 1, 2, 3. Но так как эти углы определяются с некоторыми погрешностями 1, 2, 3
соответственно, то углы ориентации представляют собой интервалы [1–1, 1+1], [2–2, 2+2], [3–3,
3+3]. Использование интервальных вычислений в данном методе приводит к тому, что область положения
робота определяется с чрезмерно большой погрешностью. Использование интервального произведения и
деления ведет к накоплению ошибок и расширению искомой области. На рис.3 приведен пример такой
области, найденной данным алгоритмом.
Рис.3. Область, найденная методом окружностей с использованием интервальных вычислений
Сплошная линия показывает истинную ориентацию робота, а пунктирными линиями обозначены
вычисленные область местонахождения и зона ориентации робота . Как видно из рисунка, результаты
вычислений совершенно неудовлетворительны.
5. МЕТОД НЕДООПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ
Попробуем решить эту же задачу методом Н-вычислений. Так как углы ориентации на маяки
представлены интервалами, то это позволяет задать сектор, включающий истинное положение робота,
исходя из видимости каждого из маяков (рис.4).
Рис. 4. Построение искомой области положения робота
Очевидно, что искомая область лежит на пересечении секторов. Каждый сектор зададим двумя
прямыми, уравнения этих прямых накладывают ограничения на координаты и угол ориентации робота:
(3)
ym  tan( i    i )( xm  xi )  yi , i=1,2,3
Недоопределенное число (координаты и угол в нашем случае) будет представлено интервалом.
Операции для таких чисел определяются в соответствии с правилами интервальной математики. Вследствие
этого получим из уравнений (3) следующие ограничения:





ym  yi
ym  yi
; max  xi 

xm  min  xi 
 
 
tan(





)
tan(





)
i
i
m 
i
i
m 



ym  min( yi  ( xm  xi ) tan(  i   i   m )); max( yi  ( xm  xi ) tan(  i   i   m ))


(4)





y  y
y  y
 m  min  arctan m i  ( i   i ) ; max  arctan m i  ( i   i ) 
x

x
x

x
m
i
m
i





которые обозначим функциями fi для i=1, 2, 3.



Здесь xm  [ xm ; xm ], ym  [ ym ; ym ],  m  [ m ;  m ]
lo
up
lo
up
lo
up
Характерно, что теперь мы имеем дело с простой и естественной формой представления задачи (4),
описанной в терминах ограничений Н-модели. При этом мы избавляемся от требуемых в «точном» методе
окружностей многоступенчатых и сложных формул.
На первом шаге процесса примем следующие начальные интервалы для оценок координат и угла:
xm=[0, lx], ym=[0, ly], =[0, 360], где lx, ly - размеры полигона.
Предполагается, что на каждом шаге исполняется первая функция из множества активных функций.
На первом шаге итерации исполняется функция f1. В результате работы этой функции получаем новые
интервалы для xm, ym, . После этого вызывается функции присваивания проверки корректности. Присваивая
интервалу новое значение, они следят, чтобы левая граница интервала не превышала правую и
предотвращают расширение границ интервала. Если произошло изменение значения одного из интервалов
при выполнении какой-либо функции, все остальные функции ставятся в очередь. Далее исполняется
следующая функция f2 из очереди. Итерационный процесс продолжается до тех пор, пока очередь не станет
пустой.
6. КОМБИНАЦИЯ АЛГОРИТМОВ
Недостаток описанного выше метода заключается в том, что прямые, задающие ограничения,
правильно ограничивают область только тогда, когда угол наклона прямых в (3)  i     i находится в
нужной четверти, т.е. требуется дополнительная информация об угле , а начальное значение =[0, 360]
может привести к нахождению неверной области.
Для задания начального интервала для  достаточно найти одно значение, входящее в искомую
область. Для этого можно применить метод окружностей. Получив таким образом начальное приближение
*, определим начальный интервал , используя значения погрешностей i:
[ *  max{  i },  *  max{  i }]
Если * будет найдена с большой погрешностью, то метод интервалов будет работать некорректно.
Чтобы избежать этого, достаточно располагать маяки так, чтобы их соответствующие координаты не
совпадали.
7. ВЫЧИСЛИТЕЛЬНЫЕ ЭКСПЕРИМЕНТЫ
Далее приведены результаты вычислительных экспериментов, проведенных Е. А. Коноплевой и
Л. Л. Песковой.
Эксперименты показали, что алгоритм работает даже при расположении робота рядом с маяком
(рис.5,а). Если робот находится точно между парой маяков, то алгоритм может отработать некорректно
(рис.5,б), однако в некоторых случаях решение все равно может получиться вполне удовлетворительным
(рис.5,в).
а)
б)
в)
г)
Рис.5 Ситуации различного взаимного расположения робота и маяков:
а) близкое к маяку расположения робота, б) совпадение абсцисс робота и маяков, в) совпадение
абсцисс координат маяков, но с приемлемыми результатами, г) робот и два маяка на одной линии
Неприемлемая ситуация возникает и тогда, когда один из маяков загораживает от робота другой
(робот находится на одной линии с маяками). В этом случае программе недостаточно входных данных
(имеем два различных угла вместо трех) (рис.5,г). Однако достаточно лишь небольшого смещения с линии,
как результаты вычисления координат вновь становятся вполне удовлетворительными (рис. 6).
Рис.6. Случай близости углов ориентации на маяки
На практике робот должен взаимодействовать более чем с тремя маяками. Такая избыточность нужна,
т.к. могут существовать области потери видимости некоторых из маяков. В этой ситуации очень
существенным становится механизм отбора групп реперных маяков.
Этот вопрос выходит за рамки данной работы. Отметим лишь, что целесообразным представляется
введение механизма отбрасывания наиболее ошибочных измерений и введение признаков достоверности
измерений местоположения (когда ошибка не превышает допустимую величину).
8. ОБРАТНАЯ ЗАДАЧА КИНЕМАТИКИ МНОГОЗВЕННОГО МАНИПУЛЯТОРА
Рассмотрим еще одну задачу. На этот раз из области управления манипулятором робота – обратную
кинематическую задачу, в которой требуется определить управление, исходя из заданного целевого
положения манипулятора. При этом будем считать, что нас интересует лишь заданная конечная точка, а
направление схвата может быть произвольным. Более того, будем полагать, что движение звеньев
манипулятора осуществляется в одной плоскости.
Итак, пусть имеется n-звенный манипулятор. Известны длины звеньев a1, a2, …an.
Y
(xn ,yn )
n
a2
an
2
a1
1
X
Рис.7. n-звенный манипулятор
Требуется определить углы поворота звеньев 1, 2, … n для того, чтобы позиционировать конец
последнего звена (схват) в заданную точку M(xn, yn)
Координаты i–го звена определяются естественным образом:
i

x

 i  a j cos( j )
 xi  ai cos( i   i 1 )  xi 1
j 1

или
(5)


i
y

a
sin(



)

y
i
i
i 1
i 1
 i
 y  a sin(  )
j
j
 i 
j 1
Рассмотрим, как решается задача для двухзвенного манипулятора в терминах Н-вычислений. Далее
приведены результаты вычислительных экспериментов, проведенных В. Н. Солодовниковым и
Д. А. Смалем с помощью программы Undef, реализующей решение задач методом недоопределенных
вычислений.
Допустим, что длина звеньев манипулятора равна 1 и нам нужно позиционировать его в точку M(1.25,
1.25). Такая система описывается уравнениями
cos( x) cos( y )  1.25
(6)

sin(
x
)

sin(
y
)

1
.
25

Здесь x и y - углы поворота первого и второго звена.
Рис.8. Двухзвенный манипулятор
Эти уравнения накладывают ограничения на углы в неявной форме. Множество функции
интерпретации системы (6) будут выглядеть так:
 x  arccos(1.25  cos( y ))
 y  arccos(1.25  cos( x))

(7)

x

arcsin(
1
.
25

sin(
y
))

 y  arcsin( 1.25  sin( x))
Очевидно, что существует 2 решения: одно из них изображено на рисунке, а второе симметрично
относительно прямой x = y. Оценочно можно сказать, что одно из решений (для угла x, например) лежит в
интервале [0, 0.4] радиан, а второе – в интервале [0.5, 2]. В силу симметрии для угла y можно задать такие
же начальные условия в виде мультиинтервала. Таким образом, получаем:
x = {[0;0.4][0.7;2]},
y = {[0;0.4][0.7;2]}.
Одной из вычислительных особенностей решения такой системы является введение дополнительных
ограничений. Функции arccos и arcsin могут порождать бесконечное количество интервалов с периодом 2,
поэтому для борьбы с этим введены ограничения на множество значений этих функций - от 0 до 2.
Результатом расчетов являются следующие мультиинтервалы (8 шаг итерации, точность  = 10-6):
x = {[1.27209, 1.27209] [1.27209, 1.27209] [0.298703, 0.298703]},
y = {[0.298703, 0.298703] [0.298703, 0.298703] [1.27209, 1.27209]},
т.е. заданная точка может быть достигнута манипулятором, только если угол x равен 0.298703 радиан или
1.27209 радиан. Угол y, как и предполагалось, принимает такие же значения.
Характерной особенностью этой задачи является то, что вид решения зависит от числа звеньев и
количества степеней из свободы. В простейшем случае двухзвенного манипулятора существует не больше
двух его положений, в которых достигается заданная точка. Однако уже в случае работы манипулятора в
трехмерном пространстве имеется бесконечное множество решений, которые образуют кривую в
трехмерном пространстве.
9. ОСОБЕННОСТИ ОБРАТНОЙ КИНЕМАТИЧЕСКОЙ ЗАДАЧИ
Первой особенностью является специфика мультиинтервальных вычислений тригонометрических
функций. В результате вычислений могут появляться интервалы, в которых не лежат решения. Это может
произойти, например, при вычислении функция arccos. С каждой итерацией такие интервалы будут
отсекаться, однако на последней итерации мы можем получить лишний интервал. Как правило, это может
быть связано с наличием в мультиинтервале двух близколежащих, но все же различных интервалов, один из
которых порожден arccos и не был отброшен.
Вторая особенность связана с тем, что уже в случае трёх звеньев задача, очевидно, имеет бесконечно
много решений за исключением некоторых частных случаев. Зачастую в случае принципиально
бесконечного числа решений процесс Н-вычислений не приводит к окончательному уточнению значений
переменных, оставляя полученные решения в виде грубых интервалов. Даже если задавать начальные
условия (интервалы) достаточно чётко, то они все равно могут содержать бесконечное множество решений,
пусть и близких. Иными словами, мы можем надеяться получить приемлемую точность решения, только
если будут заданы довольно точные начальные условия. Причем иногда эта ситуация наблюдается и в
«простых» случаях, когда количество решений ограничено.
Это можно показать на примере решения уравнения x=2sin(x). Оно имеет три решения, однако, если
начальные
условия
на
x
задать
как
[-10; 10], то – результат получится слишком грубым, хотя и правильным – [-2; 2]. Если же задать более
точно
начальные
условия
(x={[-3;-1.7] [-0.5;0.5] [1.7;3]}), то будут найдены достаточно точные решения:
x = [0, 410-16] [1.89549, 1.89549]
10. ЗАКЛЮЧЕНИЕ
Разумеется, рассмотренные выше задачи являются типичными не только для робототехники. Однако,
несмотря на их разноплановость, существуют некоторые принципиальные «робототехнические» требования
к их решениям: минимизация вычислительных затрат и гарантированное получение хотя бы
приблизительного решения.
Применение Н-моделей вполне отвечает этим требованиям. Кроме того, как было
продемонстрировано, применение Н-моделей позволяет простым и естественным образом описывать задачу.
Однако существует ряд специфических проблем применения этого метода, прежде всего – получение
слишком грубых диапазонов решений в некоторых ситуациях. Это характерно и для решения задачи
ориентации робота по маякам, и для решения обратной кинематической задачи. Причем в задаче ориентации
требуется серьезное уточнение начального угла ориентации, для чего приходится предварительно
применять весьма трудоемкий метод окружностей.
Хуже обстоит дело в случае принципиальной неоднозначности решения задачи, как в обратной
кинематической задаче многозвенного манипулятора. В таких задачах уточнение начальных интервалов
помогает далеко не всегда. Отчасти это связано с особенностями работы с обратными тригонометрическими
функциями и с неизбежными вычислительными погрешностями, приводящими иногда к бесконтрольному
увеличению мощности мультиинтервалов, отчасти – с самими ограничениями, присущими Н-вычислениям.
Тем не менее, описанные Н-вычисления являются вполне работоспособными и, главное, достаточно
пригодными для применения в реальных бортовых робототехнических системах.
Литература
1.
2.
3.
Нариньяни А.С. Недоопределенность в системах представления и обработки знаний // Известия АН СССР:
Техническая кибернетика. –1986. – № 5. – С.3–28.
Нариньяни А.С., Телерман В.В., Ушаков Д.М., Швецов И.Е. Программирование в ограничениях и
недоопределенные модели // Информационные технологии. – 1998. – №7. – C.13-22.
Засед
В.В.
Алгоритм
управления
тележкой
мобильного
робота:
http://www.roboclub.ru/master/2005/07/01/algorithm_89.html
Download