- •П. К. Лопатин Интеллектуальные манипуляционные роботы
- •Предисловие
- •Введение
- •1. Кинематика манипуляторов
- •1.1. Манипулятор как система твердых тел
- •1.2. Кинематика произвольного движения тела,
- •1.3. Кинематика поступательного движения тела
- •1.4. Кинематика произвольного движения твердого тела
- •1.5. Характер связей между звеньями
- •1.6. Расстановка систем координат по алгоритму Денавита-Хартенберга
- •1.7. Вывод матрицы перехода от I-й к (I–1)-й системе координат
- •1.8. Уравнение кинематики манипулятора
- •1.9. Скорость и ускорение некоторой точки манипулятора
- •Правая часть (1.45), если k j, k I;
- •0, Если k j.
- •1.10. Прямая задача кинематики
- •1.11. Обратная задача кинематики
- •Примеры решения задач
- •Разделим уравнение (1.71) на (1.72). Получим
- •Задачи для самостоятельного решения
- •Библиографический список
- •2.1. Уравнения Лагранжа II рода
- •2.2. Кинетическая энергия манипулятора
- •Поскольку интеграл – это сумма, то формулу (2.3) можно записать в виде уравнения
- •Из (1.36) следует, что
- •Из формулы (1.42) видно, что
- •2.3. Потенциальная энергия манипулятора
- •2.4. Уравнение динамики манипулятора
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3. Планирование путей, траекторий и управление манипуляторами
- •3.1. Понятие пространства обобщенных координат.
- •Постановки задачи
- •3.2. Планирование пути методом полиномиальной аппроксимации
- •Решая эту систему, получим
- •3.3. Планирование пути с учетом ограничений на положение, скорость и ускорение
- •3.4. Планирование траектории с учетом динамики манипулятора
- •Библиографический список
- •3.5. Исполнение траектории
- •Библиографический список
- •Библиографический список
- •3.6.1. Алгоритм полного перебора
- •Библиографический список
- •3.6.2. Алгоритм перебора в глубину
- •3.6.3. Алгоритм а*
- •Библиографический список
- •3.6.4. Алгоритм фронта волны
- •Библиографический список
- •3.6.5. Алгоритм полиномиальной апроксимации
- •Библиографический список
- •3.6.6. Диаграммы вороного
- •Библиографический список
- •3.6.7. Алгоритм разделения ячеек
- •1. Предварительный поиск маршрута
- •2. Разделение плоскости на свободные области
- •3. Соединение свободных областей
- •4. Объединение свободных соединенных областей
- •5. Соединение свободных областей на соседних плоскостях
- •6. Создание объединенных областей и проверка достижимости
- •7. Построение маршрута
- •8. Пример
- •Библиографический список
- •Примеры решения задач
- •3.7. Управление манипуляторами в среде с неизвестными препятствиями
- •Библиографический список
- •Алгоритм
- •3.8. Иерархия уровней Управления роботами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Заключение
- •Учебное издание
- •Учебное пособие
Библиографический список
1. Лопатин П.К., Звягин П.А., Применение в точном алгоритме управления манипуляционными роботами в неизвестной среде алгоритмов полного перебора и фронта распространения волны// Актуальные проблемы защиты и безопасности. Экстремальная робототехника. Труды Девятой Всероссийской научно-практической конференции. Том 5. НПО Специальных материалов. Санкт-Петербург. 2006, стр.307-313.
2. Barraquand J., Latombe J.-C. Robot Motion Planning: A Distributed Representation Approach // Int. J. of Rob. Res., Vol. 10, No. 6, December 1991. — Pp. 628–649.
3.6.5. Алгоритм полиномиальной апроксимации
Рассмотрим алгоритм полиномиальной аппроксимации [2]. Пусть дано n-мерное пространство конфигураций, в котором имеются запрещённые точки p1, p2, …, pM. Необходимо найти путь в пространстве обобщённых координат, описываемый вектор-функцией q(t), который соединял бы заданные начальную точку q0 и целевую точку qT, ни одной своей точкой не налегал бы ни на одну из запрещённых точек и удовлетворял бы ограничению qL ≤ q(t) ≤ qH. Пусть t [t0; T], t0 = 0, T = 1, q(0) = q0 и q(1) = qT.
Пространство обобщённых координат дискретизировано с шагом Δq по всем координатам, т.е. q может принимать только значения, попадающие в узлы n-мерной сетки. Найденный путь должен представлять последовательность q0, q1, …, qT, соседние элементы которой должны отличаться не более чем на один шаг по каждой координате.
Обозначим компонеты вектор-функции q(t) = (q1, q2,…, qn), тогда ограничения примут следующий вид:
qj(0) = q0j, qj(1) = qT, j = 1, 2, … , n. (3.109)
qLj ≤ qj(t) ≤ qНj, j = 1, 2, ... , n. (3.110)
Препятствия зададим в виде гиперсфер с центром в точках (qpm1, qpm2, … , qpmn) и радиусом r = (Δq / 2) ∙ 1.1, где qpmi есть соответствующие компоненты векторов pm, m = 1, 2, …, M. Тогда условие неналегания пути на препятствия можно записать так:
(3.111)
Будем искать путь в виде полиномов некоторой степени s:
, (3.112)
здесь cji – неизвестные коэффициенты, требующие определения.
Подставим в (3.112) значения t = 0 и t = 1:
qj(0) = cj0 + cj1 ∙ 0 + cj2 ∙ 02 + … + cjs ∙ 0s = cj0
qj(1) = cj0 + cj1 ∙ 1 + cj2 ∙ 12 + … + cjs ∙ 1s = cj0 + , (3.113)
j = 1, 2, …, n.
С учётом ограничений (3.109) можно записать:
cj0 = q0j (3.114)
= qTj – q0j , j = 1, 2, …, n (3.115)
Разобьём отрезок времени [0; 1] на K + 1 отрезков, получив между t = 0 и t = 1 K промежуточных точек t1, t2, …, tK. Тогда ограничения (3.110) и (3.111) запишутся в следующем виде:
≥ qLj , j = 1, 2, …, n
≤ qHj , j = 1, 2, …, n (3.116)
≥ r2,
m = 1, 2, …, M, k = 1, 2, …, K.
Таким образом, необходимо найти такие коэффициенты cji (при j = 1, 2, …, n; i = 1, 2, …, s), которые являются решением системы уравнений (3.114), (3.115) и неравенств (3.116). Очевидно, коэффициенты cj0 легко находятся из уравнений (3.114). Выразим из уравнений (3.115) коэффициенты cjs:
Подставим cj0 и cjs в (3.116):
(3.117)
Итак, необходимо решить систему из (M + 2n)·K нелинейных неравенств. Эту задачу можно свести к задаче оптимизации некоторой функции F(C):
(3.118)
где C – вектор коэффициентов (c1,1, c1,2, …, с1,s-1, c2,1, c2,2, …, с2,s-1,…, cn,1, cn,2, …, cn,s-1), задающий путь, E(C) – мера нарушения ограничений путём, P(C) – оценка вероятности того, что путь не налегает на неизвестные препятствия.
Зададим функцию E(C). Ввведём функцию, определяющую j-ю координату точки траектории, заданной вектором C, в момент времени t:
(3.119)
Зададим функции, соответствующие неравенствам системы ограничений и показывающие нарушение нижней и верхней границ и налегание на препятствия траектории в момент времени t:
(3.120)
Теперь объединим все ограничения в одну функцию (с учётом всех дискретных моментов времени, за исключением t = 0 и t = 1):
. (3.121)
Таким образом, функция E(C) принимает отрицательные значения, если хотя бы одно ограничение нарушено, и устанавливается в ноль в противном случае, т.е. если вектор коэффициентов C удовлетворяет всем неравенствам системы (3.117).
Для того чтобы можно было сравнить двапути, не нарушающие ограничения и не налегающие на препятствия, была введена функция P(C), значение которой – оценка вероятности того, что путь не налегает на неизвестные препятствия. Она вычисляется следующим образом. Будем считать, что вероятность встретить неизвестное препятствие в некоторой точке равна
p(d) = e-2d, (3.122)
где d – расстояние до ближайшего известного препятствия.
Тогда
, (3.123)
где {O1, O2, …, OM*} – множество препятствий, мимо которых пролегает траектория, – расстояние от пути С до препятствия O.
Мимо препятствия O проходит путь, если найдётся такая точка пути L(tk), что для неё препятствие O ближе, чем остальные препятствия. Использование функции P(C) будет способствовать тому, чтобы алгоритм генерировал пути, которые проходят, по возможности, далеко от обнаруженных препятствий.
Для оптимизации функции F(C) предлагается использовать генетический алгоритм. В основе генетического алгоритма [1] лежит коллективный процесс обучения внутри популяции индивидов, каждый из которых представляет собой поисковую точку пространства. В нашем случае таким пространством является пространство векторов C. Кодирование вектора в индивиде осуществляется следующим образом. По каждой компоненте вектора задаётся интервал, значения из которого она принимает. Этот интервал разбивается на некоторое количество дискретных узлов. Таким образом, каждой компоненте вектора сопоставляется номер узла, соответствующий её значению. Индивид образуется последовательностью этих номеров в бинарном представлении.
Общая схема алгоритма:
Генерация случайным образом начальной популяции.
Вычисление пригодности индивидов.
Селекция индивидов в промежуточную популяцию.
С вероятностью Pc выбрать случайным образом из промежуточной популяции двух индивидов, произвести скрещивание и потомка поместить в популяцию потомков; а с вероятностью 1-Pc выбрать случайным образом из промежуточной популяции индивида и поместить его в популяцию потомков.
Если размер популяции потомков меньше N, перейти на шаг 4.
Инвертировать каждый бит каждого индивида из популяции потомков с заданной вероятностью мутации Pм.
Популяция потомков переходит в следующее поколение.
Если еще не прошло нужное количество поколений, перейти на шаг 2.
На 3-ем этапе применяется турнирная селекция. В качестве пригодности индивидов используется функция F(C). В процессе селекции проводится N турниров (N – размер популяции) среди случайно выбранных m индивидов (m – размер турнира), наилучший из которых переходит в следующее поколение.
На 4-ом этапе применяется арифметическое скрещивание. Из двух родителей получается один потомок, компоненты которого находятся как среднее арифметическое соответствующих компонент родителей.
После того, как найдены коэффициенты полиномов, определяющих путь, необходимо получить последовательность дискретных точек этого пути q0, q1, …, qT. Первая точка (q0) известна из исходных данных. Остальные точки найдём по следующему алгоритму:
t = 0; i = 0.
tH = 1.
t* = (t + tH) / 2.
Определить точку q* c координатами (q*1, q*2, …, q*n), в окрестности которой лежит путь в момент времени t*:
q*j - q/2 ≤ qj(t*) < q*j + q/2, j = 1, 2, …, n.
Если q* совпадает с qi, то t = t*, перейти на шаг 3.
Если q* не является соседней по отношению к qi, то tH = t*, перейти на шаг 3.
Если q* не является запрещённой, перейти на шаг 9.
Если qij - q ≤ qj(t*) ≤ qij + q j = 1, 2, …, n, где qij – координаты точки qi, то t = t*, иначе tH = t*. Перейти на шаг 3.
i = i + 1; qi = q*.
Если qi = qT, алгоритм завершён, иначе перейти на шаг 2.
Алгоритм полиномиальной аппроксимации применим для n-мерного пространства состояний, но не гарантирует нахождения пути.