Professional Documents
Culture Documents
Robot nối tiếp là chuỗi động học hở gồm nhiều khâu nối với nhau bởi khớp quay
hoặc trượt. Đế robot liên kết với hệ tọa độ trực chuẩn tham chiếu cố định, đầu công tác
nằm ở đầu cuối của chuỗi. Vị trí tương đối giữa hai khâu kế nhau phụ thuộc góc quay
θ hay độ dịch chuyển d gọi chung là biến khớp q. Động học thuận robot có mục đích là
tìm vị trí và hướng đầu công tác so với hệ tọa độ cố định khi các khớp chuyển động
còn động học ngược là tìm các biến khớp khi cho trước vị trí và hướng đầu công tác.
động học thuận (robot) đi tìm vị trí & hướng của đầu công tác dựa vào
các khớp chuyển động ! Còn động học ngược thì tìm biến khớp khi đã
2.1 MA TRẬN CHUYỂN ĐỔI có vị trí và hướng của đầu công tác !
Cho hệ tọa độ trực chuẩn O0xyz gọi là hệ tọa độ gốc (gọi tắt là hệ tọa độ 0) và
một vật rắn, liên kết với nó là hệ tọa độ vật O1xyz (gọi tắt là hệ tọa độ 1). Hệ tọa độ
được xác định theo qui tắc bàn tay phải. Các vector đơn vị của hai hệ lần lượt là x0, y0,
z0 và x1, y1, z1. Cho điểm P có tọa độ (px, py, pz) trong hệ tọa độ 0, ta biểu diển bằng
phương trình sau:
O0 P p0 px x0 p y y0 pz z0 (2.1)
T
p0 px py pz (2.2)
R0 y0 x1 y0 z1
1 tích của 1 hàng (cột) = 0, module = 1
quay từ hệ trục 1 sang hệ trục 0 (1->0) y0 y1 (2.4)
z0 x1 z0 y1 z0 z1 - Ký hieu giong sách Spong cũ
- Ký hieu ngược sách Spong mới
KỸ THUẬT ROBOT- TS NGUYỄN ĐỨC THÀNH
CHƯƠNG 2
Cột thứ nhất, thứ hai, thứ ba lần lượt là hình chiếu của x1, y1, z1 trên hệ trục 0,
Hàng thứ nhất, thứ hai, thứ ba lần lượt là hình chiếu của x0, y0, z0 trên hệ trục 1,
Nếu hai hệ trục song song nhau R01 là ma trận đơn vị. (T = biểu diễn cho cột)
Cho điểm A, biểu thị bằng vector a1= [ax1 ay1 az1]T và a0= [ax0 ay0 az0]T lần lượt
trong hệ tọa độ 1 và 0, sự chuyển đổi giữa a1 và a0 được xác định bởi (2.5) (2.6)
Hình 2.1 Qui ước bàn tay phải và dịch chuyển giữa hai hệ tọa độ
x1 x0 x1 y0 x1z0
R y1 x0
0
1 y1 y0 y1z0 (2.7)
z1 x0 z1 y0 z1z0
Tích vô hướng có tính chất giao hoán, so sánh (2.4) và (2.7) ta nhận thấy
- det(R)=1
- mỗi cột hay hàng là vector đơn vị
- tích hai hàng hay hai cột là 0
- Mỗi cột là hình chiếu của vector đơn vị hệ tọa độ mới so với hệ tọa độ gốc
- Mỗi hàng là hình chiếu của vector đơn vị hệ tọa độ gốc so với hệ tọa độ mới
Như vậy một vật rắn trong không gian được biểu diễn so với hệ tọa độ tham
chiếu bởi vector vị trí và ma trận quay. Nếu hai gốc tọa độ trùng nhau ta có phép quay
quanh gốc (Hình 2.2a), là kết hợp của ba phép quay quanh trục.
Ví dụ 2.1: Xét Hình 2.2b, tìm phép quay trục 0 sang 1 và ngược lại.
26
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Ta tìm hình chiếu của các vector đơn vị hệ trục 1 lên hệ trục 0
T T
2 2 2 2
, z1 0 1 0
T
x1 0 , y1 0
2 2 2 2
2 2
0
2 2
R01 0 0 1
2
2
0
2 2
2 2
0
2 2
2 2
R10 ( R01 )T 0
2 2
0 1 0
Ma trận quay biểu diễn phép quay hệ trục tọa độ, ngoài ra còn dùng để biểu diển
phép quay một khối hay phép biến đổi tọa độ
27
CHƯƠNG 2
Ví dụ 2.2: Xét Hình 2.3, điểm A có tọa độ a0=[-2 1 1]T, thực hiện phép quay
quanh trục z0 góc 180o, ma trận quay
x y z
1 0 0 cos180 = -1
R01 0 1 0
trục x và y quay 180 độ
còn z giữ nguyên (0,0,1)
0 0 1
1 0 0 2 2
a 0 R01a 0 0 1 0 1 1
0 0 1 1 1
Ví dụ 2.3: Xét Hình 2.4 với hai hệ tọa độ, tọa độ điểm A trong hệ 1 là a1=[2 -1
1]T tìm tọa độ điểm A trong hệ tọa độ 0.
1 0 0 2 2
a R a 0 1 0 1 1
0 1 1
0
0 0 1 1 1
28
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Ví dụ 2.4: Cho ba điểm O1, A, B trong hệ trục Oxyz, xét hệ trục O1x1y1z1 với trục
O1x1 theo phương O1A, trục O1z1 thẳng góc mặt phẳng O1AB, tìm ma trận R01
Ta tìm vector chỉ phương trục z1: z1 = O1A x O1B, z1 = z1/|| z1||,
Vector chỉ phương trục x1: x1 = O1A/|| O1A ||,
ko hiểu
Vector chỉ phương trục y1: y1 = z1 x x1
x1 (1) y1 (1) z1 (1)
R01 x1 (2) y1 (2) z1 (2) x1 y1 z1
x1 (3) y1 (3) z1 (3)
Có thể hình dung ba góc này theo tư thế bàn tay: một người đứng duổi thẳng
cánh tay và bàn tay nằm ngang, cánh tay cố định, bàn tay chuyển động, góc roll là góc
lật bàn tay sấp ngửa, góc pitch: quay bàn tay lên xuống, góc yaw: quay bàn tay sang
phải trái.
Phép quay Roll biểu diễn bởi ma trận R(z, φ)
cos sin 0
R( z, ) sin cos 0 (2.9)
0 0 1
cos sin
R() (2.10)
sin cos
29
CHƯƠNG 2
cos 0 sin
R( y, ) 0 1 0 (2.11)
sin 0 cos
1 0 0
R( x, ) 0 cos sin (2.12)
0 sin cos
30
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Phép quay R02 gọi là phép quay kết hợp hai phép quay liên tiếp trong hai hệ trục
khác nhau, do phép nhân ma trận không có tính giao hoán nên trật tự phép nhân là ma
trận quay thực hiện trước thì đặt ở bên trái ma trận quay thực hiện sau, ta gọi là phép
nhân sau.
Ví dụ 2.5: xét phép quay góc θ quanh trục hiện tại y0 rồi quay góc φ quanh trục
hiện tại z1, ma trận quay là
b R01a , c R12b
c = R12 R01a = R02a (2.14)
R02 R12 R01
Ma trận R02 là tích của phép nhân trước, phép quay thực hiện trước thì ma trận
quay đặt bên phải.
2.1.4 Phép quay YAW PITCH ROLL XYZ quanh trục cố định
Thực hiện ba phép quay theo thứ tự góc ψ quanh trục x0, góc θ quanh trục y0 và
góc φ quanh trục z0,
phi=90;psi=45;theta=45
cphi=cosd(phi);
cosd = cosi(x = độ); còn cos = cosin(x=rad) 31
CHƯƠNG 2
sphi=sind(phi);
cpsi=cosd(psi);
RXYZfixed R( z , ) R( y, ) R( x, ) cái này quay trước để bên phải
spsi=sind(psi);
ctheta=cosd(theta);
stheta=sind(theta);
R=[cphi*ctheta cphi*stheta*spsi-sphi*cpsi
cphi*stheta*cpsi+sphi*spsi;
sphi*ctheta sphi*stheta*spsi+cphi*cpsi sphi*stheta*cpsi-
cphi*cpsi;
-stheta ctheta*spsi ctheta*cpsi]
R =
0 -0.7071 0.7071
0.7071 0.5000 0.5000
-0.7071 0.5000 0.5000
Bây giờ cho ma trận quay R có 12 phần tử (2.16). Ta đi tìm ba góc φ θ ψ, đây là
bài toán động học quay đảo. So sánh (2.15) và (2.16), từ r21 và r11 suy ra (2.17)
r21
tg , atan2(r21 , r11 ) (2.17)
r11
*atan2(y,x) cho góc tính bằng rad mà tang là y/x, atan2d(y,x) cho góc tính bằng
độ mà tang là y/x. sử dụng arctan2 Mục đích để xét dấu ....
Bình phương r32 và r33 rồi cộng lại lấy căn ta được cosθ, xét thêm r31 ta được
r31
tg , atan2(r31 , r322 r332 ) (2.18)
r r
2
32
2
33
32
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Từ r32 và r33 suy ra Tính bằng atan2d() để ra độ hết
r32
tg , atan2(r32 , r33 ) (2.19)
r33
0 0.7071 0.7071
R 0.7071 0.5 0.5
0.7071 0.5 0.5
tính ba góc φ θ ψ
r11=0;
r21=0.7071;
r31=-0.7071;
r32=0.5;
r33=0.5;
phi=atan2d(r21,r11)
theta=atan2d(-r31,sqrt(r32*r32+r33*r33))
psi=atan2d(r32,r33)
Nếu r21 và r11 cùng 0 thì θ = ±900, ta có trường hợp suy biến, có vô số nghiệm
cho φ và ψ.
2.1.5 Phép quay RPY ZYX quanh trục hiện tại Roll Pitch Yaw
Phép quay quanh trục cố định khó thực hiện đối với bàn tay robot, giả sử có hệ
trục Ox0y0z0, ta thực hiện phép quay góc φ quanh z0, lúc này x0 → x1,y0→y1, tiếp tục
quay góc θ quanh y1, x1 → x2, z0→z2, cuối cùng quay góc ψ quanh x2.
Ma trận quay là
phép quay trục hiện tại, R = phép nhân sau, quay trước để bên trái
So sánh (2.15) và (2.20) ta thấy kết quả giống nhau. Ta nhận thấy qui tắc nhân
ma trận quay theo trục hiện tại thực hiện từ trái sang phải, phép quay thực hiện đầu
tiên dặt ở bên trái nhất (phép nhân sau).
Nếu có nhiều phép quay ta thực hiện tương tự Ví dụ 2.8 sau đây
33
CHƯƠNG 2
Ví dụ 2.8: Tìm ma trận R thực hiện năm phép quay sau: quay góc 30o quanh trục
hiện tại x, góc 60o quanh trục hiện tại z, góc 45o quanh trục cố định z0, góc 90o quanh
trục hiện tại y, quay góc 180o quanh trục cố định x0.
Ta bắt đầu với R(x,30) sau đó theo thứ tự nhân phía trước nếu quay trong hệ trục
cố định và nhân phía sau nếu quay trong hệ trục hiện tại
2.1.6 Phép quay góc Euler ZYZ quanh trục hiện tại
Ta thực hiện phép quay góc φ quanh trục z, góc θ theo trục hiện tại y rồi góc ψ
theo trục hiện tại z quay trước, đặt bên trái = phép nhân sau./
RZYZmobile R( z , ) R( y, ) R( z, )
ccc ss ccs sc cs
scc cs scs cc ss (2.21)
sc ss c
Đôi khi ta muốn tạo chuyển động quay quanh một trục, ví dụ khi dùng robot vặn
vít hay vặn ốc. Xét Hình 2.7 ta muốn quay khối rắn hệ trục Oxyz góc θ quanh trục r đi
qua gốc. Phân tích vector r thành ba thành phần [rx ry rz]T và các góc α, β
Ta sẽ đưa trục r về trục z, quay quanh trục z góc θ sau đó quay trở lại trục r về vị
trí cũ, quá trình gồm năm bước:
- quay quanh trục z góc –α rồi quay quanh trục y góc –β để đưa r thẳng hàng với
z
- quay quanh trục z góc θ
- quay quanh trục y góc β rồi quay quanh trục z góc α để đưa r trở về vị trí cũ.
Vậy phép quay quanh r góc θ thực hiện bởi ma trận quay
R r , R z, R y, R z, R y, – R z, (2.22)
Ta tìm các góc α, β từ các thành phần của r để tính R(r, θ).
ry rx
sin ,cos ,
rx2 ry2 rx2 ry2
34
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
rx2 a c rx ry a rz s rx rz a ry s
R(r , ) rx ry a rz s ry2 a c ry rz a rx s
(2.23)
rx rz a ry s ry rz a rx s rz2 a c
a 1 c
Sau đây xét bài toán ngược, cho ma trận quay (2.16) ta tìm r và θ. Kết quả là
r r r 1
cos 1 ( 11 22 33 ),
2
r32 r23 (2.24)
1
r r13 r31
2sin
r21 r12
Phương trình (2.5) cho tọa độ của điểm A tịnh tiến và quay đối với hệ tọa độ gốc,
để thuận tiện cho việc tính toán ta đặt
a 1 R01 p0
a , H 0 (2.25)
1 0 1
35
CHƯƠNG 2
0 là vector hàng [0 0 0], H 01 là ma trận 4x4 gồm ma trận quay R01 chuyển hệ trục
0 sang hệ trục 1 và p 0 vectơ tịnh tiến từ gốc O0 đến gốc O1, gọi là ma trận biến đổi
thuần nhất, phương trình (2.26) chuyển tọa độ điểm A trong hệ tọa độ 1 sang hệ tọa
độ 0 bằng phép nhân ma trận.
Ngược lại cho tọa độ điểm A trong hệ tọa độ 0 ta có thể tìm tọa độ trong hệ tọa
độ 1 bằng biểu thức
vecto a~ là vecto cột có 4 thành phần ....
Các ma trận đồng nhất đặc biệt quay Rot và tịnh tiến Trans:
1 0 0 0 c 0 s 0
0 c s 0 0 1 0 0
Rot = phép quay
, Rot y ,
Trans = phép tịnh tiến
Rot x , ,
0 s c 0 s 0 c 0
0 0 0 1 0 0 0 1
(2.28)
c s 0 0 1 0 0 dx
s c 0 0 0 1 0 d y
Rot z , , Transd
0 0 1 0 0 0 1 dz
0 0 0 1 0 0 0 1
Ma trận H có dạng tổng quát
nx sx ax dx
n sy ay d y
H 01 n s a d y (2.29)
nz sz az dz
0 0 0 1
Ví dụ 2.9: Tìm ma trận biến đổi hai hệ trục theo hình sau
36
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
c 0 s ls
0 1 0 0
H 0 Rot y ,Transl
1 (2.30)
s 0 c lc
0 0 0 1
Nếu có một loạt phép biến đổi 0→1→2…→n , trong hệ tọa độ hiện tại, điểm A
trong hệ tọa độ n có tọa độ an thì tọa độ trong hệ tọa độ 0 là: (pp nhân sau)
Chú ý là nếu biến đổi trong hệ tọa độ cô định thì ta phải dùng qui tắc nhân trước.
Cho robot nối tiếp n bậc tự do (Hình2.9) , các khớp nối một bâc tự do quay hay
trượt, các biến khớp là góc quay hay khoảng dịch chuyển, ta ký hiệu là qi. Bài toán
động học thuận là tìm vị trí và hướng đầu công tác (end effector, gripper) theo vector
biến khớp q=[q1 q2 …qn]T.
Vị trí đầu công tác xác định bởi vector p0e nối từ gốc tọa độ tham chiếu O0xyz
đến gốc hệ tọa độ liên kết với đần công tác, trong hệ tọa độ tham chiếu.
Hướng đầu công tác là ma trận R0e vuông 3x3 gồm ba vector n0e s0e a0e là
các vector đơn vị chỉ phương của hệ tọa độ liên kết với đầu công tác, trong hệ tọa độ
tham chiếu. Các vector chỉ phương được chọn tùy theo cấu tạo đầu công tác, nếu là tay
kẹp thì a thẳng góc mặt phẳng tay kẹp, n trong mặt phẳng tay kẹp và theo chiều tay
kẹp, s chọn theo qui tắc bàn tay phải.
Theo qui tắc biến đổi đồng nhất, động học thuận xác định bởi ma trận
Re p0e
T0e (q) 0 (2.32)
0 1
e = ma trận hướng của đầu cuối
q - biến khớp ......
37
CHƯƠNG 2
biến khớp
góc hướng
robot 2 bậc tự do
Xe
xe a1 cos 1 a2 cos(1 2 )
(2.33)
ye a1 sin 1 a2 sin(1 2 )
Thành phần của vector chỉ phương:
a0e cos(1 2 ) sin(1 2 )
T
T
s0e cos(1 2 900 ) sin(1 2 900 ) (2.34)
sin(1 2 ) cos(1 2 )
T
38
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Ma trận động học thuận:
n_oe s_oe a_oe poe
2.2.2 Qui tắc Denavit-Hartenberg tính toán phức tạp cho ROBOT nối tiếp !
Xét robot nối tiếp n bậc tự do gồm n khớp một bậc tự do, n+1 khâu, khâu 0 là đế
robot, cố định, khâu n là đầu công tác, mổi khâu được gắn hệ trục tọa độ, hệ tọa độ
tham chiếu O0x0y0z0 cố định và liên kết với đế robot, hệ tọa độ Oixiyizi liên kết với
khâu thứ i và chuyển động khi khâu i chuyển động, hệ tọa độ Onxnynzn liên kết với đầu
công tác. Qui tắc Denavit-Hartenberg (gọi tắt là D-H) ra đời năm 1955, qui định cách
vẽ các hệ tọa độ để thống nhất cách tính động học thuận.
Vị trí và hướng hệ tọa độ i+1 so với hệ i được xác định bởi ma trận đồng nhất
Ri 1 pii 1
H ii 1 (qi ) i
0 1
Rii 1 là ma trận chỉ phương của hệ tọa độ i+1 trong hệ tọa độ i, pii 1 là vị trí của
gốc hệ tọa độ i+1 trong hệ tọa độ i.
Vị trí và hướng hệ tọa độ n (đầu công tác) là tích các ma trận
39
CHƯƠNG 2
T0n (q) H01 (q1 ) H12 (q2 )...H nn1 (qn ) (2.36)
Nếu ta chọn hệ tọa độ tham chiếu ở vị trí khác thì ma trận từ hệ tham chiếu này
đến hệ tọa độ 0 là H ref
0
. Nếu đầu công tác gắn một dụng cụ và ma trận từ đầu công tác
đến hệ tọa độ dụng cụ là H ntool . Vị trí và hướng hệ tọa độ của dụng cụ so với hệ tọa độ
tham chiếu xác định bởi:
tool
Tref (q) H ref
0
T0n (q) H ntool (2.37)
- Trục yi kết hợp với zi , xi theo qui tắc bàn tay phải,
- Hệ trục cuối cùng có xn thẳng góc zn-1, zn thẳng góc xn và thường chọn là song
song zn-1.
- Hệ trục cuối cùng liên kết với tay kẹp, gốc Oe thường chọn ở giữa tay kẹp, trục
ze thường gọi là trục a (approach) theo hướng ngón tay, xe lả trục n (normal) thẳng góc
mặt phẳng bàn tay, còn ye là s (sliding).
40
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Kế tiếp xác định bốn thông số:
ai: khoảng cách giữa hai trục zi-1 và zi,
di: khoảng cách giữa hai trục xi-1 và xi,
αi: góc giữa hai trục zi-1 và zi với trục quay là xi, chiều dương là chiều lượng giác,
θi: góc giữa hai trục xi-1 và xi với trục quay là zi-1, chiều dương là chiều lượng
giác.
ai, αi là hằng số, nếu khớp i-1 là khớp quay thì di là hằng số, θi là biến khớp, nếu
khớp i-1 là khớp tịnh tiến thì di là biến khớp, θi là hằng số.
Dựa vào bốn thông số ta tính ma trận đồng nhất H ii 1 . Chọn một hệ tọa độ trùng
với hệ tọa độ i-1, quay góc θi quanh trục zi-1, tịnh tiến di dọc trục zi-1, tịnh tiến khoảng
cách ai dọc trục xi rồi quay góc αi quanh trục xi, ta được hệ tọa độ i. Từ lý luận trên ta
được (2.38) (tham khảo 2.28) Rot = quay, Trans o ko quay
Khâu a α θ d
1 a1 0 θ1 0
2 a2 0 θ2 0
3 a3 0 θ3 0
Động học thuận cho bởi biểu thức (2.39), c123 có nghĩa cos(θ1+ θ2 +θ3)
41
CHƯƠNG 2
Đối với tay kẹp, ta nhận thấy hệ trục O3xyz không phù hợp với hệ trục n s a,vậy
bổ sung thêm ma trận quay x3 →a, y3 → s, z3 → n. Trong hệ trục O3xyz n=[0 0 1]T ,
s=[0 -1 0]T, a=[1 0 0]T, ma trận chuyển đổi là T3e (2.40).
0 0 1 0
0 1 0 0
T3
e
(2.40)
1 0 0 0
0 0 0 1
42
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
T03 H 01 H12 H 23
c1 0 s1 0 c2 s2 0 a2c2 c3 s3 0 a3c3
s 0 c1 0 s2 c2 0 a2 s2 s3 c3 0 a3 s3
1
0 1 0 d1 0 0 1 0 0 1 1 0
0 0 0 1 0 0 0 1 0 0 0 1
43
CHƯƠNG 2
Cánh tay này sử dụng trong một số robot như PUMA, Scorbot
Bảng DH:
Khâu a α d θ
1 a1 90o d1 θ1
2 a2 0 d2 (âm) θ2
3 a3 0 0 θ3
44
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Ví dụ 2.14: Việc tính toán bằng tay thường tốn thời gian và dễ nhầm lẫn, ví dụ
này trình bày một chương trình tính động học thuận robot phẳng RPR (Hình 2.17)
dùng Symbolic Math Toolbox, độc giả có thể tham khảo để áp dụng cho các bài toán
khác và có thể mở rộng dùng GUI.
Chọn hệ tọa độ như hình vẽ, bảng DH là
Khâu a α d θ
1 0 90o 0 θ1
2 0 -90o d2 0
3 a3 0 0 θ3
Answer
R =
[cos(th1)*cos(th3)-sin(th1)*sin(th3),-cos(th1)*sin(th3)-
cos(th3)*sin(th1), 0]
[cos(th1)*sin(th3)+cos(th3)*sin(th1),cos(th1)*cos(th3)-
sin(th1)*sin(th3), 0]
[0, 0, 1]
p =
d2*sin(th1)+a3*cos(th1)*cos(th3)-a3*sin(th1)*sin(th3)
a3*cos(th1)*sin(th3)-d2*cos(th1)+a3*cos(th3)*sin(th1)
0
h =
[ 1, 0, 0, a3]
[ 0, 1, 0, -d2]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
Bảng DH
Khâu α a d θ
1 90o 0 d1 θ1
2 0 a2 0 θ2
3 0 a3 0 θ3
4 0 a4 0 θ4
T36 H 34 H 45 H 56
c4 0 s4 a4c4 c5 0 s5 0 c6 s6 0 0
s 0 c4 a4 s4 s5 0 c5 0 s6 c6 0 0
4
0 1 0 0 0 1 0 0 0 0 1 d6
0 0 0 1 0 0 0 1 0 0 0 1
Nếu a4=0 các trục quay cắt nhau, so sánh (2.21) và (2.44) ta nhận thấy hai ma
trận quay giống nhau, vậy có sự tương đồng giữa các góc θ4 θ5 θ6 và các góc Euler φ θ
ψ
Một cách đặt hệ trục kiểu khác (khớp cầu) trình bày trên Hình 2.20
48
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Hình 2.20 Cổ tay khớp cầu với cách đặt hệ trục kiểu khác
Bảng DH
Khâu α a d θ
4 -90o 0 0 θ4
5 90o 0 0 θ5
6 0 0 d6 θ6
c4c5c6 s4 s6 c4c5 s6 s4c6 c4 s5 d 6c4 s5
s c c c s s4c5 s6 c4c6 s4 s5 d 6 s4 s5
T3 4 5 6 4 6
6
(2.45)
s5c6 s5 s6 c5 d6c5
0 0 0 1
Khi bàn tay ở vị trí như trên Hình 2.15, θ4=0, θ5=-90o, θ6=90o
0 0 1 d 6
1 0 0 0
T36
0 1 0 0
0 0 0 1
Ví dụ 2.17: Robot khuỷu 6 bậc tự do gồm cánh tay khuỷu 3DOF và cổ tay 3DOF
49
CHƯƠNG 2
Ta ghép hai ma trận (2.41) và (2.44)
Nếu a4=0 ba trục quay cổ tay giao nhau, tọa độ tâm cổ tay là pw= pe khi cho d6=0
50
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Ví dụ 2.18 : Robot Scorbot 5 bậc tự do
Robot nằm trong mặt phẳng z0O0R, bàn tay có hai bậc tự do quay góc θ4 và θ5 ,
các trục quay z1.. z3 song song nhau và thẳng góc mặt phẳng z0O0R, trục quay z4 của
góc Roll θ5 thẳng góc z3, chú ý là x4 thẳng góc khâu d5, x5 thẳng góc mặt phẳng bàn tay.
Góc α= θ2+ θ3+ θ4 là góc hợp bởi trục đứng –z0 và z4
Bảng DH
Khâu a (mm) α d(mm) θ
1 101,25mm 90 334,25 θ1 (-155 ..+155o)
o o
2 220 0 0 θ2 (-35o..+130o)
3 220 0 0 θ3 (-130o..+130o)
4 0 90o 0 θ4 (-130o..+130o)
5 0 0 137,35 θ5 (-570o..+570o)
Bảng DH
Khâu a α d θ
1 a1 0 0 θ1
2 a2 180o 0 θ2
3 0 0 d3* 0
4 0 0 d4 θ4
52
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
- Hệ toạ độ cơ sở: liên kết với đế cố định của robot, toạ độ các khâu của robot
tham chiếu đến hê toạ độ này. Robot có thể đặt ở nhiều vị trí và hướng mà không ảnh
hưởng đến chương trình
- Hệ toạ độ dụng cụ : miêu tả toạ độ và hướng của đầu mút dụng cụ gắn vào tay
kẹp, cho phép thay dụng cụ mà không cần lập trình lại.
- Hệ toạ độ thế giới: cố định, thường sử dụng khi có nhiều robot hoạt động
chung
- Hệ toạ độ người dùng: dùng cho robot phải thực hiện nhiều công việc khác
nhau, liên kết với một vật cố định, ví dụ bàn máy
- Hệ toạ độ vật: liên kết với vật gia công
53
CHƯƠNG 2
Thông qua các ma trận hướng và vị trí giữa các hệ toạ độ ta có thể tính vị trí và
hướng đầu công tác so với hệ toạ độ bất kỳ, ví dụ so với hệ toạ độ vật Toe
TwuTuo TwbTbtTteTeo
Toe (TwuTuo )1TwbTbtTte
TbwTwuTuo (TteTeo )1 Tbt
Tbt Tbo (TtoTeo )1
Các ma trận Twu , Tuo , Twb , Tte được tính trước và không đổi, ma trận Toe phụ thuộc
quỹ đạo gia công, từ Tbt ta điều khiển robot để đạt được Toe mong muốn.
Khi cho trước ma trận quay và vị trí đầu cuối, ta phải tìm các biến khớp, đây là
bài toán động học ngược. Vậy ta phải giải n phương trình trong số 12 phương trình
lượng giác (2.50)
Ví dụ 2.21: Cho cánh tay robot Hình 2.10 với a1=0.3m, a2=0.2m, tìm θ1 θ2 để
xe=0.4m, ye=0.
Ta phải giải hai phương trình
0.3cos(θ1) +0.2cos(θ1+ θ2)= 0.4
0.3sin(θ1) +0.2sin(θ1+ θ2)= 0
Sử dụng Matlab
syms theta1 theta2
[st1,st2]=solve(0.3*cos(theta1) +0.2*cos(theta1+ theta2)- 0.4,
0.3*sin(theta1) +0.2*sin(theta1+ theta2))
y=single([st1,st2]) convert sang single # kiểu float # sd double cũng đc
y=180*y/pi đổi tự rad -> độ
st1 =
2*atan(15^(1/2)/15)
-2*atan(15^(1/2)/15)
st2 =
-2*atan(15^(1/2)/5)
2*atan(15^(1/2)/5)
y =
0.5054 -1.3181
-0.5054 1.3181
y =
28.9550 -75.5225
-28.9550 75.5225
54
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Ví dụ 2.22 : Cho robot Standford ví dụ 2.15 với d2=-0.154, d6=0.263, hướng và
vị trí đầu cuối cho bởi ma trận
0 1 0 0.154
0 0 1 0.763
T0
6
1 0 0 0
0 0 0 1
Tìm θ1 θ2 θ4 θ5 θ6 d3. Có thể viết chương trình như Ví dụ 2.21 để giải hệ 12 phương
trình với 6 ẩn số, kết quả là θ1= θ2= θ4= θ6=90o, θ5=0, d3=0.5.
Giải bài toán ngược rất cần thiết để điều khiển robot vì các biến khớp tìm được là
giá trị đặt cho hệ thống điều khiển vị trí các khâu, tuy nhiên giải hệ phương trình động
học ngược bằng phương pháp số không cho nghiệm dạng kín và không thuận tiện khi
lập trình, do đó các hệ thống robot đều có bộ teach pendant điều khiển bằng tay robot
đến vị trí đã định rồi ghi nhớ các biến khớp, như vậy không cần giải bài toán ngược,
một phương pháp khác dùng phương pháp hình học để tìm nghiệm dạng kín có thể lập
trình. Bài toán động học ngược có thể vô định ở một số vị trí của robot gọi là vị trí bất
thường, hoặc có thể có nhiều nghiệm, trong trường hợp này ta loại bỏ những nghiệm
không phù hợp kết cấu cơ khí của robot.
Robot thường có kết cấu cánh tay 3 DOF và bàn tay có từ 2 đến 3DOF, Khớp cổ
tay là khớp quay với các trục quay cắt nhau ở một điểm. Bài toán động học ngược
thường chia làm hai bài toán:
- Tim vị trí cổ tay sau đó giải bài toán động học ngược vị trí tìm ba biến khớp đầu
tiên
- Tìm ma trận quay của ba biến khớp cuối sau đó tìm ba góc quay của khớp cổ
tay (động học ngược hướng).
Lấy ví dụ robot 6 bậc tự do với ba bậc tự do cuối là ba khâu quay mà trục giao
nhau ở tâm cổ tay, khoảng cách từ tâm cổ tay đến tâm bàn tay là d6 ( Ví dụ 2.17,Ví
dụ 2.20) , liên kết với bàn tay là hệ trục n s a , tọa độ tâm cổ tay là pw=pe-d6a, từ biểu
thức của T06 ta lấy ra vector vị trí, cho giá trị d6 trong đó bằng 0 ta được biểu thức của
pw phụ thuộc ba biến khớp q1 q2 q3, vậy ta có ba phương trình để tìm ba biến khớp q1
q2 q3, từ đó suy ra ma trận quay R03 , biết R06 = R03 R36 suy ra R36 = ( R03 )T R06 , biết biểu
thức của R36 ( q4, q5,q6) ta giải phương trình để tìm ba góc Euler φ θ ψ (Ví dụ 2.7) .
Phương pháp trình bày ở trên gọi là phương pháp giải kết động học (decoupling
kinematic).
55
CHƯƠNG 2
Ta dùng phương pháp hình học lượng giác để tìm động học ngược một số cánh
tay điển hình.
r 2 s 2 a12 a22
cos 2 D,
2a1a2 (2.53)
2 acosd( D)
OC a1 a2 cos 2 a1 a2 D,
BC a2 sin 2 a2 1 D2 ,
atan2d(BC,OC) = atan2d(a2 1 D2 , a1 a2 D) (2.54)
atan2d(s, r ),
Suy ra
56
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Ta tìm tọa độ điểm B (pxe-a3sinβ, pye-a3cosβ) sau đó tính tương tự Ví dụ 2.1 tìm
θ1, θ2, sau cùng θ3= β-( θ1+θ2).
Ví dụ 2.25: Động học ngược cánh tay khuỷu ba bậc tự do (Hình 2.29)
Cho trước tọa độ tâm cổ tay là (xc, yc, zc) ta phải tìm ba góc θ. Từ Hình 2.29 ta
tính được:
với xc, yc không đồng thời là 0. Nếu xc, yc đồng thời là 0 thì θ1 không xác định (vị trí
bất thường).
57
CHƯƠNG 2
Trường hợp robot có vai bề rộng d (Hình 2. 30) ta có hai cấu hình cánh tay bên
trái và cánh tay bên phải.
Với cấu hình cánh tay trái ta có tập các phương trình sau đây để tính θ1
atan2d( yc , xc ),
atan2d(d , r '2 d 2 ) atan2d(d , xc2 yc2 d 2 ), (2.57)
1
Với cấu hình cánh tay phải ta có tập các phương trình sau:
58
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
atan2d( yc , xc ),
atan2d(d , r '2 d 2 ) atan2d(d , xc2 yc2 d 2 ),
(2.58)
180o ,
1
Chú ý là tùy theo kết cấu cơ khí, robot thường chỉ có một cấu hình.
Bây giờ ta tính θ2 và θ3, có hai cấu hình là khuỷu trên và khuỷu dưới (tuy nhiên
kết cấu cơ khí thường là khuỷu trên).
r 2 s 2 a22 a32 ( xc yc d 2 a1 ) ( zc d1 ) a2 a3
2 2 2 2 2 2 2
cos 3 D,
2a2 a3 2a2 a3 (2.59)
3 acosd( D) atan2d( 1 D 2 , D)
Ví dụ 2.26: Tìm các góc θ cho robot Scorbot (Ví dụ 2.18) gắn một cây viết, tọa
độ đầu viết, hướng cây viết như sau
pt nt st at l β
[250 250 10] [cos(45 ) sin(45 ) 0] [-sin(45 ) cos(45 ) 0] [0 0 -1] 100mm 90o
o o o o
59
CHƯƠNG 2
Biết pex, pey ta suy ra θ1 dùng (2.52) , α = θ2+θ3+θ4=atan2d(-az, ax/cos θ1), tọa độ
tâm cổ tay w trong mặt phẳng z0O0R là wz= pez +d5 cos α=, wR= pex2 pey2 d5 sin ,
60
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
ta tính tiếp θ3 θ2 dùng (2.54) (2.55), sau cùng θ4= α- θ2-θ3 . θ5 suy từ phần tử (3,2) và
(3,1) của T05 Tổng hợp các phương trình như sau:
3 atan2d( 1 D2 , D) 110012
2 atan2d( s, r ) atan2d(a3 1 D 2 , a2 a3 D)
atan2d(224.25,115) atan2d(220* 1 0.3442 , 220 220*0.344)
117.9o
61
CHƯƠNG 2
Suy ra
Chương trình sau đây cho một lời giải của động học ngược
clc
% Calculates the Inverse Kinematic of an Anthropomorphic arm with 6
DOF.
% 'q' is the solutions in degree and K is the Forward Kinematic
matrix.
% Position and orientation of end-effector
K=[0 0 1 0.200;0 1 0 0.200; 1 0 0 0.100]
% Denavit-Hartenberg's Parameters
a2=0.3; % [m]
a3=0.3;
d1=0.5;
d6=0.1;
R=K(1:3,1:3);
% Inverse Kinematic
pe=K(1:3,4); % End-effector's position
pw=pe-d6*a; % Wrist's position
% Vector's components that representes the wrist's position
pwx=pw(1);
62
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
pwy=pw(2);
pwz=pw(3);
%Calculate first three joint variables
s=pwz-d1
r=sqrt(pwx^2+pwy^2)
c3=(r^2+s^2-a2^2-a3^2)/(2*a2*a3) % cos(theta3)
s3=-sqrt(1-c3^2) % sin(theta3)
t1=atan2d(pwy,pwx);
t3=atan2d(s3,c3);
t2=atan2d(s,r)-atan2d(a3*s3,a2+a3*c3);
% Orientation Matrix of the spherical Wrist
R03=[cosd(t1)*cosd(t2+t3) -cosd(t1)*sind(t2+t3) sind(t1);
sind(t1)*cosd(t2+t3) -sind(t1)*sind(t2+t3) -cosd(t1);
sind(t2+t3) cosd(t2+t3) 0];
Ma trận động học thuận cho hướng và vị trí đầu cuối (tư thế, pose), tuy nhiên do
sai số đo các thông số a, d, α, θ nên kết quả sẽ không chính xác, do đó cần hiệu chỉnh
các thông số để giảm sai số. Qúa trình hiệu chỉnh được thực hiện bởi nhà sản xuất
trước khi xuất xưởng và giá trị đã hiệu chỉnh được cài vào chương trình hoạt động của
robot. Muốn hiệu chỉnh ta cần máy đo laser 3D chính xác để đo tư thế. Đặt các vector
thông số DH sau a=[a1 a2 … an]T, d=[d1 d2 … dn]T, α=[α1 α 2 … α n]T, θ=[θ1 θ2 … θn]T,
tư thế của robot có thể viết dưới dạng
xe f6 x1 (a, , d , ) (2.68)
Cho các thông số giá trị định mức, tư thế của robot là xen Thực tế ta đo được xem ,
sai số x = xem xen cần được cực tiểu bằng cách chỉnh lại các thông số. Tuyến tính
hóa quanh giá trị định mức
f f f f
x6 x1 a d (2.69)
a a
T
Đặt aT T dT T là vector cột 4nx1, m n là sai lệch của
thông số , f / a f / f / d f / , ta có phương trình
63
CHƯƠNG 2
Ta sẽ hiệu chỉnh với l tư thế và được kết quả sau
x1 1
x
x 2 2 (2.71)
: :
xl l
Giải phương trình dùng phương pháp cực tiểu bình phương ta tính được
(T 1 T x (2.72)
Cập nhật thông số u n , sau đó ta có thể hiệu chỉnh lại với bộ thông số
mới cho đến khi hội tụ về một giá trị ngưỡng.
Khi robot hoạt động ta cần phải đưa robot về tư thế Home, các biến khớp được
tính bắt đầu từ tư thế này (bộ đếm góc quay của encoder đưa về 0), nếu không đưa về
tư thế Home chính xác sẽ gây ra sai số khi robot làm việc do offset của các biến khớp.
KẾT LUẬN
Chương hai đã khảo sát các phương pháp tính động học thuận và ngược của
robot nối tiếp, đây là bài toán cơ bản khi khảo sát robot, chúng ta cũng đã lập trình
Matlab để giải một số bài toán cụ thể, kiến thức thu được từ chương này sẽ được sử
dụng trong các chương sau. Người đọc nên nghiên cứu cách viết chương trình C để
giải các bài toán trong chương này song song với sử dụng Matlab.
BÀI TẬP
BT1 Cho hai hệ tọa độ 1(Oxyz) và 2 (Ouvw) hệ tọa độ 2 suy từ hệ tọa độ 1 bởi phép
quay quanh trục z1 60o. Tính tọa độ điểm A trong hệ 2 biết tọa độ trong hệ 1 là (1, 2,3)
BT2 Cho vector P1=[ 0 2 3]T, quay vector này quanh trục z góc 30o và tịnh tiến theo
trục x 2 đơn vị , tìm thành phần vector mới P2.
BT3 Cho hệ trục B suy từ hệ trục A bởi phép quay quanh trục zA 45o, tịnh tiến theo
truc xA 3 đơn vị và theo trục zA 1 đơn vị, tính ma trận TAB , TBA
BT4 Giải bài toán động học thuận và ngược cho robot trụ Hình BT4
64
ĐỘNG HỌC THUẬN VÀ NGƯỢC ROBOT NỐI TIẾP
Hình BT4
BT5 Giải bài toán động học thuận và ngược cho robot cartesian Hình BT5
Hình BT5
BT6. Giải bài toán động học thuận và ngược cho robot cartesian với bàn tay khớp cầu
Hình BT6
Hình BT6
BT7 Giải bài toán động học thuận và ngược cho robot RP Hình BT7
65
CHƯƠNG 2
Hình BT7
BT8. Giải bài toán động học thuận và ngược cho robot RPR Hình BT8
Hình BT8
BT9 Giải bài toán động học thuận và ngược cho robot PPP Hình BT9
Hình BT9
66