56 DANH MỤC CÁC TỪ VIẾT TẮT PLC Programmable Logic ControllerRGB Red, Green và Blue Trang 15 Cuộc sống con người hiện nay cùng với sự phát triển mạnh của khoa học và kỹ thuật, chúng ta
TỔNG QUAN
Đặt vấn đề
Trong bối cảnh hiện nay, tự động hóa đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày, và robot đóng vai trò quan trọng trong nhiều ngành công nghiệp và đời sống con người Đặc biệt, sau đại dịch Covid-19, khi toàn thế giới đang đối mặt với những thách thức kinh tế, việc ứng dụng robot vào sản xuất và đời sống đã trở thành một giải pháp quan trọng để tăng cường hiệu quả và giảm thiểu chi phí.
Trong hơn 3-4 năm qua, nền kinh tế toàn cầu đã trải qua những biến động nặng nề do tình hình diễn ra trầm trọng Điều này đã tạo ra nhu cầu cấp thiết về việc áp dụng kỹ thuật robot tự động hóa, giúp đảm bảo an toàn cho nhân công, duy trì hoạt động liên tục và mang lại độ chính xác cao Với khả năng làm việc 24/24 với 100% năng suất, robot tự động hóa có thể hoạt động tự động, giảm thiểu sự can thiệp của con người, từ đó nâng cao hiệu quả sản xuất và đảm bảo tính ổn định cho nền kinh tế.
Các loại robot công nghiệp được ứng dụng rộng rãi trong nhiều lĩnh vực sản xuất, từ công việc nặng nhọc như cắt, gắp sản phẩm, sơn, đến những công việc yêu cầu độ chính xác cao và liên tục như robot Articulated, Delta và SCARA Trong số đó, robot Delta nổi bật với những ưu điểm vượt trội như trọng lượng nhẹ, kích thước nhỏ gọn, tốc độ nhanh, định vị chính xác và chi phí sản xuất thấp Nhờ đó, robot Delta đang trở thành lựa chọn hàng đầu trong nhiều dây chuyền sản xuất, bao gồm gắp và lắp ráp sản phẩm điện tử, phân loại và đóng gói thực phẩm, cũng như được ứng dụng trong lĩnh vực y học hiện đại.
Hình 1.1: Robot Delta ứng dụng trong dây chuyền sản xuất công nghiệp.
Mục tiêu đề tài
Thiết kế và thi công Robot Delta là một giải pháp hiện đại cho việc phân loại sản phẩm tự động Bằng cách kết hợp tính toán động học và lập trình điều khiển thông minh, Robot Delta có thể thực hiện các chuyển động chính xác và linh hoạt Ứng dụng xử lý ảnh cũng được tích hợp để xác định vị trí và phân loại sản phẩm dựa trên hình dạng và màu sắc, giúp tăng cường hiệu suất và độ chính xác trong quá trình sản xuất.
Phần mềm điều khiển Robot Delta được thiết kế với 2 chế độ hoạt động chính là Auto và Manual, cho phép người dùng dễ dàng điều khiển và giám sát quy trình làm việc của robot Mô hình này có khả năng phát hiện chính xác vị trí tọa độ của sản phẩm trên băng tải, sau đó tiến hành gắp và đặt sản phẩm vào ô phân loại một cách chính xác và hiệu quả Thông qua giao diện giám sát trên máy tính, toàn bộ quy trình thao tác sẽ trở nên dễ dàng và minh bạch hơn, giúp người dùng có thể theo dõi và điều chỉnh quy trình làm việc của robot một cách thuận tiện.
Phân loại sản phẩm với hiệu suất tối thiểu 15 sản phẩm/phút và tỷ lệ phân loại thành công trên 95% của toàn bộ sản phẩm được phân loại.
Đối tượng nghiên cứu
Trong đề tài này, các sản phẩm được thiết kế dưới dạng hình chữ nhật, hình tròn và hình tam giác với hai màu sắc chính là đỏ và xanh lá Quá trình nhận dạng và phân loại sản phẩm được thực hiện thông qua camera, xác định hình dạng, màu sắc và tọa độ của sản phẩm, sau đó gửi dữ liệu về máy tính Dữ liệu này sẽ được tính toán dựa trên phương trình động lực học để gửi thông tin điều khiển tới PLC, từ đó điều khiển robot di chuyển đến vị trí tọa độ đã tính toán và gắp sản phẩm để thả vào hộp phân loại tương ứng.
Phạm vi nghiên cứu đề tài
Nhóm nghiên cứu đã phát triển ứng dụng xử lý ảnh cho Robot Delta, cho phép phân loại sản phẩm dựa trên hình dạng và màu sắc Đồng thời, nhóm cũng cải tiến phần cứng để giảm thiểu nhiễu xạ ánh sáng trong quá trình xử lý ảnh Thông qua nghiên cứu về động học của Robot Delta, nhóm đã tối ưu hóa thuật toán để hệ thống phát hiện sản phẩm một cách chính xác và thực hiện các thao tác gắp - thả với tốc độ ổn định.
Giới thiệu nội dung
Phần còn lại của đề tài có nội dung như sau:
Chương 2: Cơ sở lý thuyết
Lý thuyết tính toán của phương trình động lực học thuận/nghịch robot đóng vai trò quan trọng trong việc mô phỏng và phân tích chuyển động của robot Phương trình động lực học thuận giúp xác định lực và mô-men tác động lên robot khi biết vị trí và vận tốc của nó, trong khi phương trình động lực học nghịch giúp xác định vị trí và vận tốc của robot khi biết lực và mô-men tác động lên nó Công nghệ xử lý ảnh cũng được ứng dụng rộng rãi trong đề tài này, cho phép phân tích và xử lý hình ảnh từ camera hoặc cảm biến để xác định vị trí và trạng thái của robot Việc kết hợp lý thuyết tính toán và công nghệ xử lý ảnh giúp tạo ra một hệ thống robot thông minh và chính xác, có thể tự động hóa các quy trình và thực hiện các nhiệm vụ phức tạp.
Chương 3: Thiết kế phần cứng
Để thiết kế hệ thống hiệu quả, cần trình bày rõ yêu cầu thiết kế của hệ thống, từ đó xác định các yêu cầu cụ thể về phần cứng Dựa trên các yêu cầu này, chúng ta có thể lựa chọn các thiết bị phù hợp với hệ thống, bao gồm cả phần cứng và phần mềm Cuối cùng, cần trình bày sơ đồ kết nối các thiết bị để đảm bảo hệ thống hoạt động trơn tru và hiệu quả.
Chương 4: Thuật toán điều khiển
Trình bày thuật toán và lưu đồ điều khiển robot và thiết kế giao diện giám sát quy trình trên màn hình máy tính , điều khiển robot Delta
Trình bày về những kết quả nhất định đã đạt được về phần cứng, phần mềm và kết quả thực nghiệm của mô hình
Chương 6: Kết luận và hướng phát triển
Dựa trên các tiêu chí yêu cầu đã đặt ra, đề tài đã giải quyết được một số vấn đề quan trọng và đạt được những kết quả đáng kể Tuy nhiên, để hoàn thiện thêm, đề tài cần được phát triển theo một số hướng tối ưu như mở rộng phạm vi nghiên cứu, tăng cường ứng dụng thực tiễn và cập nhật kiến thức mới.
CƠ SỞ LÝ THUYẾT
Yêu cầu của hệ thống
2.1.1 Phân loại sản phẩm theo hình dạng và màu sắc Đối với chế độ phân loại sản phẩm theo hình dạng và màu sắc, vật cần phân loại ở đây gồm những vật có hình vuông, tròn và tam giác và có màu đỏ và xanh lá
Để đảm bảo hệ thống hoạt động chính xác, cần phải phân loại hình dạng và màu sắc của vật một cách chính xác Điều này đòi hỏi việc ứng dụng các phương pháp xử lý ảnh vào hệ thống, cho phép tính toán và gửi tín hiệu chính xác đến robot.
Trên thị trường hiện nay có rất nhiều linh kiện được sử dụng trong giáo dục lẫn công nghiệp để phân loại sản phẩm, chẳng hạn như cần gạt ngang, cảm biến kết hợp cùng cần đẩy, máy gắp, Tuy nhiên, để đáp ứng đúng yêu cầu và tiêu chí đề ra, hệ thống phải có khả năng gắp sản phẩm một cách chắc chắn và nhanh nhẹn với tần suất liên tục, đồng thời phù hợp với kinh tế của sinh viên Vì vậy, chúng em đã lựa chọn linh kiện bơm hút chân không để hút sản phẩm và đưa vào vị trí được xác định trước đó, đảm bảo mô hình hệ thống phân loại liên tục và chính xác.
2.1.2 Tìm toạ độ của vật và tiến hành phân loại
Hệ thống này ứng dụng thuật toán xử lý ảnh kết hợp với camera để phân loại sản phẩm trên băng tải Khi sản phẩm được đặt lên băng tải, camera sẽ phát hiện hình dạng và màu sắc của nó Sau đó, hệ thống sẽ xác định vị trí chính xác của vật thể và gửi tọa độ về máy tính để tính toán động học và điều khiển robot gắp vật Để đảm bảo độ chính xác trong điều khiển vị trí, hệ thống cần áp dụng phương pháp điều khiển vị trí tự động.
Phương trình động lực học Robot Delta
2.2.1 Cấu tạo tổng quan Robot Delta
Hình 2.1: Cấu tạo cơ bản của Robot Delta
Cấu tạo của Robot Delta Hình 2.1 bao gồm:
- Bàn máy động E ( , , ) và bàn máy cố định F ( , , )
Ba khâu chủ động được thiết kế linh hoạt, liên kết với bàn máy cố định (Base platform) thông qua các khớp quay, cho phép thực hiện các chuyển động chính xác Các khâu này được dẫn động bởi 3 động cơ mạnh mẽ, được gắn cố định với bàn máy cố định F, đảm bảo sự ổn định và độ tin cậy trong quá trình hoạt động.
- Ba khâu bị động , , mỗi khâu là một cấu trúc hình bình hành
Tính chất hình học của các khâu hình bình hành khiến bàn máy động trở thành một vật rắn chuyển động tịnh tiến trong không gian, xác định bởi 3 bậc tự do tương ứng với 3 toạ độ.
2.2.2 Động học thuận Robot Delta
Từ các góc , , => Tọa độ ( , , ) của điểm
Hình 2.2: Mô hình động học Robot Delta
Quá trình chuyển đổi được thực hiện bằng cách di chuyển các tâm của các hình cầu từ các điểm ban đầu đến các điểm mới bằng cách sử dụng các vector chuyển tiếp tương ứng Sau khi hoàn thành quá trình này, tất cả ba hình cầu sẽ giao nhau tại một điểm chung, tạo ra một giao điểm mới như được thể hiện trong hình minh họa.
Hình 2.3: Mô hình động học Robot Delta
Để xác định tọa độ (x, y, z) của điểm, chúng ta cần giải quyết tập hợp ba phương trình (x - x1)^2 + (y - y1)^2 + (z - z1)^2 = r1^2, (x - x2)^2 + (y - y2)^2 + (z - z2)^2 = r2^2 và (x - x3)^2 + (y - y3)^2 + (z - z3)^2 = r3^2, nơi tọa độ các tâm hình cầu (x1, y1, z1), (x2, y2, z2) và (x3, y3, z3) cùng với bán kính r1, r2 và r3 đã biết.
Hình 2.4: Tọa độ các điểm , , trên mặt phẳng Oxy
Trong các phương trình sau đây ta sẽ chỉ định tọa độ của các điểm , , là ( , , ), ( , , ) và ( , , ) Lưu ý rằng = 0 Dưới đây là phương trình của ba hình cầu:
Cuối cùng, ta cần giải phương trình này và tìm z0 (nên chọn gốc phương trình âm nhỏ nhất) và sau đó tính và từ (2.14) và (2.15)
2.2.3 Động học nghịch Robot Delta
Phương trình động học nghịch của Robot Delta đóng vai trò quan trọng trong việc xác định góc quay của robot dựa trên tọa độ chính xác của vật Mô hình động học nghịch này được thể hiện rõ ràng trong Hình 2.5, cung cấp thông tin cần thiết để tính toán chính xác góc quay của robot.
Ta có các thông số đã được xác định khi thiết kế:
+ f: chiều dài cạnh của bệ cố định hình tam giác phía trên
+ e: chiều dài cạnh của bệ di động hình tam giác ở phía dưới
+ % , : chiều dài phần trên và dưới cánh tay robot
Do khớp nối của robot chỉ có thể xoay trong mặt phẳng YZ, tạo thành hình tròn với tâm tại điểm và bán kính %
Mô hình động học nghịch của Robot Delta được minh họa ở Hình 2.5, trong đó các khớp nối được gọi là khớp nối phổ quát, cho phép xoay tự do tương đối với nhau Điều này tạo thành hình cầu với tâm tại điểm và bán kính như thể hiện ở Hình 2.6.
Hình 2.6: Minh họa động học của cánh tay đòn robot
Giao điểm của hình cầu và mặt phẳng YZ là một đường tròn có tâm tại điểm và bán kính, trong đó là phép chiếu của điểm trên mặt phẳng YZ Điểm có thể được tìm thấy như là giao điểm của các đường tròn bán kính đã biết với tâm là và, và khi biết được thì ta có thể tính được góc.
Xét mặt phẳng YZ được biểu diễn như Hình 2.7 bên dưới:
Hình 2.7: Mặt phẳng YZ của mô hình động học nghịch Robot Delta
Phương trình toán học được suy ra từ hình 2.7:
Do khớp chỉ di chuyển trong mặt phẳng YZ, chúng ta có thể bỏ qua toạ độ X Tận dụng tính chất này cho việc tính toán các góc còn lại và sử dụng tính đối xứng của Robot Delta Bằng cách xoay hệ tọa độ trong mặt phẳng XY xung quanh trục Z một góc 120 độ theo hướng ngược chiều kim đồng hồ, chúng ta sẽ có khung tham chiếu mới X'Y'Z', giúp đơn giản hóa quá trình tính toán.
Hình 2.8: Quy đổi hệ toạ độ robot Delta
Với khung tham chiếu này chúng ta có thể tìm thấy góc bằng cách sử dụng cùng một thuật toán mà ta sử dụng tìm góc
Sự thay đổi duy nhất trong quá trình này là xác định toạ độ mới x'0 và y'0 cho điểm E0 Để thực hiện điều này, chúng ta có thể sử dụng "ma trận xoay" tương ứng, giúp đơn giản hóa quá trình tính toán và xác định toạ độ mới một cách chính xác.
Cuối cùng còn góc có thể được tìm tương tự như bằng cách xoay hệ trục toạ độ theo hướng chiều kim đồng hồ.
Tổng quan lý thuyết về các công nghệ xử lý ảnh
2.3.1 Các khái niệm trong xử lý ảnh
Xử lý ảnh kỹ thuật số là ngành học nghiên cứu các kỹ thuật xử lý ảnh, tập trung vào hình ảnh được thu thập từ cảm biến thị giác dạng ảnh tĩnh như webcam Về mặt toán học, hình ảnh được biểu diễn như một hàm liên tục của cường độ ánh sáng trên trường hai chiều Để có thể xử lý bằng máy tính, hình ảnh phải được chuyển đổi thành dạng số với các giá trị rời rạc Hình ảnh kỹ thuật số thường được biểu diễn bằng ma trận hai chiều f(x, y), bao gồm M cột và N hàng, cho phép máy tính thực hiện các thao tác xử lý và phân tích hình ảnh.
Một hình ảnh được định nghĩa là một hàm hai chiều, F(x, y), trong đó x và y là các tọa độ không gian và biên độ của F tại bất kỳ cặp tọa độ nào (x, y) thể hiện cường độ của hình ảnh đó tại điểm đó Khi các giá trị x, y và biên độ của F là hữu hạn, hình ảnh đó được gọi là ảnh số.
Nói cách khác, một hình ảnh có thể được xác định bởi một mảng hai chiều được sắp xếp cụ thể theo hàng và cột
Hình 2.9: Biểu diễn ảnh dưới dạng ma trận b Pixel
Quá trình số hóa ảnh chuyển đổi giá trị analog sang digital và lượng tử hóa về giá trị, khiến mắt thường không thể phân biệt được hai điểm kề nhau Trong quá trình này, khái niệm Picture Element (Pixel) được sử dụng để mô tả các phần tử ảnh cơ bản Một ảnh số được tạo thành từ tập hợp các Pixel, với mỗi Pixel bao gồm một cặp tọa độ x, y và giá trị màu tương ứng.
Một Pixel thường được biểu diễn bởi 1, 2, 8 hay 24 bit màu
Mức xám là kết quả của quá trình mã hóa cường độ sáng của mỗi điểm ảnh thành một giá trị số tương ứng, thông qua quá trình lượng tử hóa Trong đó, mã hóa 256 là mức phổ biến nhất do kỹ thuật, cho phép mỗi pixel được mã hóa bởi 8 bit, tạo nên hình ảnh với độ phân giải cao.
Ảnh màu là sự kết hợp của ba màu cơ bản: đỏ, lục và xanh dương, thường được thu nhận trên các dải băng tần khác nhau Mỗi màu được phân thành L cấp khác nhau, giúp tạo nên màu sắc đa dạng Để lưu trữ ảnh màu, người ta thường lưu trữ từng mặt màu riêng biệt, với mỗi màu được lưu như một ảnh đa cấp xám Điều này có nghĩa là không gian nhớ dành cho ảnh màu sẽ gấp 3 lần không gian nhớ dành cho ảnh xám cùng kích thước.
Hình 2.12: Ảnh theo mã màu RGB
Hình 2.13: Ảnh theo mã màu RGB e Ảnh đen trắng
Hình 2.14: Ảnh màu và ảnh đa mức xám
2.3.2 Các vấn đề cơ bản trong xử lý ảnh a Biểu diễn ảnh Ảnh có thể xem là một hàm 2 biến chứa các thông tin như biểu diễn của một ảnh Các mô
Ta có thể biểu diễn ảnh bằng hàm toán học, hoặc các ma trận điểm
Hình 2.15: Chuyển ảnh bằng ma trận điểm b Khôi phục ảnh
Mục đích: Khôi phục lại ảnh ban đầu, loại bỏ các biến dạng ra khỏi ảnh tùy theo nguyên nhân gây ra biến dạng c Biến đổi ảnh
Mục đích: Biến đổi thể hiện của ảnh dưới các góc nhìn khác nhau tiện cho việc xử lý, phân tích ảnh
Các phương pháp: Biến đổi Fourier, Sin, Cosin d Phân tích ảnh
Mục đích: Tìm ra các đặc trưng của ảnh, xây dựng quan hệ giữa chúng dựa vào các đặc trưng cục bộ
Các thao tác: Tìm biên, tách biên, làm mảnh đường biên, phân vùng ảnh, phân loại đối tượng
Các phương pháp: Phương pháp phát hiện biên cục bộ, dò biên theo quy hoạch động, phân vùng theo miền đồng nhất, phân vùng dựa theo đường biên
Hình 2.16: Minh họa tìm đường biên bằng bộ lọc Laplacian, Sobel e Ứng dụng
- Thông tin ảnh, truyền thông ảnh
- Xử lý ảnh vệ tinh, viễn thám
- Thiên văn, nghiên cứu không gian, vũ trụ
- Người máy, tự động hóa
- Máy thông minh, thị giác máy nhân tạo
- Giám sát kiểm soát, quân sự
2.3.3 Những vấn đề lý thuyết được sử dụng trong đề tài
Hue, Saturation và Value (HSV) là một phương pháp phân tích ảnh thành các thuộc tính màu, giúp biến đổi các màu cơ bản RGB thành các kích thước dễ hiểu hơn đối với con người Phương pháp này tương tự một mô hình màu hình trụ, trong đó các giá trị quan trọng bao gồm màu, độ bão hòa và độ sáng tối, giúp phân tích và hiểu rõ hơn về màu sắc trong ảnh.
H (Hue) xác định góc của màu trên vòng tròn màu RGB Màu 0° cho màu đỏ, 120° cho màu xanh lục và 240° cho màu xanh lam
Độ bão hòa (Saturation) là yếu tố quan trọng trong việc tạo ra màu sắc, với giá trị dao động từ 0 đến 1 Khi độ bão hòa đạt 100%, màu sắc sẽ trở nên tinh khiết và rực rỡ nhất có thể, ngược lại, độ bão hòa 0% sẽ chuyển màu sắc sang thang độ xám.
Giá trị V (Value) trong màu sắc thường dao động từ 0 đến 1, quyết định trực tiếp đến độ sáng của màu Khi giá trị V ở mức thấp nhất (0%), màu sẽ trở nên tối nhất, tương ứng với màu đen tuyền Ngược lại, khi giá trị V đạt mức cao nhất (1%), màu sẽ đạt độ sáng 100%, không còn lẫn màu đen, thể hiện sự thuần khiết của màu.
Vì luận văn sử dụng các frame ảnh mà mỗi pixel có độ sâu 8 bit (256) nên các giá trị H, S,
V sẽ quy đổi thành khoảng [0, 255] thay vì [0, 360] ở H và [0, 1] ở S, V
Sau đó ta sử dụng hàm InRange để chuyển ảnh sang ảnh nhị phân giúp dễ dàng tách vật mẫu ra khỏi background ảnh
2.3.3.2 Xử lý hình thái học (Morphology) a Phép toán giãn nở (Dilation)
Phép toán giãn nở (Dilation) là một hoạt động cơ bản trong hình thái toán học, cho phép thay đổi kích thước của đối tượng trong ảnh Khi áp dụng phép toán này, đối tượng ban đầu sẽ tăng lên về kích thước, tạo hiệu ứng giãn nở ra Đây là một kỹ thuật quan trọng trong việc xử lý hình ảnh và phân tích dữ liệu.
Hình 2.18: Mô tả phép giãn ảnh b Phép toán co (Erosion)
Phép toán co (Erosion) là một trong hai hoạt động cơ bản trong hình thái học, đóng vai trò quan trọng trong việc giảm kích thước của đối tượng, tách rời các đối tượng gần nhau và làm mảnh Ngoài ra, phép toán co còn giúp tìm xương của đối tượng, từ đó hỗ trợ phân tích và xử lý hình ảnh hiệu quả hơn.
Hình 2.19: Mô tả phép toán co
Trong quá trình xử lý ảnh, luận văn áp dụng phép co và giãn để loại bỏ nhiễu và cải thiện chất lượng hình ảnh Cụ thể, phép co sử dụng phần tử có kích thước 8x8 giúp phù hợp với kích thước vật mẫu và khung hình, từ đó dễ dàng tách vật ra khỏi background và giữa các vật với nhau Sau khi thực hiện phép co, phép giãn được áp dụng để đưa ảnh về đúng kích thước ban đầu, giúp loại bỏ phần lớn nhiễu và phần lồi lõm quanh đường bao của vật thể, đồng thời làm cho đường bao các đối tượng trong ảnh trở nên mượt mà hơn Quá trình này được thực hiện hai lần, bao gồm hai lần co ảnh và hai lần dãn ảnh, nhằm đạt được kết quả tối ưu.
Hình 2.20: Hình minh họa phép co dãn ảnh c Contours
Contour là đường cong khép kín nối các điểm liên tục trên đường viền bao, với các điểm trên đó có cùng giá trị màu và cường độ Công cụ này đóng vai trò quan trọng trong phân tích hình dáng, phát hiện đối tượng và nhận dạng Để tìm contour hiệu quả, vật thể cần có màu trắng nổi bật trên nền màu đen, giúp phân biệt rõ ràng giữa chúng.
Hình 2.21: Kết quả tìm Contours
Trong đề tài này, ảnh sau khi trải qua quá trình khử nhiễu và làm mịn đường sẽ được áp dụng hàm findContours để xác định các đường bao của vật mẫu trong ảnh nhị phân Hàm này sử dụng phương pháp RETR_CCOMP để tìm kiếm Contour, đồng thời số điểm bao sẽ được lấy ra dưới dạng chainApproxSimple, giúp tăng độ chính xác trong việc xác định đường bao của vật mẫu.
THIẾT KẾ PHẦN CỨNG
Nhận diện sản phẩm
Sản phẩm được đưa vào hệ thống thông qua băng tải di chuyển sẽ được cánh tay Robot gắp và thả ở vị trí chính xác được thiết kế sẵn Để thực hiện điều này, cần phải nhận diện hình dạng, màu sắc và tọa độ của sản phẩm một cách chính xác thông qua các ứng dụng, thuật toán và phương pháp xử lý ảnh Trong đề tài này, sản phẩm được sử dụng có hình dạng vuông, tròn và tam giác, với hai màu chính là đỏ và xanh lá cây, và có kích thước cụ thể là hình tròn đường kính 7cm, hình vuông cạnh 7cm, và hình tam giác đều cạnh 8cm.
Hình 3.1: Hình dạng, màu sắc của sản phẩm.
Tìm toạ độ chính xác của vật và tiến hành gắp sản phẩm
Quy trình xử lý ảnh sản phẩm được thực hiện thông qua việc nhận diện hình dạng và màu sắc bằng camera, sau đó xác định chính xác vị trí của sản phẩm, vẽ đường bao và xác định tọa độ tâm của sản phẩm Các giá trị tọa độ này sau đó được gửi về máy tính để tính toán động học và điều khiển robot gắp sản phẩm theo đúng vị trí đã xác định.
Yêu cầu thiết kế
3.2.1 Xác định mục tiêu thiết kế
Mục tiêu chính của đề tài là nhận diện và gắp các sản phẩm đang di chuyển trên băng chuyền, do đó yêu cầu đế chuyển động dưới của Robot Delta phải chuyển động song phẳng với đế cố định, đòi hỏi phương án thiết kế phải đáp ứng được số bậc tự do của cơ cấu là 3 bậc Điều này cho phép robot thực hiện chuyển động linh hoạt và chính xác Ngoài ra, để tăng cường khả năng gắp và thả sản phẩm, robot còn được gắn thêm một đầu hút vào chính giữa tâm đế dưới, giúp hút vật từ băng tải và thả vào vị trí theo mong muốn một cách dễ dàng và hiệu quả.
3.2.2 Lập phương án thiết kế Đề tài chọn kết cấu sơ đồ động học như Hình 3.2 để thiết kế Đây là loại sơ đồ động học giống với nguyên bản ban đầu của loại Robot Delta nhất với các động cơ quay gắn trực tiếp với các cơ cấu hình bình hành Với những ưu điểm vượt trội như độ cứng vững cao, khả năng thay đổi vị trí và định hướng linh hoạt, độ chính xác và ổn định cao nên cấu hình của Robot Delta này phù hợp với việc gắp sản phẩm trên băng chuyền và sắp xếp vào hộp với tọa độ được thiết kế sẵn Với cấu trúc robot đã được lựa chọn như trên thì cần tới ba động cơ bước để tạo ra chuyển động quay cho các cánh tay robot phía trên cùng
Hình 3.2: Kết cấu của Robot Delta 3 bậc tự do
Cánh tay robot được thiết kế độc đáo với 3 nhánh đôi, mỗi nhánh được truyền động bởi một động cơ riêng biệt Được chế tạo từ vật liệu nhựa và sợi carbon, cánh tay robot sở hữu ưu điểm nổi bật về khối lượng nhỏ, dễ gia công chính xác và mang lại độ thẩm mỹ cao Ngoài ra, vật liệu này cũng không bị ăn mòn hay oxy hóa do tác động của môi trường làm việc, đồng thời không có từ tính, giúp tránh gây nhiễu loạn hoạt động của các thiết bị điện tử xung quanh.
Hình 3.3: Bản vẽ của Robot Delta.
Lựa chọn thiết bị
3.3.1 Lựa chọn các thiết bị và tiến hành thi công mô hình
Bảng 3.1: Danh sách các linh kiện thi công mô hình
Tên linh kiện Thông số kỹ thuật Số lượng
Delta + 3 thanh carbon mắt trâu
2 Step motor Điện áp: 2.75VDC
TB6600 Điện áp: 12VDC Dòng điện: 2A
4 Bơm chân không Điện áp: 24VDC 1
5 Van khí Điện áp 24VDC 1
6 Nút hút chân không Đường kính: 2cm 1
7 Công tắc hành trình KW11 Áp định mức 24VDC Dòng định mức 2A
8 Băng tải Chiều dài 60cm
1 Mặt băng tải màu trắng
9 Động cơ quay băng tải ZGB37R-
Trọng lượng 226g Tại 12V tốc độ 11.5rpm
1 Sử dụng đèn ánh sáng trắng a Thông số cánh tay robot
Các thành phần chính của Robot Delta được thiết kế với các thông số sau:
- Chiều dài bệ cố định hình tam giác phía trên: f = 75mm
- Khoảng cách từ trục động cơ đến cánh tay đòn: % = 80mm
- Độ dài cánh tay đòn (phần cánh tay dưới): = 235mm
- Chiều dài cạnh bệ di động hình tam giác phía dưới chuyển động: e = 20mm b Động cơ bước và driver điều khiển động cơ bước
Robot Delta yêu cầu ba động cơ để tạo chuyển động quay chính xác cho các cánh tay, đòi hỏi độ chính xác tuyệt đối theo góc quay đã được đặt trước Để đáp ứng yêu cầu này, có hai lựa chọn động cơ phổ biến: động cơ bước và động cơ servo Động cơ bước cung cấp mô men xoắn lớn ở dải vận tốc trung bình và thấp, nhưng có nhược điểm là dễ bị trượt bước khi quá tải, gây ra sai lệch trong điều khiển và tạo ra nhiều nhiễu và rung động Ngược lại, động cơ servo tích hợp bộ encoder phản hồi tín hiệu, giúp chống trượt bước và đạt độ chính xác gần như tuyệt đối, đồng thời có thể hoạt động ở tốc độ cao hơn động cơ bước, nhưng lại có giá thành cao hơn đáng kể.
Động cơ bước là lựa chọn phù hợp cho hệ thống yêu cầu tải nhỏ và tốc độ phân loại không cần quá nhanh, đồng thời đảm bảo chi phí đầu tư vừa phải, đáp ứng được các yêu cầu của hệ thống một cách hiệu quả.
Hình 3 4: Động cơ bước điều khiển cánh tay robot
Chọn động cơ để điều khiển cánh tay robot là động cơ bước mã hiệu:
ZB17BBK-200 như Hình 3.4 gồm các thông số:
Để điều khiển động cơ bước, mô men quán tính rotor Jo là 36,10E-7 Kg, cần sử dụng thêm driver điều khiển động cơ bước TB6600 Driver này tích hợp IC TB6600HQ/HG, cho phép điều khiển các loại động cơ bước 2 pha hoặc 4 dây với dòng tải lên đến 4A/42VDC, tạo điều kiện thuận lợi cho PLC phát xung điều khiển động cơ bước một cách chính xác và hiệu quả.
Hình 3.5: Driver điều khiển động cơ bước TB6600
Cài đặt và ghép nối:
- DC + : Nối với nguồn điện từ 9 – 40VDC
- DC - : Điện áp (-) âm của nguồn
- A + và A - : Nối vào cặp cuộn dây của động cơ bước
- B + và B - : Nối với cặp cuộn dây còn lại của động cơ
- PUL + : Tín hiệu cấp xung điều khiển tốc độ cho M6600
- PUL - : Tín hiệu cấp xung điều khiển tốc độ cho M6600
- DIR + : Tín hiệu cấp xung đảo chiều cho M6600
- DIR - : Tín hiệu cấp xung đảo chiều (-) cho M6600
- ENA + và ENA - : khi cấp tín hiệu cho cặp này động cơ sẽ không có lực momen giữ và quay nữa
Có thể đấu tín hiệu dương (+) chung hoặc tín hiệu âm (-) chung để khi khởi động hoặc reset robot, các cánh tay của nó tự động thu về vị trí an toàn cho đến khi chạm công tắc hành trình và dừng lại, từ đó xác định vị trí Home.
Công tắc hành trình là lựa chọn phổ biến trong các dự án vừa và nhỏ nhờ vào giá thành hợp lý, độ bền cao và sự đa dạng về kích thước Điều này giúp công tắc hành trình đáp ứng được nhiều nhu cầu khác nhau của người dùng, đặc biệt là sinh viên Với những ưu điểm vượt trội, công tắc hành trình đã trở thành một phần không thể thiếu trong nhiều ứng dụng thực tế, như minh họa trong Hình 3.6.
Nguyên lý hoạt động của công tắc hành trình:
Công tắc hành trình là thiết bị điện được sử dụng để đóng cắt mạch điện, hoạt động dựa trên nguyên tắc chuyển đổi tín hiệu va chạm cơ khí thành tín hiệu điện Công tắc này có chức năng tương tự như nút nhấn bằng tay, nhưng thay vì sử dụng lực nhấn tay, nó tận dụng va chạm của các bộ phận cơ khí để thực hiện việc đóng cắt mạch điện.
Hình 3.6: Công tắc hành trình KW11 d Động cơ băng tải và bơm hút vật
Khi Robot Delta di chuyển đến vị trí của vật để gắp, nó cần một lực hút để bám chặt lấy vật Để đáp ứng yêu cầu này, máy bơm hút chân không Micro 12V – 24V được sử dụng, mang lại độ yên tĩnh tương đối Tuy nhiên, máy bơm hút này có khối lượng hơi nặng và kích cỡ hơi cồng kềnh, đòi hỏi thiết kế hộp đựng máy bơm và các dây nối đi kèm.
Hình 3.7: Bơm hút chân không Micro 24V
Thông số của máy bơm hút:
- Điện áp định mức: DC24V
- Lực hút tối đa: ~50KPa
- Lưu lượng: > 13,0 l/phút, tiếng ồn: MIN && area < MAX && ((approx.Size == hinh) | (approx.Size >= 5
{ int x = (int)(moments.M10 / moments.M00); x1 = x.ToString("D2"); y1 = y.ToString("D2"); td = x1 + "," + y1;
CvInvoke.DrawContours(img, contours, i, new MCvScalar(0, 0, 255), 3);
CvInvoke.Circle(img, new Point(x, y), 2, new MCvScalar(0, 0, 255), 2);
CvInvoke.PutText(img, td, new Point(x, y),
Emgu.CV.CvEnum.FontFace.HersheySimplex, 0.5, new MCvScalar(0, 0, 255), 2);
CvInvoke.PutText(img, "RED OBJECT", new Point(x + 15, y - 15),
Emgu.CV.CvEnum.FontFace.HersheySimplex, 0.5, new MCvScalar(0, 0, 255), 2);
//sap xep lai theo chieu den noi truoc for (int l = 0; l < 10; l++)
{ int tam; tam = x2[l]; x2[l] = x2[k]; x2[k] = tam; int tam2; tam2 = y2[l]; y2[l] = y2[k]; y2[k] = tam2;
CvInvoke.FindContours(temp1, contours3, n3, Emgu.CV.CvEnum.RetrType.Ccomp, Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple); for (int i = 0; i < contours3.Size; i++)
{ double pemir = CvInvoke.ArcLength(contours3[i], true);
CvInvoke.ApproxPolyDP(contours3[i], approx, 0.03 * pemir, true);
//lay trong tam var moments3 = CvInvoke.Moments(contours3[i]); double area = moments3.M00; if (area > MIN && area < MAX && ((approx.Size == hinh) | (approx.Size >= 5
{ int x = (int)(moments3.M10 / moments3.M00); int y = (int)(moments3.M01 / moments3.M00); if (x != 0 && x > 200)
CvInvoke.DrawContours(img, contours3, i, new MCvScalar(0, 255, 0), 3); CvInvoke.Circle(img, new Point(x, y), 2, new MCvScalar(0, 255, 0), 2);
CvInvoke.PutText(img, td, new Point(x, y),
Emgu.CV.CvEnum.FontFace.HersheySimplex, 0.5, new MCvScalar(0, 255, 0), 2);
CvInvoke.PutText(img, "GREEN OBJECT", new Point(x + 15, y - 15),
Emgu.CV.CvEnum.FontFace.HersheySimplex, 0.5, new MCvScalar(0, 255, 0), 2);
//sap xep lai theo chieu den noi truoc for (int l = 0; l < 10; l++)
{ int tam; tam = x4[l]; x4[l] = x4[k]; x4[k] = tam; int tam2; tam2 = y4[l]; y4[l] = y4[k]; y4[k] = tam2;
//hien thi pictureBox2.Image = temp.Bitmap; pictureBox3.Image = temp1.Bitmap; pictureBox1.Image = img.Bitmap; if (y2[0] == 0 && y4[0] == 0 && y6[0] == 0)
{ label_color.Text = "Nearest Object: "; label_modecolor.Text = "MODE COLOUR: ";
{ label_color.Text = "Nearest Object: " + Colour1; label_modecolor.Text = "Mode Colour: " + Colour.ToString();
{ x3 = Math.Round(X * X2_X1 + 0 + Xlech, 2).ToString(); y3 = Math.Round(-Y * Y2_Y1 - 0 - Ylech - lechdc, 2).ToString(); txbXPresent.Text = X.ToString(); txbYPresent.Text = Y.ToString();
//set Box if (dang_gap == false)
{ if (Colour == 1) { T1 = TR1; T2 = TR2; T3 = TR3; } if (Colour == 2) { T1 = TB1; T2 = TB2; T3 = TB3; } if (Colour == 3) { T1 = TG1; T2 = TG2; T3 = TG3; }
} if (am == true && dang_gap == false)
{ txtX.Text = x3; txtY.Text = y3; txbXX.Text = x3;
Chương trình điều khiển Delta Robot tự động gắp vật:
Int16 xx = 8; private void timer10_Tick(object sender, EventArgs e)
{ if (counter == 0) { dang_gap = true; toichovat(); zz = 8; } if (counter == 10) { gapvat(); } if (counter == 10 +8)
{ nhacvatlen(); if (T1 == TG1) { zz = 8; } if (T1 == TR1) { zz = 9; }
When the counter reaches a specific value, a series of actions are triggered in a sequential manner Initially, when the counter equals 10 plus 3 plus 12, the toichothavat function is executed Next, when the counter equals 10 plus 3 plus 4 plus zz, the thavat function is triggered The OpenValve function is then activated when the counter equals 10 plus 3 plus 4 plus zz plus xx plus 6 After the object has been released, the vevitricu function is executed and the CloseValve function is triggered when the counter equals 10 plus 3 plus 4 plus zz plus xx plus 6 plus 1 Finally, when the counter equals 10 plus 3 plus 4 plus zz plus xx plus 6 plus 1 plus 4, the dang_gap variable is set to false, a is set to true, the timer10 is stopped, and the counter is reset to 0.
ConnectedGroup.SyncWrite(ItemCount, ref ItemServerHandles, ref WriteItems, out ItemServerErrors);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
ConnectedGroup.SyncWrite(ItemCount, ref ItemServerHandles, ref WriteItems, out ItemServerErrors);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
{ double zn = Convert.ToDouble(Znangvat); txtZ.Text = Convert.ToString(zn);
XYZtoTheta(); while (Convert.ToDouble(txbTheta1.Text) < ho1 |
Convert.ToDouble(txbTheta2.Text) < ho2 | Convert.ToDouble(txbTheta3.Text) < ho3) { zn ; txtZ.Text = Convert.ToString(zn);
//Znangvat = "-212"; textBox17.Text = txtZ.Text; try
ConnectedGroup.SyncWrite(ItemCount, ref ItemServerHandles, ref WriteItems, out ItemServerErrors);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
ConnectedGroup.SyncWrite(ItemCount, ref ItemServerHandles, ref WriteItems, out ItemServerErrors);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
ConnectedGroup.SyncWrite(ItemCount, ref ItemServerHandles, ref WriteItems, out ItemServerErrors);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
{ txtX.Text = textBox3.Text; txtY.Text = textBox6.Text; txtZ.Text = textBox8.Text; try
ConnectedGroup.SyncWrite(ItemCount, ref ItemServerHandles, ref WriteItems, out ItemServerErrors);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
{ txtX.Text = textBox9.Text; txtY.Text = textBox10.Text; txtZ.Text = textBox11.Text; try
ConnectedGroup.SyncWrite(ItemCount, ref ItemServerHandles, ref WriteItems, out ItemServerErrors);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
ConnectedGroup.SyncWrite(ItemCount, ref ItemServerHandles, ref WriteItems, out ItemServerErrors);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
ConnectedGroup.SyncWrite(ItemCount, ref ItemServerHandles, ref WriteItems, out ItemServerErrors);
} catch (Exception ex) { MessageBox.Show(ex.ToString()); }
2 Chương trình PLC trong TIA Portal: