- •П. К. Лопатин Интеллектуальные манипуляционные роботы
- •Предисловие
- •Введение
- •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. Предварительный поиск маршрута
Предварительный поиск маршрута осуществляется перед началом построения алгоритма разделения ячеек, чтобы сократить затраты времени и ресурсов на работу алгоритма если задача поиска маршрута не является слишком сложной, с большими свободными областями и малым количеством запрещенных точек.
Рассмотрим шаги алгоритма предварительного поиска маршрута:
1) Определить разницу координат между qт и q0;
2) Изменяем разницу координат так, чтобы свести её к нулю по каждой координате в соответствии со следующими приоритетами шага:
2.1) Изменить (+/-) три координаты xyz за один шаг;
2.2) Изменить две координаты за шаг xy || xz || yz за шаг;
2.3) Изменить одну координату x || y || z за шаг;
3) Проверяем условия:
3.1) Если выбранный в соответствии с приоритетом шаг сделать невозможно из-за помехи в виде запрещенной точки, то приоритет шага понижается. Если приоритет достиг минимума (2.3) и все равно на пути находится препятствие, то производится попытка обойти препятствие (если первоначально задано значение радиуса обхода R) происходит «ощупывание» - проверка соседних областей на наличие возможности обойти препятствие и продолжить путь к qт путем уменьшения разности координат.
3.1.1) Если такая точка найдена, то совершим S шагов (их количество задается предварительно) в этом направлений и продолжаем движение к qт путем уменьшения разности координат.
3.1.2) Если значение радиуса проверено и дальнейший путь не найден, то переходим к алгоритму разделения ячеек.
3.2) Если по одной или двум из координат разница сведена к нулю, то соответственно приоритеты 2.1 и 2.2 не рассматриваются. Если все разницы сведены к нулю, то qт достигнута, иначе переходим к шагу 2.
Рассмотрим небольшой пример (рис. 3). Пусть задан радиус обхода R=1 и количество шагов S=1.
Первый шаг позволяет изменить две координаты за шаг. Сделать следующий шаг в направлении qт мешает запрещенная точка. Попробуем обойти препятствие используя радиус обхода. В одном из случаев возможен обход препятствия. Сделав шаг S в этом направлении вернемся к изменению разницы координат. Совершим следующий и последний шаг в направлении qт и она будет достигнута без применения алгоритма разделения ячеек.
Рисунок 3 – Пример работы алгоритм предварительного поиска с обходом препятствия для двумерного случая
Рассмотрим пример для трехмерного случая, в котором не задан радиус обхода препятствия (рис. 4).
Рисунок 4 - Пример работы алгоритм предварительного поиска без радиуса обхода препятствия для трехмерного случая
Для достижения qт в соответствии с алгоритмом предварительного поиска необходимо сделать шаг из q0 вправо и вниз, только вправо или только вниз. Любому изменению в этих направлениях мешают запрещенные точки (рис. 5). Радиус обхода предварительно не был задан, поэтому алгоритм предварительного поиска не может построить маршрут и происходит переход к следующему шагу алгоритма разделения ячеек.
Рисунок 5 - Пример работы алгоритм предварительного поиска без радиуса обхода препятствия для трехмерного случая
Если же радиус обхода был задан, например R=1 и количество шагов S=1, то алгоритм предварительного поиска смог выбраться из тупика и построить маршрут (рис. 6).
Рисунок 6 - Пример работы алгоритм предварительного поиска с обходом препятствия для трехмерного случая