Tóm tắt Đề tài nhóm đã chọn là “Thiết kế và điều khiển cánh tay robot phân loại sản phẩm”, mục đích của đề tài là thiết kế và thi công mô hình cánh tay robot 4 bậc tự do ứng dụng xử lý ả
Tổng quan
Đặt vấn đề
Sự phát triển của nền công nghiệp đã trải qua nhiều giai đoạn quan trọng, từ cuộc cách mạng công nghiệp lần thứ nhất với sự ra đời của máy hơi nước, đến cuộc cách mạng công nghiệp lần thứ tư với sự xuất hiện của công nghệ số và tự động hóa Trong mỗi giai đoạn, việc cải tiến công nghệ và quy trình sản xuất luôn đóng vai trò then chốt trong việc nâng cao hiệu quả và năng suất Đặc biệt, với sự bùng nổ của công nghệ thông tin và viễn thông, nền công nghiệp hiện đại ngày nay đang chuyển đổi mạnh mẽ sang mô hình sản xuất thông minh, nơi mà robot giữ một vai trò không thể thiếu
Hình 1.1 Cánh tay robot trong công nghiệp
Cánh tay robot có thiết kế tương tự như cánh tay con người, với nhiều khớp nối và khả năng chuyển động linh hoạt, cho phép chúng thực hiện các tác vụ phức tạp và đòi hỏi độ chính xác cao Robot trở nên cần thiết bởi khả năng tăng cường hiệu quả sản xuất và giảm chi phí lao động Trước hết, robot có thể thực hiện các công việc lặp đi lặp lại với độ chính xác cao, giúp tăng năng suất và giảm thiểu sai sót Điều này đặc biệt quan trọng trong các ngành sản xuất đòi hỏi độ chính xác cao như điện tử, ô tô, và hàng không Thứ hai, sử dụng robot công nghiệp giúp giảm thiểu rủi ro cho con người khi phải làm việc trong các môi trường nguy hiểm như nhà máy hóa chất, hầm mỏ, hoặc những nơi có nhiệt độ cao Điều này không chỉ bảo vệ sức khỏe và an toàn của người lao động mà còn giảm thiểu chi phí liên quan đến tai nạn lao động
Ngoài ra, robot còn giúp các doanh nghiệp linh hoạt hơn trong việc điều chỉnh quy trình sản xuất để đáp ứng nhu cầu thị trường thay đổi nhanh chóng Khả năng lập trình và tái cấu hình của robot cho phép các nhà máy dễ dàng chuyển đổi giữa các dòng sản phẩm mà không cần thay đổi cơ sở hạ tầng lớn Hơn nữa, với sự phát triển của công nghệ, robot ngày càng trở nên thông minh mở ra nhiều cơ hội mới trong việc tối ưu hóa sản xuất và quản lý chuỗi cung ứng
Hình 1.2 Biểu đồ mật độ sử dụng robot từ năm 2017 đến năm 2022
Cánh tay robot được ứng dụng rộng rãi trong nhiều lĩnh vực công nghiệp nhờ khả năng linh hoạt, chính xác và hiệu quả Đây là một số ứng dụng phổ biến của cánh tay robot: Lắp ráp các linh kiện và bộ phận trong các sản phẩm như điện tử, ô tô, và đồ gia dụng Thực hiện các công việc hàn trong ngành công nghiệp ô tô và chế tạo kim loại, đảm bảo mối hàn chất lượng cao và đồng nhất Được sử dụng để sơn các sản phẩm với độ phủ đồng đều và chất lượng bề mặt cao, thường thấy trong ngành sản xuất ô tô và đồ nội thất Nhờ vào sự linh hoạt và độ chính xác cao, cánh tay robot có thể thực hiện việc phân loại sản phẩm nhanh chóng và hiệu quả
Hình 1.3 Ứng dụng cánh tay robot trong dây chuyền lắp ráp
Với nhiều ưu điểm, ứng dụng vượt trội của cánh tay robot giúp cải thiện năng suất, tiết kiệm chi phí và tính cấp thiết của hệ thống robot giúp thay thế con người trong phân loại sản phẩm nên nhóm đã thực hiền đề tài “Thiết kế và điều khiển cánh tay robot phân loại sản phẩm”.
Mục tiêu đề tài
Mục tiêu đề tài là thiết kế, thi công và điều khiển mô hình cánh tay robot 4 bậc tự do
Xây dựng giao diện điều khiển trực quan, dễ dàng vận hành, có khả năng giao tiếp với PLC để điều khiển hệ thống
Hệ thống nhận dạng và phân loại sản phẩm theo hình dạng khác nhau (hình tròn, tam giác, lục giác, hình vuông) với độ chính xác trên 90%
Băng tải vận chuyển sản phẩm liên tục không dừng lại khi robot gắp vật, có thể điều chỉnh tốc độ băng tải khi robot đang hoạt động
Tốc độ phân loại sản phẩm từ 10 đến 15 sản phẩm/phút.
Giới hạn đề tài
Vật liệu sử dụng chủ yếu cho robot là nhựa in 3D có thể hút các vật có khối lượng nhỏ hơn 300g, có bề mặt nhẵn
Chương trình xử lý ảnh chỉ hoạt động chính xác trong điều kiện ánh sáng ổn định, khi hoạt động trong môi trường ngoài trời hay thiếu ánh sáng tỉ lệ chính xác sẽ giảm
Hệ thống chỉ có thể nhận dạng và phân loại các sản phẩm có hình dạng và màu sắc được quy định từ trước, diện tích phải lớn hơn 7cm 2 và nhỏ hơn 50cm 2
Tốc độ băng tải nhỏ hơn 110mm/s
Hệ thống chỉ hoạt động trong môi trường không có vật cản.
Phương pháp nghiên cứu
Dựa trên các mẫu cánh tay robot trên thị trường, nhóm đã thực hiện thay đổi cấu trúc từ 6 bậc tự do còn 4 bậc tự do và thay đổi vật liệu thành nhựa in 3D, gia công nhôm những phần chịu lực nhiều giúp giảm chi phí, phù hợp với mục đích đặt ra
Dùng phần mềm Solidworks để thiết kế, tính toán công suất động cơ, tỉ lệ truyền cho từng khâu của robot
Tính toán, mô phỏng động học robot trên phần mềm Matlab
Chạy thực nghiệm với nhiều điều kiện và môi trường khác nhau để đánh giá và hiệu chỉnh hệ thống.
Nội dung của đề tài
Phần còn lại của đề tài có nội dung như sau:
Chương 2 Cơ sở lý thuyết: chương 2 trình bày lý thuyết các bước xử lý ảnh trong đề tài, lý thuyết tính toán về động học robot Giải thích về khái niệm và cơ chế của Conveyor Tracking
Chương 3 Thiết kế phần cứng: chương 3 sẽ đưa ra yêu cầu thiết kế của phần cứng, từ những yêu cầu đó ta sẽ tính toán và lựa chọn thiết bị sử dụng cho hệ thống Trình bày và giải thích sơ đồ khối của hệ thống, đưa ra sơ đồ nối dây của các thiết bị
Chương 4 Thiết kế phần mềm: chương 4 sẽ tính toán động học của robot Trình bày các giải thuật xử lý ảnh, giải thuật điều khiển robot và hệ thống Giải thích các chức năng của giao diện người dùng
Chương 5 Kết quả thực nghiệm: chương 5 sẽ trình bày kết quả xây dựng mô hình, trình bày phương pháp và kết quả của từng trường hợp thực nghiệm Từ kết quả thực nghiệm ta sẽ kiểm chứng động học robot, tính chính xác của hệ thống ở các điều kiện khác nhau
Chương 6 Kết luận và hướng phát triển: chương 6 trình bày những kết quả đã đạt được dựa trên mục tiêu đã đặt ra ban đầu Kết luận những ưu điểm, nhược điểm còn chưa khắc phục được từ đó nêu ra các phương án giải quyết và hướng phát triển của đề tài.
Cơ sở lý thuyết
Bài toán động học robot
Động học robot là lĩnh vực nghiên cứu về chuyển động của robot mà không xét đến các lực và mô-men gây ra chuyển động đó Động học tập trung vào mối quan hệ hình học giữa các khớp của robot và vị trí, hướng của đầu cuối Nó tập trung vào việc xác định vị trí của robot trong không gian ba chiều Đây là nền tảng quan trọng để hiểu và điều khiển các hệ thống robot trong các ứng dụng công nghiệp Động học robot được chia thành hai phần chính: động học thuận (forward kinematics) và động học nghịch (inverse kinematics)
2.1.1 Lý thuyết động học thuận Động học thuận liên quan đến việc xác định vị trí và hướng của đầu cuối (end effector) của robot khi biết các giá trị biến khớp Để tính toán vị trí và hướng từ tập hợp các giá trị biến khớp thì các tham số của bảng Denavit-Hartenberg(DH) phải được biết Để tính toán động học thuận cho robot sử dụng phương pháp Denavit- Hartenberg ta cần thực hiện các bước sau:
• Bước 1: Đặt trục cho robot
• Bước 2: Xác định các thông số của bảng DH
• Bước 3: Tính các ma trận chuyển đổi liền kề
• Bước 4: Tính toán ma trận chuyển đổi giữa góc tọa độ và cơ cấu chấp hành
Bảng 2.1 Bảng tham số DH i a d
Các tham số của bảng D-H lần lượt là:
• i : góc giữa z i và z i + 1 quay xung quanh trục x i
• a i : khoảng cách giữa z i và z i + 1 dọc theo x i
• i : góc giữa x i − 1 và x i quay xung quanh trụcz i
• d i : khoảng cách giữa x i − 1 và x i dọc theoz i
Hình 2.1 Mô hình hóa khâu và khớp theo DH
Công thức xác định ma trận chuyển đổi hệ trục {i} từ hệ trục {i-1}:
Công thức xác định ma trận chuyển đổi hệ trục {i} từ hệ trục {0} được tính bằng cách nhân ma trận chuyển đổi giữa các khâu lại với nhau:
2.1.2 Lý thuyết động học nghịch Động học nghịch liên quan đến việc xác định các giá trị khớp cần thiết để đạt được một vị trí và hướng cụ thể của đầu cuối Đây là một bài toán phức tạp hơn vì có thể có nhiều hoặc không có lời giải Sự phức tạp của bài toán phụ thuộc vào cấu trúc của robot, khi số bậc tự do của robot tăng thì sự phức tạp cũng tăng lên
Các phương pháp thường được dùng để giải bài toán động học nghịch là:
• Phương pháp kết hợp hình học và đại số.
Tổng quan lý thuyết về xử lý ảnh
2.2.1 Các khái niệm cơ bản trong xử lý ảnh Điểm ảnh Điểm ảnh (pixel) là một khái niệm cơ bản trong đồ họa máy tính và công nghệ hình ảnh kỹ thuật số, nó đại diện cho đơn vị nhỏ nhất của một hình ảnh số Một hình ảnh số được tạo thành từ nhiều điểm ảnh xếp cạnh nhau Mỗi điểm ảnh có một màu sắc và độ sáng riêng biệt, và sự kết hợp của tất cả các điểm ảnh này tạo ra toàn bộ hình ảnh
Hình 2.2 Minh họa điểm ảnh Độ phân giải của một hình ảnh hoặc màn hình là số lượng điểm ảnh theo chiều ngang và chiều dọc Ví dụ, một hình ảnh có độ phân giải 1920x1080 có 1920 điểm ảnh theo chiều ngang và 1080 điểm ảnh theo chiều dọc, độ phân giải càng cao thì hình ảnh càng chi tiết Điểm ảnh là nền tảng của tất cả các công nghệ liên quan đến hình ảnh và đồ họa kỹ thuật số Hiểu về điểm ảnh giúp chúng ta hiểu rõ hơn về cách hình ảnh được tạo ra, hiển thị và xử lý trên các thiết bị kỹ thuật số Ảnh số
Một hình ảnh kỹ thuật số thực sự là một tập hợp các pixel được sắp xếp một cách có tổ chức Mỗi pixel trong hình ảnh này đại diện cho một mẫu thông tin nhỏ về màu sắc và độ sáng Bằng cách kết hợp các pixel này lại với nhau, chúng ta tạo ra hình ảnh tổng thể Số lượng pixel trong một hình ảnh quyết định độ phân giải của nó Độ phân giải càng cao, có nghĩa là có nhiều pixel hơn, dẫn đến hình ảnh có chi tiết và sắc nét hơn
Hình ảnh thường được biểu diễn trong không gian 2 chiều với trục x (chiều ngang) và trục y (chiều dọc) Tọa độ của mỗi pixel được xác định bằng cách đếm số pixel từ một điểm tham chiếu, thường là góc trên cùng bên trái của hình ảnh Ví dụ trong một hình ảnh có độ phân giải 800x600 pixels, tọa độ của pixel ở góc trên cùng bên trái là (0,0), còn pixel ở góc dưới cùng bên phải là (799,599)
Hệ màu RGB (Red, Green, Blue) là một hệ màu sử dụng trong đồ họa máy tính, nơi mà màu sắc được biểu diễn bằng cách kết hợp các thành phần màu đỏ, xanh lá cây và xanh dương theo tỉ lệ nhất định Mỗi màu trong hệ RGB có thể được biểu diễn bằng một số nguyên từ 0 đến 255 Hệ màu RGB cung cấp một phương tiện hiệu quả để biểu diễn và điều chỉnh màu sắc trong các hình ảnh số
Màu sắc của một điểm ảnh trong hệ RGB được xác định bằng cách kết hợp các giá trị của ba thành phần màu (R, G, B) lại với nhau, bằng cách kết hợp các thành phần màu này theo tỉ lệ khác nhau, chúng ta có thể tạo ra một loạt các màu sắc khác nhau Khi tất cả các thành phần màu (R, G, B) có cùng giá trị tối đa (255), chúng ta có màu trắng, khi tất cả các thành phần màu (R, G, B) có giá trị tối thiểu (0), chúng ta có màu đen
Hình 2.3 Hệ màu RGB Ảnh mức xám Ảnh mức xám, hay còn được gọi là ảnh trắng đen, là một loại hình ảnh trong đó mỗi pixel chỉ chứa thông tin về độ sáng, không chứa thông tin về màu sắc Trong ảnh mức xám, mỗi pixel được biểu diễn bằng một giá trị độ sáng duy nhất, thường từ
0 đến 255 trong hệ màu RGB, trong đó 0 biểu diễn màu đen và 255 biểu diễn màu trắng
Một số phương pháp thường dùng để chuyển ảnh màu thành ảnh mức xám:
Dựa theo công thức sau:
Dựa theo công thức sau:gray=0.299 *R+0.587 *G+0.114 *B
Dựa theo công thức sau: max( , , ) min( , , )
R G B R G B gray= + Ảnh nhị phân Ảnh nhị phân là loại hình ảnh trong đó mỗi pixel chỉ có thể có một trong hai giá trị: đen hoặc trắng (0 hoặc 1) Thông thường, quy ước là giá trị 0 được sử dụng để biểu diễn màu đen và giá trị 1 được sử dụng để biểu diễn màu trắng Để chuyển đổi ảnh màu sang ảnh nhị phân ta sử dụng ngưỡng (threshold) để quyết định xem mỗi pixel có nên được coi là đen hay trắng Nếu giá trị pixel tại điểm đang xét bé hơn threshold thì giá trị pixel tại đó được gán bằng 0 ngược lại được gán bằng 1
Hình 2.5 Ảnh nhị phân 2.2.2 Những lý thuyết được sử dụng trong đề tài
Không gian màu HSV (Hue, Saturation, Value) là một phương pháp biểu diễn màu sắc dựa trên ba thành phần chính: Hue, Saturation và Value Trong không gian màu HSV, mỗi màu được biểu diễn dưới dạng một điểm trong không gian ba chiều Các thành phần của không gian màu HSV:
Hue (Màu sắc): Hue đại diện cho màu sắc chính của một điểm trong không gian màu Được biểu diễn bằng một giá trị góc trong đơn vị độ, thường từ 0 đến 360
Saturation (Độ bão hòa): Saturation đo lường độ bão hòa của màu sắc, thường từ 0 đến 100% Một giá trị saturation cao sẽ tạo ra màu sắc rực rỡ, trong khi một giá trị saturation thấp sẽ tạo ra màu sắc mờ nhạt
Value (Giá trị độ sáng): Value đo lường độ sáng hoặc độ tối của màu sắc Được biểu diễn từ 0 đến 100% Giá trị value càng cao, màu sẽ càng sáng và ngược lại
Hình 2.6 Không gian màu HSV
Phép toán giãn nở (Dilation)
Phép toán giãn nở là một phép toán tiền xử lý thường được sử dụng để mở rộng hoặc nới lỏng các vùng đối tượng trong ảnh Mục tiêu của phép toán này là làm tăng kích thước của các vùng đối tượng bằng cách thêm các pixel vào vùng đó dựa trên các cấu trúc cơ bản như hình chữ nhật hoặc hình tròn
Trước tiên, một cấu trúc (structuring element) cần được xác định Cấu trúc này thường là một ma trận nhỏ có kích thước lẻ, chẳng hạn như hình chữ nhật hoặc hình tròn, và chứa các giá trị 0 và 1, thường được gọi là kernel Sau đó, kernel này được trượt qua toàn bộ ảnh Ở mỗi vị trí, kernel được đặt lên ảnh sao cho trung tâm của kernel nằm trên mỗi pixel của ảnh Tại mỗi vị trí, phép toán AND giữa kernel và phần tương ứng của ảnh được thực hiện Nếu kết quả là 1 pixel tương ứng trong ảnh khi giãn nở sẽ được đặt thành 1
Kết quả của phép toán giãn nở là một ảnh mới có các vùng đối tượng đã được mở rộng hoặc nới lỏng Các vùng này thường lớn hơn so với ảnh gốc
Ta minh họa phép cho phép toán giãn nở như sau:
• I O là ma trận ban đầu
• I D là ma trận sau khi đã giãn nở
Giới thiệu về Conveyor Tracking
Hình 2.8 Mô tả Conveyor Tracking
Conveyor Tracking là một kỹ thuật cho phép robot hoặc các thiết bị điều khiển tự động theo dõi và tương tác với các đối tượng đang di chuyển trên băng tải Công nghệ này đảm bảo rằng robot có thể thực hiện các nhiệm vụ như lấy, đặt, lắp ráp các sản phẩm trong khi chúng đang di chuyển, mà không cần phải dừng băng chuyền Conveyor Tracking giúp tăng tốc độ sản xuất bằng cách giảm thời gian dừng và cho phép các robot hoạt động liên tục, nhờ vào việc theo dõi chính xác vị trí và tốc độ của đối tượng, robot có thể thực hiện các nhiệm vụ với độ chính xác cao hơn
Cách thức hoạt động: thông thường một Encoder sẽ được gắn trực tiếp trên băng tải hoặc trục truyền động của băng tải để gửi dữ liệu về bộ điều khiển robot Để tăng tính chính xác người ta thường gắn Encoder trên bề mặt băng tải để tránh tình trạng băng tải bị trượt bước hoặc bị kẹt
Hình 2.9 Cách lắp đặt Encoder
Dựa vào số xung Encoder trả về ta có thể dễ dàng tính toán được vị trí của vật trên băng tải và tốc độ của băng tải:
• Vị trí vật = (Số xung hiện tại - Số xung ban đầu) * D (2.3)
• Vận tốc băng tải = (Số xung đọc được * D) /T (2.4) Trong đó: D là quãng đường vật di chuyển được trong 1 xung (mm / xung)
T là thời gian lấy mẫu (s).
Thiết kế phần cứng
Yêu cầu thiết kế
Robot có kích thước nhỏ gọn và giá thành rẻ, tốc độ hoạt động của robot phải nhanh
Băng tải hoạt động ổn định, có kích thước đủ lớn để có thể phân loại nhiều vật cùng lúc
Cấu trúc khớp xoay ở khâu 2 và khâu 3 phải chắc chắn, không rung lắc khi hoạt động ở tốc độ cao
Bộ điều khiển có thể giao tiếp với máy tính, dễ dàng sử dụng và bền
Camera có độ phân giải cao, có thể dễ dàng kết nối với máy tính.
Sơ đồ khối của hệ thống
Ta có thể chia sơ đồ khối của hệ thống thành các phần như sau: Khối nguồn, PLC, PC, Camera, Driver, Servo, cơ cấu chấp hành, limit sw, cảm biến và băng tải
Hình 3.1 Sơ đồ khối của hệ thống Khối Nguồn: Cung cấp nguồn cho các thiết bị trong mô hình
Khối PLC: đóng vai trò là bộ điều khiển trung tâm, giúp xử lý các tín hiệu từ cảm biến, gửi tín hiệu điều khiển servo, cơ cấu chấp hành, băng tải, gửi và nhận tín hiệu đến PC
Khối Driver: là mạch công suất để điều khiển động cơ, giúp điều khiển góc quay, tốc độ và hướng của động cơ
Khối Servo: nhận tín hiệu điều khiển từ Driver điều khiển robot tới vị trí mong muốn
Khối limit sw, cảm biến: Xác định trạng thái của robot, gửi tín hiệu về PLC Khối Băng tải: Di chuyển sản phẩm để robot phân loại
Khối cơ cấu chấp hành: Bao gồm giác hút, máy bơm và van điện từ, giúp robot gắp sản phẩm
Khối Camera: Thu nhận hình ảnh và gửi dữ liệu cho PC xử lý
Khối PC: Nhận dữ liệu từ camera sau đó tiến hành xử lý ảnh và gửi dữ liệu đến PLC để điều khiển robot.
Lựa chọn thiết bị
Hệ thống gồm 3 nguồn cấp chính là 220 VAC để cung cấp cho driver servo, các module nguồn tổ ong Nguồn 24VDC để cung cấp cho PLC, các loại nút nhấn, công tắc hành trình, cảm biến tiệm cận, encoder, driver servo Nguồn 12VDC để cung cấp cho máy bơm, van điện từ và động cơ băng tải Với những yêu cầu như trên ta sử dụng nguồn 220 VAC từ điện lưới dân dụng
Tổng dòng điện của các thiết bị sử dụng nguồn 24VDC trong mô hình là:
• I 24VDC là tổng dòng điện của các thiết bị sử dụng nguồn 24VDC
• I plc là dòng điện PLC tiêu thụ
• I s1 , I s2 , I s3 , I s4 lần lượt là dòng điện tiêu thụ của mạch điều khiển driver servo khớp 1, driver servo khớp 2, driver servo khớp 3, driver servo khớp 4
Vậy ta lựa chọn nguồn tổ ong 24V 5A
Thông số kỹ thuật của nguồn 24VDC:
Bảng 3.1 Thông số kỹ thuật nguồn tổ ong 24V 5A
Dải điện áp đầu vào 220VAC ± 15% Điện áp ra 24VDC có thể điều chỉnh 5%
Nhiệt độ hoạt động 0 ℃ ~ 40 ℃, 10% ~ 90% RH Tổng dòng điện của các thiết bị sử dụng nguồn 12 VDC trong mô hình là:
• I 12VDC là tổng dòng điện của các thiết bị sử dụng nguồn 12VDC
• I mb là dòng điện tiêu thụ của máy bơm
• I rl là dòng điện tiêu thụ của van điện từ
• I bt là dòng điện tiêu thụ của động cơ băng tải
Lựa chọn nguồn tổ ong 12V 5A
Hình 3.3 Nguồn tổ ong 12V 5A Bảng 3.2 Thông số kỹ thuật nguồn tổ ong 12V 5A
Dải điện áp đầu vào 220VAC ± 15% Điện áp ra 12VDC có thể điều chỉnh 10%
Ta sử dụng MCB để đóng cắt nguồn cho mô hình, bảo vệ thiết bị khi gặp sự cố quá dòng và quá áp
Tổng dòng điện của nguồn 220 VAC sử dụng trong mô hình là:
• I 220AC là tổng dòng điện của các thiết bị sử dụng trong mô hình
• I S1 , I S2 , I S3 , I S4 lần lượt là dòng điện tiêu thụ của servo khớp 1, servo khớp 2, servo khớp 3, servo khớp 4
• I 12 là dòng điện tiêu thụ lớn nhất của nguồn tổ ong 12VDC
• I 24 là dòng điện tiêu thụ lớn nhất của nguồn tổ ong 24VDC
Lựa chọn MCB Chint NXB-63 MCB 2P 40A C40
Hình 3.4 MCB Chint NXB-63 MCB 2P 40A C40
Thông số kỹ thuật của MCB:
Bảng 3.3 Thông số kỹ thuật MCB Chint NXB-63 MCB 2P 40A C40
Dòng sản phẩm: MCB NXB-63
Dòng cắt ngắn mạch: 6kA
3.3.3 Lựa chọn PLC, module mở rộng
Hiện nay trên thị trường có rất nhiều loại plc khác nhau như: PLC Siemens, PLC Mitsubishi, PLC Omron, PLC Rockwell, PLC Delta, PLC Keyence…
Trong đề này sẽ sử dụng PLC S7-1200 với các ưu điểm như sau: Được tích hợp sẵn cổng truyền thông Profinet (Ethernet), sử dụng chung một phần mềm Simatic Step 7 Basic cho việc lập trình PLC và các màn hình HMI Điều này giúp cho việc thiết kế, lập trình, thi công hệ thống điều khiển được nhanh chóng, đơn giản Có thư viện S7.NET giúp hỗ trợ giao tiếp giữa PLC S7-1200 với máy tình, là dòng PLC phổ biến nên dễ dàng điều khiển, sửa chữa
Vì trong hệ thống có sử dụng 4 động cơ servo nên ta chọn loại PLC 1212DC/DC/DC có bốn bộ phát xung, có chức năng đọc xung tốc độ cao HSC giúp đọc xung Encoder, có 8 ngõ vào phù hợp với yêu cầu của hệ thống
Hình 3.5 PLC 1212 DC/DC/DC Bảng 3.4 Thông số kỹ thuật PLC 1212C DC/DC/DC
Mã sản phẩm 6ES7214-1AG40-0XB0
Dòng sản phẩm SIMATIC S7-1200 CPU 1212C
Tích hợp đầu vào số 8 DI 24 V DC
Tích hợp đầu ra số 6 DO 24 V DC
Tích hợp đầu vào tương tự 2 AI 0-10 V DC
Nguồn cung cấp DC 20.4-28.8V DC
Bộ nhớ chương trình/ dữ liệu 75 KB Để điều khiển 4 trục động cơ servo ta kết hợp PLC S7 1212 DC/DC/DC với module phát xung SB 1222 4DQ
Hình 3.6 Module SB 1222 Bảng 3.5 Thông số kỹ thuật SB 1222
Mã sản phẩm 6ES7222-1BD30-0XB0
Dòng sản phẩm SIMATIC S7-1200, Digital output SB
Tích hợp đầu ra số 4 DQ, 24V DC 200kHz
Nguồn cung cấp DC 20.4-28.8V DC
Trong mô hình sử dụng 10 ngõ ra nên ta sử dụng module SM 1222 DC/DC để mở rộng ngõ ra cho PLC
Hình 3.7 Module SM 1222 Bảng 3.6 Thông số kỹ thuật Module SM 1222
Mã sản phẩm 6ES7222-1BF32-0XB0
Dòng sản phẩm Digital output SM 1222, 8 DQ
Tích hợp đầu ra số 8DQ, 24V DC
Nguồn cung cấp DC 20.4-28.8V DC
3.3.4 Lựa chọn động cơ cho từng khớp
Ta có bảng thông số khối lượng và kích thước từng khớp:
Bảng 3.7 Thông số khối lượng robot
Khớp Khối lượng Tổng Khoảng cách trục quay đến trọng tâm
AC Servo 100W: 0.6Kg Hốp số: 1Kg
AC Servo 100W: 0.6Kg Hốp số: 1Kg
Khớp 3 Cánh tay khớp 3: 0.5kg
AC Servo 100W: 0.6Kg 1.1Kg 140mm
Khớp 4 Cánh tay khớp 4: 0.3kg
T = + + + − 96Nm Động cơ AC servo 200w có momen định mức là T=0.64Nm
Chọn hệ số an toàn là 2, tỉ lệ truyền 1 1 * 2 17.96 * 2
Chọn pulley có tỉ lệ 30:45 và hộp số có tỉ lệ 1:100
Ta lựa chọn động cơ servo MSME022G1A cho khớp 1
Hình 3.8 Động cơ MSME022G1A Bảng 3.8 Thông số kỹ thuật động cơ MSME022G1A Điện áp cấp 3P/94VAC, 1.5A
Momen 0.64N.m Để điều khiển servo MSME022G1A ta sử dụng driver MADLN15SE
Hình 3.9 Driver MADLN15SE Bảng 3.9 Thông số kỹ thuật Driver MADLN15SE Điện áp cấp 1 pha/3 pha 200 đến 240VAC
Phương pháp điều khiển SinPWM Độ phân giải encoder 23 bit encoder tuyệt đối
Khớp 2 : Momen cần là: T 2 =(2.1 1.1 0.4) 9.82 260 10+ + − 3 =9.19Nm Động cơ AC servo 100w có momen định mức là T=0.32Nm
Chọn hệ số an toàn là 1.5, tỉ lệ truyền 2 2 *1.5 9.19 *1.5
Chọn pulley có tỉ lệ 1:1 và hộp số có tỉ lệ 1:50 Ở khớp 2 chịu lực lớn dễ xảy ra hiện tượng trôi khi tắt hoặc bật servo nên sẽ chọn loại động cơ có thắng từ
Ta chọn động cơ HC-MFS13B cho khớp 2
Hình 3.10 Động cơ HC-MFS13B Điện áp cấp 3P/105VAC 0.9A
Tốc độ 3000r/min Độ phân giải encoder 17 bit encoder tuyệt đối
Momen 0.32Nm Động cơ có thắng có Để điều khiển động cơ HC-MFS13B ta sử dụng Driver MR J2S 10A
Bảng 3.11 Thông số kỹ thuật Driver MR J2S 10A Điện áp cấp 1 pha/3 pha 200 đến 240VAC
Phương pháp điều khiển SinPWM Độ phân giải encoder 17 bit encoder tuyệt đối
Khớp 3 : Momen cần là: T 3 =(1.1 0.4) 9.82 140 10+ − 3 =2.1Nm Động cơ AC servo 100w có momen định mức là T=0.32Nm
Chọn hệ số an toàn là 2, tỉ lệ truyền 3 3 * 2 2.1* 2
= T = Chọn pulley có tỉ lệ 1:1 và hộp số có tỉ lệ 1:30
Ta lựa chọn động cơ Panasonic MSMD012G1T cho khớp 3
Hình 3.12: Động cơ MSMD012G1T Bảng 3.12 Thông số kỹ thuật động cơ MSMD012G1T Điện áp cấp 3P/73VAC, 1.1A
Momen 0.32N.m Để điều khiển động cơ MSMD012G1T ta sử dụng Driver MADLN15SE
Hình 3.13 Driver MADLN15SE Bảng 3.13 Thông số kỹ thuật Driver MADLN15SE Điện áp cấp 1 pha/3 pha 200 đến 240VAC
Phương pháp điều khiển SinPWM Độ phân giải encoder 23 bit encoder tuyệt đối
Khớp 4: Tổng khối lượng không đáng kể ta lựa chọn động cơ 100W HF-
Hình 3.14 Động cơ HF-KP13 Bảng 3.14 Thông số kỹ thuật động cơ HF-KP13 Điện áp cấp 200VAC
Momen 0.32N.m Độ phân giải encoder 17 bit
Ta sử dụng driver MR J3 10A để điều khiển động cơ HF-KP13
Hình 3.15 Driver MR J3 10A Bảng 3.15 Thông số kỹ thuật Driver MR J3 10A Điện áp cấp 1 pha/3 pha 200 đến 240VAC
Phương pháp điều khiển SinPWM Độ phân giải encoder 17 bit encoder tuyệt đối
3.3.5 Lựa chọn hộp số giảm tốc
Theo tính toán ở mục 3.3.5 hộp số giảm tốc cho các khớp được chọn như sau:
Bảng 3.16 Chọn hộp số cho các khớp
3.3.6 Lựa chọn cảm biến Để xác định gốc tọa độ cho robot nhóm lựa chọn công tắc hành trình cho khớp
1, khớp 2 và khớp 3 vì giá thành rẻ, dễ lắp đặt
Hình 3.16 Công tắc hành trình
• Tiếp điểm: COM-NO-NC Ở khớp 4 do phần cơ khí không thuận tiện để sử dụng công tắc hành trình, nên nhóm chọn loại cảm biến tiệm cận
Hình 3.17 Cảm biến tiệm cận j12a3-4-z/ex Thông số kỹ thuật:
• Điện áp hoạt động: 6~36VDC
• Đèn báo khi sử dụng
Theo yêu cầu thiết kết băng tải vận chuyển những sản phẩm có hình dạng khác, nhau kích thước tối đa 65x65x5mm, khối lượng tối đa 0.1kg
Từ yêu cầu trên và để phù hợp với không gian làm việc của robot, nhóm thiết kế băng tải có thông số: Chiều dài 700mm, chiều rộng 100mm, chiều cao 90mm
Hình 3.18 Mô hình 3D băng tải
Lựa chọn động cơ kéo băng tải:
Ta có các thông số sau:
Khối lượng hàng tối đa trên băng tải w=0.1kg
Khối lượng dây đai và trục băng tải W=0.3kg
Chiều dài băng tải 700mm
Bán kính trục quay rmm
Tốc độ tối đa băng tải Vmax0mm/s
Momen đầu trục băng tải:
Chuyển đơn vị từ kg.cm về N.m:
Momen đầu trục động cơ:
= = Tốc độ quay động cơ max* 60 6600
Ta lựa chọn động cơ JGB37-520 107rpm
Hình 3.19 Động cơ JGB37-520 107rpm Bảng 3.17 Thông số kỹ thuật động cơ JGB37-520 107rpm Điện áp cấp 12VDC
Tốc độ không tải 107rpm
Momen 0.082Nm Để thực hiện Conveyor Tracking ta lựa chọn cảm biến Encoder e38s6g5- 600b-g24n để xác định chính xác vị trí của băng tải
Hình 3.20 Encoder e38s6g5-600b-g24n Bảng 3.18 Thông số kỹ thuật Encoder e38s6g5-600b-g24n Điện áp cấp 5-24VDC
Tần số đáp ứng 0-20KHz
Số xung mỗi vòng quay 600
Tốc độ cơ học tối đa 5000 vòng/phút
3.3.8 Lựa chọn Camera nhận dạng sản phẩm
Với yêu cầu của đề tài phải nhận dạng chính xác hình dạng các loại sản phẩm, nên chọn loại camera có độ phân giải cao, tốc độ khung hình 30 fps Tốc độ truyền dữ liệu ổn định và kết nối dễ dàng Dựa vào những tiêu chí trên nhóm lựa chọn webcam logitech C310
Hình 3.21 Webcam logitech c310 Bảng 3.19 Thông số kỹ thuật Webcam logitech c310 Độ phân giải 1280x720
Tốc độ khung hình 30fps
Tiêu cự Lấy nét cố định
3.3.9 Lựa chọn cơ cấu chấp hành cho robot
Sản phẩm được phân loại có dạng hình phẳng nên nhóm lựa chọn cơ cấu chấp hành dùng giác hút cho robot
Do các sản phẩm được phân loại có khối lượng nhẹ nên ta lựa chọn máy hút chân không 365dc để tạo lực hút sản phẩm
Hình 3.23 Máy bơm 365DC Bảng 3.20 Thông số kỹ thuật máy bơm 365DC Điện áp cấp 12VDC
Dòng không tải 0.23A Áp suất tối đa 1-2.5Kg Độ sâu hút 1-2.5m
Ta lựa chọn van điện từ 12V để đóng ngắt khí nén, giúp quá trình thả vật được thực hiện nhanh hơn
Hình 3.24 Van điện từ 12V 3.3.10 Lựa nút nhấn và đèn báo
Gồm nút start (NO), nút stop(NC), nút EMG(NC)
Hình 3.25 Nút nhấn Đèn báo
Ta sử dụng đèn báo 220VAC để báo trạng thái nguồn Đèn 24VDC để báo trạng thái hoạt động của hệ thống
Hình 3.26 Đèn báo trạng thái
Bản vẽ thiết kế
Hình 3.27 Sơ đồ kết nối servo khớp 1
Hình 3.28 Sơ đồ kết nối servo khớp 2
Hình 3.29 Sơ đồ kết nối servo khớp 3
Bảng 3.21 Ý nghĩa kí hiệu trong bản vẽ
EMG Nút dừng khẩn cấp
RS Relay kích Servo-On khớp 2
Hình 3.31 Sơ đồ nối dây các thiết bị
Hình 3.32 Sơ đồ mạch động lực
Chức năng của các kết nối ngõ vào và ngõ ra của PLC được thể hiện bởi bảng dưới đây
Bảng 3.22 Kết nối ngõ vào PLC
Ngõ vào Kết nối Ý nghĩa
I0.4 LS1 Công tắc hành trình khớp 1
I0.5 LS2 Công tắc hành trình khớp 2
I0.6 LS3 Công tắc hành trình khớp 3
I0.7 CB4 Cảm biến tiệm cận khớp 4
Bảng 3.23 Kết nối ngõ ra PLC
Ngõ ra Kết nối Ý nghĩa
Q0.0 SIGN J4 Chân điều hướng khớp 4
Q0.1 SIGN J1 Chân điều hướng khớp 1
Q0.2 SIGN J3 Chân điều hướng khớp 3
Q0.3 SIGN J2 Chân điều hướng khớp 2
Q0.5 RS Relay kích Servo-On khớp 2
Q4.0 PULSE J4 Chân phát xung khớp 4
Q4.1 PULSE J1 Chân phát xung khớp 1
Q4.2 PULSE J3 Chân phát xung khớp 3
Q4.3 PULSE J2 Chân phát xung khớp 2
Q8.0 MB Cuộn dây relay máy bơm
Q8.1 BT Cuộn dây relay băng tải
Q8.2 Đ1 Đèn báo trạng thái Start
Q8.3 Đ2 Đèn báo trạng thái Stop
Q8.4 HUT Cuộn dây relay van điện từ 12V
Hình 3.33 Bản vẽ bố trí thiết bị tủ điện 3.4.2 Thiết kế cánh tay robot trên Solidworks
Hình 3.34 Mô hình robot trên Solidworks 1
Hình 3.35 Mô hình robot trên Solidworks 2
Hình 3.36 Bản vẽ kích thước robot 1
Hình 3.37 Bản vẽ kích thước robot 2
Thiết kế phần mềm
Động học robot
Hình 4.1 Đặt trục cho mô hình robot
Ta quy ước chiều dương của góc quay là ngược chiều kim đồng hồ Trước tiên ta cần xác định trục quay của các khớp và đường vuông góc chung của các trục
Ta đặt góc tọa độ của hệ tọa độ thứ nhất là điểm giao nhau giữa joint 1 và đường vuông góc chung của joint 1 và joint 2 Trục z1 dọc theo đường trục quay của joint 1, trục x 1 dọc theo link 1 Chiều của trục z1 hướng lên trên, trục y1 được xác định bằng quy tắc bàn tay phải
Ta đặt góc tọa độ của hệ tọa độ thứ hai là điểm giao nhau giữa joint 2 và đường vuông góc chung của joint 2 và joint 3 Trục z 2dọc theo đường trục quay của joint 2, trục x 2 dọc theo link 2 Chiều của trục z 2 hướng ra ngoài, trục y2 được xác định bằng quy tắc bàn tay phải
Ta đặt góc tọa độ của hệ tọa độ thứ ba là điểm giao nhau giữa joint 3 và link
3 Trục z 3 dọc theo đường trục quay của joint 3, trục x 3 dọc theo link 3 Chiều của trục z 3hướng ra ngoài, trục y3 được xác định bằng quy tắc bàn tay phải Ta làm tương tự cho hệ trục tọa độ thứ tư và thứ năm
Ta đặt hệ tọa độ tham chiếu ở đế robot, góc tọa độ là điểm giao nhau giữa mặt phẳng và link 0, trục z 0 cùng phương và hướng với z 1 , trục x 0 song song với mặt phẳng nằm ngang
Hình 4.2 Đặt trục cánh tay robot 4.1.2 Động học thuận
Dựa vào Hình 4.2, ta lập bảng DH:
Bảng 4.1 Lập bảng tham số DH i a d
Trong đó các tham số của bảng DH lần lượt là:
• i : góc giữa z i và z i + 1 quay xung quanh trục x i
• a i : khoảng cách giữa z i và z i + 1 dọc theo x i
• i : góc giữa x i − 1 và x i quay xung quanh trụcz i
• d i : khoảng cách giữa x i − 1 và x i dọc theo
Xác định ma trận chuyển đổi và vị trí chấp hành:
Dựa vào công thức (2.1) ta tính được ma trận chuyển đổi hệ trục {1} từ hệ trục {0}:
Dựa vào công thức (2.1) ta tính được ma trận chuyển đổi hệ trục {2} từ hệ trục {1}:
Dựa vào công thức (2.1) ta tính được ma trận chuyển đổi hệ trục {3} từ hệ trục {2}:
Dựa vào công thức (2.1) ta tính được ma trận chuyển đổi hệ trục {4} từ hệ trục {3}:
Dựa vào công thức (2.1) ta tính được ma trận chuyển đổi hệ trục {5} từ hệ trục {4}: z i
Ma trận chuyển đổi hệ trục {5} từ hệ trục {0}:
Vị trí của cơ cấu chấp hành:
Ta dùng phương pháp đại số để tính động học nghịch
Giả thiết ban đầu: EE 0 P = p x p y p z 1 − 1 và = 2 + + 3 4
Ta nhân hai vế phương trình (4.8) cho 0 1 T( ) 1 − 1 :
Kết quả của phương trình (4.9) có thể viết rút gọn như sau:
Thế các biến phụ vừa đặt vào phương trình (4.11) ta được:
Ta có các phương trình:
Ta chuyển vế rút gọn phương trình và đặt các biến phụ như sau:
+ = + − − − + = − − + Bình phương hai vế và cộng hai phương trình lại ta được:
Khai triển căn bậc hai và rút gọn phương trình (4.20):
Ta chuyển vế rút gọn phương trình và đặt các biến phụ như sau:
= = với P = P x 2 + P y 2 ; = a tan 2( P P y , x ) Thế các biến phụ vừa đặt vào phương trình (4.26) ta được:
Không gian làm việc của robot là vùng không gian mà điểm cuối của robot (end-effector) có thể chạm tới khi di chuyển, nó bao gồm tất cả các điểm mà robot có thể đạt tới Xác định không gian làm việc giúp đảm bảo robot có thể thực hiện các tác vụ mong muốn mà không gặp phải giới hạn về phạm vi hoạt động
Do vị trí đặt của các cảm biến và cách bố trí thiết bị trong hệ thống ta giới hạn góc quay của các khớp như sau: góc quay của khớp 1 từ -50 o đến 90 o , góc quay của khớp 2 từ 10 o đến 100 o , góc quay của khớp 3 từ -145 o đến 30 o , góc quay của khớp 4 từ -90 o đến 30 o
Nhóm đã dùng phần mềm Matlab để tìm ra không gian làm việc của robot:
Hình 4.3 Không gian làm việc của robot
Yêu cầu thiết kế
Chương trình phải trao đổi dữ liệu được với PLC, có thể giám sát và điều khiển các trạng thái của hệ thống như: tốc độ băng tải, vị trí robot, vị trí vật phẩm, số lượng vật đã phân loại thành công…
Xây dựng giao diện điều khiển trực quan, dễ hiểu, có thể điều khiển hệ thống ở chế độ bằng tay và tự động
Hệ thống phải đảm bảo tính liên tục và chính xác, có thể hoạt động liên tục khi điều chỉnh tốc độ băng tải Chương trình có thể dễ dàng sửa chữa và bổ sung khi thay đổi điều kiện môi trường làm việc.
Giải thuật
4.3.1 Lưu đồ giải thuật điều khiển hệ thống
Biến On = true Biến On = false
Hình 4.4 Lưu đồ điều khiển hệ thống
Khi hệ thống đang được cấp điện nếu nhấn nút dừng khẩn cấp thì hệ thống sẽ lập tức ngắt điện và ngừng hoạt động
Nếu nhấn nút Start hệ thống bắt đầu hoạt động, ta cho biến On là true, nếu nhấn nút Stop hệ thống sẽ dừng lại cho đến khi nhấn lại nút Start Nếu cho phép giao tiếp dữ liệu giữa giao diện điều khiển và PLC ta sẽ bắt đầu thực hiện chương trình PLC
Hệ thống có hai chế độ điều khiển là Manual và Auto, ở chế độ Manual ta có thể điều khiển robot bằng tay, điều khiển độc lập băng tải, máy bơm Ở chế độ Auto robot hoạt động tự động, băng tải hoạt động đưa sản phẩm vào, camera sẽ gửi dữ liệu hình ảnh về mày tính, sau đó chương trình sẽ nhận dạng, phân loại và tính toán góc quay động cơ gửi về PLC để điều khiển robot
Nhận dữ liệu điều khiển
Yêu cầu SetHome Điều khiển băng tải
SetHome Đọc dữ liệu và điều khiển băng tải Đã chạy hàm SetHome Đ Đ Đ Đ
Yêu cầu hút hoặc thả vật
S S Đọc dữ liệu và điều khiển máy bơm Đọc dữ liệu và điều khiển van điện từ
Phát xung điều khiển động cơ
Encoder và tốc độ băng tải về máy tính Đọc xung
Encoder và tính vận tốc băng tải
2 Đ Đ Điều khiển động cơ Đọc giá trị góc quay và chuyển đổi về dạng xung Đ
Hình 4.5 Lưu đồ điều khiển PLC
Khi hệ thống hoạt động PLC luôn đọc xung từ Encoder, ta dùng công thức (2.4) để tính tốc độ băng tải và gửi về máy tính
Khi nhận được tín hiệu điều khiển từ giao diện người dùng thì tùy theo yêu cầu mà PLC sẽ thực hiện điều khiển động cơ, đóng mở máy bơm… Trước khi phát xung điều khiển động cơ ta phải thực hiện SetHome trước vì để xác định gốc tọa độ của các khớp
Khi điều khiển động cơ ta phải biết số xung cần phát nhưng dữ liệu góc quay gửi từ máy tính đến PLC ở dạng độ nên ta cần chuyển góc quay về số xung theo công thức sau:
• Pulse là số xung cần phát
• T1 là tỉ lệ hộp số
• R là số xung trên vòng của động cơ
Yêu cầu bật băng tải
Yêu cầu tắt băng tải
Yêu cầu bật máy bơm
Yêu cầu nhả vật Điều khiển robot
Tính toán giá trị góc quay cho các khớp
Yêu cầu tắt máy bơm Biến MayBom = 0
Gửi dữ liệu đến PLC S
Hình 4.6 Lưu đồ chế độ điều khiển Manual Ở chế độ Manual ta có thể kiểm tra hoạt động của hệ thống, kiểm chứng động học thuận và động học nghịch Do có thể điều khiển robot bằng tay giúp xác định vị trí thả các vật và giới hạn làm việc thực tế của robot
Bật băng tải Bật máy bơm Đọc tốc độ băng tải và số xung Encoder
Xử lý ảnh Điều khiển Robot
Gửi dữ liệu đến PLC
Hình 4.7 Lưu đồ chế độ điều khiển Auto
Khi ở chế độ Auto, camera được kết nối để tiến hành xử lý ảnh, máy bơm được bật để có thể điều khiển van hút hoặc nhả vật, băng tải hoạt động để di chuyển vật vào vùng hoạt động của camera và robot Chương trình sẽ luôn đọc tốc độ băng tải và số xung Encoder để tính được vị trí của vật phẩm và vị trí robot gắp vật
Chương trình xử lý ảnh sẽ phân loại hình dạng của vật phẩm và tính toán tọa độ tâm của vật Dựa vào tọa độ đã tính được và giá trị tốc độ băng tải ta tính toán được vị trí gắp của robot, sau đó dữ liệu về góc quay sẽ được gửi về PLC để điều khiển robot
4.3.2 Giải thuật xử lý ảnh
Kết nối camera thành công
Xử lý ảnh Đọc ảnh từ camera
Chuyển ảnh RGB thành HSV
Chuyển ảnh HSV thành ảnh nhị phân
Tính tọa độ tâm và hiển thị
Tìm Contour Tính diện tích
Tìm hình dạng của vật
Hình 4.8 Lưu đồ chương trình xử lý ảnh
Trước tiên ta cần kiểm tra camera đã kết nối thành công chưa, nếu đã được kết nối ta đọc khung hình từ camera Tiếp theo ta cần giới hạn khung hình cho camera để thuận lợi hơn cho việc tính tọa độ của vật Để dễ dàng tách vật ra khỏi nền ta dùng phương thức InRange() được hỗ trợ bởi EmguCV, ảnh đọc từ camera đang ở hệ màu RGB nên ta cần chuyển về hệ màu HSV Sau đó ta sẽ chạy thực nghiệm để tìm ra giới hạn dưới và giới hạn trên của các thông số H, S, V Khi tìm ra được các giới hạn ta sử dụng phương thức InRange() để chuyển ảnh HSV thành ảnh nhị phân và có thể tách vật ra khỏi nền
Nhưng lúc này ảnh còn bị ảnh hưởng nhiều bởi nhiễu nên trước khi vào bước xử lý tiếp theo ta cần lọc nhiễu Trong đề tài sử dụng hai phương pháp lọc nhiễu là phép toán giãn nở (Dilation) và phép toán co (Erosion) đã được giới thiệu ở chương
Tiếp theo ta cần xác định đường viền của vật (contour), dù đã lọc nhiễu nhưng để tăng tính chính xác ta tiến hành tính diện tích của các contour và đặt điều kiện về diện tích để loại bỏ nhiễu mà không ảnh hưởng đến nhận dạng vật
Sử dụng thuật toán xấp xỉ đã đề cập ở chương 2, ta có thể tìm được số cạnh của vật phẩm Dựa vào diện tích và số cạnh đã tìm được ta có thể nhận diện được hình dạng của vật phẩm
4.3.3 Lưu đồ giải thuật điều khiển robot gắp vật Đ Điều khiển robot Đã nhận dạng được vật
Hình tam giác Hình tròn Hình vuông Đọc ảnh từ camera
Gán vị trí thả hình tam giác
Gán vị trí thả hình tròn
Gán vị trí thả hình vuông
Gán vị trí thả hình lục giác
Vật vào không gian làm việc
Vật trước được phân loại xong
Tính tọa độ của vật so với robot
Tính động học Bắt đầu Timer
Tiến hành gắp vật Đến vị tí thả
Hình 4.9 Lưu đồ điều khiển robot
Nếu vật phẩm đã được nhận dạng và tính tọa độ bởi chương trình xử lý ảnh thì chương trình điều khiển robot sẽ hoạt động Tùy theo hình dạng của vật mà ta sẽ gắn các vị trí thả khác nhau
Ta tính được tọa độ tâm của vật nhưng lúc này đơn vị là pixel nên ta cần chuyển về đơn vị là mm
Chuyển đổi từ pixel về đơn vị mm:
• px là tọa độ trục x (mm)
• py là tọa độ trục y (mm)
• x là tọa độ trục x (pixel)
• y là tọa độ trục y (pixel)
• Lx là độ dài thực tế khung hình camera theo trục x(mm)
• Ly là độ dài thực tế khung hình camera theo trục y(mm)
• 1280 và 720 là kích thước khung hình theo trục x và trục y (pixel)
Chuyển đổi từ hệ tọa độ của camera sang hệ tọa độ của robot:
Hình 4.10 Chuyển đổi hệ trục
Ta có O’X’Y’ là hệ tọa độ của camera, OXY là hệ tọa độ của robot, gốc tọa độ lệch theo phương x và phương y lần lượt là 266mm, 141.5mm Tọa độ của vật trong hệ tọa độ robot là: x 266 x
• px là tọa độ trục x của vật trong hệ tọa độ camera (mm)
• py là tọa độ trục y của vật trong hệ tọa độ camera (mm)
• Px là tọa độ trục x của vật trong hệ tọa độ robot (mm)
• Py là tọa độ trục y của vật trong hệ tọa độ robot (mm)
Nếu vật đi vào không gian làm việc của robot và vật trước đó đã được phân loại xong ta dùng động học nghịch để tính các giá trị góc quay của các khớp Bộ đếm thời gian sẽ bắt đầu đếm khi vật đi vào vùng làm việc của robot, dựa vào giá trị đếm của timer ta có thể xác định được trạng thái hiện tại của robot như: đã đến vị trị gắp vật chưa, đã đến vị trí thả vật chưa, gắp vật xong chưa… từ đó ta có thể điều khiển robot hoàn thành chu trình phân loại Khi đã phân loại xong robot quay lại vị trí chờ để sẵn sàng gắp vật tiếp theo.
Thiết kế giao diện điều khiển
Với yêu cầu thiết kế nhóm em đã xây dựng giao diện người dùng trên nền Winform C# Winform cung cấp nhiều cung cụ hỗ trợ mạnh mẽ giúp việc xây dựng tiết kiệm được nhiều thời gian, có một cộng đồng lập trình viên lớn, nhiều tài liệu học tập và diễn đàn hỗ trợ, với thư viện S7.NET giúp giao tiếp dễ dàng giữa PLC và chương trình C#
Giao diện gồm bốn trang chính như sau: HOME, MANUAL, AUTO và CAMERA
Trang HOME cung cấp các thông tin cơ bản của đồ án như: tên đề tài, giảng viên hướng dẫn và sinh viên thực hiện Để kết nối được với PLC trước ta cần chọn loại PLC, sau đó nhập địa chỉ IP của PLC vào ô “IP” Sau khi nhập thông tin ta nhấn “Connect” thì sẽ bắt đầu kết nối với PLC, nếu kết nối thành công màu của nút “Connect” sẽ chuyển thành xanh lá, khi ta muốn ngắt kết nối thì nhấn nút “Disconnect” lúc đó màu của nút “Connect” sẽ chuyển thành đỏ
Hình 4.12 Lựa chọn các dòng PLC S7
Trang MANUAL giúp kiểm tra các thiết bị trên hệ thống, có thể kiểm chứng tính chính xác của động học thuận và động học nghịch
Nút nhấn “Manual” dùng để chọn chế độ điều khiển, sau khi đã chọn chế độ ta nhấn nút “START” để hệ thống bắt đầu hoạt động ở chế độ Manual, nút “STOP” giúp dừng hệ thống và thoát ra chế độ đang điều khiển, nút “SET HOME” giúp chạy hàm SetHome Ta cũng có thể điều khiển băng tải và máy bơm bằng hai nút nhấn
Hình 4.14 Nhập động học nghịch
Ta có nhập tọa độ trục x, y, z vào các ô “Px”, “Py”, “Pz” và hướng robot vào ô “Theta”, sau đó nhấn nút “Send” nếu tọa độ nhập nằm trong không gian làm việc của robot thì robot sẽ di chuyển đến vị trí mong muốn Nút nhấn “Reset” giúp xóa những giá trị đã nhập, các ô “Theta1”, “Theta2”, “Theta3”, “Theta4” hiển thị góc quay của các khớp robot tính được bằng động học nghịch
Hình 4.15 Nhập động học thuận
Ta có thể điều khiển trực tiếp góc quay của các khớp robot bằng các thanh trượt nếu các góc quay nằm trong giới hạn đặt trước của robot thì robot sẽ di chuyển đến vị trí mong muốn Nhấn nút “Send” để gửi dữ liệu đến PLC, các ô “Px”, “Py”,
“Pz”, “Theta” hiển thị hướng và vị trí của robot
Trang AUTO giúp quan sát các trạng thái hoạt động của hệ thống, đồng thời hiển thị màn hình của camera giúp dễ dàng quan sát, đánh giá quá trình xử lý ảnh
Hình 4.17 Các phím chức năng trang AUTO
Phím “AUTO” giúp chọn chế độ điều khiển, sau khi đã chọn chế độ ta nhấn nút “START” để hệ thống bắt đầu hoạt động ở chế độ Auto, nút “STOP” giúp dừng hệ thống và thoát ra chế độ đang điều khiển, nút “SET HOME” giúp chạy hàm SetHome
Các ô “X”, “Y”, “Z”, “Theta” lần lượt hiển thị tọa độ của robot theo trục x, y, z và hướng của robot Ô “Speed” giúp hiển thị tốc độ của băng tải, cột “STT” hiển thị số thứ tự của vật phẩm được nhận dạng Cột “X”, “Y”, “Shape” hiển thị tọa độ và hình dạng của vật phẩm
Trang CAMERA giúp quan sát quá trình xử lý chuyển từ ảnh màu sang ảnh HSV giúp dễ dàng tìm kiếm giới hạn của các giá trị H, S, V Khi môi trường làm việc thay đổi hay thay đổi màu của sản phẩm ta cũng có thể mau chóng tìm kiếm các giá trị giới hạn mới
Những vật nằm trong ngưỡng sẽ chuyển thành màu trắng, ngược lại sẽ thành màu đen Điều chỉnh ngưỡng giới hạn giúp ta có thể tách sản phẩm ra khỏi nền và lọc đi những vật không cần thiết.
Kết quả thực nghiệm
Kết quả xây dựng mô hình
Sau quá trình lên ý tưởng, thiết kế và thi công mô hình, nhóm đã đạt được kết quả phần cứng như sau:
Hình 5.1 Kết quả thi công hệ thống
Hình 5.2 Cấu trúc robot Để có thể xác định gốc tọa độ cho từng khớp của robot, ta tiến hành đặt các cảm biến tiệm cận và công tắc hành trình ở vị trí thích hợp
Hình 5.3 Lắp đặt cảm biến cho khớp 1 và khớp 2 Động cơ
Mạch điều khiển tốc độ
Hình 5.5 Kết quả thi công băng tải
Hình 5.6 Lắp đặt camera Đèn báo pha Đèn Start Đèn Stop
Hình 5.7 Bố trí và lắp đặt tủ điện điều khiển
Kiểm chứng động học và thực nghiệm hệ thống
5.2.1 Kiểm chứng động học thuận
Ta tiến hành kiểm chứng động học thuận bằng cách cho robot quay đến các góc bất kì, sau đó tiến hành mô phỏng vị trí của robot trên Matlab và so sánh với vị trí thực tế của robot Robot hoạt động chính xác cho thấy phần tính toán động học thuận và thiết kết cơ khí là chính xác
Trường hợp 1: 1 =0 , 2 , 3 = −90 , 4 =0 , ta dùng động học thuận tính được vị trí của cơ cấu chấp hành là điểm A (363.57; -15; 520.86)
Hình 5.8 Vị trí robot mô phỏng trường hợp 1
Hình 5.9 Vị trí robot thực tế trường hợp 1
Trường hợp 2: 1 =0 , 2 p , 3 = −120 , 4 =0 , ta dùng động học thuận tính được vị trí của cơ cấu chấp hành là điểm B (350.48; -15; 281.59)
Hình 5.10 Vị trí robot mô phỏng trường hợp 2
Trường hợp 3: 1 = −45 , 2 , 3 = −45 , 4 = −60 , ta dùng động học thuận tính được vị trí của cơ cấu chấp hành là điểm C (174.26; -195.48; 656.95)
Hình 5.12 Vị trí robot mô phỏng trường hợp 3
Hình 5.13 Vị trí robot thực tế trường hợp 3
Trường hợp 4: 1 p , 2 p , 3 = −40 , 4 = −40 , ta dùng động học thuận tính được vị trí của cơ cấu chấp hành là điểm D (163.42; 405.13; 586.47)
Hình 5.14 Vị trí robot mô phỏng trường hợp 4
Kết luận: Vị trí thực tế của robot đúng với giá trị các góc quay đã đặt và khớp với phần mô phỏng trên Matlab nên phần tính toán động học thuận của robot là chính xác
5.2.2 Kiểm chứng động học nghịch
Ta tiến hành kiểm chứng bằng cách thế các giá trị vị trí cơ cấu chấp hành đã tính được ở mục 5.2.1 vào phương trình động học nghịch để tính góc quay của các khớp Nếu robot di chuyển đúng đến vị trí đã đặt cho thấy tính toán động học nghịch chính xác
Hình 5.16 Kiểm chứng động học nghịch trường hợp 1
So sánh các góc quay và vị trí robot di chuyển ở Hình 5.16 và Hình 5.9 ta thấy robot đã di chuyển đúng vị trí
Hình 5.17 Kiểm chứng động học nghịch trường hợp 2
So sánh các góc quay và vị trí robot di chuyển ở Hình 5.17 và Hình 5.11 ta thấy robot đã di chuyển đúng vị trí
Hình 5.18 Kiểm chứng động học nghịch trường hợp 3
So sánh các góc quay và vị trí robot di chuyển ở Hình 5.18 và Hình 5.13 ta thấy robot đã di chuyển đúng vị trí
Hình 5.19 Kiểm chứng động học nghịch trường hợp 4
So sánh các góc quay và vị trí robot di chuyển ở Hình 5.19 và Hình 5.15 ta thấy robot đã di chuyển đúng vị trí
Kết luận: Vị trí thực tế của robot di chuyển đúng với vị trí vật đã đặt, phần tính toán động học nghịch của robot là chính xác
5.2.3 Thực nghiệm chương trình xử lý ảnh
Ta thử nghiệm tính tọa độ và phân loại các sản phẩm có hình dạng khác nhau:
Hình 5.20 Tính tọa độ và nhận dạng hình vuông
Trường hợp 2: Hình lục giác
Hình 5.21 Tính tọa độ và nhận dạng hình lục giác
Hình 5.22 Tính tọa độ và nhận dạng hình tròn
Trường hợp 4: Hình tam giác
Hình 5.23 Tính tọa độ và nhận dạng tam giác
Kết luận: Nhận dạng thành công các loại sản phẩm với các hình dạng khác nhau, xác định được tọa độ trọng tâm của từng sản phẩm để gửi tới PLC giúp robot gắp chính xác vật
5.2.4 Thực nghiệm phân loại sản phẩm với nhiều cấp tốc độ băng tải
Sau khi kiểm chứng tính chính xác của động học và thực nghiệm khả năng nhận dạng của chương trình xử lý ảnh ta tiến hành thử nghiệm khả năng phân loại sản phẩm với tốc độ băng tải thay đổi
Trường hợp 1: Tốc độ băng tải 40mm/s
Sau khi thực nghiệm ta thu được kết quả thể hiện ở bảng sau:
Bảng 5.1 Tốc độ băng tải 40mm/s
Sản phẩm Hình lục giác Hình vuông Hình tròn Hình tam giác
Trong quá trình thực nghiệm ta tiến hành bấm giờ và đo tốc độ phân loại sản phẩm thu được kết quả: 14 sản phẩm/ phút
Trường hợp 2: Tốc độ băng tải 60mm/s
Sau khi thực nghiệm ta thu được kết quả thể hiện ở bảng sau:
Bảng 5.2 Tốc độ băng tải 60mm/s
Sản phẩm Hình lục giác Hình vuông Hình tròn Hình tam giác
Trong quá trình thực nghiệm ta tiến hành bấm giờ và đo tốc độ phân loại sản phẩm thu được kết quả: 12 sản phẩm/ phút
Trường hợp 3: Tốc độ băng tải 80mm/s
Sau khi thực nghiệm ta thu được kết quả thể hiện ở bảng sau:
Bảng 5.3 Tốc độ băng tải 80mm/s
Sản phẩm Hình lục giác Hình vuông Hình tròn Hình tam giác
Trong quá trình thực nghiệm ta tiến hành bấm giờ và đo tốc độ phân loại sản phẩm thu được kết quả: 13 sản phẩm/ phút
Trường hợp 4: Tốc độ băng tải 100mm/s
Sau khi thực nghiệm ta thu được kết quả thể hiện ở bảng sau:
Bảng 5.4 Tốc độ băng tải 100mm/s
Sản phẩm Hình lục giác Hình vuông Hình tròn Hình tam giác
Trong quá trình thực nghiệm ta tiến hành bấm giờ và đo tốc độ phân loại sản phẩm thu được kết quả: 13 sản phẩm/ phút
Tỉ lệ phân loại chính xác tốt nhất khi tốc độ băng tải là 40mm/s, khi tốc độ băng tải tăng thì tỉ lệ chính xác giảm là do ảnh bị mờ khi chụp vật di chuyển ở tốc độ cao làm xác định hình dạng của vật không chính xác
Tỉ lệ chính xác và tốc độ phân loại đạt với yêu cầu thiết kế, những trường hợp robot gắp không chính xác là do tốc độ của băng tải chưa ổn định, camera bị ảnh hưởng bởi các điều kiện ánh sáng khác nhau dẫn đến xác định loại sản phẩm và điểm gắp chưa chính xác.