Professional Documents
Culture Documents
Projekat
Projekat
1
<<<<<<<Биомеханика локомоторног система>>>>>>>
Заправо, кичмени стуб, односно људска кичма се састоји од више дискова: група
од седам дискова на врху се назива цервикална или вратна област, група наредних
дванаест дискова је торакална или грудна област, након чега долази група од 5
лумбарних, односно крсних пршљенова. Последњи репни део се назива sacrum и
coccyx, што се може видети на слици 2. Цервикални покрет ће бити моделован као
3-осно врат/глава кретање, 12 дискова за покрете тораксне регије биће комбиновање
3-осног торакалног кретања, и 5 дискова лумбарног кретања ће бити моделовано
као 3-осно лумбарно зглобно кретање. Дефинисање већег броја зглобова за потребе
моделовања торакалне и лумбалне регије се може показати као сувишно и чак може
додатно да закомпликује проналажење кинематских решења.
2
<<<<<<<Биомеханика локомоторног система>>>>>>>
Са гледишта моделовања робота, међутим, врат, оба рамена, оба ручна зглоба,
грудни кош и крста, и оба кука сматрају се универзалним врстама зглобова, то
значи да сваки нуди три независна зглоба за генерисање комплетне ваљање -
пропињање - скретање ротације у оквиру SO(3) ортогоналне групе. Свака кључна
кост и сваки чланак се третирају као сферни типови зглобова који дају две
независне осе обртања на сваком зглобу, док лактови и колена имају само по један
обртни зглоб. Код овакве зглобне расподеле, укупан број покретних зглобова у
читавом телу достиже бројку од 47 зглобова, при чему је изузето још по 20 зглобова
сваке шаке. 47 зглобова је сасвим довољно да се у потпуности прикаже став и
понашање људског тела у сваком тренутку.
На слици 3 приказано је на који начин је дефинисано свих 47 зглобних позиција.
Прва три призматична зглоба d1, d2 и d3 су апсолутне транслације људског тела дуж
xb, yb и zb осе, тим редом. Следећа три обртања зглоба θ4, θ5 и θ6 су апсолутне
ротације: окретање око сопствене осе, прегиб, савијање у страну, тим редом.
Зглобни углови θ7, θ8 и θ9 представљају лумбарну флексију/екстензију, лумбарно
бочно савијање лево/десно и лумбарну ротацију. Слично, θ10 - θ12 представљају
флексију/екстензију, бочно кретање лево/десно и ротацију торакса.
Након грудног коша долази секвенца зглобова подељених у две паралелне гране:
лева клавикула и лева рука, десна клавикула и десна рука. θ13 и θ14 представљају
флексију/екстензију и подизање/спуштање леве клавикуле. θ15, θ16 и θ17
представљају флексију/екстензију, абдукцију/адукцију и медијално/латералну
ротацију левог рамена, тим редом. θ18 и θ19 су углови зглобова одговорних за
флексију/екстензију и пронацију/супинацију левог лакта. θ20 и θ211 су углови
зглобова за флексију/екстензију и радијално/улнарну девијацију левог ручног
1
На слици 4 је угао леве шаке означен са θ 21la а са 21 означена десна клавикула. Десна клавикула је
на исти начин означена и у хомогеној матрици трансформације A1121 (прим. прев.)
3
<<<<<<<Биомеханика локомоторног система>>>>>>>
зглоба. Приметимо да се θ19 може рачунати и као један од три ручна зглоба, иако је
означен као пронација/супинација левог лакта.
Друга грана након торакса одлази ка десној клавикули и руци. Слично, θ22 и θ23
су додељени десној клавикули, θ24 - θ26 су зглобни углови дефинисани за десно
раме, и десни лакат има зглобни угао θ27, након чега следи десни ручни зглоб са θ28,
θ29 и θ30.
Након што је првих шест зглобова одређено за апсолутну ротацију и транслацију
људског тела, даље се крећемо ка лумбарним зглобовима који се такође рачвају и то
директно ка ногама. На левој нози, θ31, θ32 и θ33 јесу зглобни углови за
флексију/екстензију, абдукцију/адукцију и медијалну/латералну ротацију левог
кука, тим редом. θ34 и θ35 су зглобни углови флексије/екстензије и
медијалне/латералне ротације левог колена. θ36 и θ37 су зглобни углови
дорзифлексије/плантар флексије левог скочног зглоба и флексије/екстензије ножног
прста леве ноге, тим редом.
4
<<<<<<<Биомеханика локомоторног система>>>>>>>
Слично и на десној нози, θ38 - θ40 представљају зглобне углове десног кука.
Десно колено има зглобне углове θ41 и θ42, а десни скочни зглоб угао θ43, након чега
следи угао зглоба прста десне ноге θ44.
Последња три зглобна угла се додељују покрету врат/глава: θ45 је угао окретања
главе, θ46 је покрет главе унапред (флексија/екстензија), док угао θ47 представља
угао нагињања у страну, као што је приказано на слици 3.
Свих 47 зглобова који покривају читаво људско тело треба даље дефинисати на
формалан и прецизан начин на основу Денавит-Хартенберг (Д-Х) конвенције
кинематике робота. Комплетна додела сегмент/веза координатних фрејмова
приказана је на слици 4. Како бисмо остали конзистентни Д-Х конвенцији, основни
фрејм 0 дигиталне репрезентације човека мора да буде дефинисан другачије од
фрејма b у базном координатном систему. Трансформација између њихових
координата се може лако уочити као
0 0 1
Rb0 0 1 0 ,
1 0 0
i
i di i ai (почетна Назив зглоба
позиција)
0 d1 90 0 0 Транслација xb
90 d2 90 0 90 Транслација y b
0 d3 0 0 0 Транслација z b
4 Обртање тела око
0 90 0 0
своје осе
5 0 90 0 90 Прегиб
6 0 90 a6 0 Савијање у страну
i di i ai i Назив зглоба
5
<<<<<<<Биомеханика локомоторног система>>>>>>>
(почетна
позиција)
7 0 90 0 0 Лумбар флекс/екст
8 0 90 0 90 Лумбар латерал
9 d9 90 0 90 Лумбар ротација
10 0 90 0 90 Торакс флекс/екст
11 0 90 0 90 Торакс латерал
i
i di i ai (почетна Назив зглоба
позиција)
12 d12 0 a12 l 0 12
Торакс ротација A11
13 0 90 0 0 Л. клавикула флекс/екст
14 0 90 0 90 Л. клавикула елев/депр
15 d15 90 0 0 Л. раме флекс/екст
16 0 90 0 90 Л. раме абд/адукц
17 d 17 90 0 90 Л. Раме мед/лат
i
i di i ai (почетна Назив зглоба
позиција)
18 0 90 0 0 Л. лакат флекс/екст
19 d 19 90 0 90 Л. лакат прон/супин
20 0 90 0 90 Л. ручни зглоб флекс/екст
21 0 90 0 90 Л. ручни зглоб рад/улн
i
i di i ai (почетна Назив зглоба
позиција)
12 d12 180 a12 r 0 21
Торакс ротација A11
23 0 90 0 0 Д. клавикула флекс/екст
24 0 90 0 90 Д. клавикула елев/депр
25 d 24 90 0 0 Д. раме флекс/екст
26 0 90 0 90 Д. раме абд/адукц
27 d 26 90 0 90 Д. раме мед/лат
6
<<<<<<<Биомеханика локомоторног система>>>>>>>
i
i di i ai (почетна Назив зглоба
позиција)
27 0 90 0 0 Д. лакат флекс/екст
28 d 28 90 0 90 Д. лакат прон/супин
29 0 90 0 90 Д. ручни зглоб флекс/екст
30 0 90 0 90 Д. ручни зглоб рад/улн
7
<<<<<<<Биомеханика локомоторног система>>>>>>>
i
i di i ai (почетна Назив зглоба
позиција)
h 0 180 ah 0 Х-троугао A6h
31 d 31 90 0 0 Л. кук флекс/екст
32 0 90 0 90 Л. кук абд/адукц
33 d 33 90 0 90 Л. кук мед/лат
34 0 90 0 0 Л. колено флекс/екст
35 d 35 90 0 0 Л. колено мед/лат
36 0 0 a 36 0 Л. чланак дорз/план
37 0 90 0 90 Л. ножни прсти флекс/екс
i
i di i ai (почетна Назив зглоба
позиција)
h 0 180 ah 0 Х-троугао A6h
38 d 31 90 0 180 Д. кук флекс/екст
39 0 90 0 90 Д. кук абд/адукц
40 d 40 90 0 90 Д. кук мед/лат
41 0 90 0 0 Д. колено флекс/екст
42 d 42 90 0 0 Д. колено мед/лат
43 0 0 a 43 0 Д. чланак дорз/план
44 0 90 0 90 Д. ножни прсти флекс/екс
i
i di i ai (почетна Назив зглоба
позиција)
12 dn 180 0 0 n
Торакс ротација A11
45 d 45 90 0 0 Окрет главе
46 0 90 0 90 Климање главом
47 0 0 a 47 0 Глава нагнута у страну
8
<<<<<<<Биомеханика локомоторног система>>>>>>>
фрејму 21 и десној руци. Код Х-троугла, након фрејма 6, такође постоје два пута
преко уобичајене константне трансформације A6h: један одлази ка фрејму 30 у
правцу леве ноге, а други ка фрејму 37 у правцу десне ноге.
Према Д-Х конвенцији, сада можемо да запишемо сваку од 47 хомогених
матрица трансформације на основу једначине
ci si 0 0 1 0 0 ai
si ci 0 0 0 c i s i 0
Aii1
0 0 1 d i 0 s i c i 0
0 0 0 1 0 0 0 1
На пример, првих шест матрица које представљају целокупан људски покрет могу
се записати на следећи начин:
1 0 0 0 0 0 1 0
0 0 1 0 1 0 0 0
A0
1
, A1
2
,
0 1 0 d1 0 1 0 d2
0 0 0 1 0 0 0 1
1 0 0 0 c4 0 s4 0
0 1 0 0 s 0 c4 0
A2
3
, A3 4
4
,
0 0 1 d3 0 1 0 0
0 1 0
0 0 0 0 1
c5 0 s5 0 c6 0 s6 a6 c6
s 0 c5 0 s6 0 c6 a6 s6
A4 5
5
, и A5
6
,
0 1 0 0 0 1 0 0
0 0 0 1 1
0 0 0
c7 0 s7 0 c8 0 s8 0 c9 0 s9 0
s 0 c7 0 s 0 c8 0 s 0 c9 0
Ah 7
7
, A7 8
8
, A8 9
9
0 1 0 0 0 1 0 0 0 1 0 d9
0 1 0 1 0
0 0 0 0 0 0 1
9
<<<<<<<Биомеханика локомоторног система>>>>>>>
0 1 0 0 0 1 0 0 0 1 0 0
0 0 0 1 1
0 0 0 1 0 0 0
0 1 0 d19
0 0 0 1
c 20 0 s 20 0 c 21la 0 s 21la 0
s 0 c 20 0 s 21la 0 c 21la 0
A1920 20 , A 21la
,
0 0 0
20
0 1 0 1 0
0 0 0 1 0 0 0 1
c 22 0 s 22 0
s 22 0 c 22 0
22
A21
0 1 0 0
0 0 0 1
10
<<<<<<<Биомеханика локомоторног система>>>>>>>
c 23 0 s 23 0 c 24 0 s 24 0
s 0 c 23 0 s 24 0 c 24 0
23 , A23
23 24
A22 ,
0 1 0 0 0 1 0 d 24
0
0 0 1 0 0 0 1
c 25 0 s 25 0
s 0 c 25 0
25
A24 25
0 1 0 0
0 0 0 1
c 26 0 s 26 0 c 27 0 s 27 0
s 0 c 26 0 s 0 c 27 0
26
A25 26 ,
27
A26 27
0 1 0 d 26 0 1 0 0
0 0 1
0 0 1 0 0
c 28 0 s 28 0 c 29 0 s 29 0
s 0 c 28 0 s 29 0 c 29 0
28
A27 28 , A28
29
,
0 1 0 d 28 0 1 0 0
0 0 1
0 0 1 0 0
c30 0 s 30 0
s30 0 c30 0
A29
30
0 1 0 0
0 0 0 1
11
<<<<<<<Биомеханика локомоторног система>>>>>>>
c39 0 s39 0 c 40 0 s 40 0
s 0 c39 0 s 40 0 c 40 0
39 , A39
39 40
A38 ,
0 1 0 0 0 1 0 d 40
0
0 0 1 0 0 0 1
c 41 0 s 41 0
s 0 c 41 0
41
A40 41
0 1 0 0
0 0 0 1
c 42 0 s 42 0 c 43 s 43 0 a 43 c 43
s 0 c 42 0 s 43 c 43 0 a 43 s 43
42
A41 42 , A42
43
0 1 0 d 42 0 0 1 0
0 0 0 0 1
0 0 1
c 44 0 s 44 0 c 45 0 s 45 0 c 46 0 s 46 0
s 0 c 44 0 s 45 0 c 45 0 s6 0 c 46 0
44 , An , A45
44 45 46
A43
0 1 0 0 0 1 0 d 45 0 1 0 0
0 1 0 0 1
0 0 0 0 1 0 0
c 47 s 47 0 a 47 c 47
s c 47 0 a 47 s 47
47
A46 47
0 0 1 0
0 0 0 1
Издвојићемо следеће прелазне матрице у свакој тачки у којима се труп рачва ка сва
четири екстремитета и врату:
где je A1112 део трупа који иде ка левој руци и A1121 иде ка десној руци. Слично:
c12 s12 0 0
s c12 0 0
A11n 12
0 0 1 dn
0 0 0 1
12
<<<<<<<Биомеханика локомоторног система>>>>>>>
ch sh 0 ah ch 1 0 0 ah
s ch 0 ah sh 0 1 0 0
A6 h
h
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
тим редом.
i II
q (i ) q I i q q I (q q I )
N
q ( d1 , d 2 , d 3 , 4 ,..., 47 ) T
13
<<<<<<<Биомеханика локомоторног система>>>>>>>
i II
q (i ) q I i q q I (q q I )
N
14
<<<<<<<Биомеханика локомоторног система>>>>>>>
q (t t ) q (t ) J 1Vt
15
<<<<<<<Биомеханика локомоторног система>>>>>>>
R14
18 19
p14
A 18 d
A A A A
15 16 17 18 d
(1),
1
14 14 15 16 17
03
при чему је
b1c18 c15 s16 s18 c15 c16 s17 s15 c17 b1 s18 c15 s16 c18
R18
14 b2 c18 s15 s16 s18 s15 c16 s17 c15 c17 b2 s18 s15 s16 c18 ,
s c c c s s16 s17 s16 c17 s18 c16 c18
16 17 18 16 18
16
<<<<<<<Биомеханика локомоторног система>>>>>>>
и b1 = c15 c16 c17 + s15 s17 и b2 = s15 c16 c17 - c15 s17.
x
p19
14 y .
z
Пошто лева страна горње једначине има четири променљива угла θ15 - θ18 која треба
решити, док десна страна има само три позната броја x, y и z, једну непознату је
потребно претпоставити. Најлогичније је угао медијалне/латералне ротације рамена
θ17 фиксирати у почетни положај, то јест θ17 = 90°. Тада горња једначина може да се
редукује на
c18 .
2d17 d19
Пошто је домет кретања зглобног лакта угао θ18 у интервалу [0, 180°], s18 0 , тако
да је s18 1 c182 . Сада можемо да решимо
z d 15
c16
d 17 d 19 c18
17
<<<<<<<Биомеханика локомоторног система>>>>>>>
16 a tan 2( s16 , c16 ) a tan 2 1 c16
2
, c16 .
Када су и θ16 и θ18 израчунати, угао флексије/екстензије рамена θ15 може да се
реши коришћењем прве две компоненте једначине (2). Конкретно,
тако да je
И чим се реше и s15 и c15 може се одредити и угао флексијe/екстензијe рамена θ15 на
основу
Због тога што θ16 може имати две вредности за зглоб као типичан феномен мулти-
конфигурације, што ће утицати на то да и угао θ15 има два различита решења.
Након што су прва четири угла θ15 - θ18, укључујући фиксирани θ17 = 90°,
израчунати у смислу датих координата x, y и z, замењујући их у једначини (1),
оријентација R1418 може бити одређена нумерички. Уколико је жељена оријентација
за фрејм 21la леве руке у односу на фрејм 14 дата помоћу R1421la, тада можемо
одредити коју још додатну ротацију треба обавити ручни зглоб како би се постигла
тражена оријентација R1421la. Једноставније речено, додатна ротација се може
израчунати нумерички на следећи начин:
18
<<<<<<<Биомеханика локомоторног система>>>>>>>
20 a tan 2 1 r322 , r32 .
Сада, пошто је s20 > 0 (претпостављамо да θ20 неће достићи границу угла 0 или
180°),
Наравно, вредности три угла ручног зглоба θ19, θ20 и θ21 ће такође имати
вишеструка решења због два могућа решења угла θ16. Уколико занемаримо услов 0
θ20 180° за флексију/екстензију ручног зглоба, тада ће се појавити још две
конфигурације ротације ручног зглоба. Поврх тога, наведена И-К решења су
изведена на основу фиксиране рамене медијално/латералне ротације угла θ17 = 90°.
Уколико занемаримо услов, тада ће број И-К решења бити бесконачан. Разлог је
јасно због тога што лева рука има укупно 7 зглобова и лева шака 6 степени слободе
тако да је та рука редундантна.
За верификовање локалног И-К алгоритма, састављен је MATLAB TM програм.
Нека позиција фрејма 21la у односу на фрејм 14 има вредности x = 0, y = -0.5 и z =
-0.4 у метрима, и нека је оријентација постављена на
1 0 0
R 21la
14 0 1 0 .
0 0 1
d15=0.16; d17=0.3; d19=0.2935;
% Left Arm Parameters in Meters
th_body=[0; 0; 0; 0; 90; 0];
th_trunk=[0; 90; 90; 90; 90; 0];
th_larm=[0; 90; 0; 80; 90; 10; 90; 90; 90];
th_rarm=[0; 90; 0; 100; 90; 10; 90; 90; 90];
th_lleg=[0; 85; 90; 10; 0; 10; 90];
19
<<<<<<<Биомеханика локомоторног система>>>>>>>
th_rleg=[180; 95; 90; 10; 0; 10; 90];
th_head=[0; 90; 10];
q=[th_body; th_trunk; th_larm; th_rarm; th_lleg;...
th_rleg; th_head]*pi/180;
% Initialize All the 47 Joint Values at Home
x=0; y=0.5; z=0.4;
% The Desired Hand Position from Frame 14
R21=[1 0 0;0 1 0;0 0 1];
% The Desired Orientation Referred to Frame 14
for i=15:21
s(i)=sin(q(i)); c(i)=cos(q(i));
end
c(18)=(xˆ2+yˆ2+(z+d15)ˆ2d17ˆ2d19ˆ2)/(2*d17*d19);
s(18)=sqrt(1c(18)ˆ2);
q(18)=atan2(s(18),c(18));
c(16)=(z+d15)/(d17+d19*c(18));
s(16)=sqrt(1c(16)ˆ2); % Or s(16)=sqrt(1c(16)ˆ2);
q(16)=atan2(s(16),c(16));
A=[d19*s(18) d17*s(16)+d19*s(16)*c(18)
d17*s(16)+d19*s(16)*c(18) d19*s(18)];
b=A\[x; y];
q(15)=atan2(b(1),b(2));
R18=[b(1)*c(18)b(2)*s(16)*s(18) b(2)*c(16) ...
b(1)*s(18)+b(2)*s(16)*c(18)
b(2)*c(18)b(1)*s(16)*s(18) b(1)*c(16) ...
b(2)*s(18)+b(1)*s(16)*c(18)
c(16)*s(18) s(16) c(16)*c(18)];
Rw=R18’*R21;
q(20)=atan2(sqrt(1Rw(3,2)ˆ2),Rw(3,2));
q(19)=atan2(Rw(2,2),Rw(1,2));
q(21)=atan2(Rw(3,3),Rw(3,1));
f_ag6(q); % Call a Subroutine to Draw the Mannequin
axis([0.5 2 1.5 1.5 0 2]), daspect([1 1 1]),
zoom(2.0), view([1 0.3 0.2]),
>> q(15:21)’ % Joint Angles at Home in Degrees
0 80 90 10 90 90 90
>> q(15:21)’ % Joint Angles at Desired Point When s(16) < 0
72.3 59.8 90.0 31.2 70.8 30.5 122.0
>> q(15:21)’ % Joint Angles at Desired Point When s(16) > 0
67.0 62.5 90.0 41.7 59.4 29.6 44.3
>>
Горњи MATLABTM код служи да се израчунају сви углови свих зглобова који
учествују у кретању леве руке, а затим да позове сабрутину f_ag6(q) за исцртавање
модела, где је улазна величина дата са q који представља вектор положаја 47х1.
Разултат се може видети на слици 5 на којој је положај леве руке дат за случај sin θ16
< 0, и положај десне руке за sin θ16 > 0.
20
<<<<<<<Биомеханика локомоторног система>>>>>>>
Слика 5. Лева рука дигиталне фигуре се ручно помера помоћу локалног И-К
алгоритма помоћу најмање две различите конфигурације
A1421la = A1415A1516A1617A1718A1819A1920A2021la
1 0 0 0
F ( q ) A14
21la
(1 : 3,1 : 4) 0 1 0 5 0,
0 0 1 4
d15=0.16; d17=0.3; d19=0.2935;
% Left Arm Parameters in Meter
th_body=[0; 0; 0; 0; 90; 0];
th_trunk=[0; 90; 90; 90; 90; 0];
th_larm=[0; 90; 0; 80; 90; 10; 90; 90; 90];
th_rarm=[0; 90; 0; 100; 90; 10; 90; 90; 90];
th_lleg=[0; 85; 90; 10; 0; 10; 90];
21
<<<<<<<Биомеханика локомоторног система>>>>>>>
th_rleg=[180; 95; 90; 10; 0; 10; 90];
th_head=[0; 90; 10];
q0=[th_body; th_trunk; th_larm; th_rarm; th_lleg;...
th_rleg; th_head]*pi/180;
% Initialize All the 47 Joint Values at Home
q = fsolve(@f_pos,q0); % Call the Equation Solver
f_ag6(q); % Call a Subroutine to Draw Mannequin
axis([0.5 2 1.5 1.5 0 2]), daspect([1 1 1]),
zoom(2.0), view([1 0.3 0.2]),
% %
function F = f_pos(q) % Equation To Be Solved
d15=0.16; d17=0.3; d19=0.2935;
q(17)=pi/2; % Force q(17) To Be Fixed
for i=15:21
s(i)=sin(q(i)); c(i)=cos(q(i));
end
A15=[c(15) 0 s(15) 0; s(15) 0 c(15) 0
0 1 0 d15; 0 0 0 1];
A16=[c(16) 0 s(16) 0; s(16) 0 c(16) 0
0 1 0 0; 0 0 0 1];
A17=[c(17) 0 s(17) 0; s(17) 0 c(17) 0
0 1 0 d17; 0 0 0 1];
A18=[c(18) 0 s(18) 0; s(18) 0 c(18) 0
0 1 0 0; 0 0 0 1];
A19=[c(19) 0 s(19) 0; s(19) 0 c(19) 0
0 1 0 d19; 0 0 0 1];
A20=[c(20) 0 s(20) 0; s(20) 0 c(20) 0
0 1 0 0; 0 0 0 1];
A21=[c(21) 0 s(21) 0; s(21) 0 c(21) 0
0 1 0 0; 0 0 0 1];
A=A15*A16*A17*A18*A19*A20*A21;
F=A(1:3,1:4)[1 0 0 0; 0 1 0 5; 0 0 1 4];
% Make the Two 3 By 4 Matrices Equal
end
>> q(15:21)’ % Joint Angles at Desired Point
67.0 62.5 90.0 41.7 120.6 29.6 135.7
22