Đ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ả về kết cấu và hoạt động của cánh tay rob
Trang 1Trang 1
MỤC LỤC
Phần 1 Tổng quan về bài tập lớn 2
I Đề bài 2
II Danh sách thành viên 2
III Danh sách các file đính kèm 2
Phần 2 Giới thiệu về phần mềm Easy-Rob 3
I Kỹ thuật mô phỏng robot 3
II Giới thiệu phần mềm Easy-Rob 3
III Giao diện của phần mềm Easy-Rob 6
1 Các menu chính: 6
2 Các thanh công cụ: 7
IV Lưu đồ giải thuật của 1 bài toán mô phỏng sử dụng Easy-Rob 8
V ERPL – Ngôn ngữ lập trình của Easy-ROB 9
Phần 3 Tổng quan về robot khớp nối 11
Phần 4 Mô phỏng robot khớp nối sử dụng phần mềm Easy-ROB 14
I Xây dựng hệ trục tọa độ 14
II Thiết kế hình dáng Robot 15
III Thiết kế cơ cấu chấp hành gắn vào tay robot 17
IV Thiết kế đối tượng làm việc cho robot 19
V Lập trình cho robot 20
Phần 5 Chạy thử mô phỏng 23
KẾT LUẬN 24
Trang 2II Danh sách thành viên
Nhóm bài tập lớn số 40 bao gồm 3 thành viên:
Sinh viên MSSV Nhiệm vụ chính
Lê Hải Đăng 20090710 Thiết kế cơ cấu chấp hành cho robot, viết
chương trình điều khiển robot
Đặng Nam Thành 20093609 Trình bày tổng quan về mẫu robot, thiết kế đối
tượng làm việc cho robot
Chu Đức Anh 20090055 Thiết kế mô hình 3D cho robot
III Danh sách các file đính kèm
haleda.cel File tổng hợp, mô tả kết cấu robot + công cụ chấp hành,
đối tượng làm việc, chương trình robot + các file hỗ trợ khác File cel này bao gồm toàn bộ các file phía dưới
haleda.rob File mô tả kết cấu 3D, thông tin cấu trúc của robot
haleda.bod File mô tả đối tượng làm việc của robot Ở đây là hệ 3 cọc
+ 3 đĩa mô tả bài toán “tháp Hà Nội”
haleda_home_1.vie
haleda_home_2.vie
haleda_home_3.vie
Các file lưu trữ góc nhìn, phục vụ cho việc mô phỏng
haleda_hanoix3.prg File chứa code điều khiển robot khớp nối thực hiện giải bài
toán “tháp Hà Nội” với 3 đĩa
Elbow_robot.mpg Video demo
Trang 3Trang 3
Phần 2 Giới thiệu về phần mềm Easy-Rob
I Kỹ thuật mô phỏng robot
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
Khi nghiên cứu về điều khiển robot, ta 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ả về 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 lựa 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 người 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 một đối tượng cụ thể hay phối hợp 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 này 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
Ở đây chúng ta nghiên cứu phương pháp mô phỏng robot dùng phần mềm Rob
Easy-II Giới thiệu phần mềm Easy-Rob
Easy-Rob là công cụ mô phỏng robot sử dụng đồ họa trong không gian ba chiều (3D) và các hình ảnh có thể hoạt động được Một hệ thống 3D-CAD sử dụng đơn giản cho phép tạo ra các khối hình học cơ bản như khối trụ, khối cầu, khối chữ nhật, khối tam giác… để vẽ kết cấu robot Trong Easy-Rob có thể dùng chuột để quay hoặc tịnh tiến robot đến một tọa độ tùy ý Easy-Rob cũng có các chức năng phóng to, thu nhỏ đối tượng vẽ như nhiều phần mềm khác… Chương trình cho phép thiết kế các robot đến 12 bậc tự do Chuyển động của robot có thể được điều khiển theo các biến khớp hoặc các tọa độ Đề Các Có thể mô tả động học của robot theo kiểu DH hoặc trong hệ tọa độ toàn cục (Universal Coordinates) Easy-Rob đã có sẵn các trình điều
Trang 4Trang 4
khiển động học thuận và ngược của các cấu hình robot thông dụng, khi thiết kế ta chỉ cần khai báo kiểu động học thích hợp Trong trường hợp robot có kết cấu đặc biệt hoặc có các khâu bị động gắn với các chuyển động của các khớp thì cần phải giải bài toán động học ngược hoặc xác định hàm toán học mô tả sự phụ thuộc đó bằng ngôn ngữ C và sau đó dùng tập tin Make.exe trong C để dịch thành tập tin thư viện liên kết động er_kin.dll (Easy-Rob kinematic Dynamic link library), khi chạy chương trình, Easy-Rob sẽ liên kết với tập tin này và thực hiện kiểu động học đã được khai báo trong chương trình điều khiển
Easy-Rob có một số các lệnh điều khiển riêng, chương trình được viết theo kiểu
xử lý tuần tự, tập tin dạng text, có thể soạn thảo chương trình trong bất kỳ trình soạn thảo nào Các công cụ gắn trên khâu chấp hành cuối có thể thay đổi được Chúng ta
có thể viết một chương trình chuyển động cho một robot theo một quỹ đạo mong muốn, có thể kiểm tra khả năng vươn tới của cánh tay, xác định vùng làm việc của robot… Robot mô phỏng có thể cầm nắm hoặc thả các đối tượng làm việc Các chuyển động của robot có thể ghi vào một tập tin và có thể thực hiện lại
Phần mềm cho phép ta xem được các hệ tọa độ gắn trên các khâu của robot, xem được quỹ đạo chuyển động của điểm cuối công cụ gắn trên khâu chấp hành cuối Phần mềm còn có nhiều tiện ích khác như: cho phép ta lập trình điều khiển robot bằng phương pháp dạy học, thiết kế các đối tượng làm việc của robot, có các cửa sổ về tọa độ và giá trị góc quay của các khớp tại từng thời điểm khi robot hoạt động
Việc sử dụng phần mềm Easy-Rob để mô phỏng robot giúp chúng ta hai khả năng nghiên cứu:
- Mô phỏng lại một robot đã có và các đối tượng làm việc của nó Đánh giá khả năng làm việc và mức độ linh hoạt của robot, xác định các thông số điều khiển, quỹ đạo chuyển động để dùng trong điều khiển thực
- Nghiên cứu thiết kế động học, các kích thước và kết cấu của robot trên máy tính để có thể chọn được phương án động học tốt nhất đảm bảo cho robot hoàn thành các nhiệm vụ yêu cầu
Trang 5 xem được quỹ đạo chuyển động của điểm cuối tay robot, xem được các hệ tọa
độ gắn trên từng khâu của robot
có thể thực hiện mô phỏng chuyển động của robot bằng thao tác chuột, bằng các câu lệnh thay đổi vị trí robot, thay đổi các giá trị biến khớp
có thể mô phỏng hoạt động gắp/thả vật của robot tương tự như trong thực tế
và những khuyết điểm so với các phương pháp mô phỏng khác:
chỉ giải được bài toán động học vị trí, quỹ đạo chuyển động, không mô tả được robot về mặt động lực học
chưa cho phép xây dựng được các bộ điều khiển cụ thể, chưa thể tự thiết kế quỹ đạo chuyển động cho robot, điều khiển chuyển động chỉ được coi là lý tưởng …
Trang 6Trang 6
III Giao diện của phần mềm Easy-Rob
Giao diện chính của phần mềm có dạng cơ bản như sau:
1 Các menu chính:
File: quản lý các tác vụ trên đối tượng là các file: mở, lưu, xóa, sửa
Robotics: dùng để nhập các thông số động học, động lực học, xác định vị trí của dụng cụ, xác định vị trí robot và các thông số khác Với robotics menu có thể dễ dàng tạo một chương trình điều khiển robot hoặc tạo một robot mới
Simulate: cho phép điều khiển bằng tay việc di chuyển Robot đến các vị trí khác nhau (Home, Joint, Cartesian position), chạy chương trình robot, ghi lại và reset tất cả các vị trí của robot, cũng có thể làm tăng hoặc giảm tốc độ mô phỏng robot…
3D-CAD: Menu 3D CAD cung cấp các công cụ để vẽ kết cấu robot trong không gian ba chiều, cũng như để thiết kế các công cụ, các đối tượng làm việc Để vẽ được kết cấu của robot, dựa vào các khối hình học đơn giản có thể lắp ghép chúng lại để tạo nên các hình dáng khác nhau của robot Cũng có thể nhóm nhiều đối tượng vẽ riêng lẻ thành một đối tượng có thể sử dụng nhiều lần và
có thể thay đổi kích thước của chúng Các đối tượng có thể được vẽ ngay tại menu này, hoặc import từ các phần mềm CAD khác nhau như AutoCad, ProEngineer , lưu vào file định dạng đuôi *.STL, liên kết trực tiếp với Easy-Rob
Trang 7Trang 7
2 Các thanh công cụ:
Phục vụ việc render hình ảnh các khối trong mô phỏng, bật tắt hiển thị sàn, reset
vị trí robot về điểm khởi động …
Quản lý việc chạy chương trình mô phỏng: run, stop, pause … tăng, giảm bước di chuyển, đánh giá sai số và xem các giá trị động học
Thực hiện các thoa tác bằng chuột: bật/tắt việc thay đổi góc nhìn bằng chuột, điều chỉnh hướng/vị trí cơ cấu chấp hành, điều chỉnh các khớp, di chuyển thân robot ……
Bật/Tắt các thành phần của hệ: robot, công cụ, đối tượng Bật/Tắt hiển thị các trục tọa độ, cửa sổ chương trình …
Bật/Tắt việc hiển thị các trục tọa độ 3 chiều, xác định
vị trí của đối tượng hiện tại …
Di chuyển robot đến một số vị trí đặc biệt:
Trang 8Chạy mô phỏng
Trang 9C là”
Rot (A,B,C) = Rot (X,A) Rot(Y,B) Rot(Z,C)
Một số lệnh hay dùng trong chương trình:
PROGRAMFILE: Bắt đầu chương trình
! : Các ghi chú trong chương trình
TOOL X Y Z A B C [m, deg] : định tọa độ điểm cuối của dụng cụ so với khâu chấp hành cuối
PTP X Y Z A B C [m, deg] : di chuyển robot đến điểm mới (tọa độ tuyệt đối) theo kiểu điều khiển điểm
PTP_REL dX dY dZ dA dB dC [m, deg] : di chuyển robot đến điểm mới (tọa độ tương đối) theo kiểu điều khiển điểm
LIN X Y Z A B C [m, deg] : di chuyển robot đến điểm mới (tọa độ tuyệt đối) theo kiểu điều khiển đường thẳng
LIN_REL dX dY dZ dA dB dC [m, deg] : di chuyển robot đến điểm mới (tọa độ tương đối) theo kiểu điều khiển đường thẳng
CIRC X Y Z A B C [X2 Y2 Z2] [m, deg] : di chuyển robot đến điểm mới (tọa độ tuyệt đối) theo kiểu điều khiển đường cong, qua điểm trung gian
[X2 Y2 Z2] : Điểm trung gian
CIRC _REL dX dY dZ dA dB dC [dX2 dY2 dZ2] [m, deg] : di chuyển robot đến điểm mới (tọa độ tương đối) theo kiểu điều khiển đường cong
Trang 10Trang 10
WAIT x [sec] : Robot dừng hoạt động trong x giây
ERC TRACK ON,OFF: thể hiện hoặc không thể hiện quỹ đạo chuyển động ERC LOAD TOOL filename: gọi một tool file (*.tol)
ERC LOAD VIEW filename: gọi một view file (* vie)
ERC LOAD ROBOT filename: gọi một robot file (* rob)
ERC LOAD BODY filename: gọi một body file (* bod)
ERC LOAD TAGS filename: gọi một tag file (* tag)
ERC GRAB BODY bodyname : dụng cụ cầm lấy một vật thể có tên bodyname
ERC GRAB BODY_GRP: dụng cụ cầm lấy một nhóm vật thể có tên bodyname
ERC RELEASE BODY bodyname : dụng cụ thả một vật thể có tên bodyname
ERC RELEASE BODY_GRP: dụng cụ thả một nhóm vật thể có tên bodyname
ERC ROBOT_BASE XYZ ABC [m,deg] : di chuyển gốc tọa độ cơ bản của robot đến vị trí mới
Trang 11Trang 11
Phần 3 Tổng quan về robot khớp nối
Robot khớp nối (Elbow robot) có dạng điển hình như sau Robot
Trang 14Trang 14
Phần 4 Mô phỏng robot khớp nối sử dụng phần mềm
Easy-ROB
I Xây dựng hệ trục tọa độ
Trước hết cần tạo 1 file để lưu trữ các thông tin về cấu hình robot Ta thực hiện
việc này thông qua menu File>Load>Robot File Đặt tên cho robot (ở đây là haleda.rob) và lưu lại file này bằng menu File>Save>Robot File
Để thiết kế hệ trục tọa độ cho robot, ta sử dụng menu Robotics > Robot
Motion+ Kinematics > Kinemanic Data
Tiếp theo, thực hiện nhập các thông số cần thiết cho khớp 1 Do khớp 1 là khớp chủ động, quay quanh trục Z nên ta chọn như hình và nhập các thông số của khớp 1:
Tiếp tục cho các khớp còn lại từ 2-6, cuối cùng ta thu được bảng D-H hoàn
chỉnh bằng cách vào menu Robotics > Robot Motion+ Kinematics > Kinemanic Data
> 5 Kinematic Information
Trang 15Trang 15
kết thúc bước này ta sẽ thu được hệ 6 trục tọa độ của robot, mỗi hệ ứng với một khớp chuyển động
II Thiết kế hình dáng Robot
Ta thực hiện vào menu 3D-CAD > select Group > 1 Robot Group để thiết kế hình
dáng robot trước
Thực hiện tiếp 3D-CAD > Creat/Import new 3D body Ở đây thanh nối 1 ta coi là
1 trụ tròn, nên chọn tiếp Cylinder
Chọn vị trí tuyệt đối của khâu
Trang 16Trang 16
Nhập thông số của khâu, và gắn bộ phận vào khớp 1
làm tương tự như vậy cho các khớp còn lại, cơ bản ta đã thực hiện xong việc dựng hình 3D cho robot
Trang 17Trang 17
III Thiết kế cơ cấu chấp hành gắn vào tay robot
Tương tự như thiết kế thân robot, nhưng ta cần chọn Group làm việc là Tool Group
Ở đây ta thiết kế 5 công cụ, tương ứng với 5 file tol để phục vụ mô phỏng:
haleda_o.tol
mô tả trạng thái bàn kẹp đang mở hoàn toàn, không gắp vật nào
haleda_b.tol
mô tả trạng thái bàn kẹp đang gắp đĩa to nhất
Trang 19Trang 19
IV Thiết kế đối tượng làm việc cho robot
Tương tự như thiết kế thân robot, nhưng ta cần chọn Group làm việc là Body Group
Ở đây ta xây dựng một mô hình gồm 3 đế, trên mỗi đế gắn 1 cọc thẳng đứng,
và 3 đĩa ở cọc 1, mô phỏng bài toán tháp Hà Nội lever 3 Mục tiêu của bài toán là làm sao di chuyển toàn bộ 3 tầng của tháp từ cọc 1 sang cọc 3 với 2 luật sau: chỉ được di chuyển từng tầng một từ cọc nọ sang cọc kia, và đĩa to hơn không bao giờ được đặt phía trên đĩa bé Ta có mô hình như sau
Trang 20Trang 20
V Lập trình cho robot
Việc lập trình cho sử dụng ngôn ngữ ERPL được thực hiện bằng cách dạy cho robot cần phải thực hiện những chuyển động nào, những thao tác gì Sau đó chương trình sẽ tự sinh ra code lệnh để lần sau, robot có thể dựa vào đó mà thực hiện chính xác các hành động đã từng được lập trình sẵn
Dưới đây là toàn bộ nội dung file chương trình robot khớp nối thực hiện việc giải bài toán tháp Hà Nội lever 3, gồm các công đoạn như sau, tương ứng với từng đoạn code:
bắt đầu
đưa robot đến vị trí cọc 1, gắp đĩa nhỏ
đưa robot đến vị trí cọc 3, thả đĩa nhỏ
đưa robot đến vị trí cọc 1, gắp đĩa trung bình
đưa robot đến vị trí cọc 2, thả đĩa trung bình
đưa robot đến vị trí cọc 3, gắp đĩa nhỏ
đưa robot đến vị trí cọc 2, thả đĩa nhỏ lên trên đĩa trung bình
đưa robot đến vị trí cọc 1, gắp đĩa lớn
đưa robot đến vị trí cọc 3, thả đĩa lớn
đưa robot đến vị trí cọc 2, gắp đĩa nhỏ
đưa robot đến vị trí cọc 1, thả đĩa nhỏ
đưa robot đến vị trí cọc 2, gắp đĩa trung bình
đưa robot đến vị trí cọc 3, thả đĩa trung bình lên trên đĩa lớn
đưa robot đến vị trí cọc 1, gắp đĩa nhỏ
đưa robot đến vị trí cọc 3, thả đĩa nhỏ lên trên 2 đĩa trung bình và đĩa lớn
kết thúc
PROGRAMFILE
! prgfln D:\setup\EASY_ROB\proj\haleda_hanoix3.prg
ERC LOAD VIEW haleda_home_1
ERC LOAD TOOL haleda_o
PTP_AX 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 ERC LOAD VIEW haleda_home_2
PTP_AX 46.0000 6.5000 -45.0000 -33.0000 90.0000 90.0000 ERC LOAD TOOL haleda_s
ERC GRAB BODY dianho
PTP_AX 46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX -46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX -46.0000 2.5000 -39.0000 -33.0000 90.0000 90.0000 ERC RELEASE BODY dianho
ERC LOAD TOOL haleda_o
PTP_AX -46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000
Trang 21Trang 21
PTP_AX 46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 46.0000 5.5000 -43.5000 -33.0000 90.0000 90.0000 ERC LOAD TOOL haleda_m
ERC GRAB BODY diatb
PTP_AX 46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 0.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 0.0000 2.5000 -39.0000 -33.0000 90.0000 90.0000 ERC RELEASE BODY diatb
ERC LOAD TOOL haleda_o
PTP_AX 0.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000
PTP_AX -46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX -46.0000 2.5000 -39.0000 -33.0000 90.0000 90.0000 ERC LOAD TOOL haleda_s
ERC GRAB BODY dianho
PTP_AX -46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 0.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 0.0000 3.5000 -39.0000 -33.0000 90.0000 90.0000 ERC RELEASE BODY dianho
ERC LOAD TOOL haleda_o
PTP_AX 0.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000
PTP_AX 46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 46.0000 2.5000 -39.0000 -33.0000 90.0000 90.0000 ERC LOAD TOOL haleda_b
ERC GRAB BODY diato
PTP_AX 46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX -46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX -46.0000 2.5000 -39.0000 -33.0000 90.0000 90.0000 ERC RELEASE BODY diato
ERC LOAD TOOL haleda_o
PTP_AX -46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000
PTP_AX 0.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 0.0000 3.5000 -39.0000 -33.0000 90.0000 90.0000 ERC LOAD TOOL haleda_s
ERC GRAB BODY dianho
PTP_AX 0.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 46.0000 2.5000 -39.0000 -33.0000 90.0000 90.0000 ERC RELEASE BODY dianho
ERC LOAD TOOL haleda_o
PTP_AX 46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000
PTP_AX 0.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX 0.0000 2.5000 -39.0000 -33.0000 90.0000 90.0000 ERC LOAD TOOL haleda_m
ERC GRAB BODY diatb
PTP_AX 0.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX -46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000 PTP_AX -46.0000 5.5000 -43.5000 -33.0000 90.0000 90.0000 ERC RELEASE BODY diatb
ERC LOAD TOOL haleda_o
PTP_AX -46.0000 16.9000 -61.3800 -17.0000 90.0000 90.0000