- •П. К. Лопатин Интеллектуальные манипуляционные роботы
- •Предисловие
- •Введение
- •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.2. Планирование пути методом полиномиальной аппроксимации
Рассмотрим наиболее простой случай планирования пути манипуляторов. Пусть в начальный момент времени t0 манипулятор находится в некоторой конфигурации q0. В момент времени T он должен прибыть в конфигурацию qT. Находясь в точке q0, манипулятор покоится, т. е. обобщенные скорости и ускорения равны 0. По прибытии в qT обобщенные скорости и ускорения манипулятора также должны быть равны 0. Примем, что t0 = 0 и T = 1. Будем также считать, что в рабочей зоне манипулятора препятствия отсутствуют. Необходимо спланировать путь, удовлетворяющий указанным выше условиям. Сформулируем задачу планирования пути математически. Необходимо найти вектор-функцию q(t), удовлетворяющую следующим условиям:
q(t0) = q0; (3.4)
q(T) = qT; (3.5)
(t0) = 0; (3.6)
(T) = 0; (3.7)
(t0) = 0; (3.8)
(T) = 0. (3.9)
Будем считать, что вектор q(t) состоит из n компонент qi(t), i=1,…,n. Очевидно, что каждая компонента вектора q(t) должна удовлетворять условиям (3.4) – (3.9), поэтому найдем формулу для произвольной i-й компоненты, и эта формула будет пригодна для всех компонент вектора q(t).
Представим i-ю компоненту вектора q(t) в виде полинома:
qi(t) = a0t0 + a1t1 + a2t2 + ... + amtm, i=1,...,n. (3.10)
К оэффициенты aj, j = 0,...,m неизвестны и подлежат определению. Поскольку qi(t) должна удовлетворять шести условиям (3.4)–(3.9), примем m = 5. Тогда получим систему (3.11), состоящую из 6 уравнений с 6 неизвестными коэффициентами:
или
Решая эту систему, получим
. (3.13)
Итак, получаем выражение для i-й компоненты вектора q(t):
qi(t) = qi0 + 10(qiT – qi0)t3 – 15(qiT – qi0)t4 + 6(qiT – qi0)t5, (3.14)
где i = 1,…,n. Эту формулу можно применять для описания любой компоненты вектора q(t) – достаточно лишь подставить в нее соответствующие значения qi0 и qiT, i =1,…,n.
Продифференцировав формулу (3.14) один раз, получим выражение для i-й обобщенной скорости:
i(t) = 30(qiT – qi0)t2 – 60(qiT – qi0)t3 + 30(qiT – qi0)t4, (3.15)
где i = 1,…,n.
Теперь продифференцируем один раз формулу (3.15) и получим выражение для i-го обобщенного ускорения:
i(t) = 60(qiT – qi0)t – 180(qiT – qi0)t2 + 120(qiT – qi0)t3, (3.16)
i = 1,...,n.
Читателю предоставляется возможность самому убедиться, что формулы (3.14)–(3.16) удовлетворяют условиям (3.4)–(3.9).
3.3. Планирование пути с учетом ограничений на положение, скорость и ускорение
Рассмотрим метод планирования пути, учитывающий ограничения на обобщенные координаты, скорости и ускорения (3.1)–(3.3).
Поставим задачу: найти вектор-функцию q(t), чтобы она удовлетворяла следующим условиям:
q(t0) = q0, (3.17)
q(T) = qT, (3.18)
q(t) a1, (3.19)
–q(t) –a2, (3.20)
(t) b1, (3.21)
– (t) –b2, (3.22)
(t) w1, (3.23)
– (t) –w2. (3.24)
Каждую компоненту вектора q(t) будем искать в виде полинома степени m:
qi(t) = c0t0 + c1t1 + c2t2 + ... + cmtm, (3.25)
i = 1, … , n. Коэффициенты cj, j = 0, ... , m подлежат определению.
Заметим также, что
i(t) = c00 + 1c1t0 + 2c2t1 + ... + mcmtm-1, (3.26)
i(t) = c00 + c10 + 21c2t0 + ... + m (m-1) cmtm-2. (3.27)
i = 1, … , n.
Требования (3.17)–(3.24), которым должна удовлетворять qi(t), запишем в виде следующих выражений:
c0t00 + c1t01 + c2t02 + ... + cmt0m = qi0, (3.28)
c0T0 + c1T 1 + c2T2 + ... + cmTm = qiT, (3.29)
c0t0 + c1t1 + c2t2 + ... + cmtm ai1, (3.30)
–c0t0 – c1t1 – c2t2 – ... – cmtm –ai2, (3.31)
c00 + 1c1t0 + 2c2t1 + ... + mcmtm-1 bi1, (3.32)
–c00 – 1c1t0 – 2c2t1 – ... – mcmtm-1 –bi2, (3.33)
c00 + c10 + 21c2t0 + ... +m(m–1) cmtm-2 wi1, (3.34)
–c00 – c10 – 21c2t0 – ... –m(m–1) cmtm-2 –wi2. (3.35)
Неравенства (3.30)–(3.35) должны выполняться для любого t[t0,T]. Выделим из отрезка [t0,T] k моментов времени t0, t1, ..., tk-1= T (чем больше k, тем лучше) и получим системы
c0t00 + c1t01 + c2t02 + ... + cmt0m = qi0, (3.36)
c0T0 + c1T 1 + c2T2 + ... + cmTm = qiT, (3.37)
(3.38)
(3.39)
(3.40)
(3.41)
(3.42)
(3.43)
В каждой системе (3.38)–(3.43) содержится по k неравенств. Каждое неравенство соответствует определенному моменту времени tk[t0,T]. В уравнениях (3.36), (3.37) и системах неравенств (3.38)–(3.43) неизвестными являются величины cj, а коэффициенты при них известны.
Запишем величины cj в вектор неизвестных величин, а коэффициенты при них в матрицу:
. (3.44)
Определитель матрицы в этой формуле равен нулю, так как в ней есть одинаковые строки.
Итак, получили систему неравенств вида
. (3.45)
Чтобы преобразовать неравенства в равенства, введем в каждое неравенство по одной новой переменной, умноженной на 1, тогда A и x преобразуются к виду
. (3.46)
Определитель этой матрицы уже не равен нулю, так как все строки в ней различны. Последние (f–2) переменных должны подчиняться условию
xg+1 0, xg+2 0, ... , xg+(f-2) 0. (3.47)
Для того, чтобы можно было решить систему (3.46), число неизвестных в ней должно быть равно числу строк в матрице, т. е. f. У нас число неизвестных равно g + f–2. Придадим (g–2) нижним переменным произвольные значения, соблюдая условие (3.47). Эти (g–2) переменных становятся константами. Получаем
(3.48)
или
. (3.49)
Из этой системы находим xj, j = 1,...,f. Вместе с вычисленными нами константами xg+1, xg+2, ... , xg+(f-2) найденные величины и будут составлять искомый вектор (c0, c1, c2, ... , cm).