You are on page 1of 49

TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM

VIỆN CƠ KHÍ

THUYẾT MINH
ĐỀ TÀI NCKH CẤP TRƯỜNG

ĐỀ TÀI
PHÂN TÍCH VÀ MÔ PHỎNG ĐỘNG HỌC
RÔBỐT 6 BẬC TỰ DO CẤP PHÔI CHO CÁC
MÁY PHAY CNC

Chủ nhiệm đề tài: TS. HOÀNG MẠNH CƯỜNG


Thành viên tham gia: KS. NGUYỄN ĐỨC SANG

Hải Phòng, tháng 05/2016


i
MỤC LỤC

MỞ ĐẦU ............................................................................................................... 1
CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ ROBOT CÔNG NGHIỆP................... 3
1.1 Lịch sử hình thành và phát triển Robot công nghiệp ...................................... 3
1.2. Cấu trúc chung của robot công nghiệp........................................................... 5
1.3 Phân loại robot công nghiệp ............................................................................ 6
1.4 Các chỉ tiêu đánh giá và các thông số kỹ thuật ............................................... 7
1.5. Các bài toán thường gặp đối với robot công nghiệp ...................................... 9
CHƯƠNG 2. PHÂN TÍCH ĐỘNG HỌC ROBOT UR ...................................... 11
2.1. Phân tích động thuận rôbốt UR .................................................................... 11
2.2. Phân tích động học ngược robot UR ............................................................ 18
2.3. Một số kết quả mô phỏng ............................................................................. 32
CHƯƠNG 3. MÔ PHỎNG HOẠT ĐỘNG CỦA ROBOT UR .......................... 38
3.1. Giới thiệu chung về kỹ thuật mô phỏng ....................................................... 38
3.2. Giới thiệu thư viện Simmechanics ............................................................... 39
3.3 Mô phỏng hoạt động của Robot cấp phôi ..................................................... 42
KẾT LUẬN ......................................................................................................... 46
TÀI LIỆU THAM KHẢO ................................................................................... 47

ii
MỞ ĐẦU

1. Tính cấp thiết của vấn đề nghiên cứu

Với sự phát triển mạnh mẽ của khoa học công nghệ, việc tự động hóa quá
trình sản xuất ngày càng nâng cao, làm cho công nghệ sản xuất chuyển sang thời
kỳ mới: thời kỳ công nghệ sản xuất tiên tiến mà trong đó robot công nghiệp đóng
vai trò hết sức quan trọng, các robot tham gia vào hầu hết các nguyên công và dần
thay thế con người trong những công việc nhàm chán, nặng nhọc, nguy hiểm, ….
Do vậy, việc nghiên cứu ứng dụng robot vào sản xuất tự động đang được nhiều
người quan tâm nghiên cứu.

2. Tổng quan về tình hình nghiên cứu thuộc lĩnh vực đề tài

Robot công nghiệp được sử dụng phổ biến trong các hệ thống sản xuất linh
hoạt, đã có nhiều cấu hình robot được nghiên cứu ứng dụng trong sản xuất và
được đề cập trong nhiều tài liệu [3, 4, 5, 6, 7]. Tuy nhiên, cấu hình robot UR, với
đặc điểm nhỏ gọn và linh hoạt, nó vẫn đang được nhiều người quan tâm nghiên
cứu ứng dụng trong nhiều các hệ thống sản xuất khác nhau.

3. Mục tiêu, đối tượng, phạm vi nghiên cứu

- Mục tiêu của đề tài là nghiên cứu đưa ra được nghiệm giải tích của bài toán
phân tích động học ngược đối với một cấu hình robot công nghiệp, dựa vào nghiệm
này sẽ đi xây dưng chương trình mô phỏng chuyển động mô hình robot đó.

- Đối tượng nghiên cứu của đề tài là robot UR, đây là một cấu hình robot
đang được nhiều người quan tâm nghiên cứu trong nhiều ứng dụng.

- Phạm vi nghiên cứu, với giới hạn của một đề tài nghiên cứu cấp trường
công trình này cũng chỉ dừng lại ở bài toán phân tích động học và mô phỏng
chuyển động đối robot UR.

4. Phương pháp nghiên cứu, kết cấu của công trình nghiên cứu

Phương pháp nghiên cứu sử dụng trong công trình này là phương pháp tính
toán mô phỏng mô hình trên máy tính.
1
Kết cấu của thuyết minh đề tài, ngoài mở đầu, kết luận, nội dung chính của đề
tài được chia làm 3 chương: chương 1, giới thiệu về những nét cơ bản về robot công
nghiệp, chương 2, tập trung phân tích động học đối với cấu hình robot UR, chương
3, tập trung xây dựng chương trình mô phỏng chuyển động đối với robot UR.

5. Kết quả đạt được của đề tài

Một số kết quả đạt được trong đề tài này đó là:

- Phân tích động học thuận robot UR. Xác định vị trí, vận tốc, gia tốc các khâu và
thiết lập phương trình động học của robot.

- Phân tích động học ngược robot UR. Đã đưa ra được nghiệm giải tích của các
biến khớp, việc tìm ra được nghiệm giải tích sẽ giúp cho việc giải quyết bài toán
điều khiển sau này trở nên đơn giản hơn.

- Xây dựng được chương trình tính toán động học ngược và mô phỏng chuyển
động của robot UR.

2
CHƯƠNG 1
GIỚI THIỆU CHUNG VỀ ROBOT CÔNG NGHIỆP

1.1 Lịch sử hình thành và phát triển Robot công nghiệp


Nhu cầu nâng cao năng suất và chất lượng sản phẩm ngày càng đòi hỏi ứng
dụng rộng rãi các phương tiện tự động hóa sản xuất. Xu hướng tạo ra những dây
chuyền về thiết bị tự động có tính linh hoạt cao đang hình thành. Các thiết bị này
đang thay thế dần các máy tự động “cứng” chỉ đáp ứng một việc nhất định trong
khi thị trường luôn đòi hỏi thay đổi mặt hàng về chủng loại, về kích cỡ và về tính
năng...Vì thế ngày càng tăng nhanh nhu cầu ứng dụng robot để tạo ra các hệ thống
sản xuất tự động linh hoạt.
Thuật ngữ “robot” lần đầu tiên xuất hiện năm 1921 trong tác phẩm viễn
tưởng “Rossum’s Universal Robot” của Karel Capek. Theo tiếng Séc thì robot là
người làm tạp dịch. Trong tác phẩm này nhân vật Rossum và con trai của ông đã
tạo ra những chiếc máy gần giống con người để hầu hạ con người.

Hình 1.1. Ba chú robot trong vở kịch của Karel Capek, 1921
Hơn 20 năm sau, ước mơ viễn tưởng của Karel Capek đã bắt đầu hiện thực.
Ngay sau chiến tranh thế giới lần thứ 2, ở Hoa Kỳ đã xuất hiện các loại tay máy
chép hình điều khiển từ xa trong các phòng thí nghiệm về vật liệu phóng xạ.
Vào những năm 50, bên cạnh các tay máy chép hình cơ khí , đã xuất hiện các
loại tay máy chép hình thủy lực và điện từ, như tay máy Minotaur I hoặc tay máy
3
Handyman của General Electric. Năm 1954 George C. Devol đã thiết kế một thiết
bị có tên là “ Cơ cấu bản lề dùng để chuyển hàng theo chương trình”. Đến năm
1965 Devol cùng với Joseph F. Engelber, một kỹ sư trẻ của công nghiệp hàng
không, đã tạo ra loại robot công nghiệp đầu tiên năm 1959 ở Công ty Unimation.
Chỉ đến năm 1975 Công ty Unimation mới bắt đầu có lợi nhuận từ sản phẩm robot
đầu tiên này.
Chiếc robot công nghiệp được đưa vào ứng dụng đầu tiên, năm 1961, ở một
nhà máy ô tô của General Motors tại Trenton, New Jersey Hoa Kỳ.
Năm 1967 Nhật Bản mới nhập khẩu chiếc robot công nghiệp đầu tiên từ
Công ty AMF của Hoa Kỳ ( American Machine and Foundry Company). Đến
năm 1990 có hơn 40 công ty Nhật Bản, trong đó có những công ty khổng lồ như
Công ty Hitachi và Công ty Mitsubishi, đã đưa ra thị trường quốc tế nhiều loại
robot nổi tiếng.
Từ những năm 70, việc nghiên cứu nâng cao tính năng của robot đã chú ý
nhiều đến sự lắp đặt thêm các cảm biến ngoại tín hiệu để nhận biết môi trường
làm việc. Tại trường Đại học Tổng hợp Standford người ta đã tạo ra loại robot lắp
ráp tự động điều khiển bằng máy vi tính trên cơ sở xử lý thông tin từ các cảm biến
lực và thị giác. Vào thời gian này, Công ty IBM đã chế tạo loại robot có các cảm
biến xúc giác và cảm biến lực, điều khiển bằng máy tính để lắp ráp các máy in
gồm 20 cụm chi tiết. Vào giai đoạn này ở nhiều nước khác cũng tiến hành các
công trình nghiên cứu tương tự, tạo ra các loại robot tự hành theo hướng bắt chước
chân người hoặc súc vật. Các robot này còn chưa có nhiều ứng dụng trong công
nghiệp. Tuy nhiên các loại xe robot (robocar) lại nhanh chóng được đưa vào hoạt
động trong các hệ thống sản xuất tự động linh hoạt.
Từ những năm 80, nhất là vào những năm 90, do áp dụng rộng rãi các tiến
bộ kỹ thuật về vi xử lý và công nghệ thông tin, số lượng robot công nghiệp đã gia
tăng, giá thành đã giảm đi rõ rệt, tính năng đã có nhiều bước tiến vượt bậc. Nhờ
vậy robot công nghiệp đã có vị trí quan trọng trong các dây chuyền tự động sản
xuất hiện đại.

4
Trước khi bước vào nghiên cứu các nội dung tiếp theo, chúng ta cũng cần
thống nhất về thuật ngữ “ robot công nghiệp” ( Industrial robot). Trong nhiều tài
liệu khác nhau, định nghĩa về robot công nghiệp cũng khác nhau. Khi “ robot công
nghiệp” đầu tiên ra đời, Công ty AMF đã quảng cáo nó là loại máy tự động vạn
năng. Trong từ điển Webster định nghĩa robot là những máy tự động có thể thực
hiện được một số chức năng của con người. Nhưng nếu vậy thì có nhiều loại máy
khác nhau cũng có thể gọi là robot. Viện Kỹ thuật robot của Hoa Kỳ định nghĩa
robot là loại tay máy nhiều chức năng, với chương trình làm việc thay đổi được,
dùng để thực hiện một số thao tác sản xuất. Có nhiều tài liệu khi định nghĩa robot
rất lưu ý đến tiêu chí điều khiển bằng máy tính nhưng trong phân loại robot công
nghiệp theo tiêu chuẩn của Nhật Bản (JIS B 0134- 1979) có cả nhóm tay máy điều
khiển bằng tay.
Theo ISO ( International Standards Organization) thì: “ robot công nghiệp là
một tay máy đa mục tiêu, có một số bậc tự do, dễ dàng lập trình, điều khiển trợ
động, dùng để tháo lắp phôi, dụng cụ hoặc các vật dụng khác. Do chương trình
thao tác có thể thay đổi nên thực hiện nhiều nhiệm vụ đa dạng”. Tuy nhiên, robot
công nghiệp được định nghĩa như thế chưa hoàn toàn thỏa đáng.
Robot công nghiệp có thể được hiểu là những thiết bị tự động linh hoạt, bắt
chước được các chức năng lao động công nghiệp của con người. Nói đến thiết bị
tự động linh hoạt là nhấn mạnh đến khả năng thao tác với nhiều bậc tự do, được
điều khiển trợ động và lập trình thay đổi được. Còn nói đến sự bắt chước các chức
năng lao động công nghiệp của con người là có ý nói đến sự không hạn chế từ các
chức năng lao động chân tay đơn giản đến trí khôn nhân tạo, tùy theo loại hình
công việc lao động cần đến chức năng đó hay không. Đồng thời cũng nói đến mức
độ cần thiết bắt chước được như con người hay không.

1.2. Cấu trúc chung của robot công nghiệp


Trên hình 1.2 giới thiệu các bộ phận chủ yếu của robot công nghiệp thông
thường. Tay máy gồm các bộ phận: đế 1 đặt cố định hoặc gắn liền với xe di động
2, thân 3, cánh tay trên 4, cánh tay dưới 5, bàn kẹp 6.

5
Hình 1.2. Các bộ phận cấu thành robot công nghiệp
Bên trong hoặc ở bên ngoài tay máy còn đặt nhiều bộ phận khác nữa:
+ Hệ thống truyền dẫn động có thể là cơ khí, thủy khí hoặc điện khí, là bộ phận
chủ yếu tạo nên sự chuyển dịch ở các khớp động.
+ Hệ thống điều khiển đảm bảo sự hoạt động của robot theo các thông tin đặt
trước hoặc nhận biết được trong quá trình làm việc.
+ Hệ thống cảm biến tín hiệu thực hiện việc nhận biết và biến đổi thông tin về
hoạt động của bản thân robot (cảm biến nội tín hiệu) và của môi trường- đối tượng
mà robot phục vụ (cảm biến ngoại tín hiệu).
Các thông tin đặt trước hoặc cảm biến được sẽ đưa vào hệ thống điều khiển
sau khi xử lý bằng máy vi tính, rồi tác động vào hệ thống truyền dẫn động của tay
máy. Trực tiếp liên hệ với bàn kẹp là các dụng cụ (tools) thao tác với môi trường
và đối tượng làm việc.

1.3 Phân loại robot công nghiệp


Ngày nay robot công nghiệp đã phát triển rất đa dạng. Có thể phân loại robot
công nghiệp theo nhiều cách khác nhau:
+ Theo vị trí “ công tác” phân ra các loại robot cấp thoát phôi, robot vận chuyển,
robot vạn năng...
+ Theo dạng công nghệ chuyên dụng phân ra các loại robot sơn, robot hàn, robot
lắp ráp...
6
+ Theo cách thức và đặc trưng điều khiển phân ra: robot điều khiển tự động, robot
điều khiển bằng dạy học, robot điều khiển bằng tay, robot nhìn được ( vision)...
+ Theo các hệ tọa độ được dùng khi thực hiện các chuyển động cơ bản phân ra
các robot hoạt động theo hệ tọa độ trụ, cầu hoặc phỏng sinh...

1.4 Các chỉ tiêu đánh giá và các thông số kỹ thuật


Để các cơ cấu tay máy hoạt động linh hoạt tức là có thể thực hiện được dễ dàng
các chuyển dịch muôn màu muôn vẻ, chúng cần phải có một số bậc tự do chuyển
động cần thiết. Như đã biết, với các cơ cấu tay máy dùng các cơ cấu hở không
gian có các khớp động loại 5 thì số bậc tự do bằng số khâu động. Khi tăng số bậc
tự do tức là tăng số khâu động và tăng số thiết bị động lực cho các khâu động đó
nên sẽ tăng độ phức tạp về kết cấu và chế tạo. Vấn đề đặt ra là khi cùng số bậc tự
do có thể chọn lựa cơ cấu tay máy nào đảm bảo tính linh hoạt cao hơn. Tính linh
hoạt của cơ cấu tay máy là một chỉ tiêu tổng hợp được thể hiện qua các yếu tố sau
đây:

1.4.1 Độ động của cơ cấu


Khâu thao tác robot được xác định bằng 6 thông số xE , yE , z E , ,  ,  , trong đó
3 thông số đầu là vị trí của gốc hệ tọa độ gắn với khâu thao tác, còn 3 thông số
sau xác định hướng của khâu thao tác. Trong lúc mỗi cấu hình của cơ cấu tay máy
được xác định bằng n giá trị biến khớp q1,..., qn. Số bậc tự do n của cơ cấu tay
máy có thể bằng hoặc khác 6. Có thể xảy ra 3 trường hợp sau:
+ Nếu n=6, khi điểm E thực hiện di chuyển nhỏ  xE ,  yE , zE , , , sang
một vị trí mới nào đó, thì có thể xác định  q1 ,..., qn một cách đơn trị.
+ Nếu n  6 thì không phải lúc nào điểm E cũng đạt tới vị trí với định hướng như
yêu cầu được.
+ Nếu n  6 thì có nhiểu lời giải để điểm E đạt tới vị trí với định hướng đã yêu
cầu.
Hiệu số n-6=m được gọi là độ cơ động của tay máy. Có thể xác định độ cơ
động m bằng số bậc tự do còn lại của cơ cấu nếu giữ cố định bàn kẹp lại. Ví dụ,
trong trường hợp cơ cấu hình 2.4 nếu bàn kẹp vật ở vị trí cố định, tức là khâu 3 sẽ

7
trở nên cố định và số khâu động còn lại là 2. Tính theo công thức (2.1) lúc này cơ
cấu còn lại 1 bậc tự do (w=1).
Sự tồn tại độ cơ động ( m  1 ) là có lợi vì khi đó cơ cấu tay máy có thể đạt
tới đích với nhiều phương án khác nhau. Điều đó càng quan trọng nhất là khi môi
trường làm việc có các chướng ngại. Tuy nhiên dễ có độ cơ động cao, tức là cần
số bậc tự do cao thì độ phức tạp kết cấu tay máy cũng tăng theo và sẽ không tránh
khỏi việc tăng giá thành và giảm độ chính xác chuyển động.

1.4.2 Hệ số phục vụ
Trong vùng làm việc, tức là trong khoảng không gian mà bàn kẹp tay máy
có thể thao tác được, không phải ở bất cứ điểm nào trong vùng này bàn kẹp tay
máy cũng thao tác dễ dàng như nhau. Để đánh giá mức độ dễ dàng thao tác đó
người ta dùng khái niệm hệ số phục vụ.
Hệ số phục vụ  là tỷ số giữa góc phục vụ  so với 4. Góc phục vụ  là góc
nón quét một vùng không gian mà chỉ ở phía trong đó bàn kẹp mới có thể hướng
tới tọa độ cần thiết:


4
Giá trị của  và  không những phụ thuộc vào vị trí điểm thao tác trong vùng
làm việc, mà còn phụ thuộc vào kết cấu của tay máy.

1.4.3 Độ dễ điều khiển của cơ cấu tay máy


Trong thực tế điều khiển hoạt động của tay máy, từ khi nhận được tín hiệu
về định vị và định hướng của” điểm tác động cuối” E tại một điểm của quỹ đạo,
cho tới khi điều khiển để đạt được mục tiêu đó, robot phải thực hiện hoạt động đó
trong một khoảng thời gian nhất định. Thời gian đó bao gồm thời gian tính toán
để xác định các thông số điều khiển và thời gian thực hiện di chuyển.
Tổng các thời gian đó có thể gọi là thời gian điều khiển. Trong đó thời gian
tính toán giá trị các biến khớp qi theo các thông số định vị và định hướng tại điểm
E, phụ thuộc vào loại cơ cấu tay máy. Qua thông số thời gian điều khiển nói trên
có thể xác định mức độ khó dễ điều khiển, như một chỉ tiêu đánh giá cơ cấu tay
máy.
8
1.4.4 Các thông số kỹ thuật của robot công nghiệp
Robot công nghiệp thường được đặc trưng bằng bảng các thông số kỹ thuật
cơ bản xem bảng (1.1). Hệ truyền dẫn động được ghi rõ là thủy lực, khí nén, động
cơ điện một chiều, động cơ bước...Trong chương IX sẽ phân tích về khả năng ứng
dụng trong các hệ truyền dẫn động này. Hệ điều khiển được xác định theo chu kỳ,
theo vị trí hoặc theo chu tuyến...Trong chương VI sẽ đề cập đến các hệ điều khiển
ứng dụng trong robot công nghiệp.
Sai số định vị của bàn kẹp (mm) là độ sai lệch giữa vị trí thực so với vị trí
yêu cầu. Mức chính xác thấp  >  1(mm) áp dụng cho các loại robot vận chuyển,
phun phủ...Mức chính xác trung bình 0,1    1,0(mm) thích hợp với các việc
như lắp ráp có khe hở, vặn vít, hàn hồ quang...Mức chính xác cao   0,1(mm)
dùng khi đo lường, lắp ráp khít...
Bảng 1.1. Đặc trưng của robot
Đơn Đơn
Thông số kỹ thuật Thông số kỹ thuật
vị vị
Số bậc tự do - Vận tốc tịnh tiến lớn nhất mm/s
Tải nâng Kg Tầm với (max/min) mm
Giá trị giới hạn (max, min) Tầm cao (max/min) mm
* Biến khớp quay rad Sai số định vị mm
* Biến khớp tịnh tiến mm Hệ truyền dẫn động -
Vận tốc góc lớn nhất khi quay rad/s Hệ điều khiển -

1.5. Các bài toán thường gặp đối với robot công nghiệp
Trong thực tế, để chế tạo ra một robot công nghiệp hoàn chỉnh và có thể
thương mại hóa nó phải trải qua rất nhiều bước. Tuy nhiên, ở đây ta chỉ giới hạn
ở các vấn đề tính toán lý thuyết cơ bản thì các bài toán liên quan đến robot công
nghiệp bao gồm:
+ Phân tích động học: Tìm mối quan hệ giữa chuyển động của khâu thao tác (bàn
kẹp, đầu hàn, sơn, phun phủ,…) và chuyển động của các khớp (góc quay của các
động cơ hoặc chuyển động tịnh tiến đặt ở mỗi khớp). Sau đó, chúng ta cần phải

9
giải mối quan hệ này theo cả hai chiều: cho trước chuyển động của khâu thao tác,
cần tìm chuyển động của các khớp hoặc ngược lại. Bên cạnh đó, vấn đề tính toán
vận tốc dài, vận tốc góc cũng là 1 vấn đề quan trọng, làm đầu vào cho bài toán
động lực học. Các yếu tố đầu vào của bài toán động học bao gồm cấu trúc động
học và kích thước các khâu của robot.
+ Phân tích động lực học: Ở bài toán động lực học, chúng ta cần quan tâm đề
nguyên nhân gây ra chuyển động tức là mối quan hệ giữa momen ( hoặc lực) đặt
vào các khớp quay (hoặc tịnh tiến) và chuyển động tương ứng của các khớp đó.
Các yếu tố đầu vào của bài toán động lực học bao gồm kết quả của bài toán động
học và các yếu tố về khối lượng, momen quán tính khối của các khâu của robot.
+ Thiết kế quỹ đạo và điều khiển: Đây là bài toán sau cùng cũng là bài toán phức
tạp nhất của tính toán robot. Chúng ta cần thiết kế đường di chuyển cho khâu thao
tác và chuyển động của các khớp cùng với các yếu tố về vận tốc, gia tốc để đáp
ứng yêu cầu kỹ thuật trong sản xuất. Bài toán điều khiển nhằm đảm bảo robot sẽ
hoạt động bám theo đúng những thông số ta đã thiết kế trước, chất lượng của điều
khiển quan hệ mật thiết với chất lượng của một robot.

10
CHƯƠNG 2
PHÂN TÍCH ĐỘNG HỌC ROBOT UR
Trong chương này tập trung giải quyết hai bài toán đối với phân tích động
học là bài toán động học thuận và bài toán động học ngược. Bài toàn động học
thuận có nhiệm vụ chủ yếu là xác định ví trí và hướng khâu thao tác dưới dạng
hàm của các biến khớp. Phương pháp sử dụng để giải quyết bài toán này là phương
pháp ma trận Denavit-Hartenberg [1, 2]. Đối với bài toán động học ngược, cho
biết chuyển động của khâu thao tác ta cần phải xác định chuyển động của các tọa
độ khớp hai phương pháp được giới thiệu để giải bài toán này là phương pháp giải
tích và phương pháp số [2].

2.1. Phân tích động thuận rôbốt UR


2.1.1. Mô hình rôbốt và các hệ tọa độ Denavit-Hartenberg (DH)
Trên hình 2.1 là hinh ảnh của một số dạng robot UR, các robot đó có kích
thước khác nhau nhưng hình dáng nói chung là giống nhau, xuất phát từ hình ảnh
thực tế, ta xây dựng được mô hình chuyển động của các robot UR có dạng như
trên hình 2.2 dưới đây, trong đó ta đặt các kích thước trên hình bằng các tham số
như sau: O0O1 = d1, O1A = d2, AO2 = a2, O2B = d3, BC = a3, CO3 = d4, O4O5 = d5,
O5O6 = d6. Dựa vào phương pháp ma trận DH [1, 2], ta xây dựng được các hệ trục
tọa độ khớp đối với rôbốt có dạng như trên hình 2.2. Sau khi xây dựng được các
hệ tọa độ khớp, ta xác định được bảng các tham số động học DH được cho như
trong bảng 2.2

Hình 2.1: Bộ sản phẩm robot công nghiệp UR3, UR5 và UR10
11
z q5 x
4
4
O x B
x’
5 C 2
6
x O
x 3
O O z
2
5
3 4 2
q
q 3
z 4
q 3
6
z
x 5
6
O
6
z
6
O1
q x
2 1
A z
0
z q
1 1

O
0

x’
1

x
0

Hình 2.2. Mô hình chuyển động của rôbốt UR


Bảng 2.1: Bảng các tham số động học DH của rôbốt UR
Hệ trục i di ai αi
1 q1 d1 0 900
2 q2 d2 a2 00
3 q3 d 4  d3 a3 00
4 q4 0 0 -900
5 q5 d5 0 900
6 q6 d6 0 00

2.1.2. Xác định các ma trận DH


Từ cách xây dựng hệ trục ở trên ta thấy, để chuyển hệ trục thứ i – 1 sang hệ
trục thứ i ta cần thực hiện bốn bước như sau [1, 2]: đầu tiên là quay quanh trục zi-
1 một góc i, tiếp theo dịch chuyển dọc trục zi-1 một đoạn di sau đó dịch chuyển
dọc trục xi một đọa ai và cuối cùng là quay quanh trục xi một góc i. Vậy khi đó
ma trận chuyển từ hệ trục i – 1 sang hệ trục i là tích của 4 ma trận quay thuần nhất
cơ bản nói trên, khi đó ta có

12
H i i 1 H i  Tz (i ).Transz (di ).Transx (ai ).Tx ( i )
cosi  sin i cos  i sin i sin  i ai cosi 
 sin  cosi cos i  cosi sin  i ai sin i  (2.1)
 i 
 0 sin  i cos i di 
 
 0 0 0 1 
Từ bảng các tham số động học DH (bảng 2.1), thay các tham số tương ứng vào
(2.1) ta lần lượt nhận được các ma trận DH địa phương như sau:
c1 0 s10 c2  s2 0 a2c2 
s 0
0 c1 s c2 0 a2 s2 
H1   1 ; H2   2 
0 1 0 d1  0 0 1 d2 
   
0 0 0 1 0 0 0 1 
c3  s3 0 a3c3  c4 0  s4 0 
s c3 0 a3 s3  s 0 c4 0
H3   3  ; H4   4 
0 0 1 d 4  d3   0 1 0 0
   
0 0 0 1  0 0 0 1
c5 0 s5 0 c6  s6 0 0
 s 0 c 0  s c6 0 0
H5   5 5 ; H6   6 
 0 1 0 d5  0 0 1 d6 
   
0 0 0 1 0 0 0 1
Từ các ma trận DH địa phương ở trên, ta xác định được các ma trận DH toàn cục
cho các khâu của robot được cho bởi công thức [1, 2]
Di  0 H i  0 H1 1 H 2  i 1 H i  H1H 2  H i (2.2)
Áp dụng (2.2) khi cho i = 1  6, ta được các ma trận Di như sau:
c1 0 s1 0
s 0 c1 0
D1   1 
0 1 0 d1 
 
0 0 0 1

c1c2 c1s2 s1 d 2 s1  a2c1c2 


c s s s c1 a2c2 s1  d 2c1 
D2   2 1 1 2 
 s2 c2 0 d1  a2 s2 
 
 0 0 0 1 
13
c23c1  s23c1 s1 d 2 s1  s1 (d3  d 4 )  a2c1c2  a3c1c23 
 c s  s s c c ( d  d )  d c  a c s  a c s 
D3   23 1 23 1 1 1 3 4 2 1 2 2 1 3 23 1 

 s23 c23 0 d1  a3 s23  a2 s2 


 
 0 0 0 1 
c234c1  s1  s234c1 d 2 s1  s1 (d3  d 4 )  a2c1c2  a3c1c23 
 c s c  s s c (d  d )  d c  a c s  a c s 
D4   234 1 1 234 1 1 3 4 2 1 2 2 1 3 23 1 

 s234 0 c234 d1  a3 s23  a2 s2 


 
 0 0 0 1 
 c234 c1c5  s1s5  s234 c1 c5 s1  c234 c1s5 (d 2  d3  d 4 ) s1  a2 c1c2  d5 s234 c1  a3c1c23 
c s  c c s  s234 s1 c234 s1s5  c1c5 (d3  d 4  d 2 )c1  a2 c2 s1  d5 s234 s1  a3c23 s1 
D5   1 5 234 5 1
 s234 c5 c234 s234 s5 d1  a3 s23  a2 s2  d5c234 
 
 0 0 0 1 

 c6 ( s1s5  c234 c1c5 )  s234 c1s6 s6 ( s1s5  c234 c1c5 )  s234 c1c6 c5 s1  c234 c1s5 D6 [1, 4] 
 c (c s  c c s )  s s s  s6 (c1s5  c234 c5 s1 )  s234 c6 s1 c234 s1s5  c1c5 D6 [2, 4]
D6   6 1 5 234 5 1 234 1 6

 c234 s6  s234 c5c6 c234 c6  s234 c5 s6 s234 s5 D6 [3, 4]


 
 0 0 0 1 

Trong đó
D6 [1, 4]  d 6 (c5 s1  c234 c1s5 )  ( d 2  d3  d 4 ) s1  a2c1c2  d5 s234 c1  a3c1c23
D6 [2,4]  (d 2  d3  d 4 )c1  d 6 c1c5  a2c2 s1  d5 s234 s1  a3 s1c23  d 6c234 s1s5
D6 [3,4]  d1  a3 s23  a2 s2  d 5c234  d 6 s5 s234
Chú ý. Trong các ma trận ở trên, ta đưa vào các ký hiệu
ci  cos( qi ); cij  cos  qi  q j  ; cijk  cos  qi  q j  qk  ;
(2.3)
si  sin( qi ); sij  sin  qi  q j  ; sijk  sin  qi  q j  qk 

2.1.3. Xác định vận tốc góc và gia tốc góc các khâu của rôbốt UR
Để tìm vận tốc góc các khâu của rôbốt UR ta sử dụng công thức dưới đây [1]
R0
 AT , ω  ,A  dA i
 i(0)  A
ω i i
 i( i )  ATi A i i (2.4)
dt
T
  i( i ) [2,3] ω
ω i( i )   ω  i( i ) [1,3] ω
 i( i ) [1, 2] (2.5)

14
Trong đó Ai là ma trận côsin chỉ hướng của khâu thứ i đối với hệ trục tọa độ cố
định, các ma trận này được xác định dựa vào các ma trận Di như sau: như đã biết
ma trận Di bao gồm các thành phần [1]

0
 0 Ai rO(0)i 
Di  H i   T  (2.6)
 0 1 
Từ (2.6) ta dễ dàng xác định được các ma trận Ai có dạng như sau
 c1 0 s1   c1c2 c1s2 s1  c23c1  s23c1 s1 
A1   s1 0 c1  ; A 2   c2 s1  s1s2 c1  ; A 3   c23 s1  s23 s1 c1 
     
 0 1 0   s2 c2 0   s23 c23 0 

 c234 c1  s1  s234 c1   c234c1c5  s1s5  s234c1 c5 s1  c234 c1s5 


A 4   c234 s1 c1  s234 s1 ; A 5   c1s5  c234c5 s1
  s234 s1 c234 s1s5  c1c5 
   
 s234 0 c234   s234 c5 c234 s234 s5 

 c6 ( s1s5  c234 c1c5 )  s234c1s6 s6 ( s1s5  c234c1c5 )  s234c1c6 c5 s1  c234c1s5 


A 6   c6 (c1s5  c234c5 s1 )  s234 s1s6  s6 (c1s5  c234c5 s1 )  s234c6 s1 c234 s1s5  c1c5 
 
 c234 s6  s234c5c6 c234 c6  s234c5 s6 s234 s5 

Sau khi có được các ma trận côsin chỉ hướng, áp dụng công thức (2.4) và để ý đến
(2.5) ta xác định được các véctơ vận tốc góc các khâu của rô bốt UR như sau:
* Vận tốc góc các khâu của robot UR khi chiếu lên các hệ tọa độ khớp
T
ω1(1)   0 q1 0
T

2   s2 q1
ω (2) c2 q1 q2 
T
ω 3(3)   s23q1 c23q1 q 2  q3 
T

4   s234 q1
ω (4)  q 2  q3  q4 c234 q1 

 c5 s234 q1  s5 ( q2  q3  q4 ) 


ω 5(5)  c234 q1  q5 
 
   
 s234 s5 q1  c5 ( q2  q3  q4 ) 

 (c234 s6  c5c6 s234 ) q1  c6 s5 ( q2  q3  q 4 )  s6 q5 


ω (6)   (c5 s234 s6  c234c6 ) q1  s5 s6 ( q2  q3  q4 )  c6 q5 
6  
 s234 s5 q1  c5 ( q 2  q3  q4 )  q6 

* Vận tốc góc các khâu của robot UR khi chiếu lên hệ tọa độ cố định
15
T
ω1(0)   0 0 q1 
T

2   s1 q2
ω (0) c1q2 q1 
T
ω 3(0)   s1 ( q2  q3 ) c1 ( q2  q3 ) q1 
T
  
4   s1 ( q2  q3  q4 )
ω (0)  c1 ( q2  q3  q4 ) q1 

 s1 ( q2  q3  q4 )  c1s234 q5 


ω 5(0)   c1 (q2  q3  q 4 )  s1s234 q5 
 
 q1  c234 q5 

 s1 (q2  q3  q4 )  c1s234q5  (c1c234 s5  c5 s1 )q6 


ω(0)   c1 (q2  q3  q4 )  s1s234q5  (c234 s1s5  c1c5 )q6 
6  
 q1  c234q5  s234 s5q6 

Tương tự như với vận tốc góc, bằng cách đạo hàm công thức (2.4) theo thời gian,
ta được ma trận sóng của véctơ gia tốc góc của các khâu có dạng:
 ( i )  A
ε i(i )  ω  TA  AT A
 (2.7)
i i i i i

 (0)  A
ε i(0)  ω  AT  A
 AT (2.8)
i i i i i

Từ (2.7) và (2.8) ta dễ dàng suy ra được véctơ gia tốc góc các khâu của rôbốt.

2.1.4. Vận tốc và gia tốc điểm định vị khâu thao tác của rôbốt UR
Theo (2.6) ta thấy ma trận D6 của rôbốt có dạng
 0 A 6 rO(0)6   0 A 6 rP(0) 
D6   T  T 
 0 1   0 1 

Từ đó suy ra vị trí điểm định vị của khâu thao tác chính là ba thành phần đầu tiên
của cột thứ tư của ma trận D6, khi đó ta có
 d 6 (c5 s1  c234c1s5 )  ( d 2  d3  d 4 ) s1  a2c1c2  d5 s234c1  a3c1c23 
r(0)
  ( d 2  d3  d 4 )c1  d 6c1c5  a2c2 s1  d5 s234 s1  a3 s1c23  d 6c234 s1s5  (2.9)
P  
 d1  a3 s23  a2 s2  d5c234  d 6 s5 s234 

Đạo hàm (2.9) theo thời gian ta được vận tốc của điểm định vị khâu thao tác như
sau:

16
vPx  d 6 [c1q1c5  s1s5 q5  s234 ( q2  q3  q4 ) c1 s5  c234 s1q1s5  c234c1c5 q5 ]
 ( d 2  d 3  d 4 )c1q1  s1q1c2 a2  c1s2 q 2 a2  d5c234 ( q 2  q3  q 4 )c1
 d5 s234 s1q1  a3 s1q1c23  a3c1s23 ( q 2  q3 )
vPy  (d 2  d3  d 4 ) s1q1  d 6 s1q1c5  d 6 c1s5 q5  c1q1c2 a2  s1s2 q2 a2
 d5c234 (q2  q3  q4 ) s1  d5 s234c1q1  a3c1q1c23  a3 s1s23 (q2  q3 )
 d 6 s234 (q2  q3  q4 ) s1s5  d 6c234c1q1s5  d 6c234 s1c5 q5

vPz  a3c23 (q2  q3 )  c2q2a2  d5s234 (q2  q3  q4 )


 d6c5q5 s234  d6 s5c234 (q2  q3  q4 )
Bằng cách đạo hàm lần nữa các hình chiếu vận tốc ta được hình chiếu véctơ gia
tốc điểm định trên các trục cố định.

2.1.5. Thiết lập phương trình động học Robot


Hệ các phương trình động học rôbốt cho ta mối quan hệ giữa vị trí điểm định
vị và hướng của khâu thao tác và các tọa độ khớp. Hê phương trình này có một
vai trò rất quan trọng trong việc phân tích bài toán động học ngược sau này, trong
phần này ta sẽ đi thiết lập các phương trình đó.
Từ trên ta đã biết, ma trận thuần nhất biểu diễn mối quan hệ giữa hệ tọa độ
gắn với khâu thao tác và hệ tọa độ cố định có dạng
 c6 ( s1s5  c234 c1c5 )  s234 c1s6 s6 ( s1s5  c234 c1c5 )  s234 c1c6 c5 s1  c234 c1s5 D6 [1, 4] 
 c (c s  c c s )  s s s  s6 (c1s5  c234 c5 s1 )  s234 c6 s1 c234 s1s5  c1c5 D6 [2, 4]
D6   6 1 5 234 5 1 234 1 6

 c234 s6  s234 c5c6 c234 c6  s234 c5 s6 s234 s5 D6 [3, 4]


 
 0 0 0 1 

Mặt khác, ma trận thuần nhất mô tả khâu thao tác có dạng:


 nx sx ax
xP 
n s y a y yP 
T y  (2.10)
 nzs z az z P 
 
0 0 0 1
  
trong đó các vecto n  nx , n y , nz  ; s  sx ,s y ,s z  ; a  a x ,a y ,a z  là các vecto đơn vị của

3 trục tọa độ của hệ tọa độ gắn với khâu thao tác. 3 vecto này thể hiện hướng của

khâu thao tác, còn vecto rP  xP , yP , z P  thể hiện vị trí khâu thao tác (chính là vị trí

17
gốc tọa độ của hệ tọa độ gắn với khâu thao tác) trong hệ tọa độ cố định. Từ đây ta
thu được hệ phương trình động học dưới dạng:
T  D6  H1H2H3H4H5H6 (2.11)
Khai triển (2.11) ở dạng tường minh, ta thu được hệ phương trình động học robot
UR như sau:
 nx  c6  s1s5  c234c1c5   s234c1s6 ; n y  c6  c1s5  c234c5 s1   s234 s1s6

 nz  c234 s6  s234c5c6
s  s  s s  c c c   s c c ; s  s  c s  c s c   s s c
 x 6 1 5 234 1 5 234 1 6 y 6 1 5 234 1 5 234 1 6

 sz  c234c6  s234c5 s6
 (2.12)
a  s c 
 x 1 5 1 5 234c s c ; a y   c c
1 5  s s c
1 5 234 ; a z  s s
234 5
x  d c s  c c s   d  d  d  s  a c c  d s c  a c c
 P 6 5 1 234 1 5 2 3 4 1 2 1 2 5 234 1 3 1 23

 yP    d 2  d3  d 4  c1  d 6c1c5  a2c2 s1  d5 s234 s1  a3 s1c23  d 6 s234 s1s5



 z P  d1  a3 s23  a2 s2  d 5c234  d 6 s5 s234
Chú ý rằng ở (2.12) các biểu thức vế trái là các thành phần biểu diễn khâu thao
tác, còn các biểu thức vế phải chứa kích thước các khâu cũng như góc quay của
các khớp. (2.12) có 12 phương trình, gồm 3 phương trình liên quan tới vị trí và 9
phương trình liên quan tới hướng, tuy nhiên chỉ có 3 trong 9 phương trình về
hướng là độc lập. Trong nhiều tài liệu người ta thường chọn 6 phương trình dưới
đây làm hệ các phương trình động học của rôbốt
 nx  c6  s1s5  c234c1c5   s234c1s6

 s y   s6  c1s5  c234 s1c5   s234 s1c6
a  s s
 z 234 5
 (2.13)
 Px  d 6  c s
5 1  c c s
234 1 5    d 2  d 3  d 4  s1  a c c
2 1 2  d s c
5 234 1  a c c
3 1 23
y   d  d  d c  d c c  a c s  d s s  a s c  d s s s
 P  2 3 4  1 6 1 5 2 2 1 5 234 1 3 1 23 6 234 1 5
 z P  d1  a3 s23  a2 s2  d 5c234  d 6 s5 s234

2.2. Phân tích động học ngược robot UR


Đối với bài toán động học ngược, xuất phát từ hệ phương trình động học
(2.11) với các thành phần về hướng và vị trí trong ma trận T ở (2.10) đã cho trước

18
cùng với các kích thước động học robot đã biết ta cần đi tìm chuyển động của các
khớp, tức là tìm véctơ:
T
q   q1, q2 , q3 , q4 , q5 , q6  , q   q1 , q2 , q3 , q4 , q5 , q6 T , q   q1 , q2 , q3 , q4 , q5 , q6 T (2.14)
Đây là việc giải hệ phương trình đại số phi tuyến 6 ẩn. Đối với bài toán động
học ngược rôbốt, thường có 2 nhóm phương pháp hay được sử dụng là phương
pháp số và phương pháp giải tích. Trong đó, phương pháp số có thể giải quyết các
bài toán tổng quát cho hầu hết các cấu hình robot công nghiệp nhưng lại cần thời
gian tính toán lớn do sử dụng các vòng lặp trong thuật toán. Nếu không cắt giảm
thời gian tính toán, sẽ không thích hợp làm đầu vào cho bài toán điều khiển sau
này. Đối với phương pháp giải tích, với tùy cấu hình robot mà sẽ có các phương
pháp tương ứng nhưng sẽ không mang tính tổng quát cho mọi rôbốt. Trong nhiều
trường hợp, việc giải động học robot bằng phương pháp giải tích rất khó khả thi.
Tuy nhiên, một ưu điểm rất lớn của phương pháp giải tích là nghiệm sẽ ở dạng
công thức giải tích, cho kết quả tính toán nhanh, thích hợp cho các bài toán điều
khiển sau này do có thể đảm bảo đáp ứng điều khiển thời gian thực. Sau đây sẽ
giới thiệu cả phương pháp giải tích và phương pháp số trong việc phân tích động
học ngược rôbốt UR.

2.2.1. Phương pháp giải tích


Ta đưa vào ký hiệu:
i
D6  Hi 1Hi 2 ...H6 (2.15)
Phương trình (2.11) có thể viết lại như sau:
D6  Di .i D6 (2.16)

Nhân 2 vế của (2.16) với Di 1 ta có

Di 1.D6  i D6
và do
1
1  i 
Di    H i   H i 1...H 2 1H11
 i 1 
ta thu được:

19
H i 1...H 2 1H11D6  i D6 (2.17)
Thay D6 = T vào (2.17) ta sẽ nhận được:
H i 1...H 2 1H11T  i D6 (2.18)
Với i = 1  5, ta thu được 5 phương trình ma trận, sau đó đồng nhất các phần tử
tương ứng của các phương trình ma trận (2.18) ta sẽ chọn được 6 phương trình
tồn tại độc lập để xác định các biến khớp qi. Tuy nhiên, như đã nói ở trên, phương
pháp giải tích không phải là phương pháp tổng quát áp dụng cho mọi loại rôbốt.
Về cơ bản, việc chọn ra các phương trình độc lập này phải phụ thuộc vào cấu hình
của từng rôbốt và ứng với mỗi cấu hình cụ thể, người ta cũng đã tìm ra cách chọn
các phương trình phù hợp tương ứng. Với rôbốt mà ta xét ở đây, nó có các trục
khớp 2,3,4 song song với nhau, ta sẽ sử dụng phương pháp như sau [4]:
Xuất phát từ phương trình (2.18) ta có:
F1  H11T  H 2 H 3H 4 H 5H 6  0 (2.19)

F2  H 41H 31H 21H11T  H 5H 6  0 (2.20)

F3  H 21H11T  H 3H 4 H 5H 6  0 (2.21)
Từ các ma trận F1=0, F2=0, F3=0 ta rút ra được 6 phương trình cần để giải bài
toán động học ngược đối với rôbốt UR có dạng như sau:
f1  F1  3, 4   d3  d 2  d 4  d 6 c5  p y c1  p x s1  0 (2.22)

f 2  F2  2,3  c5  a y c1  ax s1  0 (2.23)

f 3  F3  3, 2   s x s1  s y c1  s5 s6  0 (2.24)

f 4  F2  3,3   ax c1 s234  a y s1 s234  a z c234  0 (2.25)

f5  F1 1, 4   px c1  a2 c2  a3 c 23  p y s1  d 5 s234  d 6 s5 c234  0 (2.26)

f 6  F1  2, 4   pz  d1  a3 s23  a2 s2  d5 c234  d 6 s5 s234  0 (2.27)

Chú ý. Nếu ta sử dụng 3góc Roll-Pitch-Yaw là , ,  để xác định hướng của


khâu thao tác, khi đó ta có

20
 nx sx ax xP 
n sy ay yP   A rP(0) 
T y  
 nz sz az zP   0 1 
 
0 0 0 1

Với
 cos  cos  cos  sin  sin  sin  cos cos  sin  cos  sin  sin 
A   sin  cos  sin  sin  sin  cos  cos sin  sin  cos  cos  sin 
 
  sin  cos  sin cos  cos 

Từ đó ta suy ra
sx  cos  sin  sin  sin  cos
s y  sin  sin  sin  cos  cos
ax  cos  sin  cos  sin  sin
a y  sin  sin  cos  cos  sin
az  cos  cos
Sau đây ta đi giải hệ 6 phương trình ở trên để tìm các biến khớp q1, q2, q2, q4, q5
và q6.
Từ (2.23) ta suy ra
c5  ax .s1  a y .c1 (2.28)

Thế (2.28) vào (2.22), ta được


d3  d 2  d 4  (d 6 a x  xP ) s1  (d 6 a y  yP )c1  0

 (d 6 ax  xP ) s1  (d 6 a y  yP )c1  d3  d 2  d 4 (2.29)

Đặt
(d 6 ax  xP )  r cos  ; (d 6 a y  yP )  r sin  (2.30)

Trong đó
 d 6 a y  y P d 6 a x  xP 
r  ( d 6 ax  xP ) 2  ( d 6 a y  yP ) 2 ;   a tan 2  ,  (2.31)
 r r 
Chú ý. Hàm atan2(y,x) được định nghĩa như sau

21
  
 arctan  y / x  ; x  0     
2 2

  
  a tan 2( y, x)    sgn  y  . ; x0    (2.32)
 2 2
   
 arctan  y/ x   
 sgn  y  
 . ; x  0     3
 2 2 2

Thay (2.30) vào (2.29) ta dễ dàng suy ra


d3  d 2  d 4
sin(q1   )  (2.33)
r
Để phương trình (2.33) có nghiệm thực thì điều kiện sau phải được thỏa mãn
d3  d 2  d 4
1 (2.34)
r
Điều kiện (2.34) phụ thuộc vào cấu hình robot và quỹ đạo của khâu thao tác. Giả
sử điều kiện này được thỏa mãn, khi đó phương trình (2.33) có 2 nghiệm thực là
 d  d2  d4   d  d2  d4 
q1    arcsin  3  và q1      arcsin  3 
 r   r 
Từ đó ta suy ra hai nghiệm q1 là
 d  d2  d4   d3  d 2  d 4 
q1(1)  arcsin  3    ; q1
(2)
   arcsin     (2.35)
 r   r 
Khi đã xác định được q1, từ (2.23) ta dễ dàng suy ra được
c5  ax .s1  a y .c1

 q5   arccos(ax .s1  a y .c1 ) (2.36)

Ứng với mỗi giá trị của q1 ta có được 2 giá trị của q5, vậy ta có được 4 nghiệm
của q5, cụ thể như sau:
q1(1)  q5(1)  arccos(ax .s1(1)  a y .c1(1) ), q5(2)   arccos(ax .s1(1)  a y .c1(1) )

q1(2)  q5(3)  arccos(ax .s1(2)  a y .c1(2) ), q5(4)   arccos(ax .s1(2)  a y .c1(2) )

Từ (2.24), ta suy ra được

22
sx s1  s y c1
s6 
s5

 sx s1  s y c1   s x s1  s y c1 
 q6  arcsin   và q6    arcsin   (2.37)
 s5   s5 
Ứng với mỗi cặp giá trị q1, q5 ta có 2 nghiệm q6, vậy ta sẽ có 8 nghiệm q6, cụ thể
như sau:

(1) (1) (1)


 sx s1(1)  s y c1(1)  (2)  sx s1(1)  s y c1(1) 
q ,q
1 5  q 6  arcsin 
 (1)  , q6    arcsin  
 s5   s5(1) 

(1) (2) (3)


 sx s1(1)  s y c1(1)  (4)  sx s1(1)  s y c1(1) 
q ,q
1 5  q 6  arcsin 
 (2)  , q6    arcsin  (2) 
 s5   s5 

(2) (3) (5)


 sx s1(2)  s y c1(2)  (6)  sx s1(2)  s y c1(2) 
q ,q
1 5  q 6  arcsin 
  , q6    arcsin  
 s5(3)   s5(3) 

(2) (4) (7)


 sx s1(2)  s y c1(2)  (8)  sx s1(2)  s y c1(2) 
q ,q
1 5  q 6  arcsin 
  , q6    arcsin  
 s5(4)   s5(4) 
Mặt khác, từ phương trình (2.25) ta có
(ax c1  a y s1 ) s234  az c234 (2.38)

Đặt
q234  q2  q3  q4 (2.39)
az
 tan(q234 )  (2.40)
(ax c1  a y s1 )

 q234  a tan 2( az , ax c1  a y s1 ) (2.41)

Ứng với mỗi giá trị của q1 ta có 1 giá trị của q234, vậy ta có được 2 giá trị của q234
như sau:
q1(1)  q234
(1)
 a tan 2(az , ax c1(1)  a y s1(1) )

q1(2)  q234
(2)
 a tan 2(az , ax c1(2)  a y s1(2) )

Từ (2.26) và (2.27), ta suy ra

23
 a2 c2  a3 c23  xP c1  yP s1  d 5 s234  d 6 s5 c234
 (2.42)
 a2 s2  a3 s23  z P  d1  d 5 c234  d 6 s5 s234
Đặt
 D1  xP c1  yP s1  d5 s234  d 6 s5 c234
 (2.43)
 D2  z P  d1  d5 c234  d 6 s5 s234
Chú ý. Ứng với mỗi bộ giá trị của q1, q234 và q5 ta có 1 cặp giá trị của D1 và D2,
vậy ta có 4 cặp giá trị của D1 và D2 như sau:

(1) (1) (1)


 D1(1)  xP c1(1)  p y s1(1)  d5 s234
(1)
 d 6 s5(1) c234
(1)

q ,q ,q
1 234 5  
(1) (1) (1) (1)
 D2  z P  d1  d5 c234  d 6 s5 s234

(1) (1) (2)


 D1(2)  xP c1(1)  p y s1(1)  d5 s234
(1)
 d 6 s5(2) c234
(1)

q ,q ,q
1 234 5  
(2) (1) (2) (1)
 D2  z P  d1  d5 c234  d 6 s5 s234

(2) (2) (3)


 D1(3)  xP c1(2)  p y s1(2)  d5 s234
(2)
 d 6 s5(3) c234
(2)

q ,q ,q
1 234 5  
(3) (2) (3) (2)
 D2  z P  d1  d5 c234  d 6 s5 s234

(2) (2) (4)


 D1(4)  xP c1(2)  p y s1(2)  d5 s234
(2)
 d 6 s5(4) c234
(2)

q ,q ,q
1 234 5  
(4) (2) (4) (2)
 D2  z P  d1  d5 c234  d 6 s5 s234

 a2 c2  a3 c 23  D1
  (2.44)
 a2 s2  a3 s23  D2
Bình phương hai vế các phương trình trong (2.44) rồi cộng theo vế các phương
trình, ta được
a2 2  a3 2  2a2 a3  c23 c2  s23 s2   D12  D2 2 (2.45)

 2a2 a3 .c3  D12  D2 2  a2 2  a32

D12  D2 2  a2 2  a32
 c3  (2.46)
2a2 a3

 D12  D2 2  a2 2  a32 
 q3   arccos   (2.47)
 2a2 a3 
Ứng với mỗi cặp giá trị D1 và D2 ta có 2 nghiệm q3 hay nói cách khác ứng với mỗi
bộ giá trị q1, q234 và q5 ta có 2 nghiệm q3, vậy ta sẽ có 8 nghiệm q3 như sau:

24
 (1)  ( D1(1) ) 2  ( D2(1) )2  a2 2  a32 
q3  arccos  
  2a2 a3 
q1(1) , q234
(1)
, q5(1)  D1(1) ,D2(1)  
(1) 2 (1) 2 2 2
q (2)   arccos  ( D1 )  ( D2 )  a2  a3 
 3  
  2 a 2 a3 
 (3)  ( D1(2) ) 2  ( D2(2) )2  a2 2  a32 
q3  arccos  
  2a2 a3 
q1(1) , q234
(1)
, q5(2)  D1(2) , D2(2)  
(2) 2 (2) 2 2 2
q (4)   arccos  ( D1 )  ( D2 )  a2  a3 
 3  
  2 a 2 a3 
 (5)  ( D1(3) )2  ( D2(3) )2  a2 2  a32 
q3  arccos  
  2a2 a3 
q1(2) , q234
(2)
, q5(3)  D1(3) , D2(3)  
(3) 2 (3) 2 2 2
q (6)   arccos  ( D1 )  ( D2 )  a2  a3 
 3  
  2a2 a3 
 (7)  ( D1(4) ) 2  ( D2(4) )2  a2 2  a32 
q3  arccos  
  2a2 a3 
q1(2) , q234
(2)
, q5(4)  D1(4) , D2(4)  
(4) 2 (4) 2 2 2
q (8)   arccos  ( D1 )  ( D2 )  a2  a3 
 3  
  2a2 a3 
Khai triển hệ (2.44), ta được
a2 c2  a3 (c2 c3  s2 s3 )  D1

a2 s2  a3 ( s2 c3  c2 s3 )  D2
(a2  a3 c3 )c2  (a3 s3 ) s2  D1
  (2.48)
(a3 s3 )c2  (a2  a3 c3 ) s2  D2
Hệ (2.48) là hệ đại số tuyến tính với các ẩn c2 và s2, nghiệm của hệ này có dạng
c 2 
c2  , s2  s 2 với   0 (2.49)
 
Trong đó
(a2  a3 c3 ) a3 s3
  (a2  a3 c3 ) 2  (a3 s3 )2 (2.50)
a3 s3 (a2  a3 c3 )

D1  a3 s3
c 2   D1 (a2  a3 c3 )  D2 (a3 s3 ) (2.51)
D2 (a2  a3 c3 )

25
(a2  a3 c3 ) D1
s2   D2 (a2  a3 c3 )  D1 (a3 s3 ) (2.52)
a3 s3 D2

Ta dễ thấy các đại lượng , s2, c2 phụ thuộc vào D1, D2 và q3, do đó ta có các
bộ giá trị của , s2, c2 như sau:
 (1)  (a2  a3 c3(1) )2  (a3 s3(1) ) 2

D1(1) , D2(1) ,q3(1)   (1) (1) (1) (1)
s 2  D2 ( a2  a3 c3 )  D1 ( a3 s3 )
(1)

 (1) (1) (1) (1) (1)


 c 2  D1 (a2  a3c3 )  D2 (a3 s3 )
 (2)  (a2  a3c3(2) )2  (a3 s3(2) ) 2

D1(1) , D2(1) ,q3(2)   (2) (1) (2) (1)
s 2  D2 ( a2  a3 c3 )  D1 ( a3 s3 )
(2)

 (2) (1) (2) (1) (2)


 c 2  D1 (a2  a3c3 )  D2 (a3 s3 )
 (3)  (a2  a3 c3(3) ) 2  (a3 s3(3) )2

D1(2) , D2(2) ,q3(3)   (3) (2) (3) (2)
s 2  D2 ( a2  a3 c3 )  D1 ( a3 s3 )
(3)

 (3) (2) (3) (2) (3)


 c 2  D1 (a2  a3 c3 )  D2 (a3 s3 )
 (4)  (a2  a3c3(4) ) 2  (a3 s3(4) ) 2

D1(2) , D2(2) ,q3(4)   (4) (2) (4) (2)
s 2  D2 ( a2  a3 c3 )  D1 ( a3 s3 )
(4)

 (4) (2) (4) (2) (4)


 c 2  D1 (a2  a3c3 )  D2 (a3 s3 )
 (5)  (a2  a3c3(5) ) 2  (a3 s3(5) ) 2

D1(3) , D2(3) ,q3(5)   (5) (3) (5) (3)
s 2  D2 ( a2  a3 c3 )  D1 (a3 s3 )
(5)

 (5) (3) (5) (3) (5)


 c 2  D1 (a2  a3 c3 )  D2 (a3 s3 )
 (6)  (a2  a3c3(6) ) 2  (a3 s3(6) )2

D1(3) , D2(3) ,q3(6)   (6) (3) (6) (3)
s 2  D2 ( a2  a3 c3 )  D1 ( a3 s3 )
(6)

 (6) (3) (6) (3) (6)


 c 2  D1 (a2  a3c3 )  D2 (a3 s3 )
 (7)  (a2  a3c3(7) ) 2  (a3 s3(7) ) 2

D1(4) , D2(4) ,q3(7)   (7) (4) (7) (4)
s 2  D2 ( a2  a3 c3 )  D1 ( a3 s3 )
(7)

 (7) (4) (7) (4) (7)


 c 2  D1 (a2  a3c3 )  D2 (a3 s3 )

26
 (8)  (a2  a3 c3(8) ) 2  (a3 s3(8) )2

D1(4) , D2(4) ,q3(8)   (8) (4) (8) (4)
s 2  D2 ( a2  a3 c3 )  D1 ( a3 s3 )
(8)

 (8) (4) (8) (4) (8)


 c 2  D1 (a2  a3 c3 )  D2 (a3 s3 )
Khi đó ta có
s2
tan( q2 )   q2  a tan 2( s2 , c2 )
c2

  
 q2  a tan 2  s 2 , c 2  (2.53)
   
Ứng với mỗi giá trị của , s2, c2 ta có 1 nghiệm q2, vậy ta sẽ có 8 nghiệm q2 như
sau:
 (1)   (1)
s 2 c 2
(1)

q2  a tan 2  (1) , (1) 
(1) (1) (1) (1) (1)
q3(1)    
q ,q ,q
1 234 5  D ,D1 2   (2) 
(2) (2)
q3 q (2)  a tan 2   s 2 ,  c 2 
 2  (2) (2) 
   

 (3)   (3)
s2 c2
(3)

q2  a tan 2  (3) , (3) 
(1) (1) (2) (2) (2)
q3(3)    
q ,q ,q
1 234 5  D ,D1 2   (4) 
(4) (4)
q3 q (4)  a tan 2   s 2 ,  c 2 
 2  (4) (4) 
   

 (5)   (5)
s2  c(5)2 
q2  a tan 2  (5) , (5) 
(2) (2) (3) (3) (3)
q3(5)    
q ,q ,q
1 234 5  D ,D1 2   (6) 
(6) (6)
q3 q (6)  a tan 2   s 2 ,  c 2 
 2  (6) (6) 
   

 (7)   (7)
s2  c(7)2 
q
 2  a tan 2 ,
 (7) (7) 
(2) (2) (4) (4) (4)
q3(7)    
q ,q ,q
1 234 5  D ,D1 2   (8)  
(8) (8)
q3 q (8)  a tan 2   s 2 ,  c 2 
 2  (8) (8) 
   
Khi đã xác định được q2 và q3, từ (2.39) ta dễ dàng suy ra được q4 có dạng
q4  2  q2  q3 (2.54)
Ứng với mỗi giá trị q2 và q3 ta có 1 giá trị q4, vậy ta có 8 gia trị q4 như sau:
27
q4(1)  q234
(1)
 q2(1)  q3(1) , q4(2)  q234
(1)
 q2(2)  q3(2) ,

q4(3)  q234
(1)
 q2(3)  q3(3) , q4(4)  q234
(1)
 q2(4)  q3(4) ,

q4(5)  q234
(2)
 q2(5)  q3(5) , q4(6)  q234
(2)
 q2(6)  q3(6) ,

q4(7)  q234
(2)
 q2(7)  q3(7) , q4(8)  q234
(2)
 q2(8)  q3(8)
Vậy đối với bài toán động học ngược, khi tìm nghiệm bằng phương pháp giải
tích ta sẽ tìm được 8 bộ nghiệm đối với các biến khớp q1, q2, q3, q4, q5, q6, được
cho trong bảng dưới đây:
Bảng 2.2: Các nghiệm giải tích của bài toán động học ngược
Nghiệm q1 q5 q3 q2 q4 q6
1 q1(1) q5(1) q3(1) q2(1) q4(1) q6(1)

2 q1(1) q5(1) q3(2) q2(2) q4(2) q6(2)

3 q1(1) q5(2) q3(3) q2(3) q4(3) q6(3)

4 q1(1) q5(2) q3(4) q2(4) q4(4) q6(4)

5 q1(2) q5(3) q3(5) q2(5) q4(5) q6(5)

6 q1(2) q5(3) q3(6) q2(6) q4(6) q6(6)

7 q1(2) q5(4) q3(7) q2(7) q4(7) q6(7)

8 q1(2) q5(4) q3(8) q2(8) q4(8) q6(8)

Chú ý.
- Trong các công thức trên, ta sử dụng các ký hiệu:
ci( k )  cos( qi( k ) ); si( k )  sin( qi( k ) )
- Nếu q5 = 0  s5 = 0, khi đó q6 có thể nhận giá trị tùy ý và khi đó hệ có vô
số nghiệm.

2.2.2. Chọn nghiệm phù hợp


Có thể thấy bài toán động học ngược cho ta đến 8 bộ nghiệm, từ đó nảy sinh
yêu cầu chọn và kết hợp các bộ nghiệm trong miền không gian làm việc của robot
một cách hợp lý để robot làm việc mềm dẻo, không giật cục, không gây ra bước

28
nhảy về góc khớp. Nghiệm được chọn cũng không nên thay đổi quá nhanh về
hướng, vận tốc, dẫn đến yêu cầu bước nhảy mômen động cơ cần cung cấp. Để
chọn được nghiệm hợp lý nhất, ở mỗi thời điểm giải bài toán động học ngược ta
cần phải biết 2 giá trị nghiệm được chọn ở 2 thời điểm liền trước nó. Giả sử
nghiệm cần tìm tại thời điểm t là là q, nghiệm được chọn tại thời điểm (t - t) và
(t - 2t) là qP1 và qP2, ta lập hàm mục tiêu
2
W  k1 (q  q P1 ) 2  k 2 q  (q P1  t (q P1  q P 2 ))  (2.55)
Trong đó k1 là hệ số trọng lượng sai lệch của nghiệm cần tìm so với nghiệm tại tại
thời điểm liền trước nó, k2 là hệ số trọng lượng sai lệch của nghiệm cần tìm so với
nghiệm ngoại suy từ 2 giá trị nghiẹm chọn được liền trước, với
k1  k2  1 (2.56)
Nghiệm hợp lý nhất là nghiệm mà hàm mục tiêu có giá trị nhỏ nhất.
Vậy để chọn được nghiệm hợp lý, một vấn đề hết sức quan trọng đó là ta phải xác
định được 2 nghiệm tại hai thời điểm liền trước.

2.2.3. Phương pháp số


Cũng xuất phát từ hệ phương trình động học (2.11), ta lấy ra 6 phương trình
độc lập, trong đó có 3 phương trình về vị trí và 3 phương trình về hướng:
T 1, 4   D6 1, 4  ; T  2, 4   D6  2, 4  ; T  3, 4   D6  3, 4 
 (2.57)
T 1,1  D6 1,1 ; T  2, 2   D6  2, 2  ; T  3,3  D6  3,3
Khai triển (2.57) ta nhận được hệ phương trình:
 xP  d 6  c5 s1  c234c1s5    d 2  d3  d 4  s1  a2c1c2  d5 s234c1  a3c1c23

 y P    d 2  d3  d 4  c1  d 6c1c5  a2c2 s1  d5 s234 s1  a3 s1c23  d 6 s234 s1s5
z  d  a s  a s  d c  d s s
 P 1 3 23 2 2 5 234 6 5 234
 (2.58)
 xn   c6 1 5
s s  c234 1 5 
c c  s c s
234 1 6
s  s c s  c s c  s s c
 y 6 1 5 234 1 5  234 1 6

 az  s234 s5

Trong đó 3 phương trình đầu của (2.58) là 3 phương trình về vị trí, còn 3 phương
trình cuối là 3 phương trình về hướng. Hệ (2.58) có thể viết lại dưới dạng phương
trình vecto như sau:
29
x  f q (2.59)
Với
T
x   xP yP zP nx sy az 

Để giải (2.59), phương pháp số được sử dụng ở đây là phương pháp Newton-
Raphson có hiệu chỉnh gia lượng. Dưới đây ta trình bày nội dung của phương
pháp này.
Đạo hàm (2.59) theo thời gian ta thu được:
x  J (q)q (2.60)
Trong đó J là ma trận Jacobi 6  6 xác định bởi:
 f1 f1 
 q  q 
1 6
f  
J (q)       (2.61)
q  
f f
 q  q 
 6 6 
 1 6 

Từ biểu thức (2.60), ta suy ra công thức xác định vecto vận tốc suy rộng các khớp:
q (t )  J 1  q  x (t ) (2.62)
Tiếp tục đạo hàm 2 vế của (2.60) theo thời gian ta thu được:
 (t )  J (q)q (t )
x(t )  J (q)q (2.63)
Chuyển vế (2.63), kết hợp với (2.62) ta nhận được vecto gia tốc suy rộng của các
khớp:
q x(t )  J 1 (q)J (q)J 1 (q)x (t )
(t )  J 1 (q) 2.64)
Các công thức (2.62) và (2.64) cho phép ta xác định được vecto vận tốc suy rộng
và vecto gia tốc suy rộng nếu như biết được q(t) và x(t ) , x (t ) , 
x(t ) tại thời điểm
khảo sát. Bây giờ ta sẽ trình bày thuật toán tìm q(t). Giả sử rôbốt làm việc tong
khoảng thời gian từ t = 0 (s) đến t = T(s). Chia khoảng thời gian [0, T] làm N
khoảng bằng nhau, với thời gian của mỗi khoảng là:
T
t 
N
Ta có
30
tk 1  tk  t với k = 0, 1, ..., N-1
Áp dụng khai triển Taylor hàm vecto q(t) ở lân cận giá trị tk và lấy xấp xỉ ta được:
1
q(tk  t )  q(tk )  q (tk )t  q(tk )(t )2 (2.65)
2
Từ đó, ta có sơ đồ tính toán như sau:
Bước 1: Cho biết q0, ta tính Jq(q0), J q1 (q0 ) và J q (q0 ) . Tính q (t  0)  q 0 theo

(t  0)  q
công thức (2.58) và tính q 0 theo công thức (2.64).
Bước 2: Cho k chạy từ 0 tới N - 1, ta lần lượt tính được q(tk+1) theo công thức
(2.65) và q (tk 1 ) , q
(tk 1 ) theo công thức (2.62) và (2.64)
Việc tính toán theo công thức (2.65) để tìm q(tk+1) cho kết quả thô, sai số lớn, vì
vậy dưới đây ta sẽ trình bày thuật toán hiệu chỉnh vecto gia lượng để đạt được độ
chính xác tùy ý. Để thuận tiện, ta sử dụng các kí hiệu sau:
q k  q(tk ) , q k  q (tk ) , q
k  q
(tk )
xk  x(tk ) , x k  x (tk ) , x k  x (tk )
Bước 1: Hiệu chỉnh gia lượng vecto tọa độ suy rộng tại thời điểm t0 = 0
Đầu tiên, ta có thể xác định vecto gần đúng của q0 bằng phương pháp vẽ hình
(hoặc thực nghiệm). Sau đó áp dụng khai triển Taylor để tìm gần đúng tốt hơn của
q0. Ban đầu ta có:
q0  q 0  q0 (2.66)
Khai triển Taylor phương trình (2.59) ta có:
f
f (q 0 , x0 )  f (q 0  q 0 , x0 )  f (q 0 , x0 )  (q 0 , x 0 ) q 0  ...  0 (2.67)
q
Suy ra công thức gần đúng:
f (q 0 , x 0 )  J q (q 0 )q 0  0 (2.68)

Giải phương trình đại số tuyến tính (2.68) với ẩn q0 ta được:

q0  J q1 (q 0 )f (q 0 , x0 ) (2.69)

Sau đó ta tìm được xấp xỉ gần đúng mới, tốt hơn của q0 bởi:
q 0  q 0  q0 (2.70)

31
Nếu q0   với  là tham số dương bé cho trước, q 0 là một chuẩn của q0
(có thể chọn chuẩn bình phương) thì ta lại thế vào phương trình (2.11) và lặp lại
quá trình tính toán tới khi q0   . Như vậy, ta đã tìm được xấp xỉ của q0 với

sai số  bé tùy ý do ta chọn. Từ đó, sử dụng công thức (2.62) và (2.64) để tìm q 0
0 .
và q
Bước 2: Hiệu chỉnh gia lượng vecto tọa độ suy rộng tại thời điểm tk+1
Giả sử ta đã biết qk, ta cần tìm qk+1. Trước tiên, ta xác định giá trị gần đúng của
qk+1 bởi:
q k 1  qk  J q1 (q k )x k t (2.71)

Sau đó ta xác định chính xác hơn xấp xỉ của qk+1 theo công thức:
q k 1  q k  q k 1 (2.72)
Để xác định qk 1 ta sử dụng khai triển Taylor:
f
f (q k 1 , x k 1 )  f (q k 1  q k 1 , x k 1 )  f (q k 1 , x k 1 )  (q k 1 , x k 1 ) q k 1 (2.73)
q
Suy ra :
q k 1   J 1 (q k 1 )f (q k 1 , x k 1 ) (2.74)

Kết hợp (2.65) và (2.68) cho ta giá trị xấp xỉ tốt hơn của qk+1. Nếu q k 1   thì

ta tiếp tục lặp lại quá trình từ (2.65) tới (2.68) cho tới khi q k 1   , việc tính

q (tk 1 ) , q
(tk 1 ) theo công thức (2.62) và (2.64).

2.3. Một số kết quả mô phỏng


Các thuật toán được triển khai trên môi trường MATLAB/Simulink từ việc
thiết lập phương trình động học cho tới giải bài toán động học ngược bằng phương
pháp số cũng như phương pháp giải tích. Ở phần này, các tác giả cũng thiết kế mô
hình 3D của robot trên môi trường SoildWorks, sau đó nhúng mô hình này vào
môi trường MATLAB/Simulink thông qua thư viện Simmechanics. Cách thức
này cho phép ta mô phỏng 3D hoạt động của rôbốt. Để tính toán số ta cho giá trị
các tham số như sau:

32
a2  a3  0.4  m  ; d1  0.3; d 2  d 3  d 4  d5  0.2; d 6  0.15  m  ;

2.3.1. Mô phỏng bài toán động học thuận


Trong thực tế, chuyển động của rôbốt trong lúc làm việc thường chia làm 2
giai đoạn chính, giai đoạn 1, rôbốt nhanh chóng đạt tới vị trí mong muốn bằng
chuyển động quay của 3 khớp đầu, giai đoạn 2, rôbốt thay đổi hướng của khâu
thao tác bằng chuyển động quay của 3 khớp cuối. Sau khi thực hiện xong công
việc, bôbốt sẽ quay lại vị trí ban đầu. Từ đó, ta giả sử quy luật chuyển động của
các khớp được cho bởi phương trình:

q1  30  24t q1  150; q2  105; q3  100


q  75  6t 
 2 q4  75  6  t  5 
  t  5 ;   5  t  10  ;
q
 3  80  4 t q
 5  45  18  t  5 
q4  75; q5  45; q6  30 
q6  30  24  t  5 
q1  150  24  t  10   q1  30; q2  75; q3  80
 
q2  75  6  t  10   q4  105  6  t  15 
 10  t  15 ;  15  t  20  ;
q
 3  80  4  t  10   q5  135  18  t  15 
q  105; q  135; q  150  q  150  24  t  15 
 4 5 6  6
Với các tọa độ khớp được cho như trên, sau khi mô phỏng ta được một số kết quả
cho trong các hình từ 2.3 đến 2.7

Hình 2.3: Đồ thị mô tả góc quay các khớp

33

Hình 2.4: Sự thay đổi về hướng của véctơ n


Hình 2.5: Sự thay đổi về hướng của véctơ s


Hình 2.6: Sự thay đổi về hướng của véctơ a
34
Hình 2.7: Quỹ đạo điểm định vị khâu thao tác

2.3.2. Mô phỏng bài toán động học ngược


+ Hoạt động của Robot được khảo sát qua 2 trường hợp cơ bản:
TH1: Khâu thao tác chuyển động theo đường thẳng trong T=10(s):
p x  0.55; p y  0.2; pz  0.9  0.04t ; nx  0; s y  0; a z  0

0 0 1 0.55
1 0 0 0.2 
T 
0 1 0 0.9  0.04t 
 
0 0 0 1 
TH2: Khâu thao tác chuyển động theo đường tròn trong T=10(s):
   
p x  0.55; py  0.1  R sin  t   ; pz  0.9  R cos  t   ;
 2  2
nx  0; s y  0; az  0; R  0.1  m ;   2 / 5  s 1 

0 0 1 0.55 
 
1  2 t   
0 0 0.1  0.1sin   
  5 2 
T 
0  2 t   
1 0 0.9  0.1cos   
  5 2
 
0 0 0 1 

35
Với các số liệu được cho như trên sau khi tính toán ta được các kết quả cho trong
các hình từ 2.8 đến 2.11

Hình 2.8: Đồ thị mô tả các biến khớp khi tính bằng phương pháp số
cho trường hợp 1

Hình 2.9: Đồ thị mô tả các biến khớp khi tính bằng phương pháp
giải tích cho trường hợp 1

Hình 2.10: Đồ thị mô tả các biến khớp khi tính bằng phương pháp số
cho trường hợp 2
36
Hình 2.11: Đồ thị mô tả các biến khớp khi tính bằng phương pháp
Giải tích cho trường hợp 2
Nhận xét: Kết quả bài toán động học ngược tính bằng 2 phương pháp số và
phương pháp giải tích đều giống nhau, như vậy ta có một kết quả tin cậy. Ở phần
tiếp theo, kết quả của bài toán động học ngược sẽ là đầu vào cho bài toán mô
phỏng hoạt động của rôbốt.

37
CHƯƠNG 3
MÔ PHỎNG HOẠT ĐỘNG CỦA ROBOT UR

3.1. Giới thiệu chung về kỹ thuật mô phỏng


Mô phỏng là một kỹ thuật hiện đại, được áp dụng trong nhiều lĩnh vực nghiên
cứu và sản xuất. Ngày nay, trước khi bắt tay vào chế tạo một sản phẩm, các nhà
sản xuất luôn phải bắt đầu thiết kế, mô phỏng, tính toán sản phẩm đó trên máy vi
tính nhằm có cái nhìn bao quát các vấn đề có thể xảy ra sau này. Trong lĩnh vực
chế tạo robot thì bài toán mô phỏng hoạt động là một vấn đề rất quan trọng. Khi
nghiên cứu về điều khiển robot có thể thực hiện điều khiển trực tiếp robot hoặc
điều khiển mô phỏng. Điều khiển mô phỏng là dùng các mô hình tính toán động
học và động lực học của robot kết hợp với các phương pháp đồ họa trên máy vi
tính để mô tả kết cấu và hoạt động của cánh tay robot.
Nghiên cứu về mô phỏng hoạt động của robot trên máy tính giúp cho các
nhà thiết kế nhanh chóng chọn được phương án hình- động học của robot, có thể
kiểm tra khả năng hoạt động của robot trên màn hình, kiểm tra sự phối hợp của
robot với các thiết bị khác trong dây chuyền. Điều này rất có ý nghĩa trong quá
trình thiết kế, chế tạo robot mới hoặc bố trí dây chuyền sản xuất.
Qua mô phỏng thiết kế có thể đánh giá tương đối đầy đủ khả năng làm việc
của phương án thiết kế mà không cần chế thử. Nó cũng được xem là phương tiện
đối thoại, hiệu chỉnh thiết kế theo yêu cầu đa dạng của người sử dụng. Phương
pháp lập trình mô phỏng cũng giúp người thiết kế chọn được quỹ đạo công nghệ
hợp lý của robot trong quá trình làm việc với đối tượng cụ thể hay phối hợp với
các thiết bị khác trong một công đoạn sản xuất được tự động hóa.
Hiện nay có nhiều phần mềm công nghiệp và các phần mềm nghiên cứu
khác nhau để mô phỏng robot, phạm vi ứng dụng và giá thành của chúng cũng
khác nhau. Nhìn chung, một phần mềm mô phỏng cần đáp ứng được các yêu cầu
cơ bản sau: Thiết kế được các bộ phận cấu thành nên rôbốt (các khâu, khớp, dụng
cụ thao tác..). Sau đó cho phép thiết lập ràng buộc giữa các khâu và lắp ráp thành
một rôbốt có cấu trúc động học theo yêu cầu thực tế. Cho phép mô phỏng hoạt

38
động của robot thông qua việc cho trước dữ liệu chuyển động của các khớp hoặc
của khâu thao tác ...
Trong phạm vi chương này, sẽ mô phỏng hoạt động rôbốt bằng sự kết hợp
giữa phần mềm thiết kế và phần mềm lập trình, tính toán. Cụ thể, mô hình 3D của
rôbốt được thiết kế trên phần mềm SolidWorks, sau đó mô hình này được đưa vào
tính toán, mô phỏng trong môi trường MATLAB/Simulink thông qua thư viện
Simmechanics.

3.2. Giới thiệu thư viện Simmechanics


Simmechanics là một khối thư viện trong Simulink của MATLAB, được sử
dụng để mô hình hóa và mô phỏng các hệ cơ học, kết hợp với các tiện ích khác
của Simulink thì đây là một công cụ mạnh, đặc biệt là trong các bài toán động lực
học. Đối với các phiên bản gần đây, Simmechanics còn cho phép kết hợp với các
phần mềm thiết kế 3D chuyên nghiệp như: Inventor, SolidWorks, ProEngi-
neer,…Sau khi thiết kế mô hình 3D trên phần mềm CAD, các đặc tính về hình
học (kết cấu cơ học, hình dáng, màu sắc, kích thước…) cùng với các đặc tính về
động lực học (khối lượng, trọng tâm, các tenxo quán tính khối) của chi tiết sẽ được
chuyển vào môi trường MATLAB/Simulink qua thư viện Simmechanics. Từ đó,
dựa trên mô hình “nhúng” này, cho phép ta thực hiện các bài toán mô phỏng phức
tạp với công cụ tính toán số mạnh mẽ của MATLAB.

Hình 3.1: Thư viện Simulink của MATLAB


39
Trong thư viện Simmechanics cơ bản, cung cấp 7 khối chính: Bodies, Constraints
& Drivers, Force Elements, Interface Elements, Joints, Sensor & Actuators và
Utilities. Dưới đây, ta sẽ lần lượt xem xét chức năn của từng khối.
+ Khối Bodies: Cung cấp cho chúng ta 4 mô hình gồm Body, Ground, Machine
Environment và Shared Environment. Chức năng chính của khối này là cung cấp
các mô tả các vật rắn về các đặc tính như khối lượng, tenxo quán tính khối, các
hệ tọa độ gắn vào vật rắn, các mô tả về hướng cũng như các mô tả hình dáng. Chú
ý rằng các thông số này có thể nhập từ người dùng hoặc nhập từ chính mô hình
vật rắn được thiết kế trên phần mềm CAD.

Hình 3.2: Khối Bodies trong thư viện Simulink

Hình 3.3: Khối Constraints & Drivers trong thư viện Simulink
+ Khối Constraints & Drivers: Cung cấp cho ta 7 mô hình: Angle Driver, Distance
Driver, Gear Constraint, Linear Driver, Parallel Constraint, Point-Cruve
40
Constraint và Velocity Driver. Chức năng của khối này mô tả ràng buộc giữa khâu
chuyển động và khâu cố định theo một quy tắc cho trước như về khoảng cách, sự
song song, quan hệ về vận tốc…
+ Khối Force Elements và Interface Elements: Hai khối này cung cấp cho chúng
ta 4 mô hình, mô tả mối quan hệ giữa 2 khâu kề nhau trong một cơ hệ, mối quan
hệ này có thể là mô hình lò xo-giảm chấn, ..

Hình 3.4: Khối Force Elements và Interface Elements


trong thư viện Simulink
+ Khối Joints: Cung cấp cho ta các mô hình về ràng buộc giữa 2 vật rắn bất kỳ,
có thể là trượt , quay tương đối với nhau, cũng có thể là gắn cứng với nhau, hoặc
liên kết với nhau qua khớp cầu, …

Hình 3.5: Khối Joints trong thư viện Simulink


+ Khối Sensors & Actuators: Cung cấp cho ta các “cảm biến” để đo góc, vị trí của
khớp, hoặc vị trí và hướng của các hệ tọa độ gắn trên vật rắn, đồng thời cũng cung
cấp các “động cơ” để thực hiện hoạt động cho các khớp, để các khớp hoạt động
thì cần có mô tả về đặc tính chuyển động của khớp như vị trí, vận tốc, gia tốc hoặc
là mô tả về lực đặt vào khớp đó.

41
Hình 3.6: Khối Sensors & Actuators trong thư viện Simulink
Như vậy, từ các khối được cung cấp trong thư viện Simmechanics cho phép
ta thực hiện việc mô hình hóa và mô phỏng chuyển động của các hệ cơ học. Ở
mục tiếp theo, ta sẽ sử dụng thư viện này, kết hợp với các kết quả tính toán động
học thuận, động học ngược ở chương 2 để mô phỏng hoạt động của robot.

3.3 Mô phỏng hoạt động của Robot cấp phôi


Để mô phỏng hoạt động của rôbốt, đầu tiên ta cần thiết kế quỹ đạo chuyển
động của khâu thao tác, dựa vào bài toán động học ngược ta sẽ tìm được chuyển
động của các khớp tương ứng. Lấy kết quả này làm đầu vào cho chuyển động của
mô hình robot trong môi trường Simmechanics.

3.3.1 Thiết kế quỹ đạo chuyển động


Với rôbốt gắp phôi, quỹ đạo thông thường sẽ gắp vật ở vị trí P1, sau đó
chuyển phôi sang vị trí P2 và quay lại vị trí P1 rồi tiếp tục lặp lại quá trình như
vậy. Ở đây, ta giả sử quỹ đạo của điểm tác động cuối của khâu thao tác đi qua các

42
điểm A, B, C, D, E như đồ thị hình 3.7. Robot lần lượt chuyển động theo các quỹ
đạo thẳng AB, BC, quỹ đạo cong CD và cuối cùng là quỹ đạo thẳng DE. Tọa độ
các điểm là A(0.55, -0.2, 0.6); B(0.55, -0.2, 0.8); C(0.45, -0.2, 0.8); D(0.2, 0.45,
0.8); E(0.2, 0.45, 0.6). Sử dụng kết quả của bài toán động học ngược ở chương 2,
từ quỹ đạo chuyển động ở trên, ta tìm được chuyển động của các khớp như đồ thị
ở dưới.

Hình 3.7: Quỹ đạo khâu thao tác

Hình 3.8: Đồ thị mô tả các tọa độ khớp

3.3.2 Mô hình robot trên phần mềm SolidWorks


Trong bài toán này, ta chỉ tập trung vào vấn đề mô phỏng hoạt động, vì vậy
việc thiết kế chỉ tập trung vào việc mô tả cấu trúc động học của robot (có 6 bậc tự
do, các trục khớp 2,3,4 song song với nhau).
43
Hình 3.9: Thiết kế mô hình rrôbốt trong Solidworks

3.3.3 Mô phỏng hoạt động trên MATLAB/Simulink


3.3.3.1. Mô hình hóa robot bằng Simmechanics

Hình 3.10: Các khối mô tả các khâu của rôbốt


Như đã nói ở phần trước, thư viện Simmechanics sẽ giúp ta chuyển mô hình
robot từ SolidWorks sang môi trường MATLAB/Simulink. Các khớp quay sẽ
được mô tả bởi các khối Revolute, các khâu được mô tả bằng khối Bodies.

Hình 3.11: Nhập các tham số cho các khâu của rôbốt
44
Hình trên thể hiện các đặc tính về khối lượng, tenxo quán tính cũng như tọa độ
trọng tâm và các vị trí các gốc của các hệ tọa độ gắn lên khâu 1. Các đặc tính này
có được từ việc ta thiết kế trên môi trường CAD.
3.3.3.2. Mô phỏng hoạt động
Để mô phỏng chuyển động của robot, ta cần cung cấp quy luật chuyển động
của các khớp, ở đây chính là nghiệm của bài toán động học ngược với quỹ đạo
hoạt động đã thiết kế ở phần trước. Ở đây có 3 khối chính ta cần quan tâm, đó là
khối giải động học ngược, khối khai báo chuyển động khớp và khối mô hình robot.

Hình 3.12: Sơ đồ khối của chương trình mô phỏng chuyển động rôbốt

45
KẾT LUẬN

Để thiết kế chế tạo các rôbốt phục vụ cho việc đẩy mạnh công nghiệp hóa và
hiện đại hóa nền công nghiệp thì việc nghiên cứu động học, động lực học và điều
khiển các rôbốt là một công việc cần thiết và hết sức quan trọng. Trong đề tài này,
các tác giả đã tập trung nghiên cứu các bài toán động học thuận và động học ngược
và mô phỏng chuyển động của robot UR 6 bậc tự do. Đây là một trong những bài
toán cơ bản nhất của việc phân tích và tổng hợp các robot. Một số kết quả đạt
được trong đề tài này đó là:
1. Phân tích động học thuận robot UR. Việc giải quyết bài toán này nhằm mục
đích xác định vị trí, vận tốc và gia tốc các khâu của robot, đồng thời từ phân tích
này cũng giúp ta xây dựng được phương trình động học của robot, đây là cơ sở để
giải bài toán phân tích động học ngược sau này.
2. Phân tích động học ngược robot UR. Đối với bài toán này, các tác giả đã đưa
ra được nghiệm giải tích của các biến khớp, việc tìm ra được nghiệm giải tích sẽ
giúp cho việc giải quyết bài toán điều khiển sau này trở nên đơn giản hơn rất
nhiều.
3. Dựa trên các bài toán động học thuận và động học ngược, các tác giả đã xây
dựng được chương trình tính toán động học ngược và mô phỏng chuyển động của
robot UR.

46
TÀI LIỆU THAM KHẢO

[1] Nguyễn Văn Khang (2009), Động lực học hệ nhiều vật, NXB Khoa học kỹ
thuật.
[2] Nguyễn Văn Khang, Chu Anh Mỳ (2011), Cơ sở rôbốt công nghiệp, NXB
giáo dục Việt Nam
[3] Nguyễn Thiện Phúc (2006), Rôbốt công nghiệp, NXB Khoa học kỹ thuật
[4] Lung Twen Sai (1999), Robot Analysis, The Mechanics of Serial and
Parallel Manipulators, John Willey & Sons, INC. Pulisher.
[5] Đào Văn Hiệp (2006), Kỹ thuật rôbốt, NXB Khoa học kỹ thuật.
[6] Nguyễn Mạnh Tiến (2007), Điều khiển rôbốt công nghiệp, NXB Khoa học
kỹ thuật.
[7] Đinh Văn Phong, Đỗ Sanh, Nguyễn Trọng Thuần, Đỗ Đăng Khoa (2002),“
Tính toán động học và mô phỏng 3D rô bốt Gryphon”, Đại học Bách Khoa
Hà Nội.

47

You might also like