- •П. К. Лопатин Интеллектуальные манипуляционные роботы
- •Предисловие
- •Введение
- •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. Иерархия уровней Управления роботами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Заключение
- •Учебное издание
- •Учебное пособие
8. Пример
Рассмотрим пример работы алгоритма трехмерного вертикального разделения ячеек. Путь дано пространство обобщенных координат с известными запрещенными точками, точками q0 и qT (рис. 19).
Рисунок 19 – Пространство обобщенных координат
1) Первоначальному поиску маршрута мешает запрещенные точки, расположенные на пути движения этого алгоритма. Радиус обхода не задан. Поэтому переходим к алгоритму разделения ячеек.
2) Построим матрицы TFR для каждой плоскости:
TFR1 |
TFR2 |
TFR3 |
||||||||||||||||||||||||||||||||||||
|
|
|
3) Построим матрицы LCR для каждой плоскости:
|
|
|
4) Построим матрицы ETFR для каждой плоскости:
|
|
|
5) Построим ELCR:
6) Построим матрицу TUR и проверим достижимость q0 и qT:
Так как точки q0 и qT принадлежат одной единой области, то они достижимы.
7) Построим маршрут (рис. 20):
№ шага |
Координата: плоскость, строка TFR, столбец TFR, номер узла (снизу вверх) |
Количество шагов |
1 |
1, 1, 1, 3 1, 3, 2, 3 Так как эти шаги равнозначны, то выберем первый |
1 1 |
2 |
2, 1,1, 2 |
1 |
3 |
3, 2,1, 1 qT достигнута |
1 |
Рисунок 20 – Построение маршрута
Библиографический список
1. Корицкий А.В., Алгоритм разделения ячеек. Отчет по гранту РФФИ №05-08-01199а. Красноярск. СибГАУ, 2007.
Примеры решения задач
Рассмотрим рабочую сцену
Точки, указанные на рабочей сцене, имеют следующие координаты:
E=(-40,30), F=(-40,130), G=(-20,130), H=(20,130), K=(40,130), L=(40,30), P=(20,30), R=(20,70), Q=(-20,70), S=(-20,40), T=(-40,30), W=(-20,30), N1=(-40,-1), N2=(40,-1), N3=(-40,-10), N4=(40,10).
Длина каждого звена – 25 точек.
Необходимо вычислить все конфигурации, в которых МР налегает хотя бы на одно препятствие. Расставим на звеньях МР системы координат в соответствии с алгоритмом Денавита-Хартенберга.
Поскольку МР двухзвенный, то его конфигурационное пространство будет двухмерным. Дискретизируем конфигурационное пространство, то есть наложим на него сетку (см.рис.2). Обобщённые координаты должны удовлетворять ограничениям
0o≤ qi<360o, i=1,2. (1)
Возьмём точку А, её координаты равны :
qA=(q1A, q2A)=(0o, 0o).
Это какая-то конкретная конфигурация МР (см. рис. 1). Теперь для этой конфигурации будем проверять каждую точку МР, принадлежит ли она внутренней области хотя бы одного препятствия.
Координаты точек Ро, Р1, Р2 в системе (x0, y0) вычисляем по формулам:
=0
=0
=
Если известны координаты rPi и r Pi+1 концов Рi и Рi+1 отрезка Pi Pi+1 , (i=0,1) (см. рис.3) , то вычисление координат произвольной точки Ai осуществляется по формуле:
= = ,
t[0;1]
Число точек на звене предлагается брать равным числу пикселов, образующих звено на экране. Звенья представляются отрезками прямых линий.
Теперь нужно вычислить координаты этой точки в системе координат, связанной с препятствием. Учитывая то, как расставлены системы координат на препятствиях, выведем формулы для получения координат точки в системах координат, связанных с препятствиями, из системы координат (x0, y0) (Таблица 1).
Таблица 1
xП1=x0+40 |
xП2=x0+20 |
xП3=x0-20 |
xП4=x0+40 |
yП1=y0-30 |
yП2=y0-70 |
yП3=y0-30 |
yП4=y0+10 |
Итак, получаем возможность вычислить координаты точки Aj в системе координат, связанной с препятствием.
Проверка того, принадлежит ли точка Aj внутренней области препятствия, осуществляется следующим образом. Рассмотрим произвольное препятствие (см. рис. ?). Пронумеруем вершины так, как показано на рис. ?.
Если
хпо≤ ≤хп2
И (2)
упо≤ ≤уп1 ,
то точка Ai принадлежит внутренней области препятствия и, следовательно, вся конфигурация qA является запрещённой.
Итак, берём поочерёдно каждую из конфигураций, лежащих на узлах сетки рис.2 и, если хотя бы одна точка хотя бы одного звена манипулятора, находящегося в данной конфигурации, удовлетворяет соотношениям (1) хотя бы для одного препятствия, то такую конфигурацию считаем запрещённой.
Для рабочей сцены, приведенной на рис.1, был спланирован путь на основе алгоритма A*. Стартовая конфигурация q0=(0º, 0º), целевая конфигурация qT=(30º, 140º), шаг дискретизации равен 10º, длина каждого звена составляет 27 точек. Ограничения на обобщенные координаты соответствуют (1). Спланированный программой путь представлен на рис.5. Путь соединяет точки q0 и qT. Можно видеть, что значительная работа была потрачена на вычисление всех запрещенных конфигураций, большинство из которых манипулятор на своем пути не встретил. В декартовом пространстве путь выглядит так, как показано на рис. ?.