Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
диплом v2.doc
Скачиваний:
5
Добавлен:
13.11.2019
Размер:
967.17 Кб
Скачать
      1. Определение параметров и переменных модели.

Рассмотрим параметры модели для алгоритма, описывающего движение манипулятора в среде с известными препятствиями.

Все входные и выходные параметры представляют собой точку на двухмерной обобщенной системе координат, поэтому каждый параметр имеет составляющие x и y.

Входные параметры:

  1. q0(x,y), qT(x,y) – стартовая и целевая конфигурации;

  2. mZap[z](x,y) - массив запрещенных точек;

  3. z - количество запрещенных точек;

  4. delta - шаг дискретизации;

  5. qL(x,y) и qH(x,y) – вектора нижнего и верхнего ограничения на обобщенные координаты.

Выходные данные:

  1. mRez[n](x,y) - массив точек конфигураций искомого пути;

  2. n - количество точек конфигураций искомого пути.

      1. Установление основного содержания модели.

Описание алгоритма двунаправленных графов [S.M. LaValle].

Известные препятствия задаются в виде геометрических фигур с n-вершинами, также известны координаты стартовой q0 и целевой qT конфигураций (рис. 1.5).

Рис. 1.5 Пространство обобщенных координат. Препятствия 1 и 2, стартовая q0 и целевая qT конфигурации.

  1. Проводится отрезок из стартовой конфигурации q0 в целевую qT. Если построенный отрезок не накладывается на препятствия, то этот отрезок есть искомый путь, а если отрезок налегает на препятствие, то делаем следующее.

    1. Нумеруем вершины препятствий от 1 до n.

    2. Соединяем точки всех вершин препятствий и точки стартовой и целевой конфигураций m-отрезками по принципу каждая с каждой.

Рис. 1.6 Стартовая точка q0 соединена со всеми вершинами препятствий

  1. Отрезки, которые, накладываются на препятствия, мы не рассматриваем. Рассматриваются отрезки, которые либо не накладываются на препятствия, либо принадлежат граням препятствия (рис. 1.7).

Рис. 1.7 Жирные линии – рассматриваемые отрезки, пунктирные линии – не рассматриваемые отрезки.

  1. Имеем k-путей из q0 в qT.Сравниваем их по длине и выбираем кратчайший, т.е. получаем искомый путь (рис. 1.8).

Рис. 1.8 Искомый путь обозначен штрихпунктирной линией.

Описание модифицированного алгоритма движения манипулятора в среде с известными статическими препятствиями:

В описании алгоритма используются понятия:

  • окрестная точка – точка, стоящая на расстоянии delta от текущей точки (рис. 1.9)

Рис. 1.9 Текущая точка qi имеет 8 окрестных точек.

  • Область запрещенных точек – совокупность точек, каждая из которых имеет хотя бы одну соседнюю точку, отстоящую не более чем на delta.

  1. Задаем входные параметры: q0(x,y), qT(x,y), mZap[z](x,y), delta, qL(x,y) и qH(x,y) (рис. 1.10).

Рис. 1.10 Система обобщенных координат, содержащая три запрещенные точки mZap[0], mZap[1], mZap[2].

  1. Получаем предварительный маршрут Pr[] – кратчайший путь от q0 к qT без учета запрещенных точек следующим образом:

    1. В начальный момент времени текущая конфигурация соответствует стартовой конфигурации qi = q0.

    2. Через точки qi и qT проводится прямая вида Ax+By+C=0.

    3. Из окрестных точек qi выбирается qi+1 та, которая «максимально приближена» к прямой Ax+By+C=0 и «максимально приближена» к qT.

Расстояние от точки qi до точки qT определяется по формуле:

(1)

Расстояние от точки до прямой Ax+By+C=0 определяется следующим образом:

коэффициенты прямой Ax+By+C=0:

A = YqT - Yq0,

B = Xq0 - XqT,

C = - Xq0*A - Yq0*B,

если С > 0, то M=-M.

Расстояние от точки qi до прямой Ax+By+C=0 определяется по формуле:

P = A*M* Xqi + B*M* Yqi + C*M; (2)

«Максимально приближенной» к прямой Ax+By+C=0 и «максимально приближенной» к qT является та окрестная точка, у которой значение Summa=P+D будет наименьшим.

    1. Выбранная точка записывается в массив предварительного маршрута mPr[i+1]= qi+1 и становится текущей точкой qi= qi+1.

    2. алгоритм переходит к п. 2.2 если текущая точка qi не достигла целевой qT.

Для данного случая получим (рис. 1.11).

Рис. 1.11 Система обобщенных координат. Точками 0-5 обозначены точки предварительного маршрута.

  1. Сравниваем массив предварительного маршрута с массивом всех запрещенных точек. Если точки предварительного маршрута не налегают на запрещенные точки, т.е. манипулятор при движении из q0 в qT не встречает препятствий, то массив предварительного маршрута mPr[] есть искомый массив mRez[] и алгоритм прекращает работу. В противном случае каждая запрещенная точка, на которую мы натолкнулись (в данном примере - mZap[2] и mZap[1]), считается точкой запрещенной области.

Из (рис. 1.11) видно, что точки 2 и 4 предварительного маршрута совпали с запрещенными точками mZap[2] и mZap[1] соответственно. Ни одна точка предварительного маршрута не натолкнулась на запрещенную точку mZap[0].

  1. Формируются массивы областей запрещенных точек (в данном примере – массивы областей точек mZap[2] и mZap[1]). Для каждой из этих запрещенных точек осуществляется проверка окрестности на наличие окрестных запрещенных точек. Если такие точки есть, то они объединяются в массивы областей запрещенных точек.

  1. Окружаем (помечаем) все запрещенные области разрешенными точками, т.е. берем каждую найденную запрещенную точку и окружаем ее разрешенными точками так, как показано на (рис. 1.12). Формируем массив разрешенных точек для каждой области запрещенных точек.

Рис. 1.12 Запрещенная точка MZap[2] окружена разрешенными точками 2.1, 2.2, 2.3, 2.4.

На этом этапе подготовка к движению манипулятора закончена.

  1. Осуществляем движение из q0 в qT по точкам предварительного маршрута:

    1. q0 принимается текущей точкой qi = q0.

    2. движемся по предварительному маршруту, записывая текущие точки в массив искомого пути mRez[i]=qi до столкновения с запрещенной областью или достижения целевой точки qT.

    3. Совершаем обход запрещенной области только по разрешенным точкам этой области.

    4. Обход осуществляется из точки прямого пути(где мы “попали в препятствие”) в точку прямого пути (где мы “покинули препятствие”) по двум направлениям (т.к. препятствие можно обойти с двух сторон) из которых выбирается кратчайший или если оба пути равны, то выбирается любой и записывается в mRez[].

    5. Возобновляем движение по предварительному маршруту до столкновения со следующей запрещенной областью или достижения целевой точки qT, т.е. переходим к п.6.2

    6. Алгоритм прекращает работу, если текущая конфигурация qi достигла целевой qT (рис. 1.13).

.6.2м ющей движение по предварительному маршруту.ано нарисапрещенных точек00000000000000000000000000000000000000000000000000000

Рис. 1.13 Система обобщенных координат. Точками 0-5 обозначены точки искомого пути mRez[6].