- •П. К. Лопатин Интеллектуальные манипуляционные роботы
- •Предисловие
- •Введение
- •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. Иерархия уровней Управления роботами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Заключение
- •Учебное издание
- •Учебное пособие
7. Построение маршрута
Если в результате работы алгоритма получено, что qт достижима, тогда применяем единую область (строку) из матрицы TUR для построения маршрута.
1) Возьмем путь достижимости из матрицы TUR и на его основе будем двигаться от свободной области (строки) матрицы ETFR, которая включает в себя q0, к свободной области (строки) матрицы ETFR, которая включает в себя qт, т.е. движение в матрице TUR будет происходить с права налево или слева направо. Чтобы определить это, надо найти каким элементам матрицы TUR (строкам матрицы ETFR) принадлежат q0 и qT. Для этого выполним следующие шаги:
1.1) Определим, какой матрице TFR и LCR принадлежат точки.
1.2) Исходя из этой информации, и номеров плоскостей, в которых находятся эти точки, можно определить какой строке матрице ETFR они принадлежат.
1.3) Благодаря полученным данным найдем элемент матрицы TUR и определим направление, в котором они (объединенные свободны области) будут последовательно рассматриваться.
2) Рассмотрим все возможные области соединения в этих соседних областях (из матрицы ELCR). Из матрицы ELCR определим до каких областей из которых возможен переход в другую плоскость (если это необходимо для достижения qт) можно совершить меньше всего шагов в соответствии с путем LCR, используя методом уменьшения разницы координат. Для этого сделаем следующие шаги:
2.1) Определим какой матрице TFR и LCR принадлежит текущая точка.
2.2) Определим какой строке матрицы LCR принадлежит точка перехода на другую плоскость.
2.3) Определим количество шагов которые необходимо сделать, чтобы достичь из текущей точкой областей перехода между плоскостями из матрицы ELCR или qт (если эта последняя плоскость), двигаясь по соединенным областям в одной плоскости (из матрицы LCR) путем смещения по свободной области в ячейке (которые можно получить из TFR) пока не достигнем свободной области в соседней ячейке, затем переходим на следующую ячейку и смещаемся по ней и т.д.
Смещение по свободным областям в ячейке и переход из неё на следующую, будет происходить путем стремления свести разницы координат между текущей точкой и свободной областью в соседней ячейке (согласно информации из матрицы LCR) на этой плоскости к нулю.
Изменяем разницу координат так, чтобы свести её к нулю по каждой координате в соответствии со следующими приоритетами шага:
2.3.1) Изменить (+/-) три координаты xyz за один шаг
2.3.2) Изменить две координаты за шаг xy || xz || yz за шаг
2.3.3) Изменить одну координату x || y || z за шаг
2.4) Проверяем условие: Если по одной или двум из координат разница сведена к нулю, то соответственно приоритеты 2.3.1 и 2.3.2 не рассматриваются. Если все разницы сведены к нулю, то
- соседняя ячейка достигнута. Если есть еще ячейки, согласно матрице LCR, в которые необходимо сделать переход, чтобы достигнуть области перехода в другую плоскость, то стремимся к новой разнице между ячейками, переходим к шагу 2.3;
- область перехода в другую плоскость достигнута, переходим к шагу 2.5;
- qт (в случае если qт лежит в рассматриваемой плоскости, последнем элементе строки достижимости в матрице TUR) достигнута, переходим к шагу 2.6;
2.5) Перейдем на шаг 2.2 и рассмотрим следующую свободную область, из которой возможен переход в другую плоскость, пока не будут рассмотрены все свободные области.
2.6) Сравним полученные значения и выберем минимальное количество шагов необходимое для достижения области перехода на другую плоскость.
3) Сделаем шаг(и) и сместим текущую точку к области перехода на другую плоскость. Перейдем на другую плоскость.
4) Повторим шаги начиная с первого пока не будет достигнута последняя объединенная область матрицы TUR в которой находится точка qт. Если она достигнута, то перейдем к шагу 2.1, чтобы придти в qт.
Рассмотрим пример построения маршрута для трехмерного случая, который представлен на рисунке 4. Матрица TFR для этого случая приведена в Таблице 3. Построение маршрута представлено на рисунке 18.
Построим маршрут:
№ шага |
Координата: плоскость, строка 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 |
Рисунок 18 – Построение маршрута