- •П. К. Лопатин Интеллектуальные манипуляционные роботы
- •Предисловие
- •Введение
- •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. Иерархия уровней Управления роботами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Заключение
- •Учебное издание
- •Учебное пособие
Алгоритм
Перед началом работы Алгоритма n=0 и, соответственно, qn=q0.
ШАГ1. При нахождении МР в qn, n=0,1,2,… его СС доставляет информацию об r-окрестности точки qn и формируются множества Y(qn), Z(qn), Q(qn). Затем вызывается процедура ПИ (qn, qT, ), которая генерирует путь L(qn, qT). Переход на ШАГ2.
ШАГ2. МР начинает двигаться вдоль L(qn, qT). При движении по L(qn, qT) возможны два исхода:
а) МР не встретит ранее неизвестных запрещённых состояний и, как следствие, достигнет qT. По достижении qT Алгоритм заканчивает свою работу.
б) МР придёт в такую точку (предварительно выполнив n:=n+1, обозначим её qn, n=1, 2,…), что следующая точка исполняемого пути является запрещённой. Переход на ШАГ1. Конец Алгоритма.
Теорема. Если МР будет двигаться по вышеприведенному Алгоритму, то он перейдет из q0 в qT за конечное число шагов.
Доказательство. Так же, как и в доказательстве [ису20011] необходимо показать, что число точек смены пути будет конечным и они все будут различными.
Показывается, что они различные.
Что их число конечно.
Поскольку число точек смены пути конечно, то в последней точке смены пути МР спланирует новый путь, при исполнении его не появится новая точка смены пути и qT будет достигнута за конечное число шагов в силу конечности длины пути.
Результаты моделирования
Разработано программное обеспечение (ПО) на основе точного алгоритма. Приведем результаты работы ПО на следующем тестовом примере (Рис. 2). Требовалось передвинуть плоский двузвенный манипулятор из q0=(1.57; 0.8)(радиан) в qT=(3.2; 0.8)(радиан). Манипулятор движется в плоскости xOy. Длина каждого звена составляет 60 пикселов. В рабочей зоне имеется три прямоугольных препятствия: O1, O2 и O3. Координаты начал A, B, C систем координат, связанных с препятствиями O1, O2, O3 соответственно, в базовой системе координат составляют: (xA= -105, yA=0), (xB= -90, yB=60), (xC= -20, yC=0). Координаты точки D каждого из препятствий определены в системе координат, привязанной к препятствию, и в каждой из этих систем равны (xD=40, yD=40). Гиперпараллелепипед (1) для д анного случая предстает в виде (2) (числа даны в радианах).
Мы уже упоминали о том, что задача управления манипуляторами в неизвестной среде сводится к решению конечного числа задач планирования траектории манипулятора в среде с известными запрещенными точками. В качестве алгоритма для решения задачи планирования траектории в известной среде мы выбрали алгоритм полного перебора [9, стр.55]. Поскольку этот алгоритм может быть применен только для дискретизированного пространства конфигураций, введем дискретизацию. Величина delta дискрета по каждой обобщенной координате qi, i=1,2, вычисляется следующим образом:
delta=(0+6.28)/количество_дискретов (3),
то есть мы суммируем минимальную и максимальную величины по i-той обобщенной координате и делим результат на количество дискретов, лежащих между минимальной и максимальной величинами по i-той (i=1,2) обобщенной координате. Время работы точного алгоритма для различных delta приведено в Таблице 1. Программное обеспечение написано на языке C и тестировалось на процессоре AMD Athlon XP 1800+ 1.533 GHz. Как можно видеть, цель достигалась во всех случаях, но использование алгоритма полного перебора ведет к существенным временным затратам с уменьшением delta.
В связи с этим требуется либо модифицировать алгоритм полного перебора, учитывая, что поначалу запрещенных точек обнаружено немного, либо использовать другие алгоритмы в качестве алгоритма планирования траектории в среде с известными запрещенными состояниями.
Таблица 1.
№ |
delta, ˚ |
t, секунд |
|
№ |
delta, ˚ |
t, секунд |
1 |
9 |
67 |
6 |
3 |
159 |
|
2 |
8 |
74 |
7 |
2 |
412 |
|
3 |
6 |
81 |
8 |
1.5 |
1139 |
|
4 |
4.5 |
94 |
9 |
1 |
5968 |
На Рис.3. приведены все конфигурации из пути движения манипулятора к целевой конфигурации (для случая delta=9˚).
Работа сенсорной системы имитировалась программой. Для текущей конфигурации qn (n=0,1,2,…) Y(qn) представляло собой 3n-1 соседних к qn конфигураций. На каждом звене выделялось 20 точек. Конфигурация заносилась в множество Z(qn), если ни одна точка ни одного звена не принадлежала внутренней области ни одного препятствия и она удовлетворяла ограничениям (1), в противном случае конфигурация заносилась в Q(qn).
Теперь рассмотрим движение манипулятора в конфигурационном пространстве. На Fig.4. показано конфигурационное пространство, определенное условиями 0<=qi<=6.28 rad, i=1,2. Разрешенные конфигурации показаны маленькими точками, конфигурации, пересекающиеся с препятствиями, показаны жирными точками. Таким образом, мы показываем все запрещенные конфигурации из конфигурационного пространства и наблюдатель (но не робот) может видеть все существующие запрещенные точки.
На Fig.5. показаны все запрещенные конфигурации, обнаруженные манипулятором во время его движения. Они показаны окружностями вокруг жирных точек. Таким образом, манипулятор обнаружил только некоторые из объективно существующих запрещенных точек.
На Fig.6. приведен путь, пройденный манипулятором. Он показан окружностями вокруг обычных точек, что закономерно, поскольку путь состоит из разрешенных точек. На Fig.7. путь показан в увеличенном виде.
q2
очки пути пронумерованы, точка q0 имеет номер 0, точка qT имеет номер 42.