- •П. К. Лопатин Интеллектуальные манипуляционные роботы
- •Предисловие
- •Введение
- •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. Иерархия уровней Управления роботами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Заключение
- •Учебное издание
- •Учебное пособие
3.4. Планирование траектории с учетом динамики манипулятора
Методы планирования траектории, приведенные в предыдущих параграфах, имеют следующий недостаток: пусть мы нашли q(t), но когда подставим q(t) в уравнение динамики манипулятора
A(q(t), c) (t) + b(q(t), (t), c) = Q(t), (3.50)
то могут нарушиться условия
Qн Q(t) Qв (3.51)
в один или более моментов времени t. Здесь Qн – нижние ограничения на обобщенные силы, Qв – верхние ограничения.
Поэтому более приближенной к реальности была бы другая постановка задачи: найти вектор q(t), удовлетворяющий условиям
q(t0) = q0, (3.52)
q(T) = qT, (3.53)
a1 q(t) a2, (3.54)
b1 (t) b2, (3.55)
w1 (t) w2, (3.56)
A(q(t), c) (t) + b(q(t), (t), c) Qв, (3.57)
-[A(q(t), c) (t) + b(q(t), (t), c)] –Qн (3.58)
для каждого t[t0,T].
Решать эту задачу можно с помощью теории оптимального управления.
Сведение к задаче оптимального управления. Перед нами стоит задача: найти в пространстве обобщенных координат линию, соединяющую q0 и qT. Таких линий может быть бесконечное множество (рис. 3.2). Надо выбрать какую-то одну линию, и при этом возникает желание выбрать наилучшую (оптимальную), причем в каком-то смысле – иногда нужна самая короткая, иногда – требующая минимального расхода энергии, иногда – удовлетворяющая одновременно нескольким требованиям. Требование оптимальности надо научиться записывать в математическом виде. Поясним это на двумерном примере. Пусть нам надо выбрать траекторию с минимальной длиной (рис. 3.3). Для рассмотрения выберем наугад какую-нибудь линию. Ее длину обозначим L. Длина dLi маленького кусочка линии (этот кусочек считаем отрезком прямой) вычисляется по теореме Пифагора:
(dLi)2 = (dq1)2 + (dq2)2. (3.59)
Но, согласно определению производной, dqi = dt, тогда
dLi = dt. (3.60)
Длина всей линии складывается из этих кусочков:
L = dL1 + dL2 + ... + dLN = = =
= dt. (3.61)
В n-мерном случае квадрат длины элементарного кусочка
(dLi)2 = (dq1)2 + (dq2)2 + ... + (dqn)2. (3.62)
Тогда
dLi = dt. (3.63)
И длина всей линии
L = dL1 + dL2 + ... + dLN = = =
= dt (3.64)
или, в других обозначениях,
L = q(t), t)dt. (3.65)
Разные линии описываются разными вектор-функциями q(t). Будем подставлять разные формулы для q(t) и получать разные L, сообщающие нам о длине траектории. Поэтому требование об определении кратчайшей траектории математически можно сформулировать так: найти такую вектор-функцию q(t), при которой величина L будет принимать минимальное значение из всех возможных. Функция L называется функционалом.
Точно так же требование оптимальности в каком-либо другом аспекте выражают в виде требования найти вектор-функцию, сообщающую минимум соответствующему функционалу.
Для дальнейшего изложения необходимо привести уравнение динамики манипулятора (2.50) к нормальной форме. Для этого запишем его в следующем виде:
(t) = A-1(q(t), c)[Q(t) - b(q(t), (t), c)], (3.66)
где A–1(q(t), c) – матрица, обратная к A(q(t), c).
Предполагаем, что A–1(q(t),c) существует в каждый момент времени t[t0,T].
Введем обозначения (3.67) и тогда, используя формулы (3.66) и (3.67), получим (3.68):
= = x(t), Q(t) = u(t), (3.67)
= =
= = . (3.68)
Запишем (3.68) в векторном виде:
(t)= f(x(t), u(t), t). (3.69)
Уравнение (3.69) представляет собой систему из 2n обыкновенных дифференциальных уравнений первого порядка и называется уравнением динамики в нормальной форме.
Как было сказано выше, q(t), (t), (t) не могут принимать произвольных значений, что можно выразить математически:
x(t)Gx, (3.70)
u(t)Gu, (3.71)
t[t0, T], (3.72)
где Gx, Gu – некоторые множества.
Теперь мы можем сформулировать задачу оптимального управления: найти такие x(t) и u(t), которые удовлетворяли бы уравнению динамики
(t) = f(x(t), u(t), t), (3.73)
краевым условиям
x(t0) = x0, (3.74)
x(T) = xT, (3.75)
ограничениям
x(t)Gx, (3.76)
u(t)Gu, (3.77)
t[t0, T], (3.78)
и сообщали минимум некоторому функционалу
J = x(t), u(t), t)dt, (3.79)
где минимизация функционала выражает требование оптимальности в каком-то аспекте.
Следует сказать, что до сих не предложено методов, гарантирующих решение этой задачи. Однако в 1956 г. Л. С. Понтрягин сформулировал необходимое условие оптимальности (называемое также принципом максимума Понтрягина [1]), позволяющее в некоторых случаях находить оптимальное управление.
Принцип максимума Понтрягина в поиске оптимальных траектории и управления. Выведем численную схему поиска оптимальных траектории и управления. Пусть требуется найти такие x(t) и u(t), которые бы удовлетворяли уравнению динамики (3.73), краевым условиям (3.74), (3.75), ограничениям (3.76)-(3.78) и сообщали бы минимум функционалу (3.79).
Обозначим функционал (3.85) через следующую формулу:
x0(t) = x(t), u(t), t)dt. (3.80)
Тогда
= f0(x(t), u(t), t). (3.81)
Теперь будем рассматривать (n+1)-мерный вектор
(t) = (x0(t), x1(t), ... , xn(t)). (3.82)
Кроме того, будем рассматривать вектор неизвестных функций:
(t) = (0(t), 1(t), ... , n(t)), (3.83)
но таких, что
= – 0(t) – 1(t) – ... – n(t) . (3.84)
Запишем функцию H, называемую гамильтонианом:
H( (t), (t), u(t)) = 0(t)f0(x(t), u(t), t) + 1(t)f1(x(t), u(t), t) + ...+
+ n(t)fn(x(t), u(t), t). (3.85)
Теперь мы можем сформулировать сам принцип максимума Понтрягина: оптимальное управление придает функции H максимум в каждый момент времени t[t0, T].
Поясним смысл этого принципа. Рассмотрим всевозможные управления u(t), и пусть нам откуда-то известно, что u*(t) – оптимальное управление. Тогда для любого u(t) и для любого t будет верно неравенство
H(u*(t)) H(u(t)).
Путем непосредственной проверки можно убедиться в том, что
, i = 0,1, ... , n (3.86)
и
, i = 0,1, ... , n. (3.87)
Согласно определению производной,
= |в других обозначениях| =
= , i = 0,1,…,n. (3.88)
По аналогии с (3.88)
, i = 0,1, … , n. (3.89)
Заметим также, что и есть некоторые функции. Обозначим = ( (t), (t), u(t)) и = ( (t), (t), u(t)). Тогда система (3.86) – (3.87) примет вид
( tk), (tk), u(tk))(tk+1– tk), i = 0,1, ... , n, (3.90)
( tk), (tk), u(tk))(tk+1– tk), i = 0,1, ... , n. (3.91)
Формулы (3.90)–(3.91) и представляют численную схему расчета оптимальных траектории и управления. Опишем порядок ее использования.
Пусть k = 0. Вектор (t0) известен:
(t0) = x0,
а вектор (t0) неизвестен. Придадим его компонентам произвольные значения. Функции и зависят также от u(t). Вектор u(t0) тоже неизвестен. Определим его, используя принцип максимума, т. е. найдем тот вектор чисел u(t0), который придает функции H в момент t0 максимум (эта задача решается методами оптимизации) и удовлетворяет условию (3.77). Если такое управление найти невозможно, то задача нахождения оптимальных траекторий и управления в данном случае не может быть решена. Определив u(t0), получим оптимальное управление в момент t0. Затем подставим (t0), (t0), u(t0) в систему уравнений (3.90)–(3.91) и получим (t1) и (t1). Проверяем, удовлетворяет ли (t1) условию (3.76). Если нет, то задача нахождения оптимальных траекторий и управления в данном случае не может быть решена. Если да, то выполняем k = k + 1 и переходим к поиску (tK), (tK), (tK).
Вычисляя (t0), (t1), ..., получим, наконец, (T). Может оказаться, что мы получим
(T) T,
т. е. оптимальная траектория и, соответственно, оптимальное управление, найдены не будут. Это происходит из-за того, что (t0) был неизвестен, и мы взяли его произвольным. В этом случае надо взять вектор
+
и повторить процесс. Проблема в том, что мы не знаем, как правильно выбрать . Попытки решения этой проблемы обсуждаются [1].
Если же мы вычислим ( (t), u(t)), удовлетворяющие требованиям (3.73) – (3.79), то тем самым мы найдем (q(t), Q(t)), переводящие манипулятор из q0 в qT оптимальным образом.