You are on page 1of 47

KHOA: KỸ THUẬT& KHOA HỌC MÁY TÍNH

ĐỒ ÁN GIỮA KÌ
MÔN: ROBOTICS VÀ ỨNG DỤNG

ĐỀ TÀI:
ROBOT GẮP CHAI NƯỚC TRONG SẢN XUẤT

GIẢNG VIÊN: CHUNG TẤN LÂM


SINH VIÊN: NGUYỄN HIẾU KHA
MSSV: 31012202530
Lớp: 22DAI

NĂM HỌC: 2023-2024

1
MỤC LỤC
MỤC LỤC..............................................................................................................................i
DANH MỤC HÌNH ẢNH...................................................................................................iv
LỜI MỞ ĐẦU......................................................................................................................vi
LỜI CẢM ƠN.....................................................................................................................vii
I. CHƯƠNG 1: TỔNG QUAN.....................................................................................8
1. Lý do chọn đề tài..................................................................................................................8
2. Lịch sử lĩnh vực sản xuất bằng robot....................................................................................2
3. Mục tiêu nghiên cứu.............................................................................................................2
4. Đối tượng và phạm vi nghiên cứu........................................................................................3
5. Phương pháp nghiên cứu......................................................................................................3
6. Động lực nghiên cứu.............................................................................................................3
II. CƠ SỞ LÝ THUYẾT................................................................................................3
1. RoboDK................................................................................................................................3
1.1. Khái quát về RoboDK.............................................................................................3
1.2. Lịch sử hình thành và phát triển..............................................................................4
1.3. Các tính năng chính của RoboDK...........................................................................4
1.4. Các ứng dụng chính của RoboDK...........................................................................4
2. Python...................................................................................................................................5
2.1. Giới thiệu về Python................................................................................................5
2.2. Ưu điểm của Python trong lập trình robot...............................................................5
III. PHÂN TÍCH CÁCH DÙNG ROBODK..................................................................6
1. Mô hình hóa bàn xoay 1 trục................................................................................................6
2. Xác định tham chiếu của bàn xoay bằng cách tạo một hệ tọa độ mới:.................................7
3. Khai báo mô hình 3D Dobot CR10......................................................................................8
4. Tạo chương trình.................................................................................................................11
4.1. Lệnh Set Reference Frame....................................................................................12
4.2. Lệnh Set Tool Frame.............................................................................................13
4.3. Lệnh Circular Move...............................................................................................13
4.4. Lệnh Set Speed......................................................................................................14
4.5. Lệnh Pause.............................................................................................................15
4.6. Lệnh Program call.................................................................................................15
4.7. Lệnh Set/Wait IO...................................................................................................16
4.8. Lệnh Set Rounding value......................................................................................17

2
4.9. Simulation event....................................................................................................19
4.10. Simulation program...............................................................................................20
4.11. Generate program..................................................................................................22
4.12. Truyền Chương Trình (Transfer program)............................................................22
4.13. Chọn Post Processor..............................................................................................23
4.14. Thiết lập tham số cho việc sinh chương trình........................................................24
IV. GIẢI THÍCH CHƯƠNG TRÌNH..........................................................................26
V. KẾT LUẬN..............................................................................................................41
TÀI LIỆU THAM KHẢO.................................................................................................42

3
DANH MỤC HÌNH ẢNH
Hình 1: Phần mềm RoboDK...............................................................................................4
Hình 2: Ngôn ngữ lập trình python....................................................................................5
Hình 3: Xây dựng và điều chỉnh cơ chế robot...................................................................7
Hình 4: KR150_R3300_K_prime........................................................................................9
Hình 5: Điều chỉnh cơ chế của KR150_R3300_K_prime...............................................10
Hình 6: Thêm lệnh cho chương trình...............................................................................11
Hình 7: Báo lỗi điểm kì dị..................................................................................................12
Hình 8: Chuyển Linear Move sang Joint Move..............................................................12
Hình 9: Đặt hệ tọa độ tham chiếu.....................................................................................13
Hình 10: Đặt hệ tọa độ công cụ.........................................................................................13
Hình 11: Lệnh Circular Move...........................................................................................14
Hình 12: Cài đặt vận tốc....................................................................................................15
Hình 13: Lệnh tạm dừng...................................................................................................15
Hình 14: Cài đặt gọi chương trình con.............................................................................16
Hình 15: Thiết lập I/O........................................................................................................17
Hình 16: Thiết lập Timeout (ms)......................................................................................17
Hình 17: Đặt giá trị làm tròn.............................................................................................18
Hình 18: Cửa sổ Program events......................................................................................18
Hình 19: Lệnh sự kiện........................................................................................................19
Hình 19: Lệnh sự kiện Detach object...............................................................................20
Hình 20: RUN chương trình mô phỏng............................................................................21
Hình 21: Chọn chạy chương trình tại lệnh chuyển động................................................21
Hình 22: Sinh chương trình cho bộ điều khiển robot cụ thể từng hãng.......................22
Hình 23: Truyền chương trình xuống robot....................................................................23
Hình 24: Chọn một Post Processor cho một robot cụ thể...............................................24
Hình 25: Các tùy chọn cho việc sinh chương trình.........................................................25
4
Hình 26: Các tùy chọn để chuyển đổi chuyển động........................................................26
Hình 27: Các tùy chọn giới hạn chương trình.................................................................27
Hình 28: Khung tham chiếu World..................................................................................28
Hình 29: Đối tượng floor...................................................................................................29
Hình 30: Đối tượng bệ đỡ..................................................................................................29
Hình 31: Đối tượng chai nước...........................................................................................30
Hình 32: Khung tham chiếu Conveyor In Base...............................................................30
Hình 33: Chai nước trên băng tải.....................................................................................31
Hình 34: Mục tiêu App_Pick.............................................................................................31
Hình 35: Mục tiêu Pick......................................................................................................31
Hình 36: Mục tiêu Retrack_Pick......................................................................................32
Hình 37: Khung tham chiếu băng tải...............................................................................32
Hình 38: Mục tiêu App_Drop...........................................................................................33
Hình 39: Mục tiêu Drop.....................................................................................................33
Hình 40: Mục tiêu Retract_Drop......................................................................................34
Hình 41: Chương trình Home...........................................................................................34
Hình 42: Chương trình Pick_Bottle.................................................................................34
Hình 43: Gripper RobotiQ 85 Closed...............................................................................35
Hình 44: Event Instruction cho Pick_Bottle....................................................................35
Hình 45: Event Instruction cho Drop_Bottle...................................................................36
Hình 46: Chương trình Get_Bottle_In.............................................................................36
Hình 47: MoveJ của App_Pick.........................................................................................37
Hình 48: MoveL của Pick..................................................................................................37
Hình 49: Program Call Instruction của Pick_Bottle.......................................................38
Hình 50: Chương trình: Replace_Object.........................................................................38
Hình 51: Event Instruction của Replace_Object.............................................................38
Hình 52: Chương trình python băng tải..........................................................................39
Hình 53: Chương trình Put_Bottle_Out..........................................................................39
Hình 54: Chương trình Put_Bottle_Out..........................................................................40
Hình 55: Chương trình PickAndDrop.............................................................................40
Hình 56: Program Call Instruction của PickAndScan...................................................41
Hình 57: Chương trình Init...............................................................................................41
Hình 58: Chương trình MainProgram.............................................................................42

5
LỜI MỞ ĐẦU
Trong thời đại công nghệ ngày nay, lĩnh vực robotics không chỉ là một lĩnh vực nghiên
cứu mà còn trở thành một trong những phần quan trọng của cuộc sống hàng ngày. Việc
ứng dụng robotics trong nhiều lĩnh vực công nghiệp và dịch vụ đang đem lại những tiện
ích và hiệu quả vượt bậc. Trong báo cáo này, em sẽ tập trung vào một ứng dụng cụ thể
của robotics, đó là việc sử dụng phần mềm RoboDK để thiết kế và điều khiển một robot
gắp thả vật.
Robot gắp thả vật là một ứng dụng quan trọng trong ngành sản xuất và đóng gói. Việc tự
động hóa quy trình sản xuất không chỉ giảm thiểu sự phụ thuộc vào lao động nhân công
mà còn tăng cường hiệu suất và chất lượng sản phẩm. Bằng cách sử dụng phần mềm
RoboDK, chúng tôi đã có thể tạo ra một mô hình robot và mô phỏng quy trình sản xuất
một cách chính xác và hiệu quả.
Trong báo cáo này, em sẽ trình bày quá trình thiết kế và triển khai một hệ thống robot gắp
thả sử dụng phần mềm RoboDK. Em sẽ trình bày chi tiết về các bước cần thiết để tạo ra
một mô hình robot, lập trình các chuyển động và kiểm tra tính khả thi của hệ thống. Cuối
cùng, em sẽ đánh giá hiệu suất của hệ thống và những lợi ích mà việc sử dụng robotics
mang lại cho quy trình sản xuất.
Hy vọng rằng báo cáo này sẽ cung cấp cho độc giả cái nhìn tổng quan và chi tiết về ứng
dụng của robotics trong việc tự động hóa quy trình sản xuất. Em mong rằng thông tin
trong báo cáo sẽ giúp đẩy mạnh sự phát triển của ngành công nghiệp robotics và ứng
dụng của nó trong các lĩnh vực khác nhau

6
LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn sâu sắc đến giảng viên Chung Tấn Lâm đã tận tình hướng dẫn
và truyền đạt kiến thức cho em trong suốt quá trình thực hiện bài báo cáo. Nhờ sự hướng
dẫn tận tâm và những lời khuyên quý báu của thầy, em đã hoàn thành được bài báo cáo
một cách tốt nhất. Em cũng xin cảm ơn các bạn sinh viên trong lớp đã luôn nhiệt tình hỗ
trợ và giúp đỡ em trong quá trình nghiên cứu và hoàn thành bài báo cáo. Em đã cố gắng
hết sức để hoàn thành bài báo cáo này một cách khoa học, logic và đầy đủ thông tin. Tuy
nhiên, do trình độ và kiến thức còn hạn chế, nên bài báo cáo có thể còn thiếu sót một số
vấn đề. Em xin chân thành tiếp thu mọi ý kiến đóng góp của Ban Giám khảo để hoàn
thiện bài báo cáo của mình hơn nữa.

7
I. CHƯƠNG 1: TỔNG QUAN
1. Lý do chọn đề tài
Trong bối cảnh của cuộc cách mạng công nghiệp 4.0, sự tiến bộ trong lĩnh vực robot
và tự động hóa đang định hình lại cách chúng ta sản xuất, từ việc tăng cường hiệu suất
đến việc tối ưu hóa chi phí và quản lý rủi ro. Cùng với sự phát triển của công nghệ, sự
đa dạng và linh hoạt trong việc ứng dụng robot trong môi trường sản xuất cũng đang
được nâng cao, mở ra nhiều cơ hội mới và thách thức trong việc tối ưu hóa quy trình
sản xuất. Trong bối cảnh này, sự xuất hiện của các hệ thống robot gắp thả vật đã trở
thành một trong những lựa chọn quan trọng trong việc tự động hóa quy trình sản xuất.
Các hệ thống này không chỉ giúp tăng cường hiệu suất và chính xác trong quy trình
làm việc mà còn giảm thiểu sự can thiệp của con người vào môi trường làm việc, đặc
biệt là trong những môi trường nguy hiểm hoặc đòi hỏi độ chính xác cao.
Trong nghiên cứu này, chúng tôi tập trung vào việc nghiên cứu và ứng dụng một hệ
thống robot gắp thả vật được tích hợp trong phần mềm RoboDK. RoboDK không chỉ
là một công cụ mạnh mẽ cho việc mô phỏng và lập trình robot mà còn cung cấp một
môi trường linh hoạt và dễ sử dụng cho việc tích hợp robot vào quy trình sản
xuất.Chúng tôi sẽ phân tích cách mà con robot gắp thả vật có thể được sử dụng trong
các ứng dụng sản xuất cụ thể. Chúng tôi cũng sẽ đánh giá những ưu điểm và hạn chế
của việc sử dụng robot trong các tình huống thực tế, cũng như đề xuất các giải pháp
để tối ưu hóa hiệu suất và tích hợp robot vào quy trình sản xuất hiện tại.
Với sự tiện ích và linh hoạt của RoboDK và tính năng gắp thả vật của robot, chúng tôi
hy vọng rằng nghiên cứu này sẽ cung cấp một cái nhìn tổng quan và sâu sắc về việc
áp dụng công nghệ robot trong ngành sản xuất, đồng thời góp phần vào sự phát triển
của ngành công nghiệp tự động hóa trong tương lai.

2. Lịch sử lĩnh vực sản xuất bằng robot


Sự phát triển của robot trong lĩnh vực sản xuất bắt đầu từ những năm đầu của thế kỷ
20, khi các robot công nghiệp đầu tiên được giới thiệu vào các quy trình sản xuất công
nghiệp. Ban đầu, các robot này thường chỉ có khả năng thực hiện các tác vụ cụ thể và
có ít tính linh hoạt. Tuy nhiên, qua các giai đoạn tiến hóa công nghệ, robot công
nghiệp đã trở nên linh hoạt hơn và có khả năng thích ứng với nhiều ứng dụng khác
nhau.
Trong những năm gần đây, xu hướng sử dụng robot gắp thả vật trong môi trường sản
xuất đã trở nên phổ biến hơn. Các công ty sản xuất đang nhìn nhận giá trị của robot
gắp thả vật trong việc tăng cường hiệu suất và linh hoạt trong quy trình sản xuất. Thay
vì sử dụng các hệ thống cố định, robot gắp thả vật có khả năng thích ứng với các vật
phẩm có hình dạng và kích thước khác nhau, tạo ra sự linh hoạt đáng kể trong quy
trình sản xuất.
8
Một yếu tố quan trọng đằng sau sự phát triển của robot trong sản xuất là sự tiến bộ
trong phần mềm mô phỏng và lập trình robot. Các phần mềm như RoboDK đã mang
lại một cách tiếp cận mới cho việc tích hợp và lập trình robot trong môi trường sản
xuất. RoboDK cung cấp một môi trường mô phỏng 3D và giao diện lập trình trực
quan, giúp người dùng dễ dàng mô phỏng, lập trình và tích hợp robot vào các quy
trình sản xuất hiện tại một cách linh hoạt và hiệu quả.

3. Mục tiêu nghiên cứu


Mục tiêu chính của nghiên cứu này là nghiên cứu và phân tích cách mà một con robot
gắp thả vật được tích hợp trong phần mềm RoboDK có thể được ứng dụng trong môi
trường sản xuất. Nghiên cứu này không chỉ giúp chúng tôi hiểu rõ hơn về khả năng và
tiềm năng của con robot gắp thả vật trong môi trường sản xuất mà còn cung cấp thông
tin quan trọng cho các doanh nghiệp muốn áp dụng công nghệ robot vào quy trình sản
xuất của họ. Bằng cách tìm hiểu và đánh giá sâu sắc về việc sử dụng robot gắp thả vật,
chúng tôi hy vọng có thể đưa ra các khuyến nghị và giải pháp cụ thể để tối ưu hóa quy
trình sản xuất và nâng cao hiệu suất của doanh nghiệp.

4. Đối tượng và phạm vi nghiên cứu


Đối tượng của nghiên cứu này là con robot gắp thả vật được tích hợp trong phần mềm
RoboDK, cũng như các ứng dụng của nó trong môi trường sản xuất. Chúng tôi sẽ tập
trung vào việc nghiên cứu và đánh giá khả năng linh hoạt, tính ứng dụng và tiềm năng
của con robot này trong quy trình sản xuất.

5. Phương pháp nghiên cứu


Chúng tôi sẽ sử dụng phần mềm RoboDK để xây dựng một mô hình mô phỏng 3D
của con robot gắp thả vật và các môi trường sản xuất tương ứng. Mô hình sẽ được
thiết kế để phản ánh môi trường sản xuất thực tế cũng như các nhiệm vụ cụ thể mà
robot sẽ thực hiện.

6. Động lực nghiên cứu


Việc lựa chọn nghiên cứu về con robot gắp thả vật trong môi trường sản xuất bắt
nguồn từ nhận thức về sự quan trọng của tự động hóa và robot hóa trong ngành công
nghiệp hiện đại. Trong khi các công nghệ robot truyền thống thường được sử dụng
cho các ứng dụng cụ thể, như lắp ráp dây chuyền sản xuất, robot gắp thả vật mở ra
một lĩnh vực mới với tiềm năng linh hoạt và đa dạng ứng dụng.
Mục tiêu của chúng tôi là tìm hiểu sâu hơn về tính linh hoạt và tính ứng dụng của con
robot gắp thả vật trong môi trường sản xuất. Chúng tôi tin rằng việc hiểu rõ về khả
năng và hạn chế của robot này sẽ giúp cải thiện quy trình sản xuất, tăng cường hiệu
suất và giảm thiểu chi phí cho các doanh nghiệp.

9
II. CƠ SỞ LÝ THUYẾT

1. RoboDK
1.1. Khái quát về RoboDK
Robodk là phần mềm mô phỏng robot 3D mạnh mẽ được phát triển bởi Mattar
Robotics, có trụ sở chính tại Quebec, Canada. Nó được sử dụng rộng rãi trong các
ngành công nghiệp tự động hóa, sản xuất, giáo dục và nghiên cứu để mô phỏng và lập
trình robot. Robodk cung cấp giao diện trực quan, dễ sử dụng, cho phép người dùng
tạo mô hình robot, môi trường làm việc, thiết lập các tác vụ và mô phỏng chuyển
động robot một cách chính xác.

Hình 1: Phần mềm RoboDK


1.2. Lịch sử hình thành và phát triển
RoboDK được phát triển bởi công ty RoboDK Inc., được thành lập vào năm
2015 tại Quebec, Canada. Từ khi ra mắt, RoboDK đã trải qua nhiều phiên bản
cập nhật, đem lại những cải tiến đáng kể về tính năng và hiệu suất. Sứ mệnh của
RoboDK là đơn giản hóa và tối ưu hóa quá trình tích hợp robot vào dây chuyền
sản xuất, giúp các doanh nghiệp tiết kiệm thời gian và chi phí.
1.3. Các tính năng chính của RoboDK
Mô hình robot 3D chính xác: Robodk cung cấp thư viện mô hình robot rộng lớn với
dữ liệu kinematics chính xác, cho phép người dùng mô phỏng các robot thương mại
phổ biến.
Môi trường làm việc 3D linh hoạt: Người dùng có thể tạo môi trường làm việc 3D chi
tiết bao gồm các vật thể, đường dẫn, cảm biến và các thành phần khác để mô phỏng
các tình huống thực tế.
Lập trình robot trực quan: Robodk cung cấp giao diện lập trình kéo thả trực quan cho
phép người dùng tạo các chương trình robot phức tạp mà không cần kiến thức lập
trình chuyên sâu.

10
Mô phỏng chuyển động robot chính xác: Robodk sử dụng thuật toán mô phỏng tiên
tiến để mô phỏng chuyển động robot một cách chính xác, giúp người dùng xác định
và khắc phục các vấn đề tiềm ẩn trước khi triển khai robot thực tế.
Phân tích và tối ưu hóa chuyển động: Robodk cung cấp các công cụ phân tích và tối
ưu hóa chuyển động giúp người dùng cải thiện hiệu suất và độ chính xác của các
chuyển động robot.
Hỗ trợ nhiều ngôn ngữ lập trình: Robodk hỗ trợ nhiều ngôn ngữ lập trình phổ biến
như Python, C++, C#, VB.NET, v.v., cho phép người dùng tạo các chương trình robot
tùy chỉnh theo nhu cầu cụ thể của họ.
1.4. Các ứng dụng chính của RoboDK
Lập trình robot gắp thả: Robodk được sử dụng rộng rãi để lập trình robot gắp thả
trong các ngành công nghiệp sản xuất, bao gồm lắp ráp, đóng gói, xử lý vật liệu,...
Mô phỏng hàn robot: Robodk được sử dụng để mô phỏng các quy trình hàn robot,
giúp người dùng tối ưu hóa đường dẫn hàn và đảm bảo chất lượng mối hàn.
Mô phỏng gia công robot: Robodk được sử dụng để mô phỏng các quy trình gia công
robot, bao gồm phay, tiện, mài, v.v., giúp người dùng cải thiện độ chính xác và hiệu
quả gia công.
Đào tạo robot: Robodk được sử dụng để đào tạo kỹ thuật viên robot và người vận
hành, giúp họ hiểu rõ hơn về cách vận hành robot và lập trình các tác vụ robot.
Nghiên cứu và phát triển robot: Robodk được sử dụng trong nghiên cứu và phát triển
robot để thử nghiệm các thuật toán điều khiển robot mới và phát triển các ứng dụng
robot mới.

2. Python
2.1. Giới thiệu về Python
Python là ngôn ngữ lập trình bậc cao được tạo bởi Guido van Rossum vào những năm
1990. Nó được biết đến với cú pháp đơn giản, dễ đọc, dễ học và dễ sử dụng, khiến nó
trở thành lựa chọn phổ biến cho nhiều ứng dụng khác nhau, bao gồm cả lập trình
robot.

11
Hình 2: Ngôn ngữ lập trình python
2.2. Ưu điểm của Python trong lập trình robot
Dễ học và sử dụng: Python có cú pháp đơn giản và trực quan, giúp người mới bắt đầu
dễ dàng tiếp cận và học lập trình.
Mã nguồn ngắn gọn: Python sử dụng ít mã hơn so với các ngôn ngữ lập trình khác để
hoàn thành cùng một nhiệm vụ, giúp cho các chương trình robot trở nên dễ đọc và dễ
bảo trì hơn.
Thư viện phong phú: Python sở hữu một cộng đồng nhà phát triển lớn và có sẵn nhiều
thư viện cho các tác vụ khác nhau, bao gồm xử lý hình ảnh, học máy, điều khiển
robot.
Khả năng mở rộng: Python có thể được mở rộng bằng cách sử dụng các module và
thư viện bên ngoài, cho phép người dùng tùy chỉnh ngôn ngữ cho các nhu cầu cụ thể
của họ.
Cộng đồng lớn: Python có một cộng đồng nhà phát triển lớn và tích cực, luôn sẵn
sàng hỗ trợ và chia sẻ kiến thức với nhau.

III. PHÂN TÍCH CÁCH DÙNG ROBODK


1. Mô hình hóa bàn xoay 1 trục
Bàn xoay thường dùng cho các ứng dụng robot gia công.
Thực hiện các bước sau để tạo một bàn xoay:
1. Load các mô hình 3D của bàn xoay: kéo thả các mô hình 3D vào cửa sổ
RoboDK (như tập tin STL, STEP hay IGES).
Quan trọng: Mỗi phần chuyển động của bàn xoay nên là một đối tượng tách biệt trong
trong RobotDK. Ta có thể chia nhỏ một đối tượng thành các đối tượng con bằng cách

12
click phải chuộc vào đối tượng đó và chọn Split. Ta cũng có thể nhóm (group) chúng trở
lại bằng cách chọn nhiều đối tượng và chọn Merge.
Quan trọng: để đơn giản việc tạo bàn xoay ta nên gán một hệ tọa độ tham chiếu với trục Z
(trục màu xanh dương) cùng với trục chuyển động xoay.

Hình 3: Xây dựng và điều chỉnh cơ chế robot

2. Chọn Utilities➔Model Mechanism or Robot.


3. Chọn 1 trục xoay.
4. Nếu ta nhìn vào hình, nó cho ta thấy nền và tấm trên được định vị với nhau
positioned. Trong trường hợp trục quay, cơ cấu đó sẽ quay xung quanh trục Z của
Hệ tọa độ nền Fb (Frame Base).
5. Đặt tên cơ cấu là TurnTable.
2. Xác định tham chiếu của bàn xoay bằng cách tạo một hệ tọa độ mới:
1. Tạo hệ tọa độ tham chiếu và chọn F2 đặt tên nó là Frame Base.
2. Hiệu chỉnh vị trí của hệ tọa độ đó bằng cách mở Frame Panel.
3. Chọn Tools và sau đó chọn Measurement.
4. Đo vị trí của bề mặt bằng cách kích chuộc vào cơ cấu; Ta có thể thấy sai lệch
giữa điểm gốc (Origin) và tâm (center). Ta có thể copy các giá trị này và past vào
như hình bên dưới.
Vị trí tham chiếu bây giờ phù hợp với tham chiếu như trong hình. Hệ tọa độ tham chiếu
và tên mục đối tượng được populated tự động. Nếu việc chọn tự động không đúng ta có
thể cập nhật cho đúng.

13
Ta có thể cập nhật các giới hạn khớp, ví dụ ta muốn xoay +/-20 vòng ta nhập vào +/-7200
độ. Ta cũng có thể thay đổi giới hạn khớp sau bằng cách click chuộc vào các nhãn giới
hạn trong panel robot.

3. Khai báo mô hình 3D Dobot CR10


Các bước để thu thập thông tin về robot:
1. Đầu tiên, ta cần mô hình 3D (như tập tin STEP hay IGES).
2. Ta cũng cần datasheet của robot hay sổ tay kỹ thuật robot (robot manual).
Thực hiện các bước sau để mở cửa sổ mô hình robot:
3. Chọn Utilities➔Model Mechanism or Robot.
4. Dưới mục Robot Type, chọn 6 Axis Collaborative Robot.
Chen các tập tin 3D vào RoboDK bằng cách làm theo các bước sau:
-Kéo thả robot vào RoboDK hay chọn select file và sau đó open.
Lưu ý: Một vài tập tin STEP không có màu sắc khi chen vào; ví dụ, nếu ta chen một robot
KUKA, thì màu của nó là màu cam, không phải màu xám. Trong trường hợp này, ta có
thể thay đổi màu của robot bằng cách chọn Tools➔Change Color. Ta có thể đơn giản là
gở bỏ màu bằng cách click vào mỗi thành phần của robot và chọn Remove.
-Thực hiện các bước sau để chia nhỏ một object thành các thành phần khác nhau và ta có
thể xử lý từng phần riêng biệt:
-Nếu tập tin CAD mà bạn download ở dạng một object đơn, ta có thể rã nhóm (ungroup)
object (tập tin STEP) bằng cách click phải chuộc lên bất kỳ object nào và chọn Split
Object.

14
Hình 4: KR150_R3300_K_prime
-Ta có thể nhóm lại (regroup) để tạo các thành phần khác nhau của robot.
Thực hiện các bước sau để nhập thông tin động học của robot trong RoboDK:
-Đặt tên cho robot vào mục Robot Name.
-Nếu các thành phần của robot theo thứ tự đúng, khi đó tất cả các mô hình 3D được gộp
lại đúng. Mặc khác, ta có thể liên kết bằng tay từng object tạo thành một khớp robot
đúng.
-Điều thông tin kích thước của robot bằng cách mở data sheet.
-Trên bản vẽ 3D của data sheet, ta sẽ tìm được tất cả giá trị cần tìm. Điền các giá trị đó
vào RoboDK.
-Khi hài lòng với kết quả động học của robot, chọn Update.

15
Hình 5: Điều chỉnh cơ chế của KR150_R3300_K_prime
Note: dùng bảng đều khiển robot để quay từng khớp Use để bảo đảm số liệu động học
nhập chính xác
Synchronize Additional Axes
Ta có thể đồng bộ một cánh tay robot với các trục ngoài. Các trục ngoài có
thể đơn giản là một bộ định vị hay cũng có thể được đồng bộ với cùng bộ điều
khiển robot. Khi được đồng bộ với bộ điều khiển, robot và các trục ngoài có thể di
chuyển cùng lúc trong khi vẫn giữ được các chuyển động thẳng chính xác tương
đối với một hệ tọa độ.
Note: không phải tất cả bộ điều khiển robot đều hỗ trợ đồng bộ chuyển động giữa robot
và trục ngoài, trong trường hợp đó ta không nên đồng bộ mà có thể dùng trục ngoài như
là bộ định vị.

Click phải chuộc vào Dobot CR10 và chọn Visible Object Reference. Robot thẳng đứng
phù hợp với hình tham khảo trong cửa sổ Robot Builder
Thêm một hệ tọa độ tham chiếu vào Station
Đặt tên là Frame Robot và ta có thể kéo thả robot vào hệ tọa độ này

16
4. Tạo chương trình
Việc mô phỏng có thể được thực hiện bằng cách thêm một chuỗi lệnh trong một chương
trình. Mỗi lệnh đại diện cho mã cụ thể cho một bộ điều khiển cụ thể, tuy nhiên, RoboDK
cung cấp giao diện người dùng đồ họa (GUI) để xây dựng các chương trình robot dễ dàng
hơn không cần phải viết từng mã lệnh trực tiếp.
Để tạo một chương trình mới trên RoboDK:
-Chọn Program➔ Add Program hoặc chọn trên thanh công cụ.
-Chọn Tools➔Rename item… (F2) để đổi tên chương trình.
Việc này sẽ tạo một chương trình mới và cho phép thêm các lệnh mới bằng cách nhấp
chuột phải vào chương trình hoặc chọn từ menu Program.

Hình 6: Thêm lệnh cho chương trình


Lệnh Linear Move
Chọn Program➔ Move Linear Instruction để thêm một lệnh chuyển động thẳng hay
chọn nút trên thanh công cụ.
Chuyển khớp và chuyển động thẳng có cùng hành vi chuyển động nên có thề chuyển đổi
qua lại với nhau.
Quan trọng: Yêu cầu giữ chuyển động đầu tiên của chương trình là một chuyển động
khớp dùng Joint Target. Việc này sẽ thiết lập được cấu hình đúng như mong muốn ngay
từ chuyển động đầu tiên và đảm bảo robot thật di chuyển giống với mô phỏng.
Trái với chuyển động khớp, chuyển động thẳng là có tính đến các điểm kỳ dị của robot và
giới hạn trục quay. Ví dụ, robot 6 trục không thể vượt qua một điểm kỳ dị bằng một
chuyển động thẳng. Hình bên dưới là một ví dụ về báo lỗi điểm kỳ dị.

17
Hình 7: Báo lỗi điểm kì dị
Nếu chuyển động thẳng không thực sự cần thiết, ta bấm chuột phải vào lệnh MoveL và
chọn sang Joint Move. Hay cách khác là Target, TCP (Tool Center Point) hay là vị trí của
hệ tọa độ tham chiếu, phải được hiệu chỉnh để tránh điểm kỳ dị đó.

Hình 8: Chuyển Linear Move sang Joint Move.


4.1. Lệnh Set Reference Frame

Chọn Program➔ Set Reference Frame Instruction để đặt một hệ tọa độ


tham chiếu xác định. Tác vụ này sẽ cập nhật hệ tọa độ hiện hành trên bộ điều
khiển cho các lệnh chuyển động theo sau và thay đổi hệ tọa độ tham chiếu đang
dùng (Active) của robot trong RoboDK cho mục đích mô phỏng. Việc chọn này sẽ
tạo ra các lệnh chuyển động đến các Target xác định (Target trong hệ Decart) đối
với tập hợp hệ tọa độ tham chiếu trước đó.
Hệ tọa độ tham chiếu không cố định tên còn được gọi là Work Object (robot
ABB), UFRAME (robot Fanuc), FRAME (đối với robot Motoman) hoặc $BASE
(đối với robot KUKA).

18
Hình 9: Đặt hệ tọa độ tham chiếu
4.2. Lệnh Set Tool Frame

Chọn Program➔ Set Tool Frame Instruction để sử dụng một hệ tọa độ công
cụ xác định (TCP - Tool Center Point). Lệnh này sẽ cập nhật lại hệ tọa độ công cụ
hiện hành trong chương trình cho các lệnh chuyển động theo sau và thay đổi hệ tọa
độ công cụ đang dùng (Active) của robot trong RoboDK cho mục đích mô
phỏng. Có nghĩa là các lệnh chuyển động đến các Target xác định sẽ được thi hành
dùng hệ tọa độ dụng cụ mới được cập nhận.
Hệ tọa độ công cụ không cố định tên còn được gọi là ToolData (robot ABB),
UTOOL (robot Fanuc), TOOL (đối với robot Motoman) hoặc $TOOL (robot
KUKA).

Hình 10: Đặt hệ tọa độ công cụ.

19
4.3. Lệnh Circular Move

Chọn Program➔ Move Circular Instruction để thêm một chuyển động cung
tròn, hay chọn nút tương ứng trên thanh công cụ.
Ngoài hai Target được chọn trước khi thêm lệnh, lệnh này sẽ không tạo ra
Target mới. Ta cần thêm hai Target riêng biệt nữa và liên kết chúng từ lệnh di
chuyển cung tròn, như trong hình ảnh bên dưới.
Đường cong là một cung tạo từ điểm robot đang dừng, đi qua điểm đầu tiên
điểm cong đầu tiên (Target Linked 1) và kết thúc tại điểm cuối (Target Link 2).
Quan trọng: không thể thực hiện 1 vòng tròn chỉ với một lệnh cung tròn. Một vòng tròn
phải được chia thành 2 chuyển động cung tròn tách biệt.

Hình 11: Lệnh Circular Move

4.4. Lệnh Set Speed


Chọn Program➔ Set Speed Instruction để thêm một lệnh thay đổi vận tốc
và/ hoặc gia tốc. Ta có thể chỉ định vận tốc và gia tốc trong không gian khớp và
trong không gian Cartesian.
Kích hoạt áp đặt vận tốc và gia tốc xác định trong chương trình. Vận tốc của
robot thay đổi khi lệnh được thi hành. Vận tốc của robot cũng có thể thay đổi trên
menu parameters: double click vào robot, chọn paramters.
Không phải tất cả các bộ điều khiển robot đều hỗ trợ thiết lập gia tốc chính xác.
Quan trọng: thiết lập tốc độ phù hợp là rất quan trọng để tính toán chính xác thời gian
chương trình (circle time). Xem thêm phần circle time.

20
Hình 12: Cài đặt vận tốc
4.5. Lệnh Pause

Chọn Program➔ Pause Instruction để thêm một lệnh tạm dừng việc thực thi
chương trình trong một khoảng thời gian đến khi người vận hành muốn tiếp tục
chương trình.

Hình 13: Lệnh tạm dừng


Lưu ý: nhập giá trị -1 để tạm dừng chương trình đến khi người vận hành muốn tiếp tục
chương trình. Khi đó, lệnh được đặt tên tự động là Stop.
Quan trọng: trong mô phỏng, 5 giây tạm dừng sẽ mất 1 giây để mô phỏng đối với tỷ lệ
mô phỏng mặc định là 5. Xem thêm phần Simulation.
4.6. Lệnh Program call

Chọn Program➔ Program Call Instruction để gọi đến một chương trình con
từ chương trình hiện hành.
Mặc định, đây là việc ngắt chương trình chính để gọi một chương trình con xác
định. Tuy nhiên, ta có thể dùng tính năng Insert Code để nhập lệnh tại vị trí của

21
lệnh này thay cho việc gọi chương trình con. Nó có thể tiện đối với một ứng dụng
cụ thể và một bộ điều khiển cụ thể.
Mẹo: nhập nhiều dòng để tự động thiết lập nhiều lệnh gọi chương trình trên 1 hàng.

Hình 14: Cài đặt gọi chương trình con


Chuyển từ Program Call sang Start Thread để kích hoạt việc gọi một chương
trình con mà không ngắt chương trình chính. Trong trường hợp này, bộ điều khiển
sẽ bắt đầu một Thread mới. Tùy chọn này chỉ dùng được cho một số bộ điều khiển
nào đó và chỉ làm việc đối với các tác vụ đặc thù.

4.7. Lệnh Set/Wait IO


Chọn Program➔ Set or Wait I/O Instruction để kích hoạt các cổng ra Digital
Output (DO).
Mặc định, lệnh này tùy chọn là Set Digital Output. Lệnh này cũng có thể chờ
cho cổng Digital Input.
IO Name có thể là một con số hoặc giá trị text nếu nó là tên của một biến (var).
IO Value có thể là một con số (0 cho False và 1 cho True) hoặc một giá trị text nếu
nó là tên của một trạng thái (state).
Tùy chọn Wait for Digital Input để dừng thi hành chương trình chính chờ đến
khi một cổng digital input thay đổi trạng thái của nó. Hơn nữa, một số bộ điều
khiển robot có tính năng timeout delay để đưa ra một cảnh báo lỗi nếu thời gian
chờ vượt quá giá trị timeout đã xác định. Check vào tùy chọn Timeout (ms) để kích
hoạt tính năng này.

22
Hình 15: Thiết lập I/O

Hình 16: Thiết lập Timeout (ms)


Mẹo: khi thực hành, chẳng hạn nếu bobot có gắn phần cứng chuyên dùng như bộ kẹp
(gripper) hay trục phay (spindle), để kích hoạt các phần cứng này dùng cổng Digital
Output, sau đó chờ cổng Digital Input (DI) để chuyển trạng thái.
Sự thay đổi trạng thái mô phỏng của các DI và DO sẽ tạo mới các biến
station. Để kiểm tra trạng thái của các biến này, nhấp chuột phải vào station và
chọn Station Parameters. Ta cũng có thể đọc hoặc hiệu chỉnh các biến này thông
qua API.

4.8. Lệnh Set Rounding value


Chọn Program➔ Set Rounding Instruction để thay đổi độ chính xác
làm tròn. Độ chính xác làm tròn được sử dụng để làm mịn các cạnh giữa các
chuyển động liên tiếp nhau. Thay đổi này có hiệu lực từ thời điểm lệnh này được
thực hiện trong một chương trình (giống như với tất cả các lệnh khác), nên thường
lệnh này được đặt ở đầu chương trình.

23
Nếu không có lệnh làm tròn, robot sẽ có tốc độ 0 khi kết thúc mỗi chuyển động
(trừ khi chuyển động tiếp theo tiếp tuyến với chuyển động trước). Việc này sẽ gây
ra gia tốc lớn và thay đổi vận tốc nhanh để đảm bảo độ chính xác tốt nhất cho mỗi
chuyển động.

Hình 17: Đặt giá trị làm tròn


Mẹo: giá trị làm tròn cao sẽ đảm bảo tốc độ không đổi trên đường đi của robot đổi lại
việc mất độ chính xác trên các cạnh của đường đi đó. Tùy thuộc vào từng ứng dụng,
người ta thường tìm ra sự thỏa hiệp tốt giữa độ chính xác và vận tốc trơn.
Một số bộ điều khiển yêu cầu đặt giá trị này dạng phần trăm, ví dụ bộ điều
khiển Fanuc, nếu muốn dùng lệnh CNT5, ta nên nhập giá trị 5.
Ta cũng có thể ghi rouding parameter trong cửa sổ Program Events nếu
bạn đang lập trình để robot gia công, in 3D hoặc bám đường cong bám điểm.

Hình 18: Cửa sổ Program events

24
Kiểm tra path accuracy của RoboDK cho phép ta hiểu rõ hơn về ảnh hưởng của
các giá trị làm tròn khác nhau.

4.9. Simulation event


Chọn Program➔ Simulation Event Instruction để kích hoạt một sự kiện
trong mô phỏng. Các sự kiện không ảnh hưởng đến việc sinh mã chương trình và
chỉ dùng để kích hoạt một sự kiện cụ thể trong mô phỏng.
Các sự kiện cho phép:

 Gắn hoặc tách các object vào tool


 Hiển thị hoặc ẩn các object hoặc tool
 Thay đổi vị trí các object và hệ tọa độ tham chiếu.

Hình 19: Lệnh sự kiện


Ví dụ nếu robot di chuyển đến một vị trí xác định để gắp một object, ta có thể
thiết lập một sự kiện Attact object để di chuyển object đó gắn vào robot. Sau đó,
sau khi robot di chuyển và bỏ object đó đi, ta có thể thiết lập sự kiện Detach
object để rời khỏi object mà robot đã gắp.

25
Hình 19: Lệnh sự kiện Detach object
Lưu ý: Các sự kiện cũng có thể được mô phỏng bằng macro (cần có kinh nghiệm lập
trình). Ví dụ dùng API, có thể làm cho các object xuất hiện ngẫu nhiên tại các vị trí xác
định để mô phỏng tác vụ gắp đặt.
Lưu ý: Khi gắn object vào tool, object gần nhất sẽ được gắn nếu nó không xa hơn một
khoảng cách cho trước. Khoảng cách này theo mặc định là 200 mm và có thể thay đổi
trong: Tools➔Option➔ Maximum distance to attach an object to a robot tool. Ngoài ra,
theo mặc định, khoảng cách này được kiểm tra từ vị trí TCP đến object tham chiếu. Hoặc
cách khác là có thể sử dụng khoảng cách giữa TCP và dạng hình học của đối tượng bằng
cách chọn Check shortest distance between TCP and the object shape

4.10. Simulation program


Double click vào program để chạy mô phỏng chương trình
Cách khác:
1.Right click vào program
2.chọn Run
Một thanh simulation sẽ xuất hiện ở phía dưới nếu double click vào program. Ta có thể
duyệt mô phỏng để di chuyển simulation tới và lui dùng thanh simulation này

26
Hình 20: RUN chương trình mô phỏng

Tip: Select Program➔ Fast simulation để tăng tốc độ mô phỏng (hay giữ phím). Tùy
chọn này cũng có trên thanh Toobar.
Mặc định, RoboDK mô phỏng nhanh hơn 5 lần thời gian thực. Nghĩa là nếu chương trình
thực thi mất 30 giây thì nó sẽ được mô phỏng trong 30/5=6 giây. Tăng tốc độ mô phỏng
làm tăng tỉ lệ này lên 100. Tốc độ Normal và Fast Simulation có thể chọn trong
Tools➔Options➔Motion menu

Tip: Chọn Program➔ Pause to tạm dừng mô phỏng (hay nhấn phím Backspace).
Tip: Chọn phím ESC để dừng mô phỏng hay double click program lần nữa.
Tip: Double click từng lệnh riêng biệt để thì hành từng lệnh 1.
Tip: Right click một lệnh chuyển động và chọn Start from here để thực thi chương trình
từ lệnh đó, như hình.

Hình 21: Chọn chạy chương trình tại lệnh chuyển động

27
4.11. Generate program
Theo các bước sau để sinh ra chương trình robot cho bộ điều khiển robot
(đối với các loại robot cụ thể của từng hãng):
1. Chọn Program
2. Chọn Program➔Generate Program(s) (F6)
Cách khác là right click một program và chọn Generate robot program (F6) để sinh
chương trình

Hình 22: Sinh chương trình cho bộ điều khiển robot cụ thể từng hãng
Ta có thể chọn nhiều chương trình để sinh nhiều hơn 1 chương trình cùng
lúc. Giữ phím Ctrl để chọn nhiều chương trình. Chọn tùy chọn Generate
Program(s)… (Shift+F6) để mở một cửa sổ hỏi người sử dụng cung cấp thư mục
lưu chương trình

4.12. Truyền Chương Trình (Transfer program)


Ta có thể truyền một chương trình xuống trực tiếp robot từ máy tính. Tùy
chọn này thường gửi chương trình xuống robot thông qua FTP protocol hay các
protocol chuyên dùng khác, như là dùng socket messaging hay kết nối serial. Đầu
tiên, ta cần nhập IP của robot và cài đặt FTP trong menu robot connection:
1. Kích phải chuộc một robot
2. Chọn Connect to robot… Một cửa sổ sẽ xuất hiện phía bên trái.
3. Nhập vào IP của robot
4. Chọn More options để nhập FTP settings và FTP credentials (nếu cần)

28
Tip: Chọn Select Ping để xem robot có tìm thấy trên mạng.

Hình 23: Truyền chương trình xuống robot


Khi đã cung cấp cài đặt các cấu hình network và kết nối đúng với robot, làm các bước sau
đây để truyền chương trình xuống robot trực tiếp từ RoboDK:
1. Kích phải chuộc một program
2. Chọn Send program to robot (Ctrl+F6)
Một cửa sổ popup sẽ hiển thị trạng thái (thành công hay không).
Lưu ý: các chương trình có thể được truyền xuống bằng cách dùng USB hay thiết bị
khác.
Quan trọng: nút Connect chỉ dùng được khi dùng robot driver. Ta có thể thực hiện truyền
một chương trình mà không cần kết nối robot driver. Robot driver cho phép di chuyển
robot điểm đến điểm từ RoboDK và debug chương trình dễ dàng (Run trên
Robot option). Robot driver cũng cho phép di chuyển robot dùng API trực tiếp.
Tip: dùng một FTP Client như là FileZilla để xem dễ hơn các nội dung trên robot
controller và lấy được đường dẫn FPT cho chương trình robot. Hầu hết các robot đều hỗ
trợ truyền FTP.

4.13. Chọn Post Processor


Công việc chuyển đổi từ mô phỏng RoboDK sang một chương trình robot
thật được thực hiện bởi Post Processor. Mỗi robot có một post processor mặc định
trong RoboDK.
Để chọn post processor xác định cụ thể cho một robot:

29
1. Kích phải chuộc một robot hay một program
2. Chọn Post Processor
3. Chọn một post processor từ danh sách
4. Chọn OK

Hình 24: Chọn một Post Processor cho một robot cụ thể
Thay đổi bây giờ được áp dụng và chương trình có thể được sinh mã lại với tùy chọn
mới.
Lưu ý: một Post Processor được kết nối với một robot cụ thể. Thay đổi post processor
của một chương trình sẽ cập nhật lại post processor cho tất cả chương trình liên kết với
robot đó.
Post Processors trong RoboDK cung cấp giải pháp linh hoạt để sinh mã
chương trình cho robot đối với các yêu cầu cụ thể. RoboDK cung cấp Post
Processors cho hầu hết các thương hiệu robot. Post processors có thể được tạo và
hiệu chỉnh dễ dàng. Ta có thể tìm hiểu thêm post processors trong phần chuyên
sâu.
4.14. Thiết lập tham số cho việc sinh chương trình
Ta có thể tùy chỉnh cách sinh chương trình cho robot của mình.
Làm theo các bước sau để thiết lập tham số cho quá trình sinh chương trình:
1. Chọn Tools➔Options.
2. Chọn tab Program

30
Hình 25: Các tùy chọn cho việc sinh chương trình
Menu này cho phép tùy chỉnh cho việc sinh chương trình như sau:
1. Chia các chuyển động khớp thành các bước nhỏ hơn.
2. Chia các chuyển động thẳng thành các bước nhỏ hơn.
3. Chuyển đổi chuyển động cung tròn thành các chuyển động thẳng nhỏ hơn.
4. Chia chương trình lớn thành các chương trình con nhỏ hơn.
5. Chỉ định vị trí mặc định để lưu chương trình robot.
6. Chỉ định trình soạn thảo text mặc định cho soạn thảo chương trình robot.
Tip: có thể có thêm các cài đặt bởi post processor đã chọn.
Chuyển đổi chuyển động cung tròn thành động thẳng

Ta có thể dễ dàng chuyển đổi chuyển động cung tròn sang các chuyển động thắng nhỏ
khi sinh mã chương trình cho robot. Việc này hữu dụng đối với các robot không hỗ trợ
chuyển động cong (arc movements)
Làm theo các bước sau để sinh các đường cong từ các chuyển thẳng nhỏ

1. Chọn Tools➔Options.
2. Chọn tab Program.
3. Chọn Avoid arcs.

31
4. Xác định Maximum arc size (mm) là kích thước của các chuyển động thẳng dọc với
cung tròn.

Hình 26: Các tùy chọn để chuyển đổi chuyển động

Lưu ý: RoboDK sẽ không sinh ra chuyển động thẳng mà nhỏ hơn Minimum step size
(mm) được xác định trong cửa sổ trên. Do đó, nếu dung sai Minimum step size (mm) lớn
hơn dung sai Maximum arc size (mm) chuyển động thẳng sẽ lớn hơn dọc theo cung tròn.

IV. GIẢI THÍCH CHƯƠNG TRÌNH


1. Tạo tool và reference frame
Trên băng tải vào có một khung tham chiếu gọi là đối tượng tham chiếu. Tất cả các chai
được nằm trong đối tượng tham chiếu này
 Gripper Robotiq 85 opened:
Đây là mô hình của kẹp Robotiq 85 khi nó đang ở trạng thái mở rộng, tức là các ngón
kẹp đang mở ra để nắm một vật phẩm hoặc để chuẩn bị để nắm một vật phẩm. Trạng
thái này thường được sử dụng khi robot cần nắm hoặc thả một vật phẩm.
 Gripper Robotiq 85 closed:
Đây là mô hình của kẹp Robotiq 85 khi nó đang ở trạng thái đóng lại, tức là các ngón
kẹp đã đóng lại để nắm chặt một vật phẩm. Trạng thái này thường được sử dụng khi

32
robot cần giữ chặt một vật phẩm trong quá trình vận chuyển hoặc thực hiện các thao
tác chính xác.
 World

Hình 28: Khung tham chiếu World


-Tạo một khung tham chiếu có tên World, đây là vị trí của robot trước khi bắt đầu
thực hiện chương trình. Trong khung tham chiếu World này, ta tạo một target
Home. Target home này có công dụng giúp robot trở về vị trí ban đầu khi ta nhấn
đúp chuột vào.
-Tạo một object Floor cho đối tượng sàn của robot

Hình 29: Đối tượng floor


-Tạo một object support cho đối tượng bệ đỡ của robot

33
Hình 30: Đối tượng bệ đỡ
-Tạo một object bottle cho đối tượng chai nước ở ngay vị trí chai nước cho trường
hợp khi băng tải di chuyển có chai nước rơi ra, thì chai nước sẽ tiếp tục di chuyển
đến vị trí này.

Hình 31: Đối tượng chai nước


 Conveyor In Base

Hình 32: Khung tham chiếu Conveyor In Base

34
-Tạo một khung tham chiếu có tên Conveyor In Base. Sau đó ta tạo một đối tượng
băng tải có tên Conveyor In. Tiếp theo ta tạo ra các tọa độ của chai nước được nằm
trên băng tải. Sau đó thêm các object chai nước vào các tọa độ tương ứng.

Hình 33: Chai nước trên băng tải


-Vẫn trong Conveyer In, ta tạo một target có tên App_Pick. Target này được đặt ở
phía trước của chai nước đầu tiên của băng tải đầu vào, nó có công dụng giúp
robot tiếp cận với chai nước.

Hình 34: Mục tiêu App_Pick

-Tiếp theo, tạo một target có tên Pick. Target này được đặt ngay tọa độ tham chiếu
của chai nước đầu tiên, robot sẽ di chuyển đến điểm này để gắp chai nước

35
Hình 35: Mục tiêu Pick

-Cuối cùng tạo một target có tên Retract_Pick. Đây là tọa độ mà robot sẽ di
chuyển đến sau khi gắp được chai nước.

Hình 36: Mục tiêu Retrack_Pick

 Conveyor Out Base


-Tạo một khung tham chiếu có tên Conveyor Out Base. Vị trí của khung tham
chiếu này là vị trí tham chiếu so với khung tham chiếu mặc định được liên kết với
robot.
-Trong khung tham chiếu Conveyor Out Base, ta tạo đối tượng Conveyor Out với
4 thành phần bao gồm:
1. Khung tham chiếu cho các chai nước được đặt trên băng tải.

Hình 37: Khung tham chiếu băng tải


2. Mục tiêu App_Drop giúp robot di chuyển đến vị trí trên băng tải trước khi
đặt chai nước xuống.

36
Hình 38: Mục tiêu App_Drop
3. Mục tiêu Drop có chức năng giúp robot cầm chai nước đặt xuống băng tải
từ vị trí App_Drop.

Hình 39: Mục tiêu Drop

37
4. Mục tiêu cuối cùng trong Conveyor Out Base là Retract_Drop. Mục tiêu
này có nhiệm vụ rút robot về tại một điểm gần băng tải trước khi về lại vị
trí ban đầu.

Hình 40: Mục tiêu Retract_Drop


5. Tạo chương trình khởi chạy robot
 Chương trình GoHome:
-Chương trình GoHome có chức năng đưa robot trở về vị trí ban đầu.
-Để tạo chương trình GoHome, đầu tiên ta nhấn vào GoHome sau đó nhấn vào target
Home và chọn moveJ. Ta dùng moveJ vì moveJ cho phép robot di chuyển qua các góc
khớp, nghĩa là nó sẽ di chuyển qua các góc khớp giữa các vị trí mục tiêu một cách liền
mạch, không cố gắng đảm bảo rằng đầu kẹp hoặc công cụ di chuyển theo một đường
thẳng hoặc cong cụ thể
-Trong chương trình GoHome, ta có thể xóa Set Ref: World và Set Tool Gripper RobotiQ
85 Closed vì target Home là joint target. Joint target chỉ đơn giản là các giá trị góc khớp
của robot, mà không liên quan đến vị trí hoặc hướng của công cụ hoặc đầu kẹp. Do đó,
khi sử dụng các mục tiêu joint target, robot chỉ cần biết cách điều chỉnh các khớp của
mình để đạt được các góc khớp mong muốn.

Hình 41: Chương trình Home


 Chương trình Pick_Bottle

38
Hình 42: Chương trình Pick_Bottle
-Chương trình này có chức năng giúp gắp chai nước vào đầu kẹp của robot. Để thực hiện
được, đầu tiên ta sẽ chọn loại kẹp cho robot là Gripper RobotiQ 85 Closed, sau đó ta
chọn active.

Hình 43: Gripper RobotiQ 85 Closed


-Sau đó trong phần tool bar, chọn vào Event Instruction và chọn Gripper RobotiQ 85
Closed. Sau đó chọn Action là Attach object để có robot có thể thực hiện được hành động
gắp vật.

Hình 44: Event Instruction cho Pick_Bottle


-Tương tự sau khi chọn Event Instruction, ta chọn Action là Show object/tool và chọn
tool là Gripper RobotiQ 85 Closed. Ở đây ta chọn hiển thị tool Gripper RobotiQ 85
Closed vì khi robot gắp chai nước thì đầu kẹp sẽ ở trạng thái đóng.

39
-Sau khi chọn tool cần hiển thị là Gripper RobotiQ 85 Closed thì cũng cần phải ẩn
Gripper RobotiQ 85 Opened. Để thực hiện, nhấn chọn Pick_Bottle  Event Instruction,
sau đó ta chọn action là Hide object/tool và chọn tool là Gripper RobotiQ 85 Opened để
ẩn tool.
 Chương trình Drop_Bottle
-Chương trình này có chức năng giúp robot có thể thực hiện việc tháo kẹp của robot ra
khỏi chai nước. Để thực hiện việc này, ta làm tương tự như phần Pick_Bottle. Nhưng thay
vào đó sau khi chọn vào Event Instruction, ta chọn action là detach object và dụng cụ
được chọn vẫn là Gripper RobotiQ 85 Closed.

Hình 45: Event Instruction cho Drop_Bottle


-Tiếp theo, để chọn nơi mà robot sẽ thả chai nước thì ta sẽ chọn Conveyor Object Out
trong phần Attach to parent. Nghĩa là robot sẽ thả chai nước xuống vị trí tham chiếu của
băng tải đầu ra.
 Chương trình Get_Bottle_In

40
Hình 46: Chương trình Get_Bottle_In
-Chương trình Get_Bottle_In có chức năng di chuyển robot đến vị trí của chai nước sau
đó gắp chai nước. Để thực hiện chương trình này, trước tiên đưa robot đến vị trí trước khi
gắp chai nước App_Pick bằng cách chọn vào Get_Bottle_In, sau đó chọn vào target
App_Pick và chọn MoveJ. Ta chọn MoveJ vì trong quá trình di chuyển từ vị trí target
Home đến target App_Pick thì sẽ các góc khớp của robot sẽ thay đổi.

Hình 47: MoveJ của App_Pick


-Để robot có thể gắp được chai nước, ta sẽ di chuyển đến vị trí của target Pick bằng cách
chọn vào Get_Bottle_In, sau đó chọn vào target Pick và chọn MoveL. Ta chọn MoveL vì
từ vị trí của target App_Pick đến target Pick thì chỉ cần đi một đoạn thẳng và các khớp
của robot không thay đổi.

Hình 48: MoveL của Pick


-Sau khi đến được vị trí của chai nước trên băng tải vào, ta sẽ gọi chương trình con
Pick_Bottle để thực hiện việc gắp chai nước của robot. Để gọi được chương trình con
Pick_Bottle, ta nhấn chuột phải vào MoveL rồi chọn Add instruction -> Program Call
Instruction sau đó chọn Pick_Bottle.

41
Hình 49: Program Call Instruction của Pick_Bottle
 Chương trình Replace_Object

Hình 50: Chương trình: Replace_Object


-Chương trình này có chức năng giúp các chai nước có thể quay trở về vị trí ban đầu trên
băng tải vào.
-Để thực hiện được, đầu tiên ta nhấn chuột phải vào Replace_Object, sau đó chọn
Instruction Event. Sau khi cửa sổ Event Instruction hiện ra, trong phần action ta chọn Set
object position (relative).
-Trong phần Select object to save current position (relative), ta chọn tất cả object có trong
station.

Hình 51: Event Instruction của Replace_Object


 Chương trình python băng tải
Có 3 chương trình python băng tải: NextPart_In, NextPart_Out, InitConvPosition.

42
Hình 52: Chương trình python băng tải
Chương trình đầu tiên là NextPart_In, chương trình này có chức năng di chuyển băng tải
theo hướng "vào", di chuyển băng tải một khoảng cách cụ thể (tính bằng milimet) được
chỉ định trong tập lệnh.
Chương trình thứ hai là NextPart_Out, Di chuyển băng tải theo hướng "ra", di chuyển
băng tải một khoảng cách cụ thể (tính bằng milimet) được chỉ định trong tập lệnh.
Chương trình thứ ba là InitConvPosition, chương trình này khởi tạo vị trí của băng tải về
vị trí bắt đầu được xác định, đảm bảo băng tải bắt đầu từ cùng một vị trí mỗi lần chạy
chương trình.
 Chương trình Put_Bottle_Out

Hình 53: Chương trình Put_Bottle_Out

-Chương trình Put_Bottle_Out có chức năng giúp robot sau khi được scan xong, tiến
hành đặt chai nước lên băng tải ra. Để thực hiện việc này đầu tiên nhấn vào
Put_Bottle_Out , sau đó nhấn vào target App_Drop rồi chọn MoveJ. Ta chọn MoveJ vì
trong quá trình di chuyển từ vị trí target Home đến target App_Drop thì các góc khớp của
robot sẽ thay đổi. Ta cũng giữ lại Set Ref và Set Tool vì App_Drop là một cartesian target.
-Để kẹp của robot tách khỏi chai nước, ta sẽ di chuyển robot đến vị trí target Drop. Để
làm việc này, nhấn vào Put_Bottle_Out, sau đó nhấn vào target Drop và chọn MoveL. Ta
chọn MoveL vì từ vị trí của target Drop đến target Retract_Drop thì chỉ cần đi một đoạn
thẳng và các khớp của robot không thay đổi.
-Sau khi đã di chuyển đến vị trí target Drop, ta sẽ gọi lại chương trình con Drop_Bottle
để robot có thể tách chai nước ra và gọi chương trình con Light_Off để tắt đèn sau khi

43
chai nước đã được đặt xuống băng tải. Sau đó ta đưa robot về tại vị trí target
Retract_Drop trước khi về lại target Home.

Hình 54: Chương trình Put_Bottle_Out

 Chương trình PickAndDrop


-Chương trình PickAndDrop này có công dụng giúp robot thực hiện quá trình di chuyển
đến gắp lấy chai nước sau đó là di chuyển đặt chai nước xuống băng tải ra.

Hình 55: Chương trình PickAndDrop


-Trong chương trình PickAndDrop này, ta sẽ gọi các chương trình con khác bên trong nó.
Để gọi các chương trình con khác, ta nhấn chuột phải vào chương trình PickAndDrop,
sau đó chọn Add Instruction rồi chọn Program Call Instruction. Sau đó ta chọn các
chương trình con muốn thêm vào và nhấn OK.

44
Hình 56: Program Call Instruction của PickAndScan
 Chương trình Init
-Chức năng của chương trình này là đưa robot quay trở về trạng thái ban đầu cho dù robot
có đang hoạt động thì vẫn trở lại như ban đầu.

Hình 57: Chương trình Init


- Trong chương trình Init, ta sẽ gọi các chương trình con khác bên trong nó. Để gọi các
chương trình con khác, ta nhấn chuột phải vào chương trình Init, sau đó chọn Add
Instruction rồi chọn Program Call Instruction. Tiếp theo chọn các chương trình con muốn
thêm vào và nhấn OK. Một cách làm khác là sao chép chương trình con và dán vào
chương trình Init.
-Đầu tiên ta sẽ gọi Replace_Objects để đưa các chai nước về vị trí ban đầu trên băng tải,
sau đó gọi GoHome để đưa robot về vị trí ban đầu. Tiếp theo, ta gọi InitConvPosition để
cài đặt băng tải về vị trí ban đầu. Khi này robot sẽ không được kẹp vật gì nên ta sẽ hiển
thị tool Gripper RobotiQ 85 Opened và ẩn tool Gripper RobotiQ 85 Closed.
 Chương trình Main

45
Hình 58: Chương trình MainProgram
-Đây là chương trình được dùng để thực hiện quá trình xử lý từ đầu đến cuối của robot.
Đầu tiên nó gọi chương trình con Init để khởi tạo lại trạng thái ban đầu của robot, sau đó
gọi chương trình con PickAndDrop để thực hiện hành động gắp và bỏ chai nước trên
băng tải của robot.

V. KẾT LUẬN
Sự ra đời của robot gắp thả chai nước, kết hợp với phần mềm roboDK, đánh dấu một
bước tiến đột phá cho ngành sản xuất nước giải khát. Công nghệ này mang đến giải pháp
tối ưu cho hiệu quả và năng suất hoạt động, góp phần nâng cao khả năng cạnh tranh và
phát triển bền vững cho doanh nghiệp.
Vai trò trung tâm của Robot:
 Nòng cốt tự động hóa: Robot đóng vai trò trung tâm trong hệ thống tự động hóa
dây chuyền sản xuất, đảm nhiệm các thao tác gắp thả chai nước với độ chính xác
và hiệu suất cao.
 Sức mạnh bền bỉ: Khả năng hoạt động liên tục 24/7 mà không cần nghỉ ngơi giúp
robot duy trì sản xuất ổn định, đáp ứng nhu cầu thị trường ngày càng tăng.
 Thao tác chính xác: Được điều khiển bởi phần mềm tiên tiến, robot thực hiện thao
tác gắp thả chai nước với độ chính xác cao, hạn chế tối đa sai sót và đảm bảo chất
lượng sản phẩm đồng nhất.
 An toàn cho lao động: Việc sử dụng robot giúp giảm thiểu sự tham gia của con
người vào các hoạt động nguy hiểm, góp phần nâng cao môi trường làm việc an
toàn và vệ sinh.
 Nâng cao hiệu quả: Robot giúp tăng năng suất hoạt động, giảm thiểu lãng phí
nguyên liệu và thời gian sản xuất, từ đó nâng cao hiệu quả kinh tế cho doanh
nghiệp.
Lợi ích toàn diện:
 Tiết kiệm chi phí: Việc sử dụng robot giúp giảm chi phí nhân công, chi phí bảo trì
sửa chữa và nâng cao hiệu quả sử dụng năng lượng, góp phần tiết kiệm chi phí sản
xuất cho doanh nghiệp.
 Nâng cao chất lượng: Robot đảm bảo thao tác gắp thả chai nước chính xác, đồng
nhất, hạn chế sản phẩm lỗi, từ đó nâng cao chất lượng sản phẩm.

46
 Mở rộng quy mô: Khả năng mở rộng linh hoạt của robot giúp doanh nghiệp dễ
dàng đáp ứng nhu cầu sản xuất tăng cao trong tương lai.
Robot gắp thả chai nước kết hợp phần mềm roboDK là giải pháp công nghệ tiên tiến,
mang lại lợi ích toàn diện cho ngành sản xuất nước giải khát. Việc ứng dụng công nghệ
này sẽ góp phần nâng cao hiệu quả, năng suất, chất lượng sản phẩm và tạo lợi thế cạnh
tranh cho doanh nghiệp. Doanh nghiệp cần chủ động đầu tư vào công nghệ này để bắt kịp
xu hướng phát triển và nâng tầm vị thế trong thị trường.

TÀI LIỆU THAM KHẢO


[1] Getting started. RoboDK. (n.d.). https://robodk.com/doc/en/Getting-Started.html

47

You might also like