Professional Documents
Culture Documents
Động học vận tốc tìm sự liên hệ giữa vận tốc đầu cuối của robot và đạo hàm biến
khớp. Sự liên hệ này giúp giải nhiều bài toán như động học ngược, động lực học và lực
tác động…
Ví dụ 3.1: Động học vận tốc robot hai bậc tự do RP
Vận tốc góc ω là vector tỷ lệ vector đơn vị trục quay k và có giá trị là đạo hàm
góc quay k là vecto đơn vị theo trục quay
k (3.3)
Phương trình liên hệ vận tốc đầu cuối và đạo hàm biến khớp là
c rs
v
r Jq gồm có Jv và Jomega
s rc
0 k
(3.4)
0 , k là vecto, ko phải số
J gọi là ma trận Jacobi của robot, phần tiếp theo trình bày cách tính J
3.1.1 Định nghĩa Ma trận 3x3, đường chéo là zeo, đối xứng thì đổi dấu
Ma trận vuông S3x3 là ma trận đối xứng ghềnh (đxg, skew symmetry) nếu
S ST 0
0 3 2
S 3 0 1 S () ma trận ddxg là biểu diễn của vecto omega dưới dạng ma
trận.
2 1 0
(3.5)
Ta có thể coi như S là biểu diễn dạng ma trận của vector ω=[ω1 ω2 ω3]T. Xét các
vector đơn vị
i 1 0 0 , j 0 1 0 , k 0 0 1
T T T
68
ĐỘNG HỌC VẬN TỐC ROBOT NỐI TIẾP
- RS(a)RTb = R(a x RTb) = (Ra) x (RRTb)= (Ra) x b = S(Ra)b (3.10)
- RS(a)RT= S(Ra) (3.11)
RTR=I,
dR T dRT
R R 0
d d
dR T dR
Ma trận S = R cũng là ma trận đxg, =SR
d d
Ta tìm biểu thức của S với phép quay góc θ quanh vector k, vector vận tốc góc là
k . Ma trận quay quanh vector k=[kx ky kz]T là (2.23)
k x2v c k x k y v k z s k x k z v k y s
Rk , () k x k y v k z s k y2v c k y k z v k x s
k x k z v k y s k y k z v k x s k 2
v c
z
v 1 cos (3.12)
k x2 s s k x k y s k z c k x k z s k y c
dRk ,
k x k y s k z c k y2 s s k y k z s k xc
d
k x k z s k y c k y k z s k xc k 2
s s
z
k x2 s s k x k y s k z c k x k z s k y c
dRk ,
RkT, k x k y s k z c k y2 s s k y k z s k xc *
d
k x k z s k y c k y k z s k x c k z s s
2
k x2v c k x k y v k z s k x k z v k y s
k x k y v k z s k y v c
2
k y k z v k x s
k x k z v k y s k y k z v k x s k z v c
2
0 k z ky
dRk ,
RkT, kz 0 k x S (k ) (3.13)
d
k y kx 0
Vậy, nếu Rk,θ là ma trận quay góc θ quanh vector đơn vị k thì
69
CHƯƠNG 3
dRk ,
S (k ) Rk , (3.14)
d
dRk , d
S (k ) Rk , S ( k ) Rk , S (ω) Rk , (3.15)
dt dt
c s0
R s c 0 với α thay đổi theo thời gian, lấy đạo hàm theo thời gian
0 0 1
s c 0
R c s 0
0 0 0
s c 0 c s 0
T c s 0 s c 0
Ma trận đxg là S RR
0 0 0 0 0 1
0 0
S 0 0
0 0 0
Ví dụ 3.3: Cho hai hệ trục Ooxoyozo và O1x1y1z1 liên hệ với nhau bởi ma trận
R01 (t ) O01 (t )
H (t )
0 1
điểm P có toạ độ trong hệ 1 là p1 và vận tốc trong hệ 1 là v1 p1 , tìm vận tốc góc và
vận tốc dài của P trong hệ 0
Vận tốc góc của điểm P là vận tốc góc của hệ trục 1 so với hệ trục 0, giống như
Ví dụ 3.2 ta tính S R 1 R1T từ đó tính 1 .
0 0 0
Vận tốc dài tính được bằng cách đạo hàm vector vị trí
p0 R01 p1 O01
p 0 R 01 p1 R01 p1 O 01
v0 SR01 p1 R01v1 O 01 10 xR01 p1 R01v1 O 01
70
ĐỘNG HỌC VẬN TỐC ROBOT NỐI TIẾP
3.2 VẬN TỐC GÓC ĐẦU CUỐI
Cho robot n bậc tự do, hướng đầu công tác biểu thị bởi các tích ma trận quay
Gọi ii1 vận tốc góc khâu i so với khâu i-1, 0n là vận tốc góc đầu công tác so với hệ
trục gốc,
dR0n
S (0n ) R0n
dt
dRii1
S (ii -1 ) Rii1
dt
S (0n ) R0n S (10 ) R01 R1n R01 S (12 ) R12 R2n ... R0n1S (n-1
n
) Rnn1
S (0n ) R0n S (10 ) R0n S (R0112 ) R0n ... S (R0n1nn1 ) R0n
{S (10 ) S (R0112 ) ... S (R0n1nn1 )}R0n
S (10 R0112 ... R0n1nn1 ) R0n
Suy ra
Vận tốc góc đầu công tác so với hệ trục gốc là tổng vận tốc góc các khâu so với
hệ tọa độ gốc. Nếu khớp tịnh tiến thì vận tốc góc của khớp bằng không, do đó vận tốc
góc đầu công tác so với hệ trục gốc là tổng vận tốc góc các khớp quay so với hệ tọa
độ gốc. Đặt ηi=1 nếu khớp i là khớp quay, ηi=0 nếu khớp i là khớp trượt, qi=θi là biến
khớp, zii 0 0 1 là vector đơn vị trục quay của khớp thứ i trong hệ trục i, tích
T
z0i = R0i zii tính zii trong hệ tọa độ gốc Ox0y0z0 , là cột thứ ba của R0i
0n x
n n 1 n
0 y 1q1z0 2 q 2 R0 z1 3q3 R0 z2 ... n q n R0 zn
1 1 2 2
n
0 z
71
CHƯƠNG 3
q1 q1
0n x q q
n 2 2
0 y [1z0 2 z0 3 z0 ...n z0 ] : J :
1 2 n-1
n
q q
0 z n 1 n 1
q n q n
(3.17)
Jω là ma trận Jacobi vận tốc góc 3 hàng n cột, J i z0i 1 nếu khớp i là khớp quay,
J i 0 nếu khớp i là khớp tịnh tiến,
Vận tốc dài đầu công tác là đạo hàm vectơ vị trí theo thời gian
a/ Trường hợp khớp i tịnh tiến: đầu công tác cũng sẽ tịnh tiến theo
72
ĐỘNG HỌC VẬN TỐC ROBOT NỐI TIẾP
R0n p0n i 1 i R0i 1 p0i 1 Rii1 pii1 Rin pin
H 0n H 0 H i 1H i
n
0 1 0 1 0 1 0 1
R0n R0i pin R0i 1 pii1 p0i 1
0 1
Tọa độ đầu công tác : p0n R0i pin R0i 1 pii1 p0i 1
Nếu chỉ có khớp i di chuyển pin , p0i 1 không đổi, các ma trận quay cũng không
đổi, và pii1 [ai ci ai si di ] trong đó di thay đổi
0
dp0n i
i 1 dpi 1
R0 di R0 0 di z0i 1
i 1
dqi ddi
1
z0i1 là hình chiếu trục zi-1 trên hệ tọa độ gốc, là hướng tịnh tiến của khớp i
J vi di z0i 1 (3.19)
b/ Trường hợp khớp i quay quanh trục zi-1:
dp0n d i n d d
( R0 pi R0i 1 pii1 ) ( R0i pin ) R0i 1 ( pii1 )
dt dt dt dt
d
i S ( z0i 1 ) R0i pin R0i 1 ( pii1 )
dti
ai ci ai si 0 i 0 ai ci 0
d i d
a c 0 ) pi
( pi 1 ) a s 0 0 a s S (
d i i 1
i i i i i i i i
dt
di 0 0
0 0 di i
S ( z ) pi
i 1 i i 1
d i
R0i 1 ( pi 1 ) R0i 1S ( zi 1 i ) pii1 R0i 1S ( zi 1 i )( R0i 1 )T R0i 1 pii1
dt
S ( R0i 1zi 1 i ) R0i 1 pii1 i S ( z0i 1 ) R0i 1 pii1
dp0n
i S ( z0i 1 )( R0i pin R0i 1 pii1 )
dt
73
CHƯƠNG 3
J
J v J1 J 2 ... J n
J (3.21)
Ma trận Jacobi có số cột là số bậc tự do, số hàng là 6
Nếu khớp i là khớp quay
z0i 1 ( p0n p0i 1 ) S ( z0i 1 )( p0n p0i 1 )
Ji
z0i 1 z0i 1 (3.22)
Nếu khớp i là tịnh tiến
z0i 1
Ji
0 (3.23)
p là vị trí gốc tọa độ i-1 so với hệ trục gốc, là cột thứ tư của ma trận H
i1
0
i1
0
z0i1 là vectơ trục zi-1 so với hệ trục gốc, là cột thứ ba của ma trận quay R0i1
Sự liên hệ của đạo hàm biến khớp và vận tốc dài, vận tốc góc đầu công tác được
biểu thị bởi công thức
v
Jq
(3.24)
Nếu chọn một hệ tọa độ w khác so với hệ tọa độ gốc 0 ta tìm ma trận quay R0,w
biểu thị hướng của hệ 0 so với hệ w, ta có các biểu thức sau để tìm Jacobi của robot
trong hệ w:
p e,w R0,w 0 p e,0
ψ 0 R0,w ψ e,0
e,w
R0,w 0
Jw
R0,w
J
0 (3.25)
Ví dụ 3.4: Robot RR
74
ĐỘNG HỌC VẬN TỐC ROBOT NỐI TIẾP
75
CHƯƠNG 3
p2 a1c1 a2c12 0 ,
T
a1s1 a2 s12
p3 a1c1 a2c12 a3c123 a1s1 a2 s12 a3s123 0 ,
T
z0 z1 z2 0 0 1
T
Suy ra
(a1s1 a2 s12 a3s132 ) (a2 s12 a3s132 ) a3s132
ac a c a c a2c12 a3c123 a3c123
1 1 2 12 3 123
0 0 0
J (3.27)
0 0 0
0 0 0
1 1 1
z p3 z1 z2 ( p03 p02 )
J 0 0
z0 0 z2
clc
syms a alp d th d1 d2 th1 th3 pi a3;
hi=[cos(th) -cos(alp)*sin(th) sin(alp)*sin(th) a*cos(th);
sin(th) cos(alp)*cos(th) -sin(alp)*cos(th) a*sin(th);
0 sin(alp) cos(alp) d;
76
ĐỘNG HỌC VẬN TỐC ROBOT NỐI TIẾP
0 0 0 1];
a=0; alp=pi/2; d=0; th=th1;
h1=subs(hi);
h1=expand(h1)
a=0; alp=-pi/2;th=0 ; d=d2;
h2=subs(hi);
h2=expand(h2)
a=a3; alp=0;d=0;th=th3;
h3=subs(hi);
h3=expand(h3)
h02=h1*h2
%forward kinematics
h03=h1*h2*h3;
z0=[0 0 1];
z1=h1(1:3,3)
z2=h02(1:3,3)
p3=h03(1:3,4)
%Tính Jacobi
Jac=jacobian(p3,[th1;d2;th3])
p2=h02(1:3,4)
%z0xp3
j1=[-p3(2) p3(1) 0]
%z2x(p3-p2)
p32=p3-p2
j3=[-z2(3)*p32(2)+z2(2)*p32(3) z2(3)*p32(1)-z2(1)*p32(3) -
z2(2)*p32(1)+z2(1)*p32(2)]
jacobcv=[j1 z0; z1' 0 0 0;j3 z2']
p (q )
X
α (q )
vector X6x1 gọi là tư thế (pose) của robot, đạo hàm riêng theo biến khớp q các biểu
thức của p(q) tọa độ đầu cuối và α(q) góc Euler, ta được ma trận gọi là Jacobi giải tích
p
X J a (q)q
α (3.29)
Ma trận Jacobi giải tích khác với ma trận Jacobi mục 3.4.1 (gọi là ma trận Jacobi
hình học vì α khác (vector vận tốc góc).
Xét phép quay ba góc Euler quanh trục hiện tại ZYZ Rz,ψ Ry,θ Rz,φ, ta công nhận
không chứng minh biểu thức quan hệ giữa α và
c s s c s s 0
s s c s s c 0 B( )
c c 0 1
(3.30)
từ đó suy ra
v v I 0 v I 0
J (q)q J a q (3.31)
B(α)α 0 B(α) α 0 B(α)
78
ĐỘNG HỌC VẬN TỐC ROBOT NỐI TIẾP
3.5 ĐỘNG HỌC VẬN TỐC NGƯỢC
Ma trận Jacobi có 6 hàng n cột, nếu n=6 và det(J)≠0 ta có thể tính động học vận
tốc ngược theo biểu thức
v (t )
q (t ) J 1 (q(t ))
(t ) (3.36)
Điều này có nghĩa cho trước vận tốc đầu cuối và các biến khớp, ta tìm được đạo
hàm biến khớp tương ứng.
Điều kiện khả đảo của J không phải lúc nào cũng được thỏa mãn, xét ví dụ 3.2,
J có hai hàng độc lập tuyến tính, nghĩa là rank(J)=2, vậy ta chỉ tìm được [ p x p y ] theo
1 2 còn vận tốc góc không độc lập. Từ (3.26)
Khi s2=sin(θ2)=0 thì det(J)=0, ta không tính nghịch đảo được, lúc này robot rơi
vào vị trí bất thường (singular) , θ2=0 hai cánh tay thẳng hàng hay θ2=±180o, hai cánh
tay chập vào nhau. Ở điểm bất thường đạo hàm biến khớp tăng vô hạn, vậy ta phải
tránh không cho robot rơi vào điểm bất thường.
Xét Ví dụ 3.6, robot ba bậc tự do, từ (3.28) J có ba hàng độc lập tuyến tính là 1,2
và 6, vậy ta có thể viết
qua ma trận (JJT)-1, ở đây Jrxn là ma trận có r hàng rút ra từ ma trận hình học Jacobi,
JJT là ma trận vuông rxr, từ các biểu thức sau
( JJ T )( JJ T ) 1 I ,
J [J T ( JJ T )1 ] I (3.38)
Đặt J J T (JJ T )1 ta thấy JJ = I, ma trận J n hàng r cột gọi là ma trận giả đảo
+ +
bên phải của J. Gọi η vector r x 1 lấy từ các thành phần của [ v ω]T ( theo các hàng
độc lập tuyến tính của J) ta tính được
qnx1 J nxr rx1
(3.39)
Cho biểu thức quỹ đạo định trước của đầu cuối robot ta dễ dàng tính η(t) từ đó
suy ra q (t ) và tích phân để được q(t), chính là giá trị đặt cho bộ điều khiển vị trí các
khâu của robot
t
q(t ) q(0) q ()d
0 (3.40)
q(tk 1) q(tk ) q (tk )t (3.41)
Vậy ta đã giải bài toán động học ngược vị trí thông qua động học ngược vận tốc.
Ta cũng có thể tìm biểu thức của gia tốc, lấy đạo hàm (3.24) theo thời gian
v
Jq Jq
v
J 1 v J 1JJ
1 v
q J 1 J 1Jq
(3.42)
80
ĐỘNG HỌC VẬN TỐC ROBOT NỐI TIẾP
Hình 3.5 Tính động học ngược vị trí thông qua động học ngược vận tốc
Phương pháp trên đòi hỏi phải tính ma trận Jacobi đảo, một phương pháp khác
dùng ma trận Jacobi chuyển vị, ta đặt hàm Liapunov
1
V eT Ke > 0
2
Lấy đạo hàm theo thời gian
V eT Ke = eT Kx eT Kx
d e
e Kx d e KJ a q
T T
Hình 3.6 Tính động học ngược vị trí thông qua động học ngược vận tốc
Nếu xét gia tốc biến khớp ta sẽ có sơ đồ vòng kín động học ngược vị trí bậc hai
sử dụng luật điều khiển bậc hai
a x J q )
q J 1 ( e a
81
CHƯƠNG 3
Hình 3.7 Vòng kín bậc hai động học ngược vị tri
Gọi F lực tác động lên đầu công tác và τ moment tác động lên các khớp, δX
khoảng dịch chuyển nhỏ của đầu công tác do lực F, δq khoảng dịch chuyển tương ứng
của biến khớp, ta có biểu thức:
δX=J(q) δq
Công ảo sinh ra là δw=F δX- τ δq= (FT J(q)- τT )δq
T T
82
ĐỘNG HỌC VẬN TỐC ROBOT NỐI TIẾP
τ J T q F
(3.44)
Trong không gian F là vectơ 6x1 gồm ba thành phần lực và ba thành phần
moment.
Ví dụ 3.7: Xét robot RR, lực mà đầu công tác cần tác động là F=[1 1]T, tìm
moment các động cơ khớp phải tạo ra
Từ (3.26)
a s a s a1c1 a2c12
J T 1 1 2 12
a2 s12 a2c12
a s a s a c a c
τ J T q F 1 1 2 12 1 1 2 12
a2 s12 a2c12
BÀI TẬP
BT1 Hệ trục 1 liên hệ với hệ trục 0 bởi ma trận đồng nhất
0 1 0 1
1 0 0 1
H 01
0 0 1 0
0 0 0 1
Một điểm trong hệ toạ độ 1 có vận tốc v11 3 0 2 , tìm vận tốc điểm này trong hệ
T
toạ độ 0.
BT2 Cho ba hệ toạ độ 0, 1, 2 với các trục quay 10 1 1 0 , 12 1 0 1
T T
.
Tính 02 khi ma trận hướng là
1 0 0
R12 0 0 1
0 1 0
BT3 Viết chương trình Matlab tính Jacobi robot phẳng RRR
83
CHƯƠNG 3
Đáp số:
a1s1 a2 s12 a3s123 a2 s12 a3 s123 a3 s123
ac a c a c a2c12 a3c123 a3c123
1 1 2 12 3 123
0 0 0
J
0 0 0
0 0 0
1 1 1
BT4 Viết chương trình Matlab tính Jacobi robot khuỷu RRR
Đáp số:
s1 (a2c2 a3c23 ) c1 (a2 s2 a3s23 ) a3c1s23
c (a c a c ) s (a s a s ) a s s
1 2 2 3 23 1 2 2 3 23 3 1 23
0 a2c2 a3c23 a3c23
J
0 s1 s1
0 c1 c1
1 1 1
BT5 Tính J của robot RRP có bảng DH sau
a α d θ
0 90 0 θ1
0 90 0 θ2
0 0 d3 0
BT6 Cho robot RRR có chiều dài cánh tay 0.25 m, vị trí ban đầu q = [π -π/2 -π/2]T,
tương ứng xe = 0 m, ye = 0.5 m, ϕe = 0 rad di chuyển theo vòng tròn bán kính 0.25m,
tâm (0.25 0.5) m trong thời gian 4s với phương trình
d
x 0.25 0.25cos t
y 0.5 0.25sin t
d
d t
sin
24
Lập trình simulink giải bài toán động học ngược vi trí vòng kín, vẽ q(t) và sai số vị trí,
sai số hướng.
84