TỔNG QUAN
Đặt vấn đề
Hình 1 1 Xử lý ảnh số
Ngày nay, sự phát triển vượt bậc của khoa học máy tính đã mang lại nhiều thành tựu cho ngành công nghiệp xử lý ảnh, đặc biệt trong lĩnh vực nhận dạng và phân loại hình ảnh Những tiến bộ này không chỉ giúp giảm giá thành sản phẩm mà còn tối đa hóa đầu ra, làm cho lĩnh vực này trở thành một trong những ngành được nghiên cứu tích cực nhất trong thị giác máy tính.
Hệ thống xử lý ảnh đã giúp con người giảm khối lượng công việc, tiết kiệm thời gian và tăng độ chính xác trong nhiều lĩnh vực Trong y học, công nghệ này hỗ trợ phát hiện khối u, giải phẫu, cải thiện ảnh X quang và nhận dạng đường biên mạch máu Trong đời sống hàng ngày, xử lý ảnh được sử dụng để nâng cao chất lượng hình ảnh trên TV, laptop và điện thoại Trong ngành công nghiệp đóng gói, nó kiểm tra việc dán nhãn sản phẩm và tính chính xác của bao bì Ngành dược phẩm áp dụng xử lý ảnh để kiểm tra số lượng thuốc trong vỉ, trong khi lĩnh vực điện - điện tử sử dụng công nghệ này để phát hiện khuyết tật trên bo mạch Ngoài ra, xử lý ảnh còn được ứng dụng trong nhận dạng khuôn mặt, vân tay, mống mắt, chữ viết trong bảo mật, nhận diện vật thể và phân loại chất lượng sản phẩm trong ngành Robotics.
Trong sản xuất công nghiệp và nông nghiệp, kiểm tra ngoại quan sản phẩm là rất quan trọng Quy trình này đảm bảo sản phẩm có chất lượng đồng đều trước khi ra thị trường, loại bỏ những sản phẩm không đạt yêu cầu và phân loại chúng theo nhóm chất lượng khác nhau.
Khoa ĐT CLC – ĐHSPKT TP.HCM phân loại gạch men thành ba loại: loại 1, loại 2 và loại 3 Ngoài ra, rau củ quả cũng được phân chia thành các loại chín, chín vừa và xanh Trong ngành thương mại dịch vụ, việc phân loại các phương tiện giao thông là cần thiết để thu phí cầu đường và phí tại các bãi giữ xe.
Kiểm tra ngoại quan đóng vai trò quan trọng trong quy trình sản xuất, nhưng chủ yếu vẫn do con người thực hiện Để nâng cao năng suất và giảm thiểu sai sót do yếu tố chủ quan, việc tự động hóa quy trình kiểm tra này là rất cần thiết Nhằm đáp ứng nhu cầu thực tiễn, nhóm nghiên cứu đã phát triển công nghệ xử lý ảnh phân loại theo màu sắc để thay thế công đoạn kiểm tra ngoại quan Quy trình phân loại sản phẩm dựa trên việc thu thập thông tin màu sắc qua hệ thống camera; sản phẩm có màu sắc đúng tiêu chuẩn sẽ được đưa vào kho, trong khi sản phẩm không đạt yêu cầu sẽ bị loại bỏ khỏi băng chuyền.
Mục tiêu nghiên cứu
Hệ thống “Ứng dụng Dobot Magician trong hệ thống phân loại sản phẩm” được thiết kế và lập trình dựa trên các thuật toán phát hiện biên vật thể, nhận diện đường thẳng và màu sắc thông qua thư viện OpenCV Hệ thống áp dụng các hàm điều khiển cánh tay Robot từ nhà sản xuất Dobot, cho phép xác định chính xác màu sắc, vị trí và hướng của nhiều vật thể trên băng chuyền, bất kể chúng có cùng màu hay khác màu.
Phân tích và xử lý các tình huống trong quá trình hoạt động của hệ thống là rất quan trọng Mô hình lắp ráp thực tế được điều khiển và theo dõi trực tiếp qua phần mềm máy tính, giúp phát triển những ứng dụng thực tiễn của xử lý ảnh trong khoa học và đời sống hàng ngày.
Nội dung nghiên cứu
Phương pháp cơ bản nhất để thay thế kiểm tra ngoại quan bằng mắt người là sử dụng camera Camera có khả năng thay thế đôi mắt con người trong việc thu nhận hình ảnh từ môi trường xung quanh.
Mắt con người, kết hợp với bộ não và hàng tỉ nơron thần kinh, có khả năng phân biệt và xử lý hình ảnh từ đơn giản đến phức tạp một cách nhanh chóng và chính xác Trong khi đó, việc xây dựng hệ thống camera để xử lý hình ảnh phụ thuộc nhiều vào chương trình và thuật toán điều khiển Mỗi ứng dụng phân loại sản phẩm sẽ có những đặc thù riêng, bao gồm kích thước, hình dáng và màu sắc của vật thể cần xử lý.
Nhóm nghiên cứu tại Khoa ĐT CLC – ĐHSPKT TP.HCM đã chọn đề tài “Ứng dụng Dobot Magician trong hệ thống phân loại sản phẩm” nhằm đảm bảo tính khả thi và phù hợp với trình độ của mình Đề tài này sẽ tập trung vào việc áp dụng công nghệ Dobot Magician để cải thiện quy trình phân loại sản phẩm.
Chương 1: Tổng quan đề tài: Trình bày tổng quan sơ bộ về các yêu cầu đề ra ban đầu bao gồm đặt vấn đề, mục tiêu đề tài, nội dung nghiên cứu và giới hạn đề tài
Chương 2: Cơ sở lý thuyết: Trình bày nguyên lý hoạt động của hệ thống và các lý thuyết có liên quan đến các vấn đề mà đề tài sẽ dùng để thực hiện việc thiết kế và thi công hệ thống
Chương 3: Tính toán thiết kế: Xuất phát từ yêu cầu thiết kế và yêu cầu điều khiển của đề tài, trình bày các tính toán thiết kế và lựa chọn thiết bị phần cứng hệ thống
Chương 4: Thi công hệ thống: Tiến hành thi công, lắp ráp mô hình đã thiết kế; trình bày lưu đồ thuật toán và lập trình điều khiển; vận hành hệ thống
Chương 5: Kết quả, nhận xét và đánh giá: Trình bày kết quả của quá trình thực hiện đề tài, nghiên cứu được những gì, minh chứng và giải thích
Chương 6: Kết luận và hướng phát triển: Kết luận chung về ưu điểm, nhược điểm, khó khăn gặp phải trong suốt quá trình thực hiện đề tài; khẳng định những kết quả đạt được, đề xuất ý kiến cải thiện khuyết điểm và định hướng phát triển trong tương lai.
Giới hạn đề tài
Nhóm đã hoàn thành việc lắp ráp và đấu nối hệ thống "Ứng dụng Dobot Magician trong hệ thống phân loại sản phẩm" bằng các module có sẵn từ nhà sản xuất Dobot Hệ thống được lập trình để phân loại màu sắc vật thể, sử dụng cánh tay Robot để xếp hàng vào kho chứa, áp dụng ngôn ngữ lập trình Python và thư viện nguồn mở OpenCV.
Hệ thống hiện tại vẫn còn nhiều thiếu sót, bao gồm việc chưa hiển thị thông số của các khớp xoay, vận tốc, gia tốc và mô men của cánh tay Robot Bên cạnh đó, băng tải không thể hoạt động đồng thời với cánh tay Robot, dẫn đến tình trạng băng tải chạy liên tục trong khi cánh tay Robot chỉ di chuyển để gắp vật thể Hơn nữa, hệ thống cũng thiếu chức năng tự động reset kho, điều này gây cản trở cho quá trình tiếp theo khi cánh tay Robot đã lấp đầy vật thể trong kho.
Khoa ĐT CLC – ĐHSPKT TP.HCM 4
CƠ SỞ LÝ THUYẾT
Nguyên lý hoạt động
Đầu tiên, khởi động băng chuyền và đặt các khối vật thể đã được xác định lên băng chuyền để chúng di chuyển Khi vật thể đi vào tầm quan sát của Camera, quá trình phát hiện sẽ được thực hiện.
Hệ thống sử dụng các thuật toán điều khiển để xác định vị trí, góc và màu sắc của vật thể trên băng chuyền Băng chuyền chỉ dừng lại khi vật thể vào vùng hoạt động của cánh tay Robot, nơi cánh tay sẽ di chuyển đến tâm vật thể, gắp chúng lên bằng hệ thống khí nén và xoay chúng theo vị trí đã định trước Sau khi cánh tay Robot hoàn thành việc gắp các khối vật trong tầm hoạt động, băng chuyền sẽ tiếp tục chạy cho đến khi kho chứa được lấp đầy.
Lý thuyết xử lý ảnh
2.2.1 Xử lý ảnh số Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Xử lý ảnh số là một dạng xử lý tín hiệu mà trong đó đầu vào là một ảnh và đầu ra của quá trình xử lý có thể là một ảnh khác hoặc là một tập hợp chứa các tính chất hoặc tham số liên quan đến hình ảnh được cung cấp từ đầu vào
Hầu hết các kỹ thuật xử lý ảnh truyền thống đều coi ảnh như một tín hiệu hai chiều và áp dụng các phương pháp xử lý tín hiệu để tiến hành phân tích.
2.2.2 Điểm ảnh Điểm ảnh là một phần tử của ảnh số tại tọa độ (x,y) với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh được chọn thích hợp sao cho mắt người cảm nhận được sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh
Khoa ĐT CLC – ĐHSPKT TP.HCM 5
Hình 2 2 Mô tả điểm ảnh
2.2.3 Độ phân giải ảnh Độ phân giải ảnh là mật độ điểm ảnh ấn định trên một ảnh số được hiển thị Khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bố đó chính là độ phân giải ảnh và được phân bố theo trục Ox (trục ngang) và Oy (trục dọc) trong không gian hai chiều Ảnh có độ phân giải càng cao thì các biến đổi trong ảnh sẽ càng mịn và càng rõ nét
Hình 2 3 So sánh độ phân giải ảnh
Mức xám là giá trị độ sáng của một điểm ảnh, được xác định bởi một giá trị nguyên dương trong khoảng [0, 255].
Giá trị của mỗi điểm ảnh trong hình ảnh được biểu diễn bằng các mức xám, thường là 16, 32, 64, 128 và 256 Những mức này phổ biến trong kỹ thuật máy tính vì chúng sử dụng 1 byte để lưu trữ thông tin.
= 8 bits để biểu diễn mức xám, mức xám dùng 1 byte để biểu diễn 2 8 = 256 giá trị tức từ 0 đến 255)
Khoa ĐT CLC – ĐHSPKT TP.HCM 6
Trong biểu diễn ảnh, điểm ảnh (pixel) là các phần tử đặc trưng quan trọng Một ảnh có thể được mô tả bằng hàm hai biến chứa thông tin Các mô hình này cung cấp cái nhìn logic và định lượng về các tính chất của hàm Chất lượng ảnh và hiệu quả của các kỹ thuật xử lý ảnh phụ thuộc vào nhiều yếu tố, bao gồm độ phân giải và mức độ nhiễu.
Hình 2 5 Biến đổi ảnh màu (trái) sang ảnh xám (giữa) và ảnh nhị phân (phải)
Có ba loại ảnh chính dựa trên giá trị biểu diễn điểm ảnh: Ảnh màu, trong đó mỗi điểm ảnh bao gồm ba giá trị màu (Đỏ, Xanh lá, Xanh dương) với giá trị từ 0 đến 255, cần 24 bits (3 bytes) để biểu diễn; Ảnh xám, với giá trị mỗi điểm ảnh nằm trong dải từ 0 đến 255.
Mỗi điểm ảnh được biểu diễn bằng 8 bit, tương đương với 1 byte Ảnh nhị phân chỉ có hai giá trị duy nhất là 0 và 1, tương ứng với màu trắng và đen.
Biến đổi ảnh là thuật ngữ chỉ các kỹ thuật thay đổi hình ảnh, thường áp dụng trong ngành công nghiệp xử lý ảnh Các phương pháp khoa học cổ điển được sử dụng để thực hiện các phép toán tương đương hoặc chuyển đổi sang miền xử lý khác, nhằm tối ưu hóa quá trình xử lý và tính toán hình ảnh.
Có nhiều phương pháp biến đổi ảnh được sử dụng phổ biến như biến đổi Fourier, Cosin, Karhumen Loeve, tích chập, Hadamard,…
Khoa ĐT CLC – ĐHSPKT TP.HCM 7
Trong xử lý ảnh, việc trích chọn đặc điểm đối tượng là bước quan trọng, giúp nâng cao độ chính xác trong nhận dạng, tối ưu thời gian tính toán và giảm dung lượng lưu trữ Các đặc điểm có thể được phân loại thành đặc điểm không gian như phân bố mức xám và biên độ ảnh, cùng với đặc điểm biến đổi được trích chọn qua các bộ lọc vùng hay “mặt nạ đặc điểm” với nhiều hình dạng khác nhau Đặc điểm biên và đường biên cũng rất hữu ích trong việc phân tích thuộc tính bất biến để nhận dạng đối tượng, với các phương pháp thu được ảnh biên như toán tử Gradient, toán tử Laplace và giải thuật Canny.
2.2.8 Nhận dạng và phân loại ảnh
Hình 2 6 Nhận dạng các vật thể trong ảnh
Khoa ĐT CLC – ĐHSPKT TP.HCM 8
Nhận dạng ảnh là quá trình phân loại các đối tượng dựa trên các mô hình đã được lưu trữ, thường thông qua việc so sánh với mẫu chuẩn Quá trình này dựa vào nhiều đặc tính của vật thể, như hình dạng và màu sắc, với mỗi đặc tính yêu cầu các kỹ thuật nhận dạng khác nhau Theo lý thuyết nhận dạng, có hai loại phân loại ảnh cơ bản: phân loại có mẫu, nơi các đối tượng được so sánh với mẫu đã xác định, và phân loại không có mẫu, trong đó các đối tượng được phân loại vào các lớp chưa được biết đến dựa trên tiêu chuẩn đồng hạng.
Trong thực tế, việc phân loại tối ưu không thể chỉ dựa vào một phương pháp đơn lẻ, vì vậy, các phương thức phân loại tổ hợp thường được áp dụng để đạt được kết quả tốt nhất trong nhận dạng Một số ứng dụng phổ biến trong khoa học và công nghệ hiện nay bao gồm nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản, nhận dạng vân tay, nhận dạng khuôn mặt và nhận dạng mống mắt.
2.2.9 Các không gian màu trong xử lý ảnh
Không gian màu RGB (Red, Green, Blue)
RGB là không gian màu phổ biến nhất hiện nay, bao gồm ba màu gốc: đỏ, xanh lá và xanh dương, phản ánh cách mà mắt người tổng hợp màu sắc Các màu sắc này được kết hợp theo nhiều cách khác nhau để tạo ra toàn bộ bảng màu Ngoài ra, RGB cũng là không gian màu mặc định trong OpenCV, mặc dù OpenCV có sự đảo ngược giữa hai kênh màu.
Red và Blue lại, trở thành BGR
Trong mô hình màu 24 bit, mỗi kênh màu R, G, B được biểu diễn bằng 8 bit, cho phép tạo ra 16,777,216 màu sắc khác nhau Giá trị của mỗi kênh nằm trong khoảng từ 0 đến 255, tương ứng với cường độ của từng màu, và bộ ba màu này sẽ xác định màu sắc cho mỗi điểm ảnh trong hình ảnh.
Hình 2 7 Không gian màu RGB
Khoa ĐT CLC – ĐHSPKT TP.HCM 9
Không gian màu CMYK (Cyan, Magenta, Yellow, Key/Black)
Thuật toán phát hiện cạnh Canny
Hình 2 11 Xử lý cạnh dùng hàm Canny
Trong hình ảnh, các thành phần chính bao gồm vùng trơn, góc/cạnh và nhiễu, với điểm ảnh được coi là điểm biên khi có sự thay đổi đột ngột về mức xám Điểm đen trong ảnh nhị phân là điểm biên nếu có ít nhất một điểm trắng lân cận Tập hợp các điểm biên liên tiếp tạo thành đường biên ảnh, thể hiện các đặc trưng quan trọng của đối tượng trong ảnh Phát hiện biên là công cụ quan trọng trong xử lý ảnh số, giúp làm nổi bật các điểm ảnh có sự biến đổi lớn về giá trị mức sáng và giảm khối lượng dữ liệu cần tính toán Thuật toán Canny, phát triển bởi John F Canny vào năm 1986 tại MIT, là phương pháp phổ biến nhất để phát hiện đường biên nhờ khả năng chống nhiễu và tạo ra các đường biên mỏng, đều Nó được ứng dụng rộng rãi trong ngành công nghiệp xử lý ảnh với tỉ lệ sai sót thấp và độ chính xác cao trong việc xác định các điểm biên.
Khoa ĐT CLC – ĐHSPKT TP.HCM giới thiệu về bộ lọc nhân xoắn Canny, một công cụ hiệu quả trong việc làm mịn nhiễu và phát hiện cạnh trong ảnh Công thức hàm Canny trong Python được viết dưới dạng: cv2.Canny(image, lower, upper), trong đó image là ảnh đầu vào, còn lower và upper là các ngưỡng số nguyên mà người dùng thiết lập Để áp dụng thuật toán Canny, ảnh màu cần được chuyển đổi sang ảnh xám, vì thuật toán này chỉ hoạt động trên nền ảnh xám Quy trình phát hiện cạnh Canny bao gồm 5 bước chính.
Trong thực tế, hình ảnh luôn có sự xuất hiện của nhiễu, và chúng xuất hiện một cách ngẫu nhiên, khiến việc dự đoán chính xác trở nên khó khăn.
Các thuật toán xử lý ảnh thường dựa trên các đạo hàm toán học, dẫn đến việc phát hiện cạnh dễ bị nhiễu Để khắc phục vấn đề này, các thuật toán làm mờ ảnh đã được phát triển Trong xử lý ảnh, những bộ lọc làm mờ và giảm nhiễu phổ biến bao gồm Box Filter, Gaussian Filter, Median Filter và Bilateral Filter.
Sử dụng bộ lọc Gaussian trong quá trình nhân tích chập với ảnh đầu vào giúp loại bỏ nhiễu và làm mịn ảnh hiệu quả Kích thước của bộ lọc thường là số lẻ nguyên dương như 3, 5, 7, đảm bảo chiều dài bằng chiều rộng Việc chọn kích thước lẻ cho phép có một pixel duy nhất ở trung tâm bộ lọc, giúp tránh nhầm lẫn trong việc xác định pixel trung tâm khi kích thước bộ lọc là số chẵn.
Bộ lọc Gaussian kích thước (5x5) là lựa chọn hiệu quả cho thuật toán phát hiện biên Canny Người dùng có thể điều chỉnh kích thước bộ lọc phù hợp với kích thước ảnh đầu vào và dựa trên kinh nghiệm cá nhân Công thức cho bộ lọc Gaussian có kích thước (2k+1) * (2k+1) được áp dụng để tối ưu hóa quá trình xử lý ảnh.
(1) Sau khi áp dụng bộ lọc Gaussian ta nhận được kết quả như sau:
Khoa ĐT CLC – ĐHSPKT TP.HCM 13
Hình 2 12 Ảnh gốc (trái) - Ảnh mờ với bộ lọc Gaussian (phải)
Trong xử lý ảnh, độ dốc được hiểu là sự thay đổi mức sáng của các pixel trong ảnh Các pixel trong vùng ảnh trơn có giá trị gần giống nhau, dẫn đến đạo hàm gần bằng 0, nghĩa là không có biến thiên mức sáng Đạo hàm dương tại một pixel cho thấy mức sáng đang tăng, trong khi đạo hàm âm cho thấy mức sáng đang giảm Tóm lại, Gradient của ảnh chính là đạo hàm ảnh, được tính bằng cách nhân chập ảnh gốc với hai chiều tương ứng với các toán tử đạo hàm theo hướng Ox và Oy.
Hình 2 13 Mô tả hai hướng Gx và Gy
Khoa ĐT CLC – ĐHSPKT TP.HCM 14
Nếu ta có một ảnh đầu vào là I, ta sẽ có 2 ảnh đạo hàm riêng theo 2 hướng đó là:
Khi đó, ta tính được Gradient bao gồm hai thành phần cường độ và hướng theo công thức:
Ví dụ: Giả sử ta có một điểm ảnh như sau:
Hình 2 14 Trích chọn một điểm ảnh Áp dụng công thức (2), (3) và (4) ở trên, ta có:
Đối với ảnh màu, Gradient của ba kênh RGB được xem xét, với độ lớn của Gradient tại mỗi điểm ảnh là giá trị lớn nhất của cường độ Gradient từ ba kênh Góc tương ứng với Gradient lớn nhất cũng được xác định trong quá trình này.
Khoa ĐT CLC – ĐHSPKT TP.HCM 15
Hình 2 15 Ảnh mờ (trái) - Ảnh mật độ độ dốc Gradient (phải)
Kết quả xử lý gần như đạt yêu cầu, nhưng vẫn tồn tại sự không đồng đều giữa các cạnh, với một số cạnh dày và một số cạnh mỏng như thể hiện trong hình 2.15 Để khắc phục tình trạng này, phương pháp NMS được đề cập trong mục 2.3.3 sẽ giúp giảm thiểu sự khác biệt Ảnh đạo hàm 𝐺 𝑥 và 𝐺 𝑦 tạo ra ma trận, với mỗi pixel biểu thị độ lớn của biến đổi mức sáng tại vị trí tương ứng trên ảnh gốc Tương tự, ma trận hướng cũng có kích thước giống nhau, trong đó mỗi pixel thể hiện góc (hướng cạnh).
Khi góc Gradient là 0°, cạnh trên của ảnh sẽ tạo thành một đường thẳng đứng vuông góc với hướng Gradient Giá trị hướng Gradient được tính toán trong khoảng từ -180° đến 180°, và thay vì giữ nguyên các góc này, chúng ta sẽ phân loại thành 4 hướng đại diện: ngang 0°, chéo bên phải 45°, dọc 90° và chéo bên trái 135°.
Hình 2 16 Biểu thị góc Gradient
Khoa ĐT CLC – ĐHSPKT TP.HCM 16
2.3.3 Chặn không cực đại (Non-maximum suppression)
Để loại bỏ các pixel không phải là cực đại toàn cục, chúng ta áp dụng bộ lọc kích thước 3x3 chạy qua từng pixel trên ảnh Gradient - tích chập Trong quá trình này, cần kiểm tra xem độ lớn Gradient của pixel trung tâm có phải là cực đại so với các pixel xung quanh hay không Nếu pixel trung tâm là cực đại, nó sẽ được giữ lại; ngược lại, nếu không phải, độ lớn Gradient của nó sẽ được thiết lập về 0 và chỉ so sánh với hai pixel lân cận theo hướng Gradient.
Khi hướng Gradient là 0 độ, ta so sánh pixel trung tâm với hai pixel lân cận bên trái và bên phải Nếu hướng Gradient là 45 độ, việc so sánh diễn ra với hai pixel ở góc trên bên phải và góc dưới bên trái Tương tự, các hướng Gradient khác cũng được xử lý như vậy Kết thúc quá trình, chúng ta sẽ có một mặt nạ nhị phân (ảnh trắng đen) với hai giá trị là 0 và 255 (số nguyên) hoặc 0 và 1 (số thực).
Hình 2 17 Phương pháp Non-maximum suppression
Kết quả cuối cùng nên có các cạnh mỏng thay vì dày Để đạt được điều này, chúng ta áp dụng phương pháp NMS, trong đó thuật toán sẽ quét qua tất cả các điểm trên ma trận mật độ Gradient và xác định các pixel có giá trị tối đa theo hướng của cạnh.
Hình 2 18 Biểu diễn phương pháp NMS
Khoa ĐT CLC – ĐHSPKT TP.HCM 17
Hình 2.18 cho thấy ô đỏ ở góc trên bên trái đại diện cho một pixel trong ma trận mật độ Gradient Hướng cạnh được chỉ định bởi mũi tên màu cam với góc –𝜋 radians.
Hình 2 19 Ô màu đỏ góc trên bên trái
Hướng được xác định bởi đường nét đứt màu cam, chạy từ trái sang phải, và thuật toán kiểm tra cường độ của các pixel theo hướng này Trong hình 2.19, pixel (i,j) đang được xử lý, cùng với các pixel (i, j-1) và (i, j+1) trên cùng một hướng Nếu pixel (i, j-1) có cường độ cao hơn pixel (i, j) do màu trắng (255) so với màu xám, thì pixel (i, j-1) sẽ được giữ lại và giá trị mật độ của pixel (i, j) sẽ được thiết lập thành 0 Ngược lại, nếu không có pixel nào theo hướng cạnh có giá trị cao hơn, giá trị của pixel hiện tại sẽ được lưu lại.
Hình 2 20 Trọng tâm ô đỏ ở giữa
Thuật toán phát hiện đường thẳng (Hough Transform)
Hình 2 27 Hình ảnh sử dụng phép biến đổi Hough
Biến đổi Hough là một phương pháp hiệu quả để phát hiện các hình dạng toán học như đường thẳng, đường tròn và đường elip trong hình ảnh, được giới thiệu bởi Paul Hough vào năm 1962 Kỹ thuật này xác định các tham số mô tả đường thẳng trong mặt phẳng ảnh, giúp nhận diện các hình dạng thông qua việc phân tích các nhóm điểm trong không gian ảnh Ý tưởng cốt lõi của thuật toán phát hiện đường thẳng Hough Transform là tìm kiếm và xác định các đường thẳng dựa trên các điểm dữ liệu.
Để phát hiện đường thẳng trong ảnh, đầu tiên cần khởi tạo ma trận thống kê với số lượng ô phù hợp với yêu cầu thiết kế Sử dụng kết quả từ phương pháp phát hiện cạnh Canny, ta sẽ kiểm tra từng pixel thuộc cạnh trong ma trận thống kê Mỗi pixel sẽ được thử nghiệm với nhiều phương trình đường thẳng khác nhau, giúp tăng khả năng phát hiện đường thẳng và giảm thiểu việc bỏ sót Mỗi pixel cạnh sẽ "bầu" thêm một giá trị vào ma trận thống kê, từ đó cải thiện độ chính xác trong việc phát hiện các đường thẳng trong ảnh.
Khoa ĐT CLC – ĐHSPKT TP.HCM 22
Sau khi xem xét tất cả các pixel cạnh, chúng ta sẽ áp dụng một giá trị ngưỡng đã được xác định trên ma trận thống kê để nhận diện các phương trình đường thẳng trong ảnh Cuối cùng, các đường thẳng này sẽ được vẽ lên bức ảnh.
Khi sử dụng giải thuật Hough, người dùng cần cung cấp giá trị ρ (rho) và θ (theta) mong muốn Thuật toán sẽ vẽ các đường thẳng ρ * θ lên ảnh và đếm số pixel nằm trên mỗi đường thẳng Mỗi khi tìm thấy một pixel, giá trị tương ứng sẽ được cộng thêm vào ô liên quan đến (ρ, θ).
Công thức hàm được viết trên ngôn ngữ Python là: line = cv2.HoughLinesP(edge,rho, 𝜽=np.pi/180, threshold, minLength, maxGap)
edge: ảnh ngõ ra sau khi phát hiện cạnh, ở dạng ảnh xám
rho: khoảng cách của các đường thẳng (pixels)
theta: khoảng cách góc của các đường thẳng (radians)
threshold: ngưỡng lọc để phát hiện một đường thẳng
minLength: độ dài tối thiểu để có thể tạo thành một đường thẳng
maxGap: khoảng cách tối đa giữa hai điểm xét trên cùng một đường thẳng
Houghline trả về các đường thẳng, với mảng cấu trúc có chiều dài tương ứng với số lượng đường thẳng được phát hiện Mỗi phần tử trong mảng cấu trúc này đại diện cho một đường thẳng đã được tìm thấy.
point1: hai phần tử vector [x1, y1] xác định tọa độ điểm đầu của đoạn thẳng
point2: hai phần tử vector [x2, y2] xác định tọa độ điểm cuối của đoạn thẳng
theta: góc hay hướng vật thể trong Hough
rho: trục vị trí của biến đổi Hough
2.4.2 Hiện thực Hough Transform phát hiện đường thẳng
Một phương trình đường thẳng được biểu diễn bằng hai tham số chính: khoảng cách ρ (rho) và góc θ (theta) trong khoảng (0 < θ < 180) Khi thử nghiệm các đường thẳng lệch nhau 1 độ, ta có thể tạo ra tối đa 180 đường thẳng khác nhau Tuy nhiên, chỉ có góc θ là chưa đủ để mô tả một đường thẳng; ta cần thêm giá trị khoảng cách ρ Giá trị tối đa của ρ bằng độ dài đường chéo của ảnh (diagonal_length), và ρ có thể mang giá trị âm, do đó khoảng cách ρ nằm trong đoạn [-diagonal_length, diagonal_length] Để đạt được kết quả tốt, ta thiết lập độ khít của ρ là 1 pixel, từ đó tổng số giá trị ρ có thể thử nghiệm sẽ tăng lên đáng kể.
2 * int(diagonal_length/ 𝜌) + 1 (kể cả giá trị 0)
Hình 2 28 Đường thẳng được xác định trong tọa độ cực
Khoa ĐT CLC – ĐHSPKT TP.HCM 23
Để xác định ma trận thống kê, chúng ta khởi tạo các phần tử với giá trị 0, có kích thước bằng số trường hợp 𝜌 nhân với số trường hợp 𝜃 Kích thước mảng lớn hơn sẽ mang lại độ chính xác cao hơn, nhưng đồng thời cũng làm tăng thời gian tính toán Tiếp theo, chúng ta sẽ duyệt qua mỗi pixel cạnh để xác định số lượng phương trình đường thẳng (được xác định bởi cặp số (𝜌, 𝜃)) đi qua pixel đó Cụ thể, đối với mỗi pixel cạnh (x, y), ta sẽ tính giá trị 𝜌 tương ứng cho từng giá trị 𝜃, với tổng cộng 180 giá trị.
Khi áp dụng thuật toán Canny, giả sử có 4000 pixel được phát hiện, ta sẽ thu được 4000 cặp giá trị (x, y), được biểu diễn bằng ma trận A có kích thước [4000, 2] Đối với mỗi cặp giá trị (x, y), chúng ta sẽ thử nghiệm 180 giá trị theta 𝜃 theo phương trình đường thẳng 𝜌.
Để tìm ra 180 giá trị ρ (rho), ta sử dụng công thức x*cos𝜃 + y*sin𝜃 Đầu tiên, chúng ta xây dựng ma trận B có kích thước [2, 180], trong đó dòng đầu chứa giá trị cos𝜃 và dòng thứ hai chứa giá trị sin𝜃 Sau đó, chúng ta thực hiện phép tính tích vô hướng để thu được ma trận C, chứa các giá trị ρ với kích thước tương ứng.
Để thực hiện việc "vote" vào ma trận thống kê, chúng ta chỉ cần duyệt qua từng phần tử của ma trận C và xác định dòng và cột phù hợp để cộng thêm 1 đơn vị Giá trị rho 𝜌 nằm trong khoảng [-num_𝜌, num_𝜌], trong khi chỉ số dòng của ma trận thống kê bắt đầu từ 0 Sau khi hoàn tất việc duyệt, chúng ta sẽ lọc theo ngưỡng đã xác định trước để giữ lại các đường thẳng có trong ảnh, từ đó thu được các giá trị hàng và cột Cuối cùng, các giá trị này sẽ được chuyển đổi về rho 𝜌 và theta 𝜃 (radian) để sử dụng hàm cv2.line vẽ đúng các đường thẳng.
Hình 2 30 Geo_Hough Hình 2 31 Geo_Canny
Khoa ĐT CLC – ĐHSPKT TP.HCM 24
2.4.3 Hiện thực Hough Transform phát hiện đoạn thẳng
Để cải thiện khả năng nhận diện các cạnh của đối tượng trong ảnh, chúng ta sẽ áp dụng bước hậu xử lý nhằm trích xuất các đoạn thẳng từ thông tin đường thẳng đã xác định Điều này được thực hiện bằng cách thống kê các pixel cạnh thuộc về từng đường thẳng (rho 𝜌, theta 𝜃) Quá trình này bao gồm việc duyệt qua từng pixel cạnh, tính toán giá trị rho 𝜌 và so sánh với đường thẳng đang xem xét Nếu có sự khớp, pixel đó sẽ được lưu vào danh sách trong từ điển (Dictionary) của Python.
Để xác định các đoạn thẳng từ các pixel, trước tiên cần kiểm tra mối liên kết giữa các pixel liền kề Nếu các pixel này liền kề, quá trình sẽ tiếp tục, ngược lại, danh sách các pixel đã duyệt sẽ tạo thành một đoạn thẳng Tiếp theo, cần kiểm tra độ dài của đoạn thẳng này xem có vượt qua ngưỡng so với tổng số pixel thuộc đường thẳng đang xem xét hay không Nếu độ dài nhỏ hơn ngưỡng, đoạn thẳng sẽ bị loại bỏ do có thể là nhiễu, còn nếu lớn hơn ngưỡng, đây chính là đoạn thẳng cần tìm.
Hình 2 32 Geo_Shape Hình 2 33 Geo_Canny
Nhận diện vật thể hình vuông
Để nhận diện hình vuông trong ảnh, trước tiên cần chuyển đổi ảnh màu RGB sang ảnh xám Tiếp theo, thiết lập ngưỡng để chuyển đổi ảnh xám thành ảnh nhị phân và nghịch đảo ảnh nhị phân nhằm giảm thời gian xử lý Cuối cùng, áp dụng thuật toán Canny để xác định biên của vật thể.
Sử dụng giải thuật Hough để xác định thuộc tính hình dạng, ta gom các cạnh có khả năng tạo thành hình vuông vào danh sách nhóm Các cạnh này phải nằm gần nhau, song song hoặc vuông góc Sau khi có danh sách, kiểm tra xem có bốn cạnh nào có thể tạo thành hình vuông hay không Nếu có nhiều hơn một tập hợp bốn cạnh, cần xác định xem chúng có tạo thành một hình vuông duy nhất hay không; nếu không, chúng có thể thuộc về một hoặc nhiều hình vuông khác lân cận.
Khoa ĐT CLC – ĐHSPKT TP.HCM 25
Nhận diện màu sắc
Trong bài viết này, chúng tôi trình bày phương pháp nhận diện màu sắc bằng cách tính khoảng cách màu gần nhất thay vì thiết lập giá trị ngưỡng màu trong hệ màu RGB Đầu tiên, chúng tôi chụp hình các khối vật thể có màu đỏ, xanh lục, xanh lam, vàng và đen, sau đó lưu trữ vào danh sách các biến màu mẫu Tiếp theo, chúng tôi tính giá trị màu trung bình để tạo ra danh sách Numpy gồm ba phần tử Red, Green, Blue Việc tính giá trị màu trung bình giúp giảm thiểu ảnh hưởng của các điểm ảnh không đồng đều trong ảnh Sau khi tính toán, giá trị màu được thêm vào danh sách và từ đó, chúng tôi vẽ tọa độ các điểm màu trong không gian màu BGR Cuối cùng, chúng tôi xác định màu sắc của vật thể thực tế bằng cách tính khoảng cách giữa màu vật thể và năm điểm màu mẫu, từ đó gán màu cho vật thể dựa trên sự gần gũi với màu mẫu.
Hình 2 35 Các khối màu thực tế Hình 2 36 Các điểm màu trong không gian màu
Hình 2 34 Quy trình nhận diện
Khoa ĐT CLC – ĐHSPKT TP.HCM 26
Điều khiển chuyển động của Robot
Nhà sản xuất Dobot Magician cung cấp hai phương thức điều khiển cho người dùng: sử dụng ứng dụng Dobot Studio, phù hợp cho giáo dục và ứng dụng đơn giản, và sử dụng thư viện API cho lập trình trên nhiều ngôn ngữ như Java, C#, Python, Qt, và VB, phục vụ cho nghiên cứu phát triển và ứng dụng phức tạp.
Dobot Studio là phần mềm điều khiển cánh tay Dobot Magician, cho phép người dùng thực hiện nhiều ứng dụng như gắp thả vật thể, khắc laser, in 3D, mô phỏng chuyển động, và viết vẽ hình dạng theo lập trình khối Phần mềm còn hỗ trợ hiển thị cảnh báo lỗi cùng hướng dẫn khắc phục, giúp người dùng dễ dàng xử lý sự cố.
Hình 2 37 Giao diện điều khiển của phần mềm Dobot Studio
Teaching & Playback Dạy cho Robot cách di chuyển và lưu lại để có thể chuyển động lặp đi lặp lại
Write & Draw Điều khiển chuyển động để viết, vẽ hoặc khắc vật thể bằng laser
Sử dụng ngôn ngữ lập trình khối tức kéo thả các khối lệnh có sẵn để tạo mã thực thi điều khiển chuyển động của cánh tay
Khoa ĐT CLC – ĐHSPKT TP.HCM 27
Script Điều khiển cánh tay Robot bằng các ngôn ngữ lập trình được hỗ trợ
LeapMotion Điều khiển chuyển động cánh tay Robot bằng thao tác của cánh tay người thực tế
Mouse Điều khiển chuyển động cánh tay bằng chuột máy tính
LaserEngraving Khắc laser lên vật thể
3DPrinter In các khối vật 3D
Example Các ví dụ mẫu của nhà sản xuất
Addmore Thêm các chức năng tùy chỉnh
Bảng 2 1 Chức năng của từng Module trong giao diện điều khiển
Dobot Magician bao gồm 3 chế độ chuyển động đó là Jogging, Point to Point, Arc Jogging: là chế độ dịch chuyển từng điểm nhỏ (di chuyển nhẹ, từ từ)
Hình 2 38 Điều chỉnh trong hệ tọa độ Đề- các
- Nhấn X+ hoặc X- Robot sẽ di chuyển dọc theo trục X theo chiều âm hoặc dương
- Nhấn Y+ hoặc Y- Robot sẽ di chuyển dọc theo trục Y theo chiều âm hoặc dương
- Nhấn Z+ hoặc Z- Robot sẽ di chuyển dọc theo trục Y theo chiều âm hoặc dương
- Nhấn R+ hoặc R- Robot sẽ xoay dọc theo trục R theo chiều âm hoặc dương
Hình 2 39 Điều chỉnh trọng hệ tọa độ khớp xoay
- Nhấn J1+ hoặc J1- Robot sẽ xoay động cơ chân đế theo chiều âm hoặc dương
- Nhấn J2+ hoặc J2- Robot sẽ xoay động cơ khớp RearArm theo chiều âm hoặc dương
- Nhấn J3+ hoặc J3- Robot sẽ xoay động cơ khớp ForeArm theo chiều âm hoặc dương
- Nhấn J4+ hoặc J4- Robot sẽ xoay động cơ Servo theo chiều âm hoặc dương
Khoa ĐT CLC – ĐHSPKT TP.HCM 28
Điều khiển vị trí cánh tay Robot dựa trên nguyên lý điểm tới điểm là phương pháp Point to Point Dobot Magician hỗ trợ ba chế độ chuyển động chính là MOVJ, MOVL và JUMP, giúp tối ưu hóa khả năng hoạt động của robot trong các tác vụ khác nhau.
MOVJ là chuyển động khớp xoay từ điểm A đến điểm B, trong đó mỗi điểm di chuyển từ góc ban đầu đến góc đích của nó mà không phụ thuộc vào quỹ đạo di chuyển Hình 2.40 minh họa rõ ràng quá trình này.
- MOVL: chuyển động thẳng từ điểm A đến điểm B Khớp xoay sẽ thực hiện di chuyển một quỹ đạo thẳng từ điểm A đến điểm B như trên hình 2.40
JUMP là quá trình di chuyển từ điểm A đến điểm B, trong đó khớp xoay hoạt động theo chế độ MOVJ Quá trình bắt đầu từ điểm A, nâng lên đến một độ cao nhất định, sau đó di chuyển ngang Khi đạt đến vị trí hình chiếu của điểm B, khớp sẽ hạ xuống điểm B.
Arc: là chế độ dịch chuyển theo quỹ đạo hình vòng cung, được xác định bởi 3 điểm (điểm đầu A, điểm bất kì B, điểm cuối C).
Khoa ĐT CLC – ĐHSPKT TP.HCM 29
Visual Studio là một môi trường phát triển tích hợp (IDE) nổi tiếng do Microsoft phát triển từ năm 1997 Nó hỗ trợ nhiều ngôn ngữ lập trình như C, C++, VB, C#, Python, Ruby, Javascript, và CSS, cho phép biên tập, sửa lỗi và thiết kế hiệu quả Với khả năng linh hoạt trong việc tích hợp thư viện lập trình và các API bên ngoài, Visual Studio trở thành công cụ không thể thiếu cho lập trình viên và nhà thiết kế website.
Để lập trình điều khiển Robot trên phần mềm Visual Studio bằng ngôn ngữ Python, người dùng cần cài đặt thư viện chứa các hàm và câu lệnh điều khiển do nhà sản xuất Dobot cung cấp Một số câu lệnh chính thường được sử dụng trong quá trình lập trình này.
Hàm điều khiển Chức năng
SetPTPCmd Thực thi lệnh dịch chuyển theo chế độ Point to
Point (điểm tới điểm) SetEndEffectorSuctionCup Thiết lập cơ cấu chấp hành là đầu hút khí nén
SetWAITCmd Lưu chỉ số của lệnh cuối cùng
GetQueuedCmdCurrentIndex Lấy giá trị của lệnh mới được thực hiện gần nhất
Khoa ĐT CLC – ĐHSPKT TP.HCM 30
ConnectDobot Kết nối Dobot Magician với máy tính
SetHOMEParams Thiết lập các thông số tại vị trí Home
SetPTPCoordinateParams Thiết lập các thông số tọa độ
SetPTPCommonParams Thiết lập các thông số chung khi chạy ở chế độ
Point to Point (điểm tới điểm)
SetPTPJumpParams Thiết lập các thông số khi Dobot hoạt động theo chế độ chuyển động JUMP SetHOMECmd Thiết lập lệnh di chuyển về vị trí Home
SetQueuedCmdStartExec Chạy các lệnh đã được đưa vào hàng chờ SetQueuedCmdClear Xóa toàn bộ lệnh trong hàng chờ
SetEMotor Điều khiển động cơ băng chuyền
DisconnectDobot Ngắt kết nối Dobot với máy tính
Bảng 2 2 Các hàm điều khiển của nhà sản xuất Dobot
Khoa ĐT CLC – ĐHSPKT TP.HCM 31
TÍNH TOÁN THIẾT KẾ
Yêu cầu thiết kế
Hình 3 1 Sơ đồ bố trí thiết bị phần cứng
Thiết kế tối ưu cho hệ thống phân loại sản phẩm dựa trên màu sắc cần đảm bảo hoạt động ổn định và tiết kiệm chi phí đầu tư ban đầu, bao gồm năm cụm chính.
Băng tải: vận chuyển các khối vật thể
Bơm khí: nén và xả khí để có thể gắp thả vật thể kích thước 25 x 25mm
Cánh tay Robot: xếp các vật thể từ trên băng chuyền vào kho chứa
Kho chứa bao gồm các khối vật thể có kích thước 4*3*4 (hàng * cột * độ cao), trong đó có 4 hàng tương ứng với 4 màu sắc khác nhau Mỗi hàng màu chứa 3 viên, và từ 3 viên này, ta có thể xếp thêm 4 viên nữa lên trên.
Giá đỡ Camera: dùng để gắn Camera chiếu xuống mặt băng chuyền.
Yêu cầu điều khiển
Để đảm bảo hiệu suất tối ưu trong quá trình hoạt động của hệ thống, cần duy trì tốc độ băng chuyền ở mức hợp lý Tốc độ quá nhanh sẽ khiến camera không kịp phân tích từng khung hình của các khối vật thể, dẫn đến phân loại màu sắc sai lệch Ngược lại, nếu băng chuyền hoạt động quá chậm, năng suất của hệ thống sẽ bị ảnh hưởng tiêu cực.
Các vật thể sau khi được xử lý trên băng chuyền cần được cánh tay Robot xoay theo hướng mong muốn trước khi được xếp vào kho Trong đề tài này, chúng ta sẽ xếp các vật thể vuông góc với kho và cho phép xếp chồng lên nhau theo từng khối màu với kích thước 1*3*4 viên (hàng * cột).
Sau khi gắp thả một vật thể, bộ điều khiển sẽ xóa ô nhớ tại vị trí đó và điều khiển cánh tay Robot di chuyển đến vị trí tiếp theo, nhằm tránh việc xếp chồng vật thể tại cùng một chỗ.
Khoa ĐT CLC – ĐHSPKT TP.HCM 32
Linh kiện phần cứng
Nhà sản xuất Logitech Độ phân giải
Bảng 3 1 Thông số kỹ thuật Camera
Chiều dài băng tải 600mm
Tốc độ tối đa 120mm/s
Kích thước 700mm x 215mm x 60mm
Bảng 3 2 Thông số kỹ thuật băng tải
Khoa ĐT CLC – ĐHSPKT TP.HCM 33
Hình 3 4 Quy cách thiết kế Dobot Magician
Dobot Magician là một cánh tay Robot đa chức năng với 4 bậc tự do (Base, Rear
Robot (Arm, Fore Arm, End-effector) được phát triển nhằm hỗ trợ giảng dạy trong môi trường giáo dục thực tế hơn Thiết bị này có khả năng lập trình bằng nhiều ngôn ngữ khác nhau như Java, C#, Python, Qt, VB, và blockly graphic, đồng thời có thể tích hợp vào các hệ thống nhúng như STM32, Arduino, iOS và Android.
Dobot Magician là một robot linh hoạt với nhiều cơ cấu chấp hành đa dạng, cho phép tùy biến thành máy in 3D, máy khắc laser, máy viết - vẽ chữ, và máy gắp vật thể Hơn nữa, nó được hỗ trợ bởi nhiều giao diện I/O khác nhau, mở ra khả năng sáng tạo không giới hạn cho người dùng.
Hình 3 5 Hệ tọa độ Đề - các
Khoa ĐT CLC – ĐHSPKT TP.HCM 34
Hệ tọa độ Đề-các: các tọa độ được xác định bởi trục đế.
Tọa độ gốc là tâm của 3 động cơ (Base, Rear Arm, Fore Arm).
Hướng trục X vuông góc với đế và hướng về phía trước, trục Y vuông góc với đế và hướng sang bên trái, trong khi trục Z hướng thẳng đứng lên trên, tất cả đều dựa trên quy tắc bàn tay phải.
Trục R là tâm của động cơ Servo liên quan đến tọa độ gốc của cánh tay Robot, với chiều dương quay ngược chiều kim đồng hồ Trục R chỉ xuất hiện khi động cơ Servo được lắp đặt trong cơ cấu chấp hành.
Hình 3 6 Hệ tọa độ khớp xoay
Hệ tọa độ khớp xoay được xác định bởi các khớp chuyển động, trong đó Dobot Magician chỉ có 3 khớp J1, J2 và J3 khi không lắp ráp cơ cấu chấp hành Tất cả các khớp này đều là khớp xoay và chiều dương của chúng quay ngược chiều kim đồng hồ.
Khi động cơ Servo được lắp đặt trong cơ cấu chấp hành như Suction Cup Kit hoặc Gripper Kit, Dobot Magician sẽ có tổng cộng 4 khớp: J1, J2, J3 và J4, tất cả đều là các khớp xoay Chiều dương của các khớp này quay ngược chiều kim đồng hồ.
Khoa ĐT CLC – ĐHSPKT TP.HCM 35
Hình 3 7 Thông số kích thước Hình 3 8 Tầm hoạt động (1)
Tầm hoạt động 320mm Độ lặp vị trí 0.2mm
Giao tiếp truyền thông USB/Wifi/Bluetooth
Kích thước đế 158mm x 158mm
Bảng 3 3 Thông số kỹ thuật Dobot Magician
Khoa ĐT CLC – ĐHSPKT TP.HCM 36
Hình 3 9 Tầm hoạt động (2) Hình 3 10 Tầm hoạt động (3)
Trục Tầm hoạt động Tốc độ
Khớp xoay chân đế (Base) −90 0 ÷ 90 0 320 0 /𝑠 Khớp xoay tay đòn 1 (Rear Arm) 0 0 ÷ 85 0 320 0 /𝑠 Khớp xoay tay đòn 2 (Fore Arm) −10 0 ÷ 95 0 320 0 /𝑠 Khớp xoay cơ cấu chấp hành (Servo) 90 0 ÷ −90 0 480 0 /𝑠
Bảng 3 4 Thông số các góc khớp
Phần mềm điều khiển DobotStudio, Repetier, GrblController3.6
SDK (Bộ phát triển phần mềm) Communication Protocool, Dobot Program
Giao tiếp Input/Output mở rộng 1 I/O x 10 (có thể cấu hình ngõ vào
Analog hoặc ngõ ra PWM)
3 Giao tiếp truyền thông (UART, Reset, Stop, 12V, 5V)
Khoa ĐT CLC – ĐHSPKT TP.HCM 37
3.3.4 Bộ bơm khí nén và đầu hút
Hình 3 11 Bộ bơm khí nén và đầu hút
Phạm vi tác dụng của đầu hút 27.5mm
Loại điều khiển Khí nén
Nguồn cung cấp cho bộ hút 12V
Bảng 3 6 Thông số bộ bơm khí và đầu hút
Khoa ĐT CLC – ĐHSPKT TP.HCM 38
Sơ đồ kết nối phần cứng
Các thiết bị phần cứng được lắp ráp dưới dạng Module bởi khoa Điện – Điện tử, và nhiệm vụ của nhóm là kết nối chúng thành một hệ thống hoàn chỉnh thông qua các giao thức có sẵn dựa trên sơ đồ kết nối phần cứng Tín hiệu từ Camera sẽ được truyền vào máy tính qua cổng kết nối USB, tương tự như cánh tay.
Dobot Magician và máy tính cũng sẽ giao tiếp tín hiệu với nhau thông qua cổng
Kết nối các chân USB ở phần đế của cánh tay Robot với các cơ cấu chấp hành tương ứng theo hướng dẫn của nhà sản xuất, như được mô tả trong hình 3.13 và hình 3.14.
Hình 3 12 Sơ đồ kết nối phần cứng
Hình 3 13 Các giao thức kết nối ở chân đế của Dobot Magician
- GP1: điều khiển bơm khí, cảm biến màu sắc, cảm biến hồng ngoại
- GP2: tương tự như GP1, các chức năng do người dùng tự định nghĩa
- Stepper1: điều khiển động cơ băng tải, động cơ đùn nhựa (chế độ in 3D)
- Stepper2: tương tự như Stepper1, các chức năng do người dùng tự định nghĩa
- SW1: nguồn cấp cho bơm khí, nguồn ra 12V
- USB: giao thức kết nối với máy tính
Để thực hiện việc reset hệ thống, hãy khởi động lại thiết bị Khi quá trình reset bắt đầu, đèn báo sẽ chuyển sang màu vàng Sau 5 giây, nếu đèn chuyển sang màu xanh lá, điều đó có nghĩa là cánh tay đã được reset thành công.
Khoa ĐT CLC – ĐHSPKT TP.HCM 39
- Key: nếu bấm nhanh sẽ chạy chương trình ngoại tuyến, nếu bấm giữ trong 2 giây
Robot sẽ tiến hành lấy vị trí Home
- Communication Interface: giao tiếp UART, kết nối Bluetooth, Wifi
- Power: nguồn cấp đầu vào
Hình 3 14 Các giao thức kết nối trên cánh tay
- GP3: điều khiển tín hiệu động cơ Servo ở cơ cấu chấp hành cuối
- GP4: điều khiển tín hiệu tự động cân bằng
- GP5: điều khiển tín hiệu đầu laser
- SW3: điều khiển tín hiệu đầu nung nhựa (chế độ in 3D)
- SW4: quạt gió (chế độ in 3D), nguồn cấp đầu laser
- Analog: điều khiển tín hiệu điện trở nhiệt
Khoa ĐT CLC – ĐHSPKT TP.HCM 40