Материал: 2426

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

T5=T4A5. (4.187)

Каждый из векторов множества { Rig } характерных точек груза вида

Rig = [xig yig zig 1]T ; ig [1; cг],

(4.188)

где xig, yig, zig – координаты точки ig груза в собственной локальной декартовой системе координат (№ 5), переносится в инерциальную систему координат:

Rig,0 =T5 × Rig ; ig [1; cг],

(4.189)

здесь Rig,0 – вектор положения точки ig в инерциальной системе координат вида

R

= [x

y

z

1]T .

(4.190)

ig,0

 

ig,0

ig,0

ig,0

 

 

 

 

Пуск

1

 

2

 

 

 

 

 

 

Ввод исходных данных: q1; q2; q3; q6;

q7; q8; q9; q10;

 

{ R

 

};{ R

};{ R

}; [YЭ]

 

 

io3

io4

ig

 

 

3

 

 

 

 

 

 

Формирование матриц A1, A2, A3, A4, A5 по (4.156), (4.164), (4.165), (4.185), (4.186)

и значениям координат q1; q2; q3; q6; q7; q8; q9; q10

 

5

T3=A1A2A3; T4=T3A4; T5=T4A5

 

6

Cross=0

 

 

io3

 

11

 

io4

io3=1; io3≤co3;

 

 

 

io3=io3+1

7

io4=1; io4≤co4;

 

 

 

io4=io4+1

 

12

Rio3,0 = T3 × Rio3

 

 

 

 

 

 

Rio4,0 = T4 × Rio4

 

 

8

 

 

 

Да

13

 

yio3YЭ(xio3, zio3)

Да

 

Нет

9

yio4YЭ(xio4, zio4)

 

Нет

14

Cross=1

 

 

Cross=1

 

 

 

10

 

 

 

 

 

15

io3

 

 

 

 

io4

 

 

 

 

 

 

4

 

ig

16

 

 

 

ig=1; igcг;

 

 

ig = ig +1

 

17

 

 

 

Rig,0

= T5 × Rig

 

 

yigYЭ(xig, zig)

18

Да

 

 

Нет

 

19

Cross=1

 

 

 

 

 

20

 

ig

 

 

22

21

Останов

Вывод результата: Cross

Рис. 4.31. Блок-схема алгоритма проверки пересечений подвижных звеньев ГПК и груза с препятствиями

245

Для каждой точки ig [1; cг] выполняется проверка условия превышения ее вертикальной координаты над соответствующей вертикальной координатой полидистантной поверхности препятствий с теми же координатами xig, zig:

yigYЭ(xig, zig). (4.191)

Блок-схема алгоритма проверки выполнения условия непересечения подвижных звеньев ГПК и груза с полидистантной поверхностью препятствий [YЭ] приведена на рис. 4.31. Данный алгоритм многократно используется как составная функциональная часть общего алгоритма ВДК. Выходным параметром алгоритма проверки пересечений является переменная Cross, принимающая значения 0 (отсутствие пересечений) и 1 (присутствие пересечений).

Кроме того, по методике раздела 4.4 выполняется проверка сгенерированной в пространстве конфигураций точки p по ограничению на устойчивость. В зависимости от результатов проверки переменная Opr принимает значение 0 (конфигурация устойчива) либо 1 (конфигурация не устойчива).

При выполнении условий (4.170), (4.173) и (4.191), а также ограничения на устойчивость (Opr=0) значение p увеличивается на 1, в противном случае генерация отдельной точки по (4.183), (4.184) повторяется.

Первая (p=1) и последняя (p=ng) точки траектории будут совпадать с начальной и конечной заданными точками:

s1=sнач=(qn7, qn8, qn9, qn10); sng=sкон=(qk7, qk8, qk9, qk10). (4.192)

7.6. Формируется матрица весов дуг N=[Li1,j1]ing1, j1=1. Выполняется

проверка видимости между текущей точкой si1 {Sr} и всеми прочими точками из множества sj1 {Sr}. Для этого используются два вложенных цикла: внешний i1 [1; ng] и внутренний j1 [1; ng]. Для каждого сочетания значений i1 и j1 для промежуточных точек осуществляется проверка выполнения условий (4.170), (4.173) и (4.191) при помощи рекурсивного алгоритма деления отрезка по методике, изложенной в разделе 3.8. При невыполнении данных условий для любой промежуточной точки вес дуги (si1,sj1) принимается равным бесконечно большому значению:

Li1,j1=∞. (4.193)

246

В случае выполнения данных условий вес дуги Li1,j1 вычисляют по выражениям T (4.4), Ae (4.5) или C (4.6) целевой функции.

7.7. Осуществляется поиск кратчайшего пути между двумя вершинами графа (sнач и sкон) при помощи алгоритма Дейкстры [216]. Результатом поиска является оптимальная траектория S с минимальным значением целевой функции, представляющая собой последователь-

ность из нескольких вершин графа дорожной карты Gr: S={sp}snp=1.

7.8. Осуществляется линейная интерполяция найденной траектории с равномерным ее разбиением на nЛ отрезков для последующей локальной оптимизации. Для этого для заданных значений шагов дискретизации всех управляемых координат ( q7, q8, q9, q10) в цикле p [2; sn] по методу «Манхеттен» [74] подсчитывается количе-

ство отрезков на каждой дуге найденной траектории {sp} snp=1, которое сохраняется в векторе no:

no(p–1)=(|q7(p)–q7(p–1)|)/ q7+(|q8(p)–q8(p–1)|)/ q8+

 

+(|q9(p)–q9(p–1)|)/ q9+(|q10(p)–q10(p–1)|)/ q10.

(4.194)

Подсчитывается коэффициент масштабирования kкак отношение требуемого количества отрезков траектории nЛ к общему для всей найденной траектории количеству отрезков, равному сумме всех элементов вектора no:

k= nЛ

sn

(4.195)

å no(p).

 

p=1

 

Определяется количество отрезков на каждой дуге траектории, в сумме дающих nЛ отрезков:

no(p) = ëno(p)× kû, p [1; sn].

(4.196)

Осуществляется линейная интерполяция в no(p) промежуточных точках на каждой дуге p [1; sn] траектории. Под интерполяцией подразумевается вычисление значений каждой из управляемых координат груза в промежутках между узловыми точками найденной траектории, которое выполняется по известному алгоритму [65, 191].

7.9.Выполняется дискретная локальная оптимизация интерполированной траектории S по методике, изложенной в разделе 4.5.

7.10.Определяется уточненное значение целевой функции T, Ae или C оптимизированной траектории S по (4.4), (4.5) или (4.6) соответственно.

247

Пуск

1

 

 

 

2

Ввод исходных данных:

 

 

 

 

 

 

 

sш=(xш0,yш0,zш0)=(q1,q2,q3);sнач=(xн0,yн0,zн0);sкон=(xк0,yк0,zк0);{ R

};{ R

};{ R

io4

};

 

is

io3

 

 

{ Rig };[YПР];ng;δq7; uш; u8;nЛ; uл;δopt;lзап_г;lзап_в; v7кпред;v8,1;v8,2;v9,1;v9,2;v9,3;

v9,4;q9гран;mГР;mГРгран;v10,1;v10,2;v10,3;v10,4;q8min;q8max;q9min;q9max;q10min;q10max; q7; q8; q9; q10;m1;m2;m3;m4;x2,2;x3,31;y3,32;x3,33;x4,41;y3,42;y4,43;x2,54;α0;cГ1;cГ2; k7,1, k7,2, k8,1, k8,2, k8,3, k8,4, k9,1, k9,2, k10,1, k10,2

 

q6

 

3

break=1

4

5

Нет

 

 

 

 

 

 

 

break=0

 

 

6

q6=0; q6≤360°;

 

 

 

 

 

 

 

 

 

 

 

Да

Вывод сообщения

q6=q6+ uш

 

 

 

 

 

 

 

 

7

 

об отсутствии тра-

 

 

 

 

 

 

 

écosq6

0

−sin q6

q1 ù

 

 

 

ектории

8

 

 

 

 

 

ê

0

1

0

 

q2 ú

 

 

9

 

Останов

T1= ê sin q6

0

cosq6

q3 ú

 

Определение

 

 

 

ë 0

0

0

 

1 û

[qn7]; [qn8В; qn8Н]; [qn9В; qn9Н]; [qn10В; qn10Н] –

 

 

 

10

 

 

для начальной точки;

 

 

break1=0

 

 

[qk7]; [qk8В; qk8Н]; [qk9В; qk9Н]; [qk10В; qk10Н] –

 

 

 

 

 

 

для конечной точки

 

 

 

 

 

11

 

 

 

 

 

is

 

 

 

по методике раздела 4.3

 

 

 

 

 

 

 

 

12

is=1; iscs;

 

 

 

 

 

 

 

 

is=is+1

 

13

 

Построение полидистантной поверхности [YЭ]

 

 

вокруг реальной поверхности препятствий

 

 

 

 

R

= T × R

 

 

 

[YПР] по методике раздела 3.3 [94, 102]

is,0

1

is

 

 

 

 

 

 

 

 

 

 

 

 

14

Да

 

iq 8 max

= ë(q n 8 B

q n 8 N )

u

8 û

15

 

 

 

 

 

yis0YПР(xis0, zis0)

 

 

 

iq8

 

17

 

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

iq8=1; iq8≤iq8max

 

 

 

break1=1

 

 

 

 

 

 

 

 

 

 

iq8= iq8+1

 

19

 

 

 

 

 

 

 

 

 

 

 

 

 

18

 

 

 

 

 

 

 

 

 

 

qn8=qn8N+(iq8–1)∙ u8

 

20

 

is

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формирование матриц A2,A3,A4 по (4.164), (4.165)

 

 

 

 

 

 

break1=0

 

21

Нет

 

T3=A1A2A3;

T4=T3A4

22

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

Да

 

 

23

 

 

 

Cross(iq8)=0

 

 

 

 

 

 

 

 

 

 

break=0

 

 

 

 

io3

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26

 

 

io3=1; io3≤co3;

 

 

 

 

q6

 

 

 

 

 

io3=io3+1

27

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rio3,0 = T3 × Rio3

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

Рис. 4.32. Блок-схема модифицированного алгоритма ВДК поиска траектории перемещения груза в пространстве конфигураций ГПК (начало)

248

iq8

28

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

 

 

iq8=1; iq8≤iq8max

 

 

 

 

 

 

 

 

 

 

 

 

Да

iq8= iq8+1

29

 

 

 

 

 

 

 

yio3YЭ(xio3, zio3)

 

 

 

 

 

 

 

 

32

qk8=qk8N+(iq8–1)∙ u8

 

 

 

 

 

 

30

 

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

Cross(iq8)=1

 

 

 

Формирование матриц A2, A3, A4 по (4.164), (4.165)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T3=A1A2A3;

T4=T3A4

33

 

 

 

 

 

 

 

 

 

 

35

 

 

 

 

 

 

 

 

 

io3

 

 

 

 

Cross(iq8)=0

34

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

io3

36

 

 

 

 

 

 

 

 

 

 

io4

 

39

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

io3=1; io3≤co3;

 

 

 

 

 

 

 

 

 

 

io4=1; io4≤co4;

 

 

 

io3=io3+1

 

 

38

 

 

 

 

 

 

 

io4=io4+1

 

 

40

37

 

 

Нет

 

 

 

 

 

 

 

 

 

 

41

 

Rio4,0 = T4 × Rio4

 

 

 

Rio3,0 = T3 × Rio3

yio3YЭ(xio3, zio3)

 

 

 

 

 

 

 

 

 

 

 

 

 

42

Да

 

 

Cross(iq8)=1

 

 

 

45

Да

 

 

 

 

 

 

 

 

 

 

yio4YЭ(xio4, zio4)

 

 

 

 

 

 

43

 

 

 

 

 

 

io3

 

io4

 

 

 

 

 

 

 

Нет

 

46

 

 

 

 

 

 

 

 

 

 

 

 

io4=1; io4≤co4;

 

 

 

 

 

 

Cross(iq8)=1

 

 

 

 

io4=io4+1

 

44

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

47

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rio4,0 = T4 × Rio4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

io4

 

 

 

 

 

 

 

 

48

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Да

 

 

 

 

 

 

 

 

 

 

yio4YЭ(xio4, zio4)

 

 

 

 

 

 

 

 

51

 

Нет

 

 

 

49

 

 

 

Cross(iq8)=0

 

 

Нет

 

Cross(iq8)=1

 

 

 

 

 

 

Cross(iq8–1)=1

 

 

 

 

 

 

 

 

 

50

 

 

 

 

Да

 

 

 

52

 

 

io4

 

 

 

 

 

 

 

qn8Н=q8(iq8);qn9Н=q9(iq8);

 

 

 

 

 

 

 

 

 

 

qn10Н=q10(iq8)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

53

Нет

 

 

 

 

 

 

 

 

54

 

Cross(iq8)=0

 

 

 

 

iq8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cross(iq8–1)=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

55

 

 

 

 

 

 

 

 

56

qk8Н=q8(iq8);qk9Н=q9(iq8);

 

 

 

 

 

 

 

 

 

qk10Н=q10(iq8)

 

 

 

 

 

 

dq7=δq7–(|qk7qn7|/2)

58

 

 

 

 

 

 

= ì[(qn7 - dq7 );(qk 7 + dq7 )]

 

 

 

57

iq8

[q

 

; q

 

]

при qn7 £ qk 7;

 

7

 

7

 

í[(q

n7

+ dq

);(q

- dq )]

при q

n7

 

> q

 

 

 

 

 

 

 

î

 

7

k 7

7

 

 

k 7

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

Рис. 4.32. Блок-схема модифицированного алгоритма ВДК поиска траектории перемещения груза в пространстве конфигураций ГПК (продолжение)

249