Professional Documents
Culture Documents
Mục lục
Chƣơng 1 XÂY DỰNG CẤU TRÚC,THIẾT LẬP HỆ PHƢƠNG TRÌNH ĐỘNG HỌC
ROBOT
1.1.
Xây dựng cấu trúc robot
3.1. Tính lực dẫn động tại các khớp đảm bảo cân bằng tĩnh
4.2 Cơ sở lý thuyết
1
BTL môn ROBOTICS
Chƣơng 1
XÂY DỰNG CẤU TRÚC THIẾT LẬP HỆ PHƢƠNG TRÌNH ĐỘNG HỌC
ROBOT
1.1 XÂY DỰNG CẤU TRÚC ROBOT
- Hệ trục tọa độ OX0Y0Z0 đặt tại khâu đế, trục OZ0 có hƣớng dọc trục khớp động 1, trục
OX0 nằm trong mặt phẳng vuông góc với OZo và có hƣớng từ trên xuống, trục OY0 xác
định theo quy tắc bàn tay phải.
- Hệ trục tọa độ OX1Y1Z1 tại khớp động 2, trục OZ1 đặt dọc trục khớp động 2, trục OX1
vuông góc với OZ0,OZ1 có hƣớng dọc theo khâu 1, trục OY1 xác định theo quy tắc bàn
tay phải.
- Hệ trục tọa độ OX2Y2Z2 đặt tại trục khớp động 3, trục OZ2 đặt dọc trục khớp động 3, trục
OX2 vuông góc với OZ1 và OZ2 hƣớng từ OZ1 sang OZ2, trục OY2 xác định theo quy tắc
bàn tay phải.
- Hệ trục tọa độ OX3Y3Z3 đặt tại khâu thao tác, trục OX3 hƣớng theo hƣớng khâu 3. OZ3
song song với trục OZ2, trục OY3 xác định theo quy tắc bàn tay phải.
2
BTL môn ROBOTICS
Từ mô hình và hệ trục tọa độ ở trên ta xây dựng đƣợc bảng thông số Danavit-
Hartenbeg nhƣ sau :
Khâu θi αi ai di
1 θ1 900 a1 d1
2 θ2 0 a2 0
3 θ3 0 a3 0
Trong đó:
θi là góc quay quanh Zi-1 đển biến Xi-1 thành Xi
αi là góc quay quanh Xi để biến Zi-1 thành Zi
Các biến khớp là θ1, θ2, θ3, đặt các biến khớp tƣơng ứng là q1,q2,q3.
Các ma trận biến đổi tọa độ thuần nhất Denavit-Hartenbeg dựa vào bộ thông số
trên :
cos(q1 ) 0 sin(q1 ) a1 cos(q1 )
sin( q ) 0 cos(q1 ) a1 sin(q1 )
0
A1 1
(1.1)
0 1 0 d1
0 0 0 1
3
BTL môn ROBOTICS
Phƣơng trình động học robot nhận đƣợc trong dạng ma trận nhƣ sau :
0
A3 (q) 0 A3 (t ) (1.4)
Trong đó
C1C 23 C1 S 23 S1 a3C1C 23 a2 C1C 2 a1C1
S C S1 S 23 C1 a3 S1C 23 a2 S1C 2 a1 S1
0
A3 (q) A1 . A2 . A3
0 1 2 1 23
S 23 C 23 0 a3 S 23 a2 S 2 d1 (1.5)
0 0 0 1
Trong đó C1,C2,S1,S2,C23 và S23 lần lƣợt là viết tắt của cos(q1), cos(q2), sin(q1), sin(q2),
cos(q2+q3), sin(q2+q3)
c11( , , ) c12 ( , , ) c13 ( , , ) xe
c ( , , ) c22 ( , , ) c23 ( , , ) ye
0
A3 (t ) 21
c31( , , ) c32 ( , , ) c33 ( , , ) ze
0 0 0 1
Trong đó cij(α,β,ɳ) là các phần tử trong ma trận Cardan
4
BTL môn ROBOTICS
Chƣơng 2
BÀI TOÁN ĐỘNG HỌC
Xây dựng quy luật chuyển động, vị trí khâu thao tác và ma trận chỉ hƣớng
Đồ thị q1(t)
5
BTL môn ROBOTICS
Đồ thị q2(t)
Đồ thị q3(t)
6
BTL môn ROBOTICS
Hƣớng của bàn kẹp có thể đƣợc xác định từ các góc Cardan, ký hiệu tƣơng ứng là α, β, γ
quay lần lƣợt quanh các trục x-y-z.
cos( ) sin( ) cos( ) cos( ) sin( )) cos( ) sin( ) sin sin cos( ) cos( ) cos( )
để tính đƣợc các góc α, β, η ta so sánh ma trận chỉ hƣớng của (1.5) và ma trận chỉ
7
BTL môn ROBOTICS
c32 , , C1
arctan c , , arctan S
31 1
c , , C S 3
arctan 21 arctan 1 23 khi ,
c11 , , C1C 23 2 2
c13 , ,
arctan S 23
arctan 2 2
c11 , , c12 , , C1 S 23 S1C 23
2 2
arctan c32 , , arctan C1
c , ,
31
S
1
c 21 , , CS 3
arctan arctan 1 23 khi ,
c11 , , C1C 23 2 2
c13 , , arctan S 23
arctan
2 2
c11 , , c12 , , C1 S 23 S1C 23
2 2
Tính vận tốc điểm tác động cuối E, vận tốc góc khâu thao tác
Từ phần trên ta đã xây dựng đƣợc quy luật chuyển cũng nhƣ tìm đƣợc tọa độ của
khâu thao tác cuối, các biến khớp và đạo hàm các cấp theo t đã biết :
q [q1 , q2 , q3 ]T
q [q1 , q 2 , q3 ] T
R rE
A3= A1 A2 A3 E
1 2
1
(2.3)
0
Vận tốc của khâu thao tác chính là đạo hàm vị trí khâu thao tác theo thời gian:
VE= r E= x E , y E , z E
T
0 z y
~E R E .RET z 0 x
y x 0
8
BTL môn ROBOTICS
(2.5)
Suy ra vận tốc góc khâu thao tác:
E 32 13 21 T [(q 2 q3 )S1 (q 2 q3 )C1 q1 ]T
11 1 2
x (q 2 q 3 ) S1 (3 12 t ) sin(t 4 t )
11 1
y (q 2 q 3 )C1 (3 t ) cos(t t 2 ) (2.6)
12 4
1 2
z q1 1 2 t
Ứng dụng phần mềm Matlab, Maple vẽ quỹ đạo chuyển động của khâu thao
tác cuối
9
BTL môn ROBOTICS
Bài toán động học ngƣợc thông thƣờng cho biết trƣớc vị trí của khâu thao tác yêu
cầu tìm giá trị các biến khớp ứng với vị trí đó. Ở tiểu luận này robot 3 bậc tự do kiểu RRR
ta không cần biết hƣớng của khâu thao tác mà vẫn có thể tìm đƣợc các góc quay tƣơng
ứng.
10
BTL môn ROBOTICS
2.2.1 Xây dựng quy luật chuyển động của khâu thao tác cuối
Ta chọn quy luật chuyển động bất kì của khâu thao tác E của robot nhƣ sau:
x E 600 60t
y E 100t (2.7)
z 100 30t
E
2.2.2 Khảo sát bài toán động học ngƣợc của robot tìm quy luật chuyển động của các
khâu
0
A3 (q) 0 A3 (t )
Dựa vào cấu tạo hình học của robot ta xác định đƣợc q1 nhƣ sau:
YE
tan(q1 )
XE
Y 100t
q1 arctan E arctan
XE 600 60t
Nhân phƣơng trình 1 với C1 và phƣơng trình 2 với S1 ta đƣợc phƣơng trình:
a3C23 a2 C2 a1 (600 60t )C1 100tS1 (2.9)
Đặt:
Kết hợp với phƣơng trình 3 của hệ (2.8) và phƣơng trình (2.9) ta đƣợc hệ phƣơng
trình sau:
a3C23 a2C2 Px
(2.10)
a3 S 23 a2 S 2 Py
Bình phƣơng hai vế của hai phƣơng trình (2.10) sau đó cộng hai phƣơng trình lại
với nhau ta đƣợc phƣơng trình :
11
BTL môn ROBOTICS
a2 a3 2a2 a3C3 Px Py
2 2 2 2
Px2 Py2 a2 a3
2 2
C3 (2.11)
2 a 2 a3
Mặt khác ta có :
S3 1 C32
Vậy ta tính đƣợc q3:
Px2 Py2 a 2 a3
q3 artan 1 C32 (
2a 2a3
)
(2.12)
Từ hệ phƣơng trình (2.10) thay C3 và S3 vào ta có hệ phƣơng trình sau:
C2 (a3C3 a2 ) a3 S 2 S3 Px
(2.13)
C2 a3 S3 S 2 (a3C3 a2 ) Py
Giải hệ phƣơng trình trên ta có nghiệm nhƣ sau:
Px a2 a3C3 Py a3 S 3
C
a3 a2 2a3 a2C3
2 2 2
(2.14)
S Py a2 a3C3 Px a3 S 3
2 a3 a2 2a3 a2C3
2 2
Vậy ta tính đƣợc q2:
12
BTL môn ROBOTICS
Chƣơng 3
3.1 Tính lực dẫn động tại các khớp đảm bảo cân bằng tĩnh
Theo đầu bài ta có các lực tác dụng vào khâu thao tác tại điểm E gồm các vector lực FE3,
và mô men M :
FE 3 FX FY FZ
T
M E3 M x My Mz
T 3
r3 [a 3 0 0]T 2
r2 a 2 0 0
T
T T T
a a a
r1 a1 0 0 rC3 3 rC2 2 rC1 1
1 T 3 2 1
0 0 0 0 0 0
2 2 2
Pi mi g 0 0
T
Tính lực và momen của khâu 3 tác dụng lên khâu 2 tại khớp 3
Hệ phƣơng trình cân bằng dạng mà trận khảo sát trong hệ tọa độ cơ sở :
F3, 2
0 0
FE ,3 0 P3
0 0 ~0 0 ~ 0
M 3, 2 M E ,3 r3 F3, 2 rc 3 P3
0
13
BTL môn ROBOTICS
Fx 0 Fx
0 F m g
F3, 2 Fy m3 g y 3
Fz
0
Fz
(3.1)
Mx Fx 0
0 M 0 ~
m3 g rc 3 m3 g
0 ~
3, 2 My r3 Fy
Mz
Fz
0
a3
2 C1C 23
a3C1C 23 a
Trong đó : 0 r3 0 R3 r3 a3 S1 S 23 và 0 rc 3 0 R3 rc 3 3 S1C 23
3 3
(3.2)
2
a3 S 23 a3 S
2
23
C1C 23 C1 S 23 S1
S C
1 23 S1 S 23 C1
Chú ý : 0 R3 0 R1 R2 R3 = S
1 2
23 C 23 0
a3 a
0 S 23 3 S1C 23
M x a3 S 23 a3 S1 S 23 Fx 0
0 2 2
C1C 23 m3 g
a3 a3
M y a3 S 23 0 a3C1C 23 Fy m3 g S 23 0
M a S S 2 2
z a3 C1C 23 0 Fz a a 0
3 1 23 3
S C 3
C C 0
2
1 23 1 23
2
Fx
0
F3, 2 Fy m3 g
Fz
1 (3.3)
Mx a3 ( Fy m3 g ) S 23 a3 FzS1C 23 2 a3 m3 gS 23
M My a3 FxS 23 a3 FzS1C 23
3, 2
Mz a FzS C a ( Fy m g )C C a3 m gC C
3 1 23 3 3 1 23
2
3 1 23
14
BTL môn ROBOTICS
Tính lực và momen của khâu 2 tác dụng lên khâu 1 tại khớp 2
Hệ phƣơng trình cân bằng dạng mà trận khảo sát trong hệ tọa độ cơ sở :
F2,1
0 0
F3, 2 0 P2
0 0 ~0 0 ~ 0
(3.4)
M 2,1 M 3, 2 r2 F2,1 rc 2 P2
0
C1 0 S1 C 2 S2 0 C1C 2 C1 S 2 S1
R2 R R2 S1 0 C1 S 2 0 S1C 2 S1 S 2 C1
1
Trong đó: 0 0
1 C2
0 1 0 0 0 1 S 2 C2 0
a2
a2C1C2 2 C1C2
a
r2 R2 r2 a2 S1C2 và 0 rc 2 0 R2 rc 2 2 S1C2
0 0 2 2
(3.5)
a2 S 2 2
a2 S
2
2
Fx
0 F m m g
F
2,1 y 3 2
Fz
Mx a3 Fy m3 g S 23 a3 FzS1C 23 a3 S 23m3 g a2 S 2 ( Fy m2 g m3 g ) a2 FzS1C 2 a 2 S 2 m2 g
1 1
0
2 2
M 2,1 My a2 FxS 23 a3 FzC1C 23 a2 FxS 2 a2 FzC1C 2
Mz a3 FxS 1C 23 a3 FyC1C 23 a3 m3 gC1C 23 ( Fy m3 g ) 1 a3 m3 gC1C 23 Fx a2 S1C 2 a2 Fy m2 g m3 g C1C 2 1 a2 m2 gC1C 2
2 2
Tính lực và momen của khâu 1 tác dụng lên khâu 0 đế tại khớp 1
Hệ phƣơng trình cân bằng dạng mà trận khảo sát trong hệ tọa độ cơ sở :
F1,0
0 0
F2,1 0 P1
0 0 ~0 0 ~ 0 (3.7)
M 1, 0 0
M 2 ,1 r1 F 1, 0 rc1 P1
Trong đó :
15
BTL môn ROBOTICS
a1
2 C1
C1 0 S1 a1C1 a
R1 S1 0 C1 r1 R r a1 S1 và 0 rc 2 0 R2 rc 2 1 S1
0 0 0 1 2
1 1 (3.8)
2
0 1 0 0 0
Fx 0 Fx
0
F1, 0 Fy m3 m2 g m1 g Fy m3 m2 m1 g
Fz 0 Fz
m1
d1 Fy m2 m3 g
2
0 M 0 M d 1Fx
1, 0 2 ,1
0
Fx
0
F1, 0 Fy m3 m2 m1 g
Fz
0 a3 m2 g
M 1, 0 x Mx Fya 3 m3 g 2 S 23 a3FzS1C23 a 2 S 2 2 m3 g Fy
m1
a 2 FzS1C2 d1 Fy m2 m3 g (3.9)
2
0
M 1, 0 y My a 2 FxS 23 a3FzC1C23 a 2 FxS 2 a 2 FzC1C2 d1Fx
0 a3
M 1, 0 z Mz a3FxS1C23 a3FyC1C23 m3 gC1C23 Fxa 2 S1C2
2
mg
a 2 Fy 2 m3 g C1C2
2
16
BTL môn ROBOTICS
Chƣơng 4
Vì các khâu coi nhƣ thanh đồng chất tiết diện ngang không đáng kể nên ta có trọng tâm
mỗi khâu nằm tại trung điểm của nó.
4.2 Cơ sở lý thuyết
Trong đó :
17
BTL môn ROBOTICS
T T T
d T T
dt q q q
T
T T
qT M ( q ) M (q)q
q q
T
d T
M (q)q M (q)q
dt q
Sử dụng định lý đạo hàm riêng theo vector tích của hai ma trận ta có:
T 1 1 qT b
(q b)
T
(b I n ) qT (4.1)
q 2 q 2 q q
Trong đó:
b1 I n
.
qT
(b I n ) e1T ...enT b eT I ...b eT I
q . 1 1 n n n n
bn I n
Mặt khác:
b
M q q qT M q q I n M q q
q T q T
q q q q
T 1 1 qT b 1 T b
(qT b) (b I n ) qT 0 q
q 2 q 2 q q 2 q
1 1 M (q) q
qT M (q )q qT (q I n ) M (q )
2 q 2 q q
1 T M (q) 1 M (q )
q ( q I n ) 0 qT (q I n )
2 q 2 q
(4.5)
18
BTL môn ROBOTICS
T T
1 M (q)
M (q )q M (q )q qT (q I n )
2 q q
M (q)
M (q) ( I n q)
q
M (q) 1 M (q )
T
Đặt : v ( q, q ) ( I n q) ( q I n ) q C ( q, q ) q
q 2 q
T
1 M (q)
Ta có: v ( q, q ) M ( q ) q (q I n ) q (4.6)
2 q
Theo định lý đạo hàm toàn phần và đạo hàm riêng ta có:
M (q)
M (q) ( I n q)
q
M (q) 1 M (q )
T
v ( q, q ) ( I n q) ( q I n ) q C ( q, q ) q
q 2 q
T
M (q) 1 M (q )
C ( q, q ) ( I n q) (q I n )
q 2 q
Bảng 4.1 Bảng mô tả vị trí trọng tâm khối lượng và mô men quán tính khối của từng khâu
19
BTL môn ROBOTICS
Tạo độ trọng tâm của khâu i trong hệ tọa độ 0 tính nhƣ sau :
0
rci 0 ri 0Ri .i rci
Với 0
rci là tọa độ trọng tâm khâu i trong hệ tọa độ i
i
rci là tọa độ trọng tâm khâu i trong hệ tọa độ i
0
Ri là ma trận quay biến đổi hệ 0 thành hệ i
0
ri là tọa độ của gốc tọa độ i trong hệ tọa độ 0
Ta có các ma trận tọa độ trọng tâm của các khâu nhƣ sau :
a
a1 1 cos(q1 )
a1 . cos(q1 ) C1 0 S1
2 a
2
0
rC1 a1. sin(q1 ) S1
0 C1 0 1 sin(q1) (4.7)
2
d1 0 1 0 0 d1
a2 a2
a2 C1C2 a1C1 C1C2 C1 S 2 S1 C1C2 a1C1
2 2
0
rC 2 a2 S1C2 a1 S1 S1C2 S1 S 2 C1 0 l2 S1C 2 (4.8)
a2 S 2 d1 S 2 C2 0 0 a2 S d
2 2 1
a
a3 3 C1C23 q2C1C2 a1C1
a2C1C2 a3C1C23 a1C1 C1C23 C1S 23 S1 2
2
a2 S1C2 a3 S1C23 a1S1 S1C23
C1 0 a2 S1C2 3 S1C23 a1 S1
a
0
rC 3 S1S 23
2
a2 S 2 a3 S 23 d1 S 23 C23 0 0 a3
S 23 a2 S 2 d1
2
Từ (4.7) (4.8) và (4.9) ta có ma trận Jacobi tịnh tiến của các khâu :
a1
2 S1 0 0
r a
JT1 C1 1 C1 0 0 (4.10)
q 2
0 0 0
1 1
2 a2 S1C2 S1a1
2
a2C1 S 2 0
r 1 1
JT 2 C1 a2C1C2 C1a1 a2 S1 S 2 0 (4.11)
q 2 2
0
1
a2 C 2 0
2
20
BTL môn ROBOTICS
1 1 1
a2 S1C2 2 a3 S1C23 C1a1 a2C1S 2
2
a3C1S 23 a3C1 S 23
2
r 1 1 1
JT 3 C1 a2C1C2 a3C1C23 C1a1 a2 S1S 2 a3 S1 S 23 a3 S1 S 23 (4.12)
q
2 2 2
0
1
a2C2 a3C23
1
a3C23
2 2
Cũng từ các ma trận Denanvit- Hartenberg ta xác định đƣợc các ma trận cosin chỉ hƣởng
của các khâu (xem 1.1, 1.5, 3.5) :
Ma trận cosin chỉ hƣớng của khâu 1 :
C1 0 S1
0
R1 S1 0 C1
0 1 0
C1C 2 C1 S 2 S1
0
R2 S1C 2 S1 S 2 C1
S 2 C2 0
C1C 23 C1 S 23 S1
0
R3 S1C23 S1 S 23 C1
S 23 C 23 0
.0 q 1 0
~1` R1T R1 q 1 0 0
0 0 0
0 0 0
1
J R1 0 0 0 (4.13)
q
1 0 0
0 q1 q 2C1
2 R2 R2 q1
~ ` T
0 q 2 S1
q 2C1 q 2 S1 0
21
BTL môn ROBOTICS
0 S1 0
2
J R2 0 C1 0 (4.14)
q
1 0 0
0 S1 S1
3
J R3 0 C1 C1 (4.15)
q
1 0 0
Trong đó:
m12=m13=m31=m21=0
22
BTL môn ROBOTICS
23
BTL môn ROBOTICS
Từ đó suy ra :
g1
g g2
q
g3
Trong đó :
Thế các biểu thức vào phƣơng trình Lagrange loại hai :
Ta nhận đƣợc hệ phƣơng trình vi phân chuyển động của robot ba khâu trong không gian :
Khâu 1 :
24
BTL môn ROBOTICS
Khâu 2 :
Khâu 3 :
Trong đó
d 2qi qi
diffq i q
25
BTL môn ROBOTICS
Chƣơng 5
Nhiêm vụ của bài toán điều khiển là tìm ra quy luật của lực/ mô men do các động
cơ điện tạo ra tác dụng lên các khâu để đảm bảo robot chạy đúng theo quy luật q d(t) cho
trƣớc, nhằm thực hiện một số nhiệm vụ nào đó. Trên cơ sở chuyển động mong muốn qd(t)
đƣợc định nghĩa trƣớc và chuyển động hiện tại của robot đƣợc đo bởi các cảm biến đặt tại
khớp, bộ điều khiển có nhiệm vụ đƣa ra các lực/mômen cần thiết. các lực/mômen này tác
động làm cho robot thực hiện chuyển động mong muốn một cách ổn định và chính xác. Sơ
đồ khối của bộ điều khiển cho robot có dạng nhƣ hình 5.1
Bộ điều q(t)
q d (t) khiển PD
Robot
_
Cảm biến
Để có đƣợc luật điều khiển đáp ứng các yêu cầu vừa nêu, thông thƣờng luật điều
khiển dựa trên động lực học ngƣợc đƣợc sử dụng. Với luật điều khiển này lực/mô men của
các bộ phận dẫn động đƣợc tính nhƣ sau:
Giả thiết thành phần mômen trọng lực G(q) đƣợc bù hoàn toàn, sơ đồ hệ thống điều
khiển phản hồi với cấu trúc điều khiển PD có dạng đơn giản nhƣ sau:
26
BTL môn ROBOTICS
q
Kp
q
RB
q
Kp
q
Tín hiệu đặt vị trí qd đƣợc so sánh với vị trí thực của khớp q, sai lệch đƣợc đặt vào
khâu khuếch đại với hệ số Kp. Tín hiệu ra của khâu tỉ lệ đƣợc cộng đại số với tín hiệu tỉ lệ
với tốc độ của khớp và đặt cơ cấu chấp hành của robot:
dk K p K D (5.2)
Trong đó :
Kd diag ( Kd1 , Kd 2 ,..., Kdn ) là ma trận đƣờng chéo các hệ số đạo hàm của
từng khớp hợp riêng.
Hệ thống điều kiển với cấu trúc bộ điều khiển (3…) ổn định tuyệt đối toàn cục. thật
vậy, chọn hàm lyapunov có dạng :
1
VL ( T .K p . q T Hq ) (5.4)
2
1 T
Hàm VL biểu thị tổng năng lƣợng hệ thống robot: thành phần K p tỉ lệ năng
2
1 T
lƣợng đầu vào và thành phần (q .H .q ) là động năng của robot. KP và H là các ma trận
2
hệ số dƣơng; nên hàm VL > 0 với q qd .
27
BTL môn ROBOTICS
1 1 1 1 1
VL T K p T K p q T Hq q T Hq q T Hq (5.5)
2 2 2 2 2
Do tính đối xứng của các thành phần T K p , q T Hq nên (4.5) đƣợc rút gọn lại nhƣ sau:
1
VL T K p q T Hq q T Hq (5.6)
2
Thay phƣơng trình dạng tổng quát vào phƣơng trình trên với giả thiết không có thành phần
mômen trọng lực G(p) ta có :
1
VL T K p q T Hq q T [ C (q , q )q ] (5.7)
2
Sử dụng thuộc tính của phƣơng trình động lực học và áp dụng luật điều khiển (4.1),
Phƣơng trình (4.7) đƣợc biến đổi nhhuw sau:
1 1
VL q T K p q T H (q )q q T C (q , q )q q T K p q T [ H (q ) C (q , q )]q (5.8)
2 2
1 1
Do ma trận H (q ) C (q , q ) là ma trận đối xứng ngƣợc nên H (q ) C (q , q ) = 0 với mọi
2 2
q nên từ (4.7) ta nhận đƣợc :
VL q T K p q 0
Bất đẳng thức trên cho thấy rằng hệ thông ổn định tuyệt đối. mức độ dƣơng của VL phụ
thuộc vào Kp và mức độ âm của VL phụ thuộc vào KD. Do đó tăng tốc độ hội tụ bằng cách
tăng giá trị ma trận KD.
28