Mô tả:
Bài số 1:
Cho robot 3 DOF như hình vẽ:
Cho các thông số của robot như sau: d1 = 1m; l1 = 1,5 m ; l2 = 2m ; d3 = 0,5 m
θ1 = л/3 ; θ2 = л/6
z1
z0
z2
x2
x0
l1
x1
l2
z3
d1
d3
x3
1. Tính toán động học thuận, động học ngược vị trí, ma trận jacoby
2. Yêu cầu tay robot chuyển động theo quỹ đạo là 1 đường thẳng trong không
gian từ A(0.8;1.2;0,2) đến B(0;1;0,4) trong thòi gian 4s. Tính toán quỹ đạo các
khớp
3. Cho mô hình động học khớp robot:
(s)
u(s)
Ki
Ti s 1
Thiết kế bộ điều khiển vị trí dạng PI cho khớp:
Cho quỹ đạo đặt các khớp như tính toán tại phần 2. Vẽ quỹ đạo tay robot
trong không gian làm việc
Bài làm
I. Tính toán động học thuận, động học ngược vị trí và ma trận Jacoby
1. Động học thuận vị trí
a. Thiết lập hệ toạ độ
Hệ toạ độ cố định O0x0y0z0 đặt tại trục khớp 1
Hệ toạ độ O1x1y1z1 có gốc O1 đặt tại trục khớp 2
Hệ toạ độ O2x2y2z2 có gốc O2 đặt tại trục khớp 3
Hệ toạ độ O3x3y3z3 có gốc O3 đặt tại bàn tay robot.
Bốn trục z0, z1, z2, z3 cùng nằm trên mặt phẳng tờ giấy.
b. Bảng D-H
Căn cứ vào các thông số và hệ toạ độ đã được thiết lập ta có bảng thông số
DH của robot như sau:
i
θi
di
ai
αi
1
θ1
0
l1
0
2
θ2
0
l2
0
3
0
d1-d3
0
0
Phép biến đổi tổng quát từ hệ tọa độ (i-1) sang hệ tọa độ i:
ci
s
i 1
Ti i
0
0
si c i
si s i
ci c i
ci s i
si
0
c i
0
ai ci
ai si
di
1
Áp dụng vào robot 3DOF ta có:
c1 s1
s1 c1
0
T1
0 0
0 0
0 l1c1
c 2 s 2
s2 c2
0 l1s1 1
T2
0
1 0
0
0 1
0
0
0 l2 c 2
0 l2 s 2
1 0
0 1
1
0
2
T3
0
0
1 0
0
0 1 d1 d3
0 0
1
0 0
Phương trình động học thuận được xác định như sau:
0
T3=0T11T22T3
c1 s1
s1 c1
0
T3
0 0
0 0
0 l1c1 c 2 s 2
0 l1s1 s 2 c 2
.
1 0 0
0
0 1 0
0
c12 s12
s12 c12
0
T3
0
0
0
0
0 l2 c 2 1
0 l2 s 2 0
.
1 0 0
0 1 0
1 0
0
0 1 d1 d3
0 0
1
0 0
0 l1c1 l2c12
0 l1s1 l2 s12
1
d1 d3
0
1
Trong đó ta ký hiệu:
c1 c1; s1 s1
c 2 c ; s 2 s
2
2
c12 c(1 2 )
s12 s(1 2 )
Với:
1 ;2 ; l1 1,5m; l2 2m; d1 1m; d3 0,5m
3
6
0
1
0
T3
0
0
1 0
0
0
0
0
1
0
2 0, 75 3
0,5
1
0, 75
0
0
2. Động học ngược vị trí robot
Biết ma trận 0T3 , tức là biết vị trí và hướng của khung toạ độ tay robot, cần
xác định giá trị các biến khớp 1, 2 và d3
nx
n
0
T3 y
nz
0
ox
oy
oz
0
px c12
p y s12
pz 0
1 0
ax
ay
az
0
s12
c12
0
0
0
0
1
0
l1c1 l2c12
l1s1 l2 s12
d1 d 3
1
Theo phương pháp phân ly biến ta có:
T11. 0T3 1T2 . 2T3
0
c1 s1
s1 c1
0
Với T1
0 0
0 0
c1
s1
0 1 0
T1 . T3
0
0
0 l1c1
c1
s1
0 l1s1
0T11
0
1 0
0 1
0
s1 0 l1 nx
c1 0 0 n y
.
0 1 0 nz
0 0 1 0
ox
ax
oy
ay
oz
0
az
0
s1 0 l1
c1 0 0
0 1 0
0 0 1
px
py 1
T3
pz
1
Mặt khác:
c 2 s 2
s2 c2
1
1
2
T3 T2 . T3
0
0
0
0
0 l2c 2 1
0 l2 s 2 0
.
1 0 0
0 1 0
Cân bằng hệ số 2 ma trận :
- Xét thành phần ở hàng 1,2 cột 3:
s1. px c1. p y l2 s 2
c1. px s1 p y l2c 2 l1
c 2 s 2
1 0
0 s2 c2
0 1 d1 d3 0
0
0 0
1 0
0
0 0
0
l2 c 2
0 l2 s 2
1 d1 d3
0
1
0
Bình phương 2 vế và cộng lại ta được phương trình sau:
px2 p y2 l12 l22 2l1l2c 2
c2
px2 p 2y l12 l22
2l1l2
px2 p y2 l12 l22 px2 p 2y l12 l22
2 atan2( 1,
)
2l1l2
2l1l2
- Cũng theo trên ta có :
p yl2c 2 p yl1 pxl2 s 2
s
1
px2 p y2
px .s1 p y .c1 l2 s 2
p l s 2 pxl1 pxl2c 2
px .c1 p y .s1 l2c 2 l1
c1 y 2
px2 p 2y
1 atan2(pyl2c2 p yl1 pxl2 s 2; p yl2s 2 pxl1 pxl2c 2)
- Xét thành phần ở hàng 3 cột 4 ma trận 0T3: pz d1 d3 d3 d1 pz
Vậy:
px2 p y2 l12 l22 px2 p 2y l12 l22
2 atan2( 1,
)
2l1l2
2l1l2
1 atan2(p yl2c 2 p yl1 pxl2 s 2,p yl2 s 2 p xl1 p xl2c 2)
d3 d1 pz
3. Ma trận Jacoby
px l1c1 l2c12
Ta có : p y l1s1 l2 s12
p d1 d3
z
px
l1s1 l2 s12
1
p
x l2 s12
2
px
0
d3
p y
l1c1 l2c12
1
p y
l2c12
2
p y
0
d3
d 3
0
1
d3
0
2
d 3
1
d 3
1.
p. x
.
.
p y J 2
d .
.
pz
3
l1s1 l2 s12 l2 s12 0
J l1c1 l2c12 l2c12 0
0
0
1
II. Tính toán quỹ đạo các khớp
Khi cho tọa độ vị trí tay robot trong không gian làm việc (x,y,z) ta có thể
xác định được các biến khớp thông qua động học ngược vị trí:
px2 p y2 l12 l22 px2 p 2y l12 l22
2 atan2( 1,
)
2l1l2
2l1l2
1 atan2(p yl2c 2 p yl1 pxl2 s 2,p yl2 s 2 p xl1 p xl2c 2)
d3 d1 pz
Yêu cầu tay robot chuyển động từ điểm A( 0,8; 1,2; 0,2 ) đến điểm B( 0;
1; 0,4)
Xây dựng được quỹ đạo đường thẳng đi qua hai điểm trên trong không gian:
x 0.8 y 1.2
z 0.2
t
0 0.8 1 1.2 0.4 0.2
x 0.8 y 1.2 z 0.2
t
0.8
0.2
0.2
Hay :
x 0.8 0.8t
y 1.2 0.2t
z 0.2 0.2t
Với thời gian chuyển động trên quỹ đạo là t = 4s, gián đoạn hóa quỹ đạo
thành 1000 điểm, chu kỳ trích mẫu : T = 4/1000 = 4ms
x 0.8 0.0032i
y 1.2 0.0008i i 0 1000
z 0.2 0.0008i
Mô phỏng bằng matlab:
for i=0:1:1000
l1 = 1.5; l2 = 2;
x = 0.8 - 0.0032*i;
y = 1+0.001*i;
z = 0.2+0.0002*i;
theta2=atan2(sqrt(1-[(x*x+y*y-l1*l1-l2*l2)/(2*l1*l2)]),(x*x+y*y-l1*l1l2*l2)/(2*l1*l2));
theta1=atan2((y*l2*cos(theta2)+y*l1-x*l2*sin(theta2)),
(y*l2*sin(theta2)+x*l1+x*l2*cos(theta2)));
d3 = 1- z;
% vẽ đồ thị:
plot3(theta1,theta2,d3);
hold on;
end
grid on;
Kết quả :
III. Thiết kế bộ điều khiển vị trí dạng PI cho khớp
1. Cho mô hình động học khớp robot:
(s)
u(s)
Ki
Ti s 1
→ Mô hình đối tượng:
U : 10 10V
: 5 5rad / s
T 0.01( s)
I
Mô hình simulink:
Creat subsystem
Khối vị trí ban đầu:
Creat subsystem
2. Thiết kế bộ điều khiển vị trí dạng PI cho khớp
Cho: tọa độ điểm ban đầu: A(0.8;1.2;0,2)
tọa độ điểm cuối: B(0;1;0,4)
Sử dụng động học ngược vị trí :
l1 = 1.5; l2 = 2;
x=;
y =;
z =;
theta2=atan2(sqrt(1-[(x*x+y*y-l1*l1-l2*l2)/(2*l1*l2)]),(x*x+y*y-l1*l1l2*l2)/(2*l1*l2));
theta1=atan2((y*l2*cos(theta2)+y*l1-x*l2*sin(theta2)),
(y*l2*sin(theta2)+x*l1+x*l2*cos(theta2)));
d3 = 1- z;
Ta xác định được
10 0.28
- Góc ban đầu: 20 2.06
d30 0.8
1d 0.01
1.9
- Góc đặt:
2d
d3d 0.6
Mô hình bộ điều khiển:
Thuật toán điều khiển:
t
U dk K p .e K I e( )d
0
Trong đó: e qd q : sai số vị trí của hệ thống
Mô hình simulink bộ điều khiển:
Creat subsystem
Tổng hợp bộ điều khiển:
Xác định các tham số của bộ điều khiển sao cho không có quá điều chỉnh:
Ta chọn:
K P1 10 K I 1 0
K P 2 10 K I 2 0
K 15 K 0
I3
P1
Kết quả mô phỏng:
- Qũy đạo khớp 1:
- Qũy đạo khớp 2:
- Qũy đạo khớp 3:
- Quỹ đạo tay robot trong khong gian làm việc:
- Xem thêm -